schemas_v1_api_storage - OmniCloudOrg/OmniOrchestrator GitHub Wiki
Path: src/schemas/v1/api/storage.rs
- struct StorageClassQuery
- struct StorageVolumeQuery
- async fn list_storage_classes
- async fn get_storage_class
- async fn list_storage_volumes
- async fn get_volumes_by_storage_class
- async fn list_qos_policies
- async fn list_volumes_by_write_concern
- async fn list_volumes_by_persistence_level
- async fn get_volumes_for_region_route
- async fn get_storage_volumes_for_provider
pub struct StorageClassQuery {
pub storage_type: Option<String>,
pub volume_binding_mode: Option<String>,
pub allow_volume_expansion: Option<bool>,
}
Query parameters for storage class listing
pub struct StorageVolumeQuery {
pub app_id: Option<i64>,
pub storage_class_id: Option<i64>,
pub status: Option<String>,
pub node_id: Option<i64>,
pub persistence_level: Option<String>,
pub write_concern: Option<String>,
pub page: Option<i64>,
pub per_page: Option<i64>,
}
Query parameters for storage volume listing
pub async fn list_storage_classes(
platform_id: i64,
query: StorageClassQuery,
db_manager: &State<Arc<DatabaseManager>>,
) -> Result<Json<Value>, (Status, Json<Value>)> {
// ... function body
}
List all storage classes with optional filtering
pub async fn get_storage_class(
platform_id: i64,
id: i64,
db_manager: &State<Arc<DatabaseManager>>,
) -> Result<Json<Value>, (Status, Json<Value>)> {
// ... function body
}
Get a specific storage class by ID
pub async fn list_storage_volumes(
platform_id: i64,
query: StorageVolumeQuery,
db_manager: &State<Arc<DatabaseManager>>,
) -> Result<Json<Value>, (Status, Json<Value>)> {
// ... function body
}
List storage volumes with comprehensive filtering
pub async fn get_volumes_by_storage_class(
platform_id: i64,
id: i64,
page: Option<i64>,
per_page: Option<i64>,
db_manager: &State<Arc<DatabaseManager>>,
) -> Result<Json<Value>, (Status, Json<Value>)> {
// ... function body
}
Get volumes by storage class
pub async fn list_qos_policies(
platform_id: i64,
db_manager: &State<Arc<DatabaseManager>>,
) -> Result<Json<Value>, (Status, Json<Value>)> {
// ... function body
}
Get QoS policies
pub async fn list_volumes_by_write_concern(
platform_id: i64,
write_concern: String,
page: Option<i64>,
per_page: Option<i64>,
db_manager: &State<Arc<DatabaseManager>>,
) -> Result<Json<Value>, (Status, Json<Value>)> {
// ... function body
}
List volumes by write concern level
pub async fn list_volumes_by_persistence_level(
platform_id: i64,
persistence_level: String,
page: Option<i64>,
per_page: Option<i64>,
db_manager: &State<Arc<DatabaseManager>>,
) -> Result<Json<Value>, (Status, Json<Value>)> {
// ... function body
}
List volumes by persistence level
pub async fn get_volumes_for_region_route(
platform_id: i64,
region_id: i64,
page: Option<i64>,
per_page: Option<i64>,
db_manager: &State<Arc<DatabaseManager>>,
) -> Result<Json<Value>, (Status, Json<Value>)> {
// ... function body
}
Get storage volumes for a specific region, grouped by region, with pagination
pub async fn get_storage_volumes_for_provider(
platform_id: i64,
provider_id: i64,
page: Option<i64>,
per_page: Option<i64>,
db_manager: &State<Arc<DatabaseManager>>,
) -> Result<Json<Value>, (Status, Json<Value>)> {
// ... function body
}
Get storage volumes for a specific provider, with pagination