#[allow(unused_imports)]
mod prelude {
pub use kube::CustomResource;
pub use serde::{Serialize, Deserialize};
pub use std::collections::BTreeMap;
}
use self::prelude::*;
#[derive(CustomResource, Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
#[kube(group = "couchbase.com", version = "v2", kind = "CouchbaseBucket", plural = "couchbasebuckets")]
#[kube(namespaced)]
#[kube(schema = "disabled")]
#[kube(derive="Default")]
#[kube(derive="PartialEq")]
pub struct CouchbaseBucketSpec {
#[serde(default, skip_serializing_if = "Option::is_none", rename = "autoCompaction")]
pub auto_compaction: Option<CouchbaseBucketAutoCompaction>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "compressionMode")]
pub compression_mode: Option<CouchbaseBucketCompressionMode>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "conflictResolution")]
pub conflict_resolution: Option<CouchbaseBucketConflictResolution>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "enableFlush")]
pub enable_flush: Option<bool>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "enableIndexReplica")]
pub enable_index_replica: Option<bool>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "evictionPolicy")]
pub eviction_policy: Option<CouchbaseBucketEvictionPolicy>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "historyRetention")]
pub history_retention: Option<CouchbaseBucketHistoryRetention>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "ioPriority")]
pub io_priority: Option<CouchbaseBucketIoPriority>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "maxTTL")]
pub max_ttl: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "memoryQuota")]
pub memory_quota: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "minimumDurability")]
pub minimum_durability: Option<CouchbaseBucketMinimumDurability>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub name: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub rank: Option<i64>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub replicas: Option<i64>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub scopes: Option<CouchbaseBucketScopes>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "storageBackend")]
pub storage_backend: Option<CouchbaseBucketStorageBackend>,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct CouchbaseBucketAutoCompaction {
#[serde(default, skip_serializing_if = "Option::is_none", rename = "databaseFragmentationThreshold")]
pub database_fragmentation_threshold: Option<CouchbaseBucketAutoCompactionDatabaseFragmentationThreshold>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "timeWindow")]
pub time_window: Option<CouchbaseBucketAutoCompactionTimeWindow>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "tombstonePurgeInterval")]
pub tombstone_purge_interval: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "viewFragmentationThreshold")]
pub view_fragmentation_threshold: Option<CouchbaseBucketAutoCompactionViewFragmentationThreshold>,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct CouchbaseBucketAutoCompactionDatabaseFragmentationThreshold {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub percent: Option<i64>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub size: Option<String>,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct CouchbaseBucketAutoCompactionTimeWindow {
#[serde(default, skip_serializing_if = "Option::is_none", rename = "abortCompactionOutsideWindow")]
pub abort_compaction_outside_window: Option<bool>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub end: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub start: Option<String>,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct CouchbaseBucketAutoCompactionViewFragmentationThreshold {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub percent: Option<i64>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub size: Option<String>,
}
#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)]
pub enum CouchbaseBucketCompressionMode {
#[serde(rename = "off")]
Off,
#[serde(rename = "passive")]
Passive,
#[serde(rename = "active")]
Active,
}
#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)]
pub enum CouchbaseBucketConflictResolution {
#[serde(rename = "seqno")]
Seqno,
#[serde(rename = "lww")]
Lww,
}
#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)]
pub enum CouchbaseBucketEvictionPolicy {
#[serde(rename = "valueOnly")]
ValueOnly,
#[serde(rename = "fullEviction")]
FullEviction,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct CouchbaseBucketHistoryRetention {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub bytes: Option<i64>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "collectionHistoryDefault")]
pub collection_history_default: Option<bool>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub seconds: Option<i64>,
}
#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)]
pub enum CouchbaseBucketIoPriority {
#[serde(rename = "low")]
Low,
#[serde(rename = "high")]
High,
}
#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)]
pub enum CouchbaseBucketMinimumDurability {
#[serde(rename = "none")]
None,
#[serde(rename = "majority")]
Majority,
#[serde(rename = "majorityAndPersistActive")]
MajorityAndPersistActive,
#[serde(rename = "persistToMajority")]
PersistToMajority,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct CouchbaseBucketScopes {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub managed: Option<bool>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub resources: Option<Vec<CouchbaseBucketScopesResources>>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub selector: Option<CouchbaseBucketScopesSelector>,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct CouchbaseBucketScopesResources {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub kind: Option<CouchbaseBucketScopesResourcesKind>,
pub name: String,
}
#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)]
pub enum CouchbaseBucketScopesResourcesKind {
CouchbaseScope,
CouchbaseScopeGroup,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct CouchbaseBucketScopesSelector {
#[serde(default, skip_serializing_if = "Option::is_none", rename = "matchExpressions")]
pub match_expressions: Option<Vec<CouchbaseBucketScopesSelectorMatchExpressions>>,
#[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 CouchbaseBucketScopesSelectorMatchExpressions {
pub key: String,
pub operator: String,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub values: Option<Vec<String>>,
}
#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)]
pub enum CouchbaseBucketStorageBackend {
#[serde(rename = "couchstore")]
Couchstore,
#[serde(rename = "magma")]
Magma,
}