#[allow(unused_imports)]
mod prelude {
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 = "Database",
plural = "databases"
)]
#[kube(namespaced)]
#[kube(status = "DatabaseStatus")]
#[kube(derive = "Default")]
#[kube(derive = "PartialEq")]
pub struct DatabaseSpec {
#[serde(
default,
skip_serializing_if = "Option::is_none",
rename = "allowConnections"
)]
#[cfg_attr(feature = "builder", builder(default, setter(strip_option)))]
pub allow_connections: Option<bool>,
#[serde(
default,
skip_serializing_if = "Option::is_none",
rename = "builtinLocale"
)]
#[cfg_attr(feature = "builder", builder(default, setter(strip_option)))]
pub builtin_locale: Option<String>,
pub cluster: DatabaseCluster,
#[serde(
default,
skip_serializing_if = "Option::is_none",
rename = "collationVersion"
)]
#[cfg_attr(feature = "builder", builder(default, setter(strip_option)))]
pub collation_version: 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",
rename = "databaseReclaimPolicy"
)]
#[cfg_attr(feature = "builder", builder(default, setter(strip_option)))]
pub database_reclaim_policy: Option<DatabaseDatabaseReclaimPolicy>,
#[serde(default, skip_serializing_if = "Option::is_none")]
#[cfg_attr(feature = "builder", builder(default, setter(strip_option)))]
pub encoding: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
#[cfg_attr(feature = "builder", builder(default, setter(strip_option)))]
pub ensure: Option<DatabaseEnsure>,
#[serde(default, skip_serializing_if = "Option::is_none")]
#[cfg_attr(feature = "builder", builder(default, setter(strip_option)))]
pub extensions: Option<Vec<DatabaseExtensions>>,
#[serde(default, skip_serializing_if = "Option::is_none")]
#[cfg_attr(feature = "builder", builder(default, setter(strip_option)))]
pub fdws: Option<Vec<DatabaseFdws>>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "icuLocale")]
#[cfg_attr(feature = "builder", builder(default, setter(strip_option)))]
pub icu_locale: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "icuRules")]
#[cfg_attr(feature = "builder", builder(default, setter(strip_option)))]
pub icu_rules: Option<String>,
#[serde(
default,
skip_serializing_if = "Option::is_none",
rename = "isTemplate"
)]
#[cfg_attr(feature = "builder", builder(default, setter(strip_option)))]
pub is_template: Option<bool>,
#[serde(default, skip_serializing_if = "Option::is_none")]
#[cfg_attr(feature = "builder", builder(default, setter(strip_option)))]
pub locale: Option<String>,
#[serde(
default,
skip_serializing_if = "Option::is_none",
rename = "localeCType"
)]
#[cfg_attr(feature = "builder", builder(default, setter(strip_option)))]
pub locale_c_type: Option<String>,
#[serde(
default,
skip_serializing_if = "Option::is_none",
rename = "localeCollate"
)]
#[cfg_attr(feature = "builder", builder(default, setter(strip_option)))]
pub locale_collate: Option<String>,
#[serde(
default,
skip_serializing_if = "Option::is_none",
rename = "localeProvider"
)]
#[cfg_attr(feature = "builder", builder(default, setter(strip_option)))]
pub locale_provider: Option<String>,
pub name: String,
pub owner: String,
#[serde(default, skip_serializing_if = "Option::is_none")]
#[cfg_attr(feature = "builder", builder(default, setter(strip_option)))]
pub schemas: Option<Vec<DatabaseSchemas>>,
#[serde(default, skip_serializing_if = "Option::is_none")]
#[cfg_attr(feature = "builder", builder(default, setter(strip_option)))]
pub servers: Option<Vec<DatabaseServers>>,
#[serde(default, skip_serializing_if = "Option::is_none")]
#[cfg_attr(feature = "builder", builder(default, setter(strip_option)))]
pub tablespace: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
#[cfg_attr(feature = "builder", builder(default, setter(strip_option)))]
pub template: Option<String>,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
#[cfg_attr(feature = "builder", derive(TypedBuilder))]
#[cfg_attr(feature = "schemars", derive(JsonSchema))]
pub struct DatabaseCluster {
#[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 DatabaseDatabaseReclaimPolicy {
#[serde(rename = "delete")]
Delete,
#[serde(rename = "retain")]
Retain,
}
#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)]
#[cfg_attr(feature = "schemars", derive(JsonSchema))]
pub enum DatabaseEnsure {
#[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 DatabaseExtensions {
#[serde(default, skip_serializing_if = "Option::is_none")]
#[cfg_attr(feature = "builder", builder(default, setter(strip_option)))]
pub ensure: Option<DatabaseExtensionsEnsure>,
pub name: String,
#[serde(default, skip_serializing_if = "Option::is_none")]
#[cfg_attr(feature = "builder", builder(default, setter(strip_option)))]
pub schema: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
#[cfg_attr(feature = "builder", builder(default, setter(strip_option)))]
pub version: Option<String>,
}
#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)]
#[cfg_attr(feature = "schemars", derive(JsonSchema))]
pub enum DatabaseExtensionsEnsure {
#[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 DatabaseFdws {
#[serde(default, skip_serializing_if = "Option::is_none")]
#[cfg_attr(feature = "builder", builder(default, setter(strip_option)))]
pub ensure: Option<DatabaseFdwsEnsure>,
#[serde(default, skip_serializing_if = "Option::is_none")]
#[cfg_attr(feature = "builder", builder(default, setter(strip_option)))]
pub handler: Option<String>,
pub name: String,
#[serde(default, skip_serializing_if = "Option::is_none")]
#[cfg_attr(feature = "builder", builder(default, setter(strip_option)))]
pub options: Option<Vec<DatabaseFdwsOptions>>,
#[serde(default, skip_serializing_if = "Option::is_none")]
#[cfg_attr(feature = "builder", builder(default, setter(strip_option)))]
pub owner: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
#[cfg_attr(feature = "builder", builder(default, setter(strip_option)))]
pub usage: Option<Vec<DatabaseFdwsUsage>>,
#[serde(default, skip_serializing_if = "Option::is_none")]
#[cfg_attr(feature = "builder", builder(default, setter(strip_option)))]
pub validator: Option<String>,
}
#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)]
#[cfg_attr(feature = "schemars", derive(JsonSchema))]
pub enum DatabaseFdwsEnsure {
#[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 DatabaseFdwsOptions {
#[serde(default, skip_serializing_if = "Option::is_none")]
#[cfg_attr(feature = "builder", builder(default, setter(strip_option)))]
pub ensure: Option<DatabaseFdwsOptionsEnsure>,
pub name: String,
pub value: String,
}
#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)]
#[cfg_attr(feature = "schemars", derive(JsonSchema))]
pub enum DatabaseFdwsOptionsEnsure {
#[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 DatabaseFdwsUsage {
pub name: String,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "type")]
#[cfg_attr(feature = "builder", builder(default, setter(strip_option)))]
pub r#type: Option<DatabaseFdwsUsageType>,
}
#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)]
#[cfg_attr(feature = "schemars", derive(JsonSchema))]
pub enum DatabaseFdwsUsageType {
#[serde(rename = "grant")]
Grant,
#[serde(rename = "revoke")]
Revoke,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
#[cfg_attr(feature = "builder", derive(TypedBuilder))]
#[cfg_attr(feature = "schemars", derive(JsonSchema))]
pub struct DatabaseSchemas {
#[serde(default, skip_serializing_if = "Option::is_none")]
#[cfg_attr(feature = "builder", builder(default, setter(strip_option)))]
pub ensure: Option<DatabaseSchemasEnsure>,
pub name: String,
#[serde(default, skip_serializing_if = "Option::is_none")]
#[cfg_attr(feature = "builder", builder(default, setter(strip_option)))]
pub owner: Option<String>,
}
#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)]
#[cfg_attr(feature = "schemars", derive(JsonSchema))]
pub enum DatabaseSchemasEnsure {
#[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 DatabaseServers {
#[serde(default, skip_serializing_if = "Option::is_none")]
#[cfg_attr(feature = "builder", builder(default, setter(strip_option)))]
pub ensure: Option<DatabaseServersEnsure>,
pub fdw: String,
pub name: String,
#[serde(default, skip_serializing_if = "Option::is_none")]
#[cfg_attr(feature = "builder", builder(default, setter(strip_option)))]
pub options: Option<Vec<DatabaseServersOptions>>,
#[serde(default, skip_serializing_if = "Option::is_none")]
#[cfg_attr(feature = "builder", builder(default, setter(strip_option)))]
pub usage: Option<Vec<DatabaseServersUsage>>,
}
#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)]
#[cfg_attr(feature = "schemars", derive(JsonSchema))]
pub enum DatabaseServersEnsure {
#[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 DatabaseServersOptions {
#[serde(default, skip_serializing_if = "Option::is_none")]
#[cfg_attr(feature = "builder", builder(default, setter(strip_option)))]
pub ensure: Option<DatabaseServersOptionsEnsure>,
pub name: String,
pub value: String,
}
#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)]
#[cfg_attr(feature = "schemars", derive(JsonSchema))]
pub enum DatabaseServersOptionsEnsure {
#[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 DatabaseServersUsage {
pub name: String,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "type")]
#[cfg_attr(feature = "builder", builder(default, setter(strip_option)))]
pub r#type: Option<DatabaseServersUsageType>,
}
#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)]
#[cfg_attr(feature = "schemars", derive(JsonSchema))]
pub enum DatabaseServersUsageType {
#[serde(rename = "grant")]
Grant,
#[serde(rename = "revoke")]
Revoke,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
#[cfg_attr(feature = "builder", derive(TypedBuilder))]
#[cfg_attr(feature = "schemars", derive(JsonSchema))]
pub struct DatabaseStatus {
#[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")]
#[cfg_attr(feature = "builder", builder(default, setter(strip_option)))]
pub extensions: Option<Vec<DatabaseStatusExtensions>>,
#[serde(default, skip_serializing_if = "Option::is_none")]
#[cfg_attr(feature = "builder", builder(default, setter(strip_option)))]
pub fdws: Option<Vec<DatabaseStatusFdws>>,
#[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")]
#[cfg_attr(feature = "builder", builder(default, setter(strip_option)))]
pub schemas: Option<Vec<DatabaseStatusSchemas>>,
#[serde(default, skip_serializing_if = "Option::is_none")]
#[cfg_attr(feature = "builder", builder(default, setter(strip_option)))]
pub servers: Option<Vec<DatabaseStatusServers>>,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
#[cfg_attr(feature = "builder", derive(TypedBuilder))]
#[cfg_attr(feature = "schemars", derive(JsonSchema))]
pub struct DatabaseStatusExtensions {
pub applied: bool,
#[serde(default, skip_serializing_if = "Option::is_none")]
#[cfg_attr(feature = "builder", builder(default, setter(strip_option)))]
pub message: Option<String>,
pub name: String,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
#[cfg_attr(feature = "builder", derive(TypedBuilder))]
#[cfg_attr(feature = "schemars", derive(JsonSchema))]
pub struct DatabaseStatusFdws {
pub applied: bool,
#[serde(default, skip_serializing_if = "Option::is_none")]
#[cfg_attr(feature = "builder", builder(default, setter(strip_option)))]
pub message: Option<String>,
pub name: String,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
#[cfg_attr(feature = "builder", derive(TypedBuilder))]
#[cfg_attr(feature = "schemars", derive(JsonSchema))]
pub struct DatabaseStatusSchemas {
pub applied: bool,
#[serde(default, skip_serializing_if = "Option::is_none")]
#[cfg_attr(feature = "builder", builder(default, setter(strip_option)))]
pub message: Option<String>,
pub name: String,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
#[cfg_attr(feature = "builder", derive(TypedBuilder))]
#[cfg_attr(feature = "schemars", derive(JsonSchema))]
pub struct DatabaseStatusServers {
pub applied: bool,
#[serde(default, skip_serializing_if = "Option::is_none")]
#[cfg_attr(feature = "builder", builder(default, setter(strip_option)))]
pub message: Option<String>,
pub name: String,
}