#[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 = "CouchbaseGroup", plural = "couchbasegroups")]
#[kube(namespaced)]
#[kube(schema = "disabled")]
#[kube(derive="Default")]
#[kube(derive="PartialEq")]
pub struct CouchbaseGroupSpec {
#[serde(default, skip_serializing_if = "Option::is_none", rename = "ldapGroupRef")]
pub ldap_group_ref: Option<String>,
pub roles: Vec<CouchbaseGroupRoles>,
}
#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)]
pub struct CouchbaseGroupRoles {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub bucket: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub buckets: Option<CouchbaseGroupRolesBuckets>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub collections: Option<CouchbaseGroupRolesCollections>,
pub name: CouchbaseGroupRolesName,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub scopes: Option<CouchbaseGroupRolesScopes>,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct CouchbaseGroupRolesBuckets {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub resources: Option<Vec<CouchbaseGroupRolesBucketsResources>>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub selector: Option<CouchbaseGroupRolesBucketsSelector>,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct CouchbaseGroupRolesBucketsResources {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub kind: Option<CouchbaseGroupRolesBucketsResourcesKind>,
pub name: String,
}
#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)]
pub enum CouchbaseGroupRolesBucketsResourcesKind {
CouchbaseBucket,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct CouchbaseGroupRolesBucketsSelector {
#[serde(default, skip_serializing_if = "Option::is_none", rename = "matchExpressions")]
pub match_expressions: Option<Vec<CouchbaseGroupRolesBucketsSelectorMatchExpressions>>,
#[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 CouchbaseGroupRolesBucketsSelectorMatchExpressions {
pub key: String,
pub operator: String,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub values: Option<Vec<String>>,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct CouchbaseGroupRolesCollections {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub resources: Option<Vec<CouchbaseGroupRolesCollectionsResources>>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub selector: Option<CouchbaseGroupRolesCollectionsSelector>,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct CouchbaseGroupRolesCollectionsResources {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub kind: Option<CouchbaseGroupRolesCollectionsResourcesKind>,
pub name: String,
}
#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)]
pub enum CouchbaseGroupRolesCollectionsResourcesKind {
CouchbaseCollection,
CouchbaseCollectionGroup,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct CouchbaseGroupRolesCollectionsSelector {
#[serde(default, skip_serializing_if = "Option::is_none", rename = "matchExpressions")]
pub match_expressions: Option<Vec<CouchbaseGroupRolesCollectionsSelectorMatchExpressions>>,
#[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 CouchbaseGroupRolesCollectionsSelectorMatchExpressions {
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 CouchbaseGroupRolesName {
#[serde(rename = "admin")]
Admin,
#[serde(rename = "analytics_admin")]
AnalyticsAdmin,
#[serde(rename = "analytics_manager")]
AnalyticsManager,
#[serde(rename = "analytics_reader")]
AnalyticsReader,
#[serde(rename = "analytics_select")]
AnalyticsSelect,
#[serde(rename = "backup_admin")]
BackupAdmin,
#[serde(rename = "bucket_admin")]
BucketAdmin,
#[serde(rename = "bucket_full_access")]
BucketFullAccess,
#[serde(rename = "cluster_admin")]
ClusterAdmin,
#[serde(rename = "data_backup")]
DataBackup,
#[serde(rename = "data_dcp_reader")]
DataDcpReader,
#[serde(rename = "data_monitoring")]
DataMonitoring,
#[serde(rename = "data_reader")]
DataReader,
#[serde(rename = "data_writer")]
DataWriter,
#[serde(rename = "eventing_admin")]
EventingAdmin,
#[serde(rename = "external_stats_reader")]
ExternalStatsReader,
#[serde(rename = "fts_admin")]
FtsAdmin,
#[serde(rename = "fts_searcher")]
FtsSearcher,
#[serde(rename = "mobile_sync_gateway")]
MobileSyncGateway,
#[serde(rename = "sync_gateway_app")]
SyncGatewayApp,
#[serde(rename = "sync_gateway_app_ro")]
SyncGatewayAppRo,
#[serde(rename = "sync_gateway_configurator")]
SyncGatewayConfigurator,
#[serde(rename = "sync_gateway_dev_ops")]
SyncGatewayDevOps,
#[serde(rename = "sync_gateway_replicator")]
SyncGatewayReplicator,
#[serde(rename = "query_delete")]
QueryDelete,
#[serde(rename = "query_execute_external_functions")]
QueryExecuteExternalFunctions,
#[serde(rename = "query_execute_functions")]
QueryExecuteFunctions,
#[serde(rename = "query_execute_global_external_functions")]
QueryExecuteGlobalExternalFunctions,
#[serde(rename = "query_execute_global_functions")]
QueryExecuteGlobalFunctions,
#[serde(rename = "query_external_access")]
QueryExternalAccess,
#[serde(rename = "query_insert")]
QueryInsert,
#[serde(rename = "query_manage_external_functions")]
QueryManageExternalFunctions,
#[serde(rename = "query_manage_functions")]
QueryManageFunctions,
#[serde(rename = "query_manage_global_external_functions")]
QueryManageGlobalExternalFunctions,
#[serde(rename = "query_manage_global_functions")]
QueryManageGlobalFunctions,
#[serde(rename = "query_manage_index")]
QueryManageIndex,
#[serde(rename = "query_select")]
QuerySelect,
#[serde(rename = "query_system_catalog")]
QuerySystemCatalog,
#[serde(rename = "query_update")]
QueryUpdate,
#[serde(rename = "replication_admin")]
ReplicationAdmin,
#[serde(rename = "replication_target")]
ReplicationTarget,
#[serde(rename = "ro_admin")]
RoAdmin,
#[serde(rename = "scope_admin")]
ScopeAdmin,
#[serde(rename = "security_admin")]
SecurityAdmin,
#[serde(rename = "security_admin_external")]
SecurityAdminExternal,
#[serde(rename = "security_admin_local")]
SecurityAdminLocal,
#[serde(rename = "views_admin")]
ViewsAdmin,
#[serde(rename = "views_reader")]
ViewsReader,
#[serde(rename = "eventing_manage_functions")]
EventingManageFunctions,
#[serde(rename = "query_use_sequential_scans")]
QueryUseSequentialScans,
#[serde(rename = "query_use_sequences")]
QueryUseSequences,
#[serde(rename = "query_manage_sequences")]
QueryManageSequences,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct CouchbaseGroupRolesScopes {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub resources: Option<Vec<CouchbaseGroupRolesScopesResources>>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub selector: Option<CouchbaseGroupRolesScopesSelector>,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct CouchbaseGroupRolesScopesResources {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub kind: Option<CouchbaseGroupRolesScopesResourcesKind>,
pub name: String,
}
#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)]
pub enum CouchbaseGroupRolesScopesResourcesKind {
CouchbaseScope,
CouchbaseScopeGroup,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct CouchbaseGroupRolesScopesSelector {
#[serde(default, skip_serializing_if = "Option::is_none", rename = "matchExpressions")]
pub match_expressions: Option<Vec<CouchbaseGroupRolesScopesSelectorMatchExpressions>>,
#[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 CouchbaseGroupRolesScopesSelectorMatchExpressions {
pub key: String,
pub operator: String,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub values: Option<Vec<String>>,
}