blob: 8b4107937974bf6a8d600ac549642288c041b37a [file]
/*
* Licensed to the Apache Software Foundation (ASF) under one
* or more contributor license agreements. See the NOTICE file
* distributed with this work for additional information
* regarding copyright ownership. The ASF licenses this file
* to you under the Apache License, Version 2.0 (the
* "License"); you may not use this file except in compliance
* with the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing,
* software distributed under the License is distributed on an
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
* KIND, either express or implied. See the License for the
* specific language governing permissions and limitations
* under the License.
*
*/
include "../airavata-apis/airavata_commons.thrift"
include "data_movement_models.thrift"
namespace java org.apache.airavata.model.appcatalog.storageresource
namespace php Airavata.Model.AppCatalog.StorageResource
namespace cpp apache.airavata.model.appcatalog.storageresource
namespace py airavata.model.appcatalog.storageresource
/**
* Storage Resource Description
*
* storageResourceId: Airavata Internal Unique Identifier to distinguish Compute Resource.
*
* hostName:
* Fully Qualified Host Name.
*
* storageResourceDescription:
* A user friendly description of the resource.
*
*
* DataMovementProtocol:
* Option to specify a prefered data movement mechanism of the available options.
*
*
*/
struct StorageResourceDescription {
1: required string storageResourceId = airavata_commons.DEFAULT_ID,
2: required string hostName,
3: optional string storageResourceDescription,
4: optional bool enabled,
5: optional list<data_movement_models.DataMovementInterface> dataMovementInterfaces,
6: optional i64 creationTime,
7: optional i64 updateTime,
}
/**
* Storage Volume Information
*
* Contains disk usage information for a filesystem/mount point.
*
* totalSize: Total size in human-readable format (e.g., "100G", "500M")
* usedSize: Used size in human-readable format
* availableSize: Available size in human-readable format
* totalSizeBytes: Total size in bytes
* usedSizeBytes: Used size in bytes
* availableSizeBytes: Available size in bytes
* percentageUsed: Percentage used
* mountPoint: Mount point/filesystem path
* filesystemType: Filesystem type if available
*/
struct StorageVolumeInfo {
1: required string totalSize,
2: required string usedSize,
3: required string availableSize,
4: required i64 totalSizeBytes,
5: required i64 usedSizeBytes,
6: required i64 availableSizeBytes,
7: required double percentageUsed,
8: required string mountPoint,
9: optional string filesystemType,
}