kcr_isindir_github_com/v1alpha1/
sopssecrets.rs

1// WARNING: generated by kopium - manual changes will be overwritten
2// kopium command: kopium --docs --derive=Default --derive=PartialEq --smart-derive-elision --filename crd-catalog/isindir/sops-secrets-operator/isindir.github.com/v1alpha1/sopssecrets.yaml
3// kopium version: 0.22.5
4
5#[allow(unused_imports)]
6mod prelude {
7    pub use kube::CustomResource;
8    pub use serde::{Serialize, Deserialize};
9    pub use std::collections::BTreeMap;
10}
11use self::prelude::*;
12
13/// SopsSecret metadata
14#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
15pub struct SopsSecretSops {
16    /// Azure KMS configuration
17    #[serde(default, skip_serializing_if = "Option::is_none")]
18    pub azure_kv: Option<Vec<SopsSecretSopsAzureKv>>,
19    /// Suffix used to encrypt SopsSecret resource
20    #[serde(default, skip_serializing_if = "Option::is_none")]
21    pub encrypted_suffix: Option<String>,
22    /// Gcp KMS configuration
23    #[serde(default, skip_serializing_if = "Option::is_none")]
24    pub gcp_kms: Option<Vec<SopsSecretSopsGcpKms>>,
25    /// Aws KMS configuration
26    #[serde(default, skip_serializing_if = "Option::is_none")]
27    pub kms: Option<Vec<SopsSecretSopsKms>>,
28    /// LastModified date when SopsSecret was last modified
29    #[serde(default, skip_serializing_if = "Option::is_none")]
30    pub lastmodified: Option<String>,
31    /// Mac - sops setting
32    #[serde(default, skip_serializing_if = "Option::is_none")]
33    pub mac: Option<String>,
34    /// PGP configuration
35    #[serde(default, skip_serializing_if = "Option::is_none")]
36    pub pgp: Option<Vec<SopsSecretSopsPgp>>,
37    /// Version of the sops tool used to encrypt SopsSecret
38    #[serde(default, skip_serializing_if = "Option::is_none")]
39    pub version: Option<String>,
40}
41
42/// AzureKmsItem defines Azure Keyvault Key specific encryption details
43#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
44pub struct SopsSecretSopsAzureKv {
45    /// Object creation date
46    #[serde(default, skip_serializing_if = "Option::is_none")]
47    pub created_at: Option<String>,
48    #[serde(default, skip_serializing_if = "Option::is_none")]
49    pub enc: Option<String>,
50    #[serde(default, skip_serializing_if = "Option::is_none")]
51    pub name: Option<String>,
52    /// Azure KMS vault URL
53    #[serde(default, skip_serializing_if = "Option::is_none")]
54    pub vault_url: Option<String>,
55    #[serde(default, skip_serializing_if = "Option::is_none")]
56    pub version: Option<String>,
57}
58
59/// GcpKmsDataItem defines GCP KMS Key specific encryption details
60#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
61pub struct SopsSecretSopsGcpKms {
62    /// Object creation date
63    #[serde(default, skip_serializing_if = "Option::is_none")]
64    pub created_at: Option<String>,
65    #[serde(default, skip_serializing_if = "Option::is_none")]
66    pub enc: Option<String>,
67    #[serde(default, skip_serializing_if = "Option::is_none")]
68    pub resource_id: Option<String>,
69}
70
71/// KmsDataItem defines AWS KMS specific encryption details
72#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
73pub struct SopsSecretSopsKms {
74    /// Arn - KMS key ARN to use
75    #[serde(default, skip_serializing_if = "Option::is_none")]
76    pub arn: Option<String>,
77    #[serde(default, skip_serializing_if = "Option::is_none")]
78    pub aws_profile: Option<String>,
79    /// Object creation date
80    #[serde(default, skip_serializing_if = "Option::is_none")]
81    pub created_at: Option<String>,
82    #[serde(default, skip_serializing_if = "Option::is_none")]
83    pub enc: Option<String>,
84}
85
86/// PgpDataItem defines PGP specific encryption details
87#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
88pub struct SopsSecretSopsPgp {
89    /// Object creation date
90    #[serde(default, skip_serializing_if = "Option::is_none")]
91    pub created_at: Option<String>,
92    #[serde(default, skip_serializing_if = "Option::is_none")]
93    pub enc: Option<String>,
94    /// PGP FingerPrint of the key which can be used for decryption
95    #[serde(default, skip_serializing_if = "Option::is_none")]
96    pub fp: Option<String>,
97}
98
99/// SopsSecret Spec definition
100#[derive(CustomResource, Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
101#[kube(group = "isindir.github.com", version = "v1alpha1", kind = "SopsSecret", plural = "sopssecrets")]
102#[kube(namespaced)]
103#[kube(schema = "disabled")]
104#[kube(derive="Default")]
105#[kube(derive="PartialEq")]
106pub struct SopsSecretSpec {
107    /// Secrets template is a list of definitions to create Kubernetes Secrets
108    pub secret_templates: Vec<SopsSecretSecretTemplates>,
109}
110
111/// SopsSecretTemplate defines the map of secrets to create
112#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
113pub struct SopsSecretSecretTemplates {
114    /// Annotations to apply to Kubernetes secret
115    #[serde(default, skip_serializing_if = "Option::is_none")]
116    pub annotations: Option<BTreeMap<String, String>>,
117    /// Data map to use in Kubernetes secret (equivalent to Kubernetes Secret object stringData, please see for more
118    /// information: <https://kubernetes.io/docs/concepts/configuration/secret/#overview-of-secrets)>
119    pub data: BTreeMap<String, String>,
120    /// Labels to apply to Kubernetes secret
121    #[serde(default, skip_serializing_if = "Option::is_none")]
122    pub labels: Option<BTreeMap<String, String>>,
123    /// Name of the Kubernetes secret to create
124    pub name: String,
125    /// Kubernetes secret type. Default: Opauqe. Possible values: Opauqe,
126    /// kubernetes.io/service-account-token, kubernetes.io/dockercfg,
127    /// kubernetes.io/dockerconfigjson, kubernetes.io/basic-auth,
128    /// kubernetes.io/ssh-auth, kubernetes.io/tls, bootstrap.kubernetes.io/token
129    #[serde(default, skip_serializing_if = "Option::is_none", rename = "type")]
130    pub r#type: Option<String>,
131}
132
133/// SopsSecret Status information
134#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
135pub struct SopsSecretStatus {
136}
137