kcr_couchbase_com 3.20260601.153757

Kubernetes Custom Resource Bindings
Documentation
// WARNING: generated by kopium - manual changes will be overwritten
// kopium command: kopium --docs --derive=Default --derive=PartialEq --smart-derive-elision --filename crd-catalog/couchbase-partners/helm-charts/couchbase.com/v2/couchbasecollectiongroups.yaml
// kopium version: 0.23.0

#[allow(unused_imports)]
mod prelude {
    pub use kube::CustomResource;
    pub use serde::{Serialize, Deserialize};
}

use self::prelude::*;

/// Spec defines the desired state of the resource.
#[derive(CustomResource, Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
#[kube(group = "couchbase.com", version = "v2", kind = "CouchbaseCollectionGroup", plural = "couchbasecollectiongroups")]
#[kube(namespaced)]
#[kube(schema = "disabled")]
#[kube(derive="Default")]
#[kube(derive="PartialEq")]
pub struct CouchbaseCollectionGroupSpec {
    /// History defines whether change history is retained for the collection.
    /// If this field is set, it will override the historyRetention.collectionDefault bucket level value.
    /// This is only supported with storageBackend=magma at the bucket level.
    #[serde(default, skip_serializing_if = "Option::is_none")]
    pub history: Option<bool>,
    /// MaxTTL defines how long a document is permitted to exist for, without
    /// modification, until it is automatically deleted.  This field takes precedence over
    /// any TTL defined at the bucket level.  This is a default, and maximum
    /// time-to-live and may be set to a lower value by the client.  If the client specifies
    /// a higher value, then it is truncated to the maximum durability.  Documents are
    /// removed by Couchbase, after they have expired, when either accessed, the expiry
    /// pager is run, or the bucket is compacted.  When set to 0, then documents are not
    /// expired by default.  This field must either be a duration in the range 0-2147483648s or "-1",
    /// defaulting to 0. If set to "-1", the collection's bucket will be prevented from setting a
    /// default expiration on the collection's documents. While this field can be changed on the CRD,
    /// it will not be updated on the collection if the Couchbase Server version is pre 7.6.0.
    /// More info: <https://golang.org/pkg/time/#ParseDuration.>
    #[serde(default, skip_serializing_if = "Option::is_none", rename = "maxTTL")]
    pub max_ttl: Option<String>,
    /// Names specifies the names of the collections.  Unlike CouchbaseCollection, which
    /// specifies a single collection, a collection group specifies multiple, and the
    /// collection group must specify at least one collection name.
    /// Any collection names specified must be unique.
    /// Collection names must be 1-251 characters in length, contain only [a-zA-Z0-9_-%]
    /// and not start with either _ or %.
    pub names: Vec<String>,
}