#[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 = "PushSecret", plural = "pushsecrets")]
#[kube(namespaced)]
#[kube(status = "PushSecretStatus")]
#[kube(schema = "disabled")]
#[kube(derive="Default")]
#[kube(derive="PartialEq")]
pub struct PushSecretSpec {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub data: Option<Vec<PushSecretData>>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "deletionPolicy")]
pub deletion_policy: Option<PushSecretDeletionPolicy>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "refreshInterval")]
pub refresh_interval: Option<String>,
#[serde(rename = "secretStoreRefs")]
pub secret_store_refs: Vec<PushSecretSecretStoreRefs>,
pub selector: PushSecretSelector,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub template: Option<PushSecretTemplate>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "updatePolicy")]
pub update_policy: Option<PushSecretUpdatePolicy>,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct PushSecretData {
#[serde(default, skip_serializing_if = "Option::is_none", rename = "conversionStrategy")]
pub conversion_strategy: Option<PushSecretDataConversionStrategy>,
#[serde(rename = "match")]
pub r#match: PushSecretDataMatch,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub metadata: Option<serde_json::Value>,
}
#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)]
pub enum PushSecretDataConversionStrategy {
None,
ReverseUnicode,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct PushSecretDataMatch {
#[serde(rename = "remoteRef")]
pub remote_ref: PushSecretDataMatchRemoteRef,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "secretKey")]
pub secret_key: Option<String>,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct PushSecretDataMatchRemoteRef {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub property: Option<String>,
#[serde(rename = "remoteKey")]
pub remote_key: String,
}
#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)]
pub enum PushSecretDeletionPolicy {
Delete,
None,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct PushSecretSecretStoreRefs {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub kind: Option<PushSecretSecretStoreRefsKind>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "labelSelector")]
pub label_selector: Option<PushSecretSecretStoreRefsLabelSelector>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub name: Option<String>,
}
#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)]
pub enum PushSecretSecretStoreRefsKind {
SecretStore,
ClusterSecretStore,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct PushSecretSecretStoreRefsLabelSelector {
#[serde(default, skip_serializing_if = "Option::is_none", rename = "matchExpressions")]
pub match_expressions: Option<Vec<PushSecretSecretStoreRefsLabelSelectorMatchExpressions>>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "matchLabels")]
pub match_labels: Option<BTreeMap<String, String>>,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct PushSecretSecretStoreRefsLabelSelectorMatchExpressions {
pub key: String,
pub operator: String,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub values: Option<Vec<String>>,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct PushSecretSelector {
#[serde(default, skip_serializing_if = "Option::is_none", rename = "generatorRef")]
pub generator_ref: Option<PushSecretSelectorGeneratorRef>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub secret: Option<PushSecretSelectorSecret>,
}
#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)]
pub struct PushSecretSelectorGeneratorRef {
#[serde(default, skip_serializing_if = "Option::is_none", rename = "apiVersion")]
pub api_version: Option<String>,
pub kind: PushSecretSelectorGeneratorRefKind,
pub name: String,
}
#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)]
pub enum PushSecretSelectorGeneratorRefKind {
#[serde(rename = "ACRAccessToken")]
AcrAccessToken,
ClusterGenerator,
CloudsmithAccessToken,
#[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,
#[serde(rename = "MFA")]
Mfa,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct PushSecretSelectorSecret {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub name: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub selector: Option<PushSecretSelectorSecretSelector>,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct PushSecretSelectorSecretSelector {
#[serde(default, skip_serializing_if = "Option::is_none", rename = "matchExpressions")]
pub match_expressions: Option<Vec<PushSecretSelectorSecretSelectorMatchExpressions>>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "matchLabels")]
pub match_labels: Option<BTreeMap<String, String>>,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct PushSecretSelectorSecretSelectorMatchExpressions {
pub key: String,
pub operator: String,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub values: Option<Vec<String>>,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct PushSecretTemplate {
#[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<PushSecretTemplateEngineVersion>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "mergePolicy")]
pub merge_policy: Option<PushSecretTemplateMergePolicy>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub metadata: Option<PushSecretTemplateMetadata>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "templateFrom")]
pub template_from: Option<Vec<PushSecretTemplateTemplateFrom>>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "type")]
pub r#type: Option<String>,
}
#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)]
pub enum PushSecretTemplateEngineVersion {
#[serde(rename = "v2")]
V2,
}
#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)]
pub enum PushSecretTemplateMergePolicy {
Replace,
Merge,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct PushSecretTemplateMetadata {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub annotations: Option<BTreeMap<String, String>>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub finalizers: Option<Vec<String>>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub labels: Option<BTreeMap<String, String>>,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct PushSecretTemplateTemplateFrom {
#[serde(default, skip_serializing_if = "Option::is_none", rename = "configMap")]
pub config_map: Option<PushSecretTemplateTemplateFromConfigMap>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub literal: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub secret: Option<PushSecretTemplateTemplateFromSecret>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub target: Option<String>,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct PushSecretTemplateTemplateFromConfigMap {
pub items: Vec<PushSecretTemplateTemplateFromConfigMapItems>,
pub name: String,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct PushSecretTemplateTemplateFromConfigMapItems {
pub key: String,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "templateAs")]
pub template_as: Option<PushSecretTemplateTemplateFromConfigMapItemsTemplateAs>,
}
#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)]
pub enum PushSecretTemplateTemplateFromConfigMapItemsTemplateAs {
Values,
KeysAndValues,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct PushSecretTemplateTemplateFromSecret {
pub items: Vec<PushSecretTemplateTemplateFromSecretItems>,
pub name: String,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct PushSecretTemplateTemplateFromSecretItems {
pub key: String,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "templateAs")]
pub template_as: Option<PushSecretTemplateTemplateFromSecretItemsTemplateAs>,
}
#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)]
pub enum PushSecretTemplateTemplateFromSecretItemsTemplateAs {
Values,
KeysAndValues,
}
#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)]
pub enum PushSecretUpdatePolicy {
Replace,
IfNotExists,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct PushSecretStatus {
#[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 = "syncedPushSecrets")]
pub synced_push_secrets: Option<BTreeMap<String, BTreeMap<String, PushSecretStatusSyncedPushSecrets>>>,
#[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 PushSecretStatusSyncedPushSecrets {
#[serde(default, skip_serializing_if = "Option::is_none", rename = "conversionStrategy")]
pub conversion_strategy: Option<PushSecretStatusSyncedPushSecretsConversionStrategy>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "match")]
pub r#match: Option<PushSecretStatusSyncedPushSecretsMatch>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub metadata: Option<serde_json::Value>,
}
#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)]
pub enum PushSecretStatusSyncedPushSecretsConversionStrategy {
None,
ReverseUnicode,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct PushSecretStatusSyncedPushSecretsMatch {
#[serde(rename = "remoteRef")]
pub remote_ref: PushSecretStatusSyncedPushSecretsMatchRemoteRef,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "secretKey")]
pub secret_key: Option<String>,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct PushSecretStatusSyncedPushSecretsMatchRemoteRef {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub property: Option<String>,
#[serde(rename = "remoteKey")]
pub remote_key: String,
}