1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
// 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>,
}