#[allow(unused_imports)]
mod prelude {
pub use kube::CustomResource;
pub use serde::{Serialize, Deserialize};
}
use self::prelude::*;
#[derive(CustomResource, Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
#[kube(group = "edp.epam.com", version = "v1alpha1", kind = "NexusBlobStore", plural = "nexusblobstores")]
#[kube(namespaced)]
#[kube(status = "NexusBlobStoreStatus")]
#[kube(schema = "disabled")]
#[kube(derive="Default")]
#[kube(derive="PartialEq")]
pub struct NexusBlobStoreSpec {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub file: Option<NexusBlobStoreFile>,
pub name: String,
#[serde(rename = "nexusRef")]
pub nexus_ref: NexusBlobStoreNexusRef,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub s3: Option<NexusBlobStoreS3>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "softQuota")]
pub soft_quota: Option<NexusBlobStoreSoftQuota>,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct NexusBlobStoreFile {
pub path: String,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct NexusBlobStoreNexusRef {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub kind: Option<String>,
pub name: String,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct NexusBlobStoreS3 {
#[serde(default, skip_serializing_if = "Option::is_none", rename = "advancedBucketConnection")]
pub advanced_bucket_connection: Option<NexusBlobStoreS3AdvancedBucketConnection>,
pub bucket: NexusBlobStoreS3Bucket,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "bucketSecurity")]
pub bucket_security: Option<NexusBlobStoreS3BucketSecurity>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub encryption: Option<NexusBlobStoreS3Encryption>,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct NexusBlobStoreS3AdvancedBucketConnection {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub endpoint: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "forcePathStyle")]
pub force_path_style: Option<bool>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "maxConnectionPoolSize")]
pub max_connection_pool_size: Option<i32>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "signerType")]
pub signer_type: Option<NexusBlobStoreS3AdvancedBucketConnectionSignerType>,
}
#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)]
pub enum NexusBlobStoreS3AdvancedBucketConnectionSignerType {
#[serde(rename = "DEFAULT")]
Default,
S3SignerType,
#[serde(rename = "AWSS3V4SignerType")]
Awss3v4SignerType,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct NexusBlobStoreS3Bucket {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub expiration: Option<i32>,
pub name: String,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub prefix: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub region: Option<String>,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct NexusBlobStoreS3BucketSecurity {
#[serde(rename = "accessKeyId")]
pub access_key_id: NexusBlobStoreS3BucketSecurityAccessKeyId,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub role: Option<String>,
#[serde(rename = "secretAccessKey")]
pub secret_access_key: NexusBlobStoreS3BucketSecuritySecretAccessKey,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "sessionToken")]
pub session_token: Option<NexusBlobStoreS3BucketSecuritySessionToken>,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct NexusBlobStoreS3BucketSecurityAccessKeyId {
#[serde(default, skip_serializing_if = "Option::is_none", rename = "configMapKeyRef")]
pub config_map_key_ref: Option<NexusBlobStoreS3BucketSecurityAccessKeyIdConfigMapKeyRef>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "secretKeyRef")]
pub secret_key_ref: Option<NexusBlobStoreS3BucketSecurityAccessKeyIdSecretKeyRef>,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct NexusBlobStoreS3BucketSecurityAccessKeyIdConfigMapKeyRef {
pub key: String,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub name: Option<String>,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct NexusBlobStoreS3BucketSecurityAccessKeyIdSecretKeyRef {
pub key: String,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub name: Option<String>,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct NexusBlobStoreS3BucketSecuritySecretAccessKey {
#[serde(default, skip_serializing_if = "Option::is_none", rename = "configMapKeyRef")]
pub config_map_key_ref: Option<NexusBlobStoreS3BucketSecuritySecretAccessKeyConfigMapKeyRef>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "secretKeyRef")]
pub secret_key_ref: Option<NexusBlobStoreS3BucketSecuritySecretAccessKeySecretKeyRef>,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct NexusBlobStoreS3BucketSecuritySecretAccessKeyConfigMapKeyRef {
pub key: String,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub name: Option<String>,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct NexusBlobStoreS3BucketSecuritySecretAccessKeySecretKeyRef {
pub key: String,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub name: Option<String>,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct NexusBlobStoreS3BucketSecuritySessionToken {
#[serde(default, skip_serializing_if = "Option::is_none", rename = "configMapKeyRef")]
pub config_map_key_ref: Option<NexusBlobStoreS3BucketSecuritySessionTokenConfigMapKeyRef>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "secretKeyRef")]
pub secret_key_ref: Option<NexusBlobStoreS3BucketSecuritySessionTokenSecretKeyRef>,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct NexusBlobStoreS3BucketSecuritySessionTokenConfigMapKeyRef {
pub key: String,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub name: Option<String>,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct NexusBlobStoreS3BucketSecuritySessionTokenSecretKeyRef {
pub key: String,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub name: Option<String>,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct NexusBlobStoreS3Encryption {
#[serde(default, skip_serializing_if = "Option::is_none", rename = "encryptionKey")]
pub encryption_key: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "encryptionType")]
pub encryption_type: Option<NexusBlobStoreS3EncryptionEncryptionType>,
}
#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)]
pub enum NexusBlobStoreS3EncryptionEncryptionType {
#[serde(rename = "none")]
None,
#[serde(rename = "s3ManagedEncryption")]
S3ManagedEncryption,
#[serde(rename = "kmsManagedEncryption")]
KmsManagedEncryption,
}
#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)]
pub struct NexusBlobStoreSoftQuota {
pub limit: i64,
#[serde(rename = "type")]
pub r#type: NexusBlobStoreSoftQuotaType,
}
#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)]
pub enum NexusBlobStoreSoftQuotaType {
#[serde(rename = "spaceRemainingQuota")]
SpaceRemainingQuota,
#[serde(rename = "spaceUsedQuota")]
SpaceUsedQuota,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct NexusBlobStoreStatus {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub error: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub value: Option<String>,
}