#[allow(unused_imports)]
mod prelude {
pub use kube::CustomResource;
pub use serde::{Serialize, Deserialize};
pub use std::collections::BTreeMap;
pub use k8s_openapi::apimachinery::pkg::apis::meta::v1::Condition;
}
use self::prelude::*;
#[derive(CustomResource, Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
#[kube(group = "external-secrets.io", version = "v1alpha1", kind = "ExternalSecret", plural = "externalsecrets")]
#[kube(namespaced)]
#[kube(status = "ExternalSecretStatus")]
#[kube(schema = "disabled")]
#[kube(derive="Default")]
#[kube(derive="PartialEq")]
pub struct ExternalSecretSpec {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub data: Option<Vec<ExternalSecretData>>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "dataFrom")]
pub data_from: Option<Vec<ExternalSecretDataFrom>>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "refreshInterval")]
pub refresh_interval: Option<String>,
#[serde(rename = "secretStoreRef")]
pub secret_store_ref: ExternalSecretSecretStoreRef,
pub target: ExternalSecretTarget,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct ExternalSecretData {
#[serde(rename = "remoteRef")]
pub remote_ref: ExternalSecretDataRemoteRef,
#[serde(rename = "secretKey")]
pub secret_key: String,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct ExternalSecretDataRemoteRef {
#[serde(default, skip_serializing_if = "Option::is_none", rename = "conversionStrategy")]
pub conversion_strategy: Option<ExternalSecretDataRemoteRefConversionStrategy>,
pub key: String,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub property: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub version: Option<String>,
}
#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)]
pub enum ExternalSecretDataRemoteRefConversionStrategy {
Default,
Unicode,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct ExternalSecretDataFrom {
#[serde(default, skip_serializing_if = "Option::is_none", rename = "conversionStrategy")]
pub conversion_strategy: Option<ExternalSecretDataFromConversionStrategy>,
pub key: String,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub property: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub version: Option<String>,
}
#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)]
pub enum ExternalSecretDataFromConversionStrategy {
Default,
Unicode,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct ExternalSecretSecretStoreRef {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub kind: Option<ExternalSecretSecretStoreRefKind>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub name: Option<String>,
}
#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)]
pub enum ExternalSecretSecretStoreRefKind {
SecretStore,
ClusterSecretStore,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct ExternalSecretTarget {
#[serde(default, skip_serializing_if = "Option::is_none", rename = "creationPolicy")]
pub creation_policy: Option<ExternalSecretTargetCreationPolicy>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub immutable: Option<bool>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub name: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub template: Option<ExternalSecretTargetTemplate>,
}
#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)]
pub enum ExternalSecretTargetCreationPolicy {
Owner,
Merge,
None,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct ExternalSecretTargetTemplate {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub data: Option<BTreeMap<String, String>>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "engineVersion")]
pub engine_version: Option<ExternalSecretTargetTemplateEngineVersion>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub metadata: Option<ExternalSecretTargetTemplateMetadata>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "templateFrom")]
pub template_from: Option<Vec<ExternalSecretTargetTemplateTemplateFrom>>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "type")]
pub r#type: Option<String>,
}
#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)]
pub enum ExternalSecretTargetTemplateEngineVersion {
#[serde(rename = "v1")]
V1,
#[serde(rename = "v2")]
V2,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct ExternalSecretTargetTemplateMetadata {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub annotations: Option<BTreeMap<String, String>>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub labels: Option<BTreeMap<String, String>>,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct ExternalSecretTargetTemplateTemplateFrom {
#[serde(default, skip_serializing_if = "Option::is_none", rename = "configMap")]
pub config_map: Option<ExternalSecretTargetTemplateTemplateFromConfigMap>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub secret: Option<ExternalSecretTargetTemplateTemplateFromSecret>,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct ExternalSecretTargetTemplateTemplateFromConfigMap {
pub items: Vec<ExternalSecretTargetTemplateTemplateFromConfigMapItems>,
pub name: String,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct ExternalSecretTargetTemplateTemplateFromConfigMapItems {
pub key: String,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct ExternalSecretTargetTemplateTemplateFromSecret {
pub items: Vec<ExternalSecretTargetTemplateTemplateFromSecretItems>,
pub name: String,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct ExternalSecretTargetTemplateTemplateFromSecretItems {
pub key: String,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct ExternalSecretStatus {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub binding: Option<ExternalSecretStatusBinding>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub conditions: Option<Vec<Condition>>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "refreshTime")]
pub refresh_time: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "syncedResourceVersion")]
pub synced_resource_version: Option<String>,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct ExternalSecretStatusBinding {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub name: Option<String>,
}