pub use foundation_deployment::providers::common::{ApiError, ApiPending, ApiResponse, BoxedSendExecutionAction, Empty, Operation};
use foundation_macros::JsonHash;
use serde::{Deserialize, Serialize};
#[derive(Debug, Clone, Default, Serialize, Deserialize, JsonHash)]
pub struct IDResponse {
#[serde(rename = "Id")]
pub id: String,
}
#[derive(Debug, Clone, Default, Serialize, Deserialize, JsonHash)]
pub struct Plugin {
#[serde(rename = "Config")]
pub config: std::collections::HashMap<String, serde_json::Value>,
#[serde(rename = "Enabled")]
pub enabled: bool,
#[serde(rename = "Id")]
pub id: Option<String>,
#[serde(rename = "Name")]
pub name: String,
#[serde(rename = "PluginReference")]
pub plugin_reference: Option<String>,
#[serde(rename = "Settings")]
pub settings: std::collections::HashMap<String, serde_json::Value>,
}
#[derive(Debug, Clone, Default, Serialize, Deserialize, JsonHash)]
pub struct Volume {
#[serde(rename = "ClusterVolume")]
pub cluster_volume: Option<ClusterVolume>,
#[serde(rename = "CreatedAt")]
pub created_at: Option<String>,
#[serde(rename = "Driver")]
pub driver: String,
#[serde(rename = "Labels")]
pub labels: serde_json::Value,
#[serde(rename = "Mountpoint")]
pub mountpoint: String,
#[serde(rename = "Name")]
pub name: String,
#[serde(rename = "Options")]
pub options: serde_json::Value,
#[serde(rename = "Scope")]
pub scope: String,
#[serde(rename = "Status")]
pub status: Option<serde_json::Value>,
#[serde(rename = "UsageData")]
pub usage_data: Option<std::collections::HashMap<String, serde_json::Value>>,
}
#[derive(Debug, Clone, Default, Serialize, Deserialize, JsonHash)]
pub struct ClusterVolume {
#[serde(rename = "CreatedAt")]
pub created_at: Option<String>,
#[serde(rename = "ID")]
pub id: Option<String>,
#[serde(rename = "Info")]
pub info: Option<std::collections::HashMap<String, serde_json::Value>>,
#[serde(rename = "PublishStatus")]
pub publish_status: Option<Vec<std::collections::HashMap<String, serde_json::Value>>>,
#[serde(rename = "Spec")]
pub spec: Option<ClusterVolumeSpec>,
#[serde(rename = "UpdatedAt")]
pub updated_at: Option<String>,
#[serde(rename = "Version")]
pub version: Option<ObjectVersion>,
}
#[derive(Debug, Clone, Default, Serialize, Deserialize, JsonHash)]
pub struct ClusterVolumeSpec {
#[serde(rename = "AccessMode")]
pub access_mode: Option<std::collections::HashMap<String, serde_json::Value>>,
#[serde(rename = "Group")]
pub group: Option<String>,
}
#[derive(Debug, Clone, Default, Serialize, Deserialize, JsonHash)]
pub struct ObjectVersion {
#[serde(rename = "Index")]
pub index: Option<i64>,
}
#[derive(Debug, Clone, Default, Serialize, Deserialize, JsonHash)]
pub struct PluginDevice {
#[serde(rename = "Description")]
pub description: String,
#[serde(rename = "Name")]
pub name: String,
#[serde(rename = "Path")]
pub path: String,
#[serde(rename = "Settable")]
pub settable: Vec<String>,
}
#[derive(Debug, Clone, Default, Serialize, Deserialize, JsonHash)]
pub struct PluginEnv {
#[serde(rename = "Description")]
pub description: String,
#[serde(rename = "Name")]
pub name: String,
#[serde(rename = "Settable")]
pub settable: Vec<String>,
#[serde(rename = "Value")]
pub value: String,
}
#[derive(Debug, Clone, Default, Serialize, Deserialize, JsonHash)]
pub struct PluginMount {
#[serde(rename = "Description")]
pub description: String,
#[serde(rename = "Destination")]
pub destination: String,
#[serde(rename = "Name")]
pub name: String,
#[serde(rename = "Options")]
pub options: Vec<String>,
#[serde(rename = "Settable")]
pub settable: Vec<String>,
#[serde(rename = "Source")]
pub source: String,
#[serde(rename = "Type")]
pub r#type: String,
}
#[derive(Debug, Clone, Default, Serialize, Deserialize, JsonHash)]
pub struct Topology {
#[serde(rename = "Segments")]
pub segments: Option<serde_json::Value>,
}