#[allow(unused_imports)]
mod prelude {
pub use kube::CustomResource;
pub use serde::{Serialize, Deserialize};
}
use self::prelude::*;
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct StorageAccountAdditionalResources {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub secrets: Option<Vec<String>>,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct StorageAccountOutput {
#[serde(default, skip_serializing_if = "Option::is_none", rename = "connectionString1")]
pub connection_string1: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "connectionString2")]
pub connection_string2: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub key1: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub key2: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "storageAccountName")]
pub storage_account_name: Option<String>,
}
#[derive(CustomResource, Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
#[kube(group = "azure.microsoft.com", version = "v1alpha1", kind = "StorageAccount", plural = "storageaccounts")]
#[kube(namespaced)]
#[kube(status = "StorageAccountStatus")]
#[kube(schema = "disabled")]
#[kube(derive="Default")]
#[kube(derive="PartialEq")]
pub struct StorageAccountSpec {
#[serde(default, skip_serializing_if = "Option::is_none", rename = "accessTier")]
pub access_tier: Option<StorageAccountAccessTier>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "dataLakeEnabled")]
pub data_lake_enabled: Option<bool>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub kind: Option<StorageAccountKind>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub location: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "networkRule")]
pub network_rule: Option<StorageAccountNetworkRule>,
#[serde(rename = "resourceGroup")]
pub resource_group: String,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub sku: Option<StorageAccountSku>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "supportsHttpsTrafficOnly")]
pub supports_https_traffic_only: Option<bool>,
}
#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)]
pub enum StorageAccountAccessTier {
Cool,
Hot,
}
#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)]
pub enum StorageAccountKind {
BlobStorage,
BlockBlobStorage,
FileStorage,
Storage,
StorageV2,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct StorageAccountNetworkRule {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub bypass: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "defaultAction")]
pub default_action: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "ipRules")]
pub ip_rules: Option<Vec<StorageAccountNetworkRuleIpRules>>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "virtualNetworkRules")]
pub virtual_network_rules: Option<Vec<StorageAccountNetworkRuleVirtualNetworkRules>>,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct StorageAccountNetworkRuleIpRules {
#[serde(default, skip_serializing_if = "Option::is_none", rename = "ipAddressOrRange")]
pub ip_address_or_range: Option<String>,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct StorageAccountNetworkRuleVirtualNetworkRules {
#[serde(default, skip_serializing_if = "Option::is_none", rename = "subnetId")]
pub subnet_id: Option<String>,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct StorageAccountSku {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub name: Option<StorageAccountSkuName>,
}
#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)]
pub enum StorageAccountSkuName {
#[serde(rename = "Premium_LRS")]
PremiumLrs,
#[serde(rename = "Premium_ZRS")]
PremiumZrs,
#[serde(rename = "Standard_GRS")]
StandardGrs,
#[serde(rename = "Standard_GZRS")]
StandardGzrs,
#[serde(rename = "Standard_LRS")]
StandardLrs,
#[serde(rename = "Standard_RAGRS")]
StandardRagrs,
#[serde(rename = "Standard_RAGZRS")]
StandardRagzrs,
#[serde(rename = "Standard_ZRS")]
StandardZrs,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct StorageAccountStatus {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub completed: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "containsUpdate")]
pub contains_update: Option<bool>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "failedProvisioning")]
pub failed_provisioning: Option<bool>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "flattenedSecrets")]
pub flattened_secrets: Option<bool>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub message: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub output: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "pollingUrl")]
pub polling_url: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "pollingUrlKind")]
pub polling_url_kind: Option<StorageAccountStatusPollingUrlKind>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub provisioned: Option<bool>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub provisioning: Option<bool>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub requested: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "resourceId")]
pub resource_id: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "specHash")]
pub spec_hash: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub state: Option<String>,
}
#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)]
pub enum StorageAccountStatusPollingUrlKind {
CreateOrUpdate,
Delete,
}