#[allow(unused_imports)]
mod prelude {
pub use k8s_openapi::apimachinery::pkg::apis::meta::v1::Condition;
pub use kube_derive::CustomResource;
#[cfg(feature = "schemars")]
pub use schemars::JsonSchema;
pub use serde::{Deserialize, Serialize};
#[cfg(feature = "builder")]
pub use typed_builder::TypedBuilder;
}
use self::prelude::*;
#[derive(CustomResource, Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
#[cfg_attr(feature = "builder", derive(TypedBuilder))]
#[cfg_attr(feature = "schemars", derive(JsonSchema))]
#[cfg_attr(not(feature = "schemars"), kube(schema = "disabled"))]
#[kube(
group = "postgresql.cnpg.io",
version = "v1",
kind = "DatabaseRole",
plural = "databaseroles"
)]
#[kube(namespaced)]
#[kube(status = "DatabaseRoleStatus")]
#[kube(derive = "Default")]
#[kube(derive = "PartialEq")]
pub struct DatabaseRoleSpec {
#[serde(default, skip_serializing_if = "Option::is_none")]
#[cfg_attr(feature = "builder", builder(default, setter(strip_option)))]
pub bypassrls: Option<bool>,
#[serde(
default,
skip_serializing_if = "Option::is_none",
rename = "clientCertificate"
)]
#[cfg_attr(feature = "builder", builder(default, setter(strip_option)))]
pub client_certificate: Option<DatabaseRoleClientCertificate>,
pub cluster: DatabaseRoleCluster,
#[serde(default, skip_serializing_if = "Option::is_none")]
#[cfg_attr(feature = "builder", builder(default, setter(strip_option)))]
pub comment: Option<String>,
#[serde(
default,
skip_serializing_if = "Option::is_none",
rename = "connectionLimit"
)]
#[cfg_attr(feature = "builder", builder(default, setter(strip_option)))]
pub connection_limit: Option<i64>,
#[serde(default, skip_serializing_if = "Option::is_none")]
#[cfg_attr(feature = "builder", builder(default, setter(strip_option)))]
pub createdb: Option<bool>,
#[serde(default, skip_serializing_if = "Option::is_none")]
#[cfg_attr(feature = "builder", builder(default, setter(strip_option)))]
pub createrole: Option<bool>,
#[serde(
default,
skip_serializing_if = "Option::is_none",
rename = "databaseRoleReclaimPolicy"
)]
#[cfg_attr(feature = "builder", builder(default, setter(strip_option)))]
pub database_role_reclaim_policy: Option<DatabaseRoleDatabaseRoleReclaimPolicy>,
#[serde(
default,
skip_serializing_if = "Option::is_none",
rename = "disablePassword"
)]
#[cfg_attr(feature = "builder", builder(default, setter(strip_option)))]
pub disable_password: Option<bool>,
#[serde(default, skip_serializing_if = "Option::is_none")]
#[cfg_attr(feature = "builder", builder(default, setter(strip_option)))]
pub ensure: Option<DatabaseRoleEnsure>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "inRoles")]
#[cfg_attr(feature = "builder", builder(default, setter(strip_option)))]
pub in_roles: Option<Vec<String>>,
#[serde(default, skip_serializing_if = "Option::is_none")]
#[cfg_attr(feature = "builder", builder(default, setter(strip_option)))]
pub inherit: Option<bool>,
#[serde(default, skip_serializing_if = "Option::is_none")]
#[cfg_attr(feature = "builder", builder(default, setter(strip_option)))]
pub login: Option<bool>,
pub name: String,
#[serde(
default,
skip_serializing_if = "Option::is_none",
rename = "passwordSecret"
)]
#[cfg_attr(feature = "builder", builder(default, setter(strip_option)))]
pub password_secret: Option<DatabaseRolePasswordSecret>,
#[serde(default, skip_serializing_if = "Option::is_none")]
#[cfg_attr(feature = "builder", builder(default, setter(strip_option)))]
pub replication: Option<bool>,
#[serde(default, skip_serializing_if = "Option::is_none")]
#[cfg_attr(feature = "builder", builder(default, setter(strip_option)))]
pub superuser: Option<bool>,
#[serde(
default,
skip_serializing_if = "Option::is_none",
rename = "validUntil"
)]
#[cfg_attr(feature = "builder", builder(default, setter(strip_option)))]
pub valid_until: Option<String>,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
#[cfg_attr(feature = "builder", derive(TypedBuilder))]
#[cfg_attr(feature = "schemars", derive(JsonSchema))]
pub struct DatabaseRoleClientCertificate {
#[serde(default, skip_serializing_if = "Option::is_none")]
#[cfg_attr(feature = "builder", builder(default, setter(strip_option)))]
pub enabled: Option<bool>,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
#[cfg_attr(feature = "builder", derive(TypedBuilder))]
#[cfg_attr(feature = "schemars", derive(JsonSchema))]
pub struct DatabaseRoleCluster {
#[serde(default, skip_serializing_if = "Option::is_none")]
#[cfg_attr(feature = "builder", builder(default, setter(strip_option)))]
pub name: Option<String>,
}
#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)]
#[cfg_attr(feature = "schemars", derive(JsonSchema))]
pub enum DatabaseRoleDatabaseRoleReclaimPolicy {
#[serde(rename = "delete")]
Delete,
#[serde(rename = "retain")]
Retain,
}
#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)]
#[cfg_attr(feature = "schemars", derive(JsonSchema))]
pub enum DatabaseRoleEnsure {
#[serde(rename = "present")]
Present,
#[serde(rename = "absent")]
Absent,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
#[cfg_attr(feature = "builder", derive(TypedBuilder))]
#[cfg_attr(feature = "schemars", derive(JsonSchema))]
pub struct DatabaseRolePasswordSecret {
pub name: String,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
#[cfg_attr(feature = "builder", derive(TypedBuilder))]
#[cfg_attr(feature = "schemars", derive(JsonSchema))]
pub struct DatabaseRoleStatus {
#[serde(default, skip_serializing_if = "Option::is_none")]
#[cfg_attr(feature = "builder", builder(default, setter(strip_option)))]
pub applied: Option<bool>,
#[serde(
default,
skip_serializing_if = "Option::is_none",
rename = "clientCertificate"
)]
#[cfg_attr(feature = "builder", builder(default, setter(strip_option)))]
pub client_certificate: Option<DatabaseRoleStatusClientCertificate>,
#[serde(default, skip_serializing_if = "Option::is_none")]
#[cfg_attr(feature = "builder", builder(default, setter(strip_option)))]
pub conditions: Option<Vec<Condition>>,
#[serde(default, skip_serializing_if = "Option::is_none")]
#[cfg_attr(feature = "builder", builder(default, setter(strip_option)))]
pub message: Option<String>,
#[serde(
default,
skip_serializing_if = "Option::is_none",
rename = "observedGeneration"
)]
#[cfg_attr(feature = "builder", builder(default, setter(strip_option)))]
pub observed_generation: Option<i64>,
#[serde(
default,
skip_serializing_if = "Option::is_none",
rename = "secretResourceVersion"
)]
#[cfg_attr(feature = "builder", builder(default, setter(strip_option)))]
pub secret_resource_version: Option<String>,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
#[cfg_attr(feature = "builder", derive(TypedBuilder))]
#[cfg_attr(feature = "schemars", derive(JsonSchema))]
pub struct DatabaseRoleStatusClientCertificate {
#[serde(default, skip_serializing_if = "Option::is_none")]
#[cfg_attr(feature = "builder", builder(default, setter(strip_option)))]
pub expiration: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
#[cfg_attr(feature = "builder", builder(default, setter(strip_option)))]
pub message: Option<String>,
}