#[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 = "SecretStore", plural = "secretstores")]
#[kube(namespaced)]
#[kube(status = "SecretStoreStatus")]
#[kube(schema = "disabled")]
#[kube(derive="Default")]
#[kube(derive="PartialEq")]
pub struct SecretStoreSpec {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub controller: Option<String>,
pub provider: SecretStoreProvider,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "retrySettings")]
pub retry_settings: Option<SecretStoreRetrySettings>,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct SecretStoreProvider {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub akeyless: Option<SecretStoreProviderAkeyless>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub alibaba: Option<SecretStoreProviderAlibaba>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub aws: Option<SecretStoreProviderAws>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub azurekv: Option<SecretStoreProviderAzurekv>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub fake: Option<SecretStoreProviderFake>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub gcpsm: Option<SecretStoreProviderGcpsm>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub gitlab: Option<SecretStoreProviderGitlab>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub ibm: Option<SecretStoreProviderIbm>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub kubernetes: Option<SecretStoreProviderKubernetes>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub oracle: Option<SecretStoreProviderOracle>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub passworddepot: Option<SecretStoreProviderPassworddepot>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub vault: Option<SecretStoreProviderVault>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub webhook: Option<SecretStoreProviderWebhook>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub yandexlockbox: Option<SecretStoreProviderYandexlockbox>,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct SecretStoreProviderAkeyless {
#[serde(rename = "akeylessGWApiURL")]
pub akeyless_gw_api_url: String,
#[serde(rename = "authSecretRef")]
pub auth_secret_ref: SecretStoreProviderAkeylessAuthSecretRef,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "caBundle")]
pub ca_bundle: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "caProvider")]
pub ca_provider: Option<SecretStoreProviderAkeylessCaProvider>,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct SecretStoreProviderAkeylessAuthSecretRef {
#[serde(default, skip_serializing_if = "Option::is_none", rename = "kubernetesAuth")]
pub kubernetes_auth: Option<SecretStoreProviderAkeylessAuthSecretRefKubernetesAuth>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "secretRef")]
pub secret_ref: Option<SecretStoreProviderAkeylessAuthSecretRefSecretRef>,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct SecretStoreProviderAkeylessAuthSecretRefKubernetesAuth {
#[serde(rename = "accessID")]
pub access_id: String,
#[serde(rename = "k8sConfName")]
pub k8s_conf_name: String,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "secretRef")]
pub secret_ref: Option<SecretStoreProviderAkeylessAuthSecretRefKubernetesAuthSecretRef>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "serviceAccountRef")]
pub service_account_ref: Option<SecretStoreProviderAkeylessAuthSecretRefKubernetesAuthServiceAccountRef>,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct SecretStoreProviderAkeylessAuthSecretRefKubernetesAuthSecretRef {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub key: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub name: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub namespace: Option<String>,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct SecretStoreProviderAkeylessAuthSecretRefKubernetesAuthServiceAccountRef {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub audiences: Option<Vec<String>>,
pub name: String,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub namespace: Option<String>,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct SecretStoreProviderAkeylessAuthSecretRefSecretRef {
#[serde(default, skip_serializing_if = "Option::is_none", rename = "accessID")]
pub access_id: Option<SecretStoreProviderAkeylessAuthSecretRefSecretRefAccessId>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "accessType")]
pub access_type: Option<SecretStoreProviderAkeylessAuthSecretRefSecretRefAccessType>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "accessTypeParam")]
pub access_type_param: Option<SecretStoreProviderAkeylessAuthSecretRefSecretRefAccessTypeParam>,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct SecretStoreProviderAkeylessAuthSecretRefSecretRefAccessId {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub key: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub name: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub namespace: Option<String>,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct SecretStoreProviderAkeylessAuthSecretRefSecretRefAccessType {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub key: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub name: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub namespace: Option<String>,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct SecretStoreProviderAkeylessAuthSecretRefSecretRefAccessTypeParam {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub key: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub name: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub namespace: Option<String>,
}
#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)]
pub struct SecretStoreProviderAkeylessCaProvider {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub key: Option<String>,
pub name: String,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub namespace: Option<String>,
#[serde(rename = "type")]
pub r#type: SecretStoreProviderAkeylessCaProviderType,
}
#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)]
pub enum SecretStoreProviderAkeylessCaProviderType {
Secret,
ConfigMap,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct SecretStoreProviderAlibaba {
pub auth: SecretStoreProviderAlibabaAuth,
#[serde(rename = "regionID")]
pub region_id: String,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct SecretStoreProviderAlibabaAuth {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub rrsa: Option<SecretStoreProviderAlibabaAuthRrsa>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "secretRef")]
pub secret_ref: Option<SecretStoreProviderAlibabaAuthSecretRef>,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct SecretStoreProviderAlibabaAuthRrsa {
#[serde(rename = "oidcProviderArn")]
pub oidc_provider_arn: String,
#[serde(rename = "oidcTokenFilePath")]
pub oidc_token_file_path: String,
#[serde(rename = "roleArn")]
pub role_arn: String,
#[serde(rename = "sessionName")]
pub session_name: String,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct SecretStoreProviderAlibabaAuthSecretRef {
#[serde(rename = "accessKeyIDSecretRef")]
pub access_key_id_secret_ref: SecretStoreProviderAlibabaAuthSecretRefAccessKeyIdSecretRef,
#[serde(rename = "accessKeySecretSecretRef")]
pub access_key_secret_secret_ref: SecretStoreProviderAlibabaAuthSecretRefAccessKeySecretSecretRef,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct SecretStoreProviderAlibabaAuthSecretRefAccessKeyIdSecretRef {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub key: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub name: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub namespace: Option<String>,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct SecretStoreProviderAlibabaAuthSecretRefAccessKeySecretSecretRef {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub key: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub name: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub namespace: Option<String>,
}
#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)]
pub struct SecretStoreProviderAws {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub auth: Option<SecretStoreProviderAwsAuth>,
pub region: String,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub role: Option<String>,
pub service: SecretStoreProviderAwsService,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct SecretStoreProviderAwsAuth {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub jwt: Option<SecretStoreProviderAwsAuthJwt>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "secretRef")]
pub secret_ref: Option<SecretStoreProviderAwsAuthSecretRef>,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct SecretStoreProviderAwsAuthJwt {
#[serde(default, skip_serializing_if = "Option::is_none", rename = "serviceAccountRef")]
pub service_account_ref: Option<SecretStoreProviderAwsAuthJwtServiceAccountRef>,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct SecretStoreProviderAwsAuthJwtServiceAccountRef {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub audiences: Option<Vec<String>>,
pub name: String,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub namespace: Option<String>,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct SecretStoreProviderAwsAuthSecretRef {
#[serde(default, skip_serializing_if = "Option::is_none", rename = "accessKeyIDSecretRef")]
pub access_key_id_secret_ref: Option<SecretStoreProviderAwsAuthSecretRefAccessKeyIdSecretRef>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "secretAccessKeySecretRef")]
pub secret_access_key_secret_ref: Option<SecretStoreProviderAwsAuthSecretRefSecretAccessKeySecretRef>,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct SecretStoreProviderAwsAuthSecretRefAccessKeyIdSecretRef {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub key: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub name: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub namespace: Option<String>,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct SecretStoreProviderAwsAuthSecretRefSecretAccessKeySecretRef {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub key: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub name: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub namespace: Option<String>,
}
#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)]
pub enum SecretStoreProviderAwsService {
SecretsManager,
ParameterStore,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct SecretStoreProviderAzurekv {
#[serde(default, skip_serializing_if = "Option::is_none", rename = "authSecretRef")]
pub auth_secret_ref: Option<SecretStoreProviderAzurekvAuthSecretRef>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "authType")]
pub auth_type: Option<SecretStoreProviderAzurekvAuthType>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "identityId")]
pub identity_id: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "serviceAccountRef")]
pub service_account_ref: Option<SecretStoreProviderAzurekvServiceAccountRef>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "tenantId")]
pub tenant_id: Option<String>,
#[serde(rename = "vaultUrl")]
pub vault_url: String,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct SecretStoreProviderAzurekvAuthSecretRef {
#[serde(default, skip_serializing_if = "Option::is_none", rename = "clientId")]
pub client_id: Option<SecretStoreProviderAzurekvAuthSecretRefClientId>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "clientSecret")]
pub client_secret: Option<SecretStoreProviderAzurekvAuthSecretRefClientSecret>,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct SecretStoreProviderAzurekvAuthSecretRefClientId {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub key: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub name: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub namespace: Option<String>,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct SecretStoreProviderAzurekvAuthSecretRefClientSecret {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub key: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub name: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub namespace: Option<String>,
}
#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)]
pub enum SecretStoreProviderAzurekvAuthType {
ServicePrincipal,
ManagedIdentity,
WorkloadIdentity,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct SecretStoreProviderAzurekvServiceAccountRef {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub audiences: Option<Vec<String>>,
pub name: String,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub namespace: Option<String>,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct SecretStoreProviderFake {
pub data: Vec<SecretStoreProviderFakeData>,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct SecretStoreProviderFakeData {
pub key: String,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub value: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "valueMap")]
pub value_map: Option<BTreeMap<String, String>>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub version: Option<String>,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct SecretStoreProviderGcpsm {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub auth: Option<SecretStoreProviderGcpsmAuth>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "projectID")]
pub project_id: Option<String>,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct SecretStoreProviderGcpsmAuth {
#[serde(default, skip_serializing_if = "Option::is_none", rename = "secretRef")]
pub secret_ref: Option<SecretStoreProviderGcpsmAuthSecretRef>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "workloadIdentity")]
pub workload_identity: Option<SecretStoreProviderGcpsmAuthWorkloadIdentity>,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct SecretStoreProviderGcpsmAuthSecretRef {
#[serde(default, skip_serializing_if = "Option::is_none", rename = "secretAccessKeySecretRef")]
pub secret_access_key_secret_ref: Option<SecretStoreProviderGcpsmAuthSecretRefSecretAccessKeySecretRef>,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct SecretStoreProviderGcpsmAuthSecretRefSecretAccessKeySecretRef {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub key: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub name: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub namespace: Option<String>,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct SecretStoreProviderGcpsmAuthWorkloadIdentity {
#[serde(rename = "clusterLocation")]
pub cluster_location: String,
#[serde(rename = "clusterName")]
pub cluster_name: String,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "clusterProjectID")]
pub cluster_project_id: Option<String>,
#[serde(rename = "serviceAccountRef")]
pub service_account_ref: SecretStoreProviderGcpsmAuthWorkloadIdentityServiceAccountRef,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct SecretStoreProviderGcpsmAuthWorkloadIdentityServiceAccountRef {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub audiences: Option<Vec<String>>,
pub name: String,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub namespace: Option<String>,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct SecretStoreProviderGitlab {
pub auth: SecretStoreProviderGitlabAuth,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "projectID")]
pub project_id: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub url: Option<String>,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct SecretStoreProviderGitlabAuth {
#[serde(rename = "SecretRef")]
pub secret_ref: SecretStoreProviderGitlabAuthSecretRef,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct SecretStoreProviderGitlabAuthSecretRef {
#[serde(default, skip_serializing_if = "Option::is_none", rename = "accessToken")]
pub access_token: Option<SecretStoreProviderGitlabAuthSecretRefAccessToken>,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct SecretStoreProviderGitlabAuthSecretRefAccessToken {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub key: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub name: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub namespace: Option<String>,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct SecretStoreProviderIbm {
pub auth: SecretStoreProviderIbmAuth,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "serviceUrl")]
pub service_url: Option<String>,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct SecretStoreProviderIbmAuth {
#[serde(rename = "secretRef")]
pub secret_ref: SecretStoreProviderIbmAuthSecretRef,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct SecretStoreProviderIbmAuthSecretRef {
#[serde(default, skip_serializing_if = "Option::is_none", rename = "secretApiKeySecretRef")]
pub secret_api_key_secret_ref: Option<SecretStoreProviderIbmAuthSecretRefSecretApiKeySecretRef>,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct SecretStoreProviderIbmAuthSecretRefSecretApiKeySecretRef {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub key: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub name: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub namespace: Option<String>,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct SecretStoreProviderKubernetes {
pub auth: SecretStoreProviderKubernetesAuth,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "remoteNamespace")]
pub remote_namespace: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub server: Option<SecretStoreProviderKubernetesServer>,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct SecretStoreProviderKubernetesAuth {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub cert: Option<SecretStoreProviderKubernetesAuthCert>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "serviceAccount")]
pub service_account: Option<SecretStoreProviderKubernetesAuthServiceAccount>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub token: Option<SecretStoreProviderKubernetesAuthToken>,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct SecretStoreProviderKubernetesAuthCert {
#[serde(default, skip_serializing_if = "Option::is_none", rename = "clientCert")]
pub client_cert: Option<SecretStoreProviderKubernetesAuthCertClientCert>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "clientKey")]
pub client_key: Option<SecretStoreProviderKubernetesAuthCertClientKey>,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct SecretStoreProviderKubernetesAuthCertClientCert {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub key: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub name: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub namespace: Option<String>,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct SecretStoreProviderKubernetesAuthCertClientKey {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub key: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub name: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub namespace: Option<String>,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct SecretStoreProviderKubernetesAuthServiceAccount {
#[serde(default, skip_serializing_if = "Option::is_none", rename = "serviceAccount")]
pub service_account: Option<SecretStoreProviderKubernetesAuthServiceAccountServiceAccount>,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct SecretStoreProviderKubernetesAuthServiceAccountServiceAccount {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub audiences: Option<Vec<String>>,
pub name: String,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub namespace: Option<String>,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct SecretStoreProviderKubernetesAuthToken {
#[serde(default, skip_serializing_if = "Option::is_none", rename = "bearerToken")]
pub bearer_token: Option<SecretStoreProviderKubernetesAuthTokenBearerToken>,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct SecretStoreProviderKubernetesAuthTokenBearerToken {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub key: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub name: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub namespace: Option<String>,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct SecretStoreProviderKubernetesServer {
#[serde(default, skip_serializing_if = "Option::is_none", rename = "caBundle")]
pub ca_bundle: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "caProvider")]
pub ca_provider: Option<SecretStoreProviderKubernetesServerCaProvider>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub url: Option<String>,
}
#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)]
pub struct SecretStoreProviderKubernetesServerCaProvider {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub key: Option<String>,
pub name: String,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub namespace: Option<String>,
#[serde(rename = "type")]
pub r#type: SecretStoreProviderKubernetesServerCaProviderType,
}
#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)]
pub enum SecretStoreProviderKubernetesServerCaProviderType {
Secret,
ConfigMap,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct SecretStoreProviderOracle {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub auth: Option<SecretStoreProviderOracleAuth>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub compartment: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "encryptionKey")]
pub encryption_key: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "principalType")]
pub principal_type: Option<SecretStoreProviderOraclePrincipalType>,
pub region: String,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "serviceAccountRef")]
pub service_account_ref: Option<SecretStoreProviderOracleServiceAccountRef>,
pub vault: String,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct SecretStoreProviderOracleAuth {
#[serde(rename = "secretRef")]
pub secret_ref: SecretStoreProviderOracleAuthSecretRef,
pub tenancy: String,
pub user: String,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct SecretStoreProviderOracleAuthSecretRef {
pub fingerprint: SecretStoreProviderOracleAuthSecretRefFingerprint,
pub privatekey: SecretStoreProviderOracleAuthSecretRefPrivatekey,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct SecretStoreProviderOracleAuthSecretRefFingerprint {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub key: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub name: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub namespace: Option<String>,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct SecretStoreProviderOracleAuthSecretRefPrivatekey {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub key: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub name: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub namespace: Option<String>,
}
#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)]
pub enum SecretStoreProviderOraclePrincipalType {
#[serde(rename = "")]
KopiumEmpty,
UserPrincipal,
InstancePrincipal,
Workload,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct SecretStoreProviderOracleServiceAccountRef {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub audiences: Option<Vec<String>>,
pub name: String,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub namespace: Option<String>,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct SecretStoreProviderPassworddepot {
pub auth: SecretStoreProviderPassworddepotAuth,
pub database: String,
pub host: String,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct SecretStoreProviderPassworddepotAuth {
#[serde(rename = "secretRef")]
pub secret_ref: SecretStoreProviderPassworddepotAuthSecretRef,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct SecretStoreProviderPassworddepotAuthSecretRef {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub credentials: Option<SecretStoreProviderPassworddepotAuthSecretRefCredentials>,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct SecretStoreProviderPassworddepotAuthSecretRefCredentials {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub key: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub name: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub namespace: Option<String>,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct SecretStoreProviderVault {
pub auth: SecretStoreProviderVaultAuth,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "caBundle")]
pub ca_bundle: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "caProvider")]
pub ca_provider: Option<SecretStoreProviderVaultCaProvider>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "forwardInconsistent")]
pub forward_inconsistent: Option<bool>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub namespace: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub path: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "readYourWrites")]
pub read_your_writes: Option<bool>,
pub server: String,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub version: Option<SecretStoreProviderVaultVersion>,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct SecretStoreProviderVaultAuth {
#[serde(default, skip_serializing_if = "Option::is_none", rename = "appRole")]
pub app_role: Option<SecretStoreProviderVaultAuthAppRole>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub cert: Option<SecretStoreProviderVaultAuthCert>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub jwt: Option<SecretStoreProviderVaultAuthJwt>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub kubernetes: Option<SecretStoreProviderVaultAuthKubernetes>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub ldap: Option<SecretStoreProviderVaultAuthLdap>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "tokenSecretRef")]
pub token_secret_ref: Option<SecretStoreProviderVaultAuthTokenSecretRef>,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct SecretStoreProviderVaultAuthAppRole {
pub path: String,
#[serde(rename = "roleId")]
pub role_id: String,
#[serde(rename = "secretRef")]
pub secret_ref: SecretStoreProviderVaultAuthAppRoleSecretRef,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct SecretStoreProviderVaultAuthAppRoleSecretRef {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub key: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub name: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub namespace: Option<String>,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct SecretStoreProviderVaultAuthCert {
#[serde(default, skip_serializing_if = "Option::is_none", rename = "clientCert")]
pub client_cert: Option<SecretStoreProviderVaultAuthCertClientCert>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "secretRef")]
pub secret_ref: Option<SecretStoreProviderVaultAuthCertSecretRef>,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct SecretStoreProviderVaultAuthCertClientCert {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub key: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub name: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub namespace: Option<String>,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct SecretStoreProviderVaultAuthCertSecretRef {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub key: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub name: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub namespace: Option<String>,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct SecretStoreProviderVaultAuthJwt {
#[serde(default, skip_serializing_if = "Option::is_none", rename = "kubernetesServiceAccountToken")]
pub kubernetes_service_account_token: Option<SecretStoreProviderVaultAuthJwtKubernetesServiceAccountToken>,
pub path: String,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub role: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "secretRef")]
pub secret_ref: Option<SecretStoreProviderVaultAuthJwtSecretRef>,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct SecretStoreProviderVaultAuthJwtKubernetesServiceAccountToken {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub audiences: Option<Vec<String>>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "expirationSeconds")]
pub expiration_seconds: Option<i64>,
#[serde(rename = "serviceAccountRef")]
pub service_account_ref: SecretStoreProviderVaultAuthJwtKubernetesServiceAccountTokenServiceAccountRef,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct SecretStoreProviderVaultAuthJwtKubernetesServiceAccountTokenServiceAccountRef {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub audiences: Option<Vec<String>>,
pub name: String,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub namespace: Option<String>,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct SecretStoreProviderVaultAuthJwtSecretRef {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub key: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub name: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub namespace: Option<String>,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct SecretStoreProviderVaultAuthKubernetes {
#[serde(rename = "mountPath")]
pub mount_path: String,
pub role: String,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "secretRef")]
pub secret_ref: Option<SecretStoreProviderVaultAuthKubernetesSecretRef>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "serviceAccountRef")]
pub service_account_ref: Option<SecretStoreProviderVaultAuthKubernetesServiceAccountRef>,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct SecretStoreProviderVaultAuthKubernetesSecretRef {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub key: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub name: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub namespace: Option<String>,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct SecretStoreProviderVaultAuthKubernetesServiceAccountRef {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub audiences: Option<Vec<String>>,
pub name: String,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub namespace: Option<String>,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct SecretStoreProviderVaultAuthLdap {
pub path: String,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "secretRef")]
pub secret_ref: Option<SecretStoreProviderVaultAuthLdapSecretRef>,
pub username: String,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct SecretStoreProviderVaultAuthLdapSecretRef {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub key: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub name: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub namespace: Option<String>,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct SecretStoreProviderVaultAuthTokenSecretRef {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub key: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub name: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub namespace: Option<String>,
}
#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)]
pub struct SecretStoreProviderVaultCaProvider {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub key: Option<String>,
pub name: String,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub namespace: Option<String>,
#[serde(rename = "type")]
pub r#type: SecretStoreProviderVaultCaProviderType,
}
#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)]
pub enum SecretStoreProviderVaultCaProviderType {
Secret,
ConfigMap,
}
#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)]
pub enum SecretStoreProviderVaultVersion {
#[serde(rename = "v1")]
V1,
#[serde(rename = "v2")]
V2,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct SecretStoreProviderWebhook {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub body: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "caBundle")]
pub ca_bundle: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "caProvider")]
pub ca_provider: Option<SecretStoreProviderWebhookCaProvider>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub headers: Option<BTreeMap<String, String>>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub method: Option<String>,
pub result: SecretStoreProviderWebhookResult,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub secrets: Option<Vec<SecretStoreProviderWebhookSecrets>>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub timeout: Option<String>,
pub url: String,
}
#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)]
pub struct SecretStoreProviderWebhookCaProvider {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub key: Option<String>,
pub name: String,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub namespace: Option<String>,
#[serde(rename = "type")]
pub r#type: SecretStoreProviderWebhookCaProviderType,
}
#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)]
pub enum SecretStoreProviderWebhookCaProviderType {
Secret,
ConfigMap,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct SecretStoreProviderWebhookResult {
#[serde(default, skip_serializing_if = "Option::is_none", rename = "jsonPath")]
pub json_path: Option<String>,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct SecretStoreProviderWebhookSecrets {
pub name: String,
#[serde(rename = "secretRef")]
pub secret_ref: SecretStoreProviderWebhookSecretsSecretRef,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct SecretStoreProviderWebhookSecretsSecretRef {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub key: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub name: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub namespace: Option<String>,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct SecretStoreProviderYandexlockbox {
#[serde(default, skip_serializing_if = "Option::is_none", rename = "apiEndpoint")]
pub api_endpoint: Option<String>,
pub auth: SecretStoreProviderYandexlockboxAuth,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "caProvider")]
pub ca_provider: Option<SecretStoreProviderYandexlockboxCaProvider>,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct SecretStoreProviderYandexlockboxAuth {
#[serde(default, skip_serializing_if = "Option::is_none", rename = "authorizedKeySecretRef")]
pub authorized_key_secret_ref: Option<SecretStoreProviderYandexlockboxAuthAuthorizedKeySecretRef>,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct SecretStoreProviderYandexlockboxAuthAuthorizedKeySecretRef {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub key: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub name: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub namespace: Option<String>,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct SecretStoreProviderYandexlockboxCaProvider {
#[serde(default, skip_serializing_if = "Option::is_none", rename = "certSecretRef")]
pub cert_secret_ref: Option<SecretStoreProviderYandexlockboxCaProviderCertSecretRef>,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct SecretStoreProviderYandexlockboxCaProviderCertSecretRef {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub key: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub name: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub namespace: Option<String>,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct SecretStoreRetrySettings {
#[serde(default, skip_serializing_if = "Option::is_none", rename = "maxRetries")]
pub max_retries: Option<i32>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "retryInterval")]
pub retry_interval: Option<String>,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct SecretStoreStatus {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub conditions: Option<Vec<Condition>>,
}