#[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 = "v1beta1", 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(default, skip_serializing_if = "Option::is_none", rename = "refreshPolicy")]
pub refresh_policy: Option<ExternalSecretRefreshPolicy>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "secretStoreRef")]
pub secret_store_ref: Option<ExternalSecretSecretStoreRef>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub target: Option<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,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "sourceRef")]
pub source_ref: Option<ExternalSecretDataSourceRef>,
}
#[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>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "decodingStrategy")]
pub decoding_strategy: Option<ExternalSecretDataRemoteRefDecodingStrategy>,
pub key: String,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "metadataPolicy")]
pub metadata_policy: Option<ExternalSecretDataRemoteRefMetadataPolicy>,
#[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, PartialEq)]
pub enum ExternalSecretDataRemoteRefDecodingStrategy {
Auto,
Base64,
#[serde(rename = "Base64URL")]
Base64Url,
None,
}
#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)]
pub enum ExternalSecretDataRemoteRefMetadataPolicy {
None,
Fetch,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct ExternalSecretDataSourceRef {
#[serde(default, skip_serializing_if = "Option::is_none", rename = "generatorRef")]
pub generator_ref: Option<ExternalSecretDataSourceRefGeneratorRef>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "storeRef")]
pub store_ref: Option<ExternalSecretDataSourceRefStoreRef>,
}
#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)]
pub struct ExternalSecretDataSourceRefGeneratorRef {
#[serde(default, skip_serializing_if = "Option::is_none", rename = "apiVersion")]
pub api_version: Option<String>,
pub kind: ExternalSecretDataSourceRefGeneratorRefKind,
pub name: String,
}
#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)]
pub enum ExternalSecretDataSourceRefGeneratorRefKind {
#[serde(rename = "ACRAccessToken")]
AcrAccessToken,
ClusterGenerator,
#[serde(rename = "ECRAuthorizationToken")]
EcrAuthorizationToken,
Fake,
#[serde(rename = "GCRAccessToken")]
GcrAccessToken,
GithubAccessToken,
QuayAccessToken,
Password,
#[serde(rename = "SSHKey")]
SshKey,
#[serde(rename = "STSSessionToken")]
StsSessionToken,
#[serde(rename = "UUID")]
Uuid,
VaultDynamicSecret,
Webhook,
Grafana,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct ExternalSecretDataSourceRefStoreRef {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub kind: Option<ExternalSecretDataSourceRefStoreRefKind>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub name: Option<String>,
}
#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)]
pub enum ExternalSecretDataSourceRefStoreRefKind {
SecretStore,
ClusterSecretStore,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct ExternalSecretDataFrom {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub extract: Option<ExternalSecretDataFromExtract>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub find: Option<ExternalSecretDataFromFind>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub rewrite: Option<Vec<ExternalSecretDataFromRewrite>>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "sourceRef")]
pub source_ref: Option<ExternalSecretDataFromSourceRef>,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct ExternalSecretDataFromExtract {
#[serde(default, skip_serializing_if = "Option::is_none", rename = "conversionStrategy")]
pub conversion_strategy: Option<ExternalSecretDataFromExtractConversionStrategy>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "decodingStrategy")]
pub decoding_strategy: Option<ExternalSecretDataFromExtractDecodingStrategy>,
pub key: String,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "metadataPolicy")]
pub metadata_policy: Option<ExternalSecretDataFromExtractMetadataPolicy>,
#[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 ExternalSecretDataFromExtractConversionStrategy {
Default,
Unicode,
}
#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)]
pub enum ExternalSecretDataFromExtractDecodingStrategy {
Auto,
Base64,
#[serde(rename = "Base64URL")]
Base64Url,
None,
}
#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)]
pub enum ExternalSecretDataFromExtractMetadataPolicy {
None,
Fetch,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct ExternalSecretDataFromFind {
#[serde(default, skip_serializing_if = "Option::is_none", rename = "conversionStrategy")]
pub conversion_strategy: Option<ExternalSecretDataFromFindConversionStrategy>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "decodingStrategy")]
pub decoding_strategy: Option<ExternalSecretDataFromFindDecodingStrategy>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub name: Option<ExternalSecretDataFromFindName>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub path: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub tags: Option<BTreeMap<String, String>>,
}
#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)]
pub enum ExternalSecretDataFromFindConversionStrategy {
Default,
Unicode,
}
#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)]
pub enum ExternalSecretDataFromFindDecodingStrategy {
Auto,
Base64,
#[serde(rename = "Base64URL")]
Base64Url,
None,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct ExternalSecretDataFromFindName {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub regexp: Option<String>,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct ExternalSecretDataFromRewrite {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub regexp: Option<ExternalSecretDataFromRewriteRegexp>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub transform: Option<ExternalSecretDataFromRewriteTransform>,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct ExternalSecretDataFromRewriteRegexp {
pub source: String,
pub target: String,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct ExternalSecretDataFromRewriteTransform {
pub template: String,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct ExternalSecretDataFromSourceRef {
#[serde(default, skip_serializing_if = "Option::is_none", rename = "generatorRef")]
pub generator_ref: Option<ExternalSecretDataFromSourceRefGeneratorRef>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "storeRef")]
pub store_ref: Option<ExternalSecretDataFromSourceRefStoreRef>,
}
#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)]
pub struct ExternalSecretDataFromSourceRefGeneratorRef {
#[serde(default, skip_serializing_if = "Option::is_none", rename = "apiVersion")]
pub api_version: Option<String>,
pub kind: ExternalSecretDataFromSourceRefGeneratorRefKind,
pub name: String,
}
#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)]
pub enum ExternalSecretDataFromSourceRefGeneratorRefKind {
#[serde(rename = "ACRAccessToken")]
AcrAccessToken,
ClusterGenerator,
#[serde(rename = "ECRAuthorizationToken")]
EcrAuthorizationToken,
Fake,
#[serde(rename = "GCRAccessToken")]
GcrAccessToken,
GithubAccessToken,
QuayAccessToken,
Password,
#[serde(rename = "SSHKey")]
SshKey,
#[serde(rename = "STSSessionToken")]
StsSessionToken,
#[serde(rename = "UUID")]
Uuid,
VaultDynamicSecret,
Webhook,
Grafana,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct ExternalSecretDataFromSourceRefStoreRef {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub kind: Option<ExternalSecretDataFromSourceRefStoreRefKind>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub name: Option<String>,
}
#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)]
pub enum ExternalSecretDataFromSourceRefStoreRefKind {
SecretStore,
ClusterSecretStore,
}
#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)]
pub enum ExternalSecretRefreshPolicy {
CreatedOnce,
Periodic,
OnChange,
}
#[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", rename = "deletionPolicy")]
pub deletion_policy: Option<ExternalSecretTargetDeletionPolicy>,
#[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,
Orphan,
Merge,
None,
}
#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)]
pub enum ExternalSecretTargetDeletionPolicy {
Delete,
Merge,
Retain,
}
#[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", rename = "mergePolicy")]
pub merge_policy: Option<ExternalSecretTargetTemplateMergePolicy>,
#[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 = "v2")]
V2,
}
#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)]
pub enum ExternalSecretTargetTemplateMergePolicy {
Replace,
Merge,
}
#[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 literal: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub secret: Option<ExternalSecretTargetTemplateTemplateFromSecret>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub target: Option<ExternalSecretTargetTemplateTemplateFromTarget>,
}
#[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,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "templateAs")]
pub template_as: Option<ExternalSecretTargetTemplateTemplateFromConfigMapItemsTemplateAs>,
}
#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)]
pub enum ExternalSecretTargetTemplateTemplateFromConfigMapItemsTemplateAs {
Values,
KeysAndValues,
}
#[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,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "templateAs")]
pub template_as: Option<ExternalSecretTargetTemplateTemplateFromSecretItemsTemplateAs>,
}
#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)]
pub enum ExternalSecretTargetTemplateTemplateFromSecretItemsTemplateAs {
Values,
KeysAndValues,
}
#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)]
pub enum ExternalSecretTargetTemplateTemplateFromTarget {
Data,
Annotations,
Labels,
}
#[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>,
}