use crate::prelude::*;
#[derive(CustomResource, Serialize, Deserialize, Clone, Debug, JsonSchema)]
#[kube(
group = "postgresql.cnpg.io",
version = "v1",
kind = "Database",
plural = "databases"
)]
#[kube(namespaced)]
#[kube(status = "DatabaseStatus")]
pub struct DatabaseSpec {
#[serde(
default,
skip_serializing_if = "Option::is_none",
rename = "allowConnections"
)]
pub allow_connections: Option<bool>,
#[serde(
default,
skip_serializing_if = "Option::is_none",
rename = "builtinLocale"
)]
pub builtin_locale: Option<String>,
pub cluster: DatabaseCluster,
#[serde(
default,
skip_serializing_if = "Option::is_none",
rename = "collationVersion"
)]
pub collation_version: Option<String>,
#[serde(
default,
skip_serializing_if = "Option::is_none",
rename = "connectionLimit"
)]
pub connection_limit: Option<i64>,
#[serde(
default,
skip_serializing_if = "Option::is_none",
rename = "databaseReclaimPolicy"
)]
pub database_reclaim_policy: Option<DatabaseDatabaseReclaimPolicy>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub encoding: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub ensure: Option<DatabaseEnsure>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub extensions: Option<Vec<DatabaseExtensions>>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub fdws: Option<Vec<DatabaseFdws>>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "icuLocale")]
pub icu_locale: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "icuRules")]
pub icu_rules: Option<String>,
#[serde(
default,
skip_serializing_if = "Option::is_none",
rename = "isTemplate"
)]
pub is_template: Option<bool>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub locale: Option<String>,
#[serde(
default,
skip_serializing_if = "Option::is_none",
rename = "localeCType"
)]
pub locale_c_type: Option<String>,
#[serde(
default,
skip_serializing_if = "Option::is_none",
rename = "localeCollate"
)]
pub locale_collate: Option<String>,
#[serde(
default,
skip_serializing_if = "Option::is_none",
rename = "localeProvider"
)]
pub locale_provider: Option<String>,
pub name: String,
pub owner: String,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub schemas: Option<Vec<DatabaseSchemas>>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub servers: Option<Vec<DatabaseServers>>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub tablespace: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub template: Option<String>,
}
#[derive(Serialize, Deserialize, Clone, Debug, JsonSchema)]
pub struct DatabaseCluster {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub name: Option<String>,
}
#[derive(Serialize, Deserialize, Clone, Debug, JsonSchema)]
pub enum DatabaseDatabaseReclaimPolicy {
#[serde(rename = "delete")]
Delete,
#[serde(rename = "retain")]
Retain,
}
#[derive(Serialize, Deserialize, Clone, Debug, JsonSchema)]
pub enum DatabaseEnsure {
#[serde(rename = "present")]
Present,
#[serde(rename = "absent")]
Absent,
}
#[derive(Serialize, Deserialize, Clone, Debug, JsonSchema)]
pub struct DatabaseExtensions {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub ensure: Option<DatabaseExtensionsEnsure>,
pub name: String,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub schema: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub version: Option<String>,
}
#[derive(Serialize, Deserialize, Clone, Debug, JsonSchema)]
pub enum DatabaseExtensionsEnsure {
#[serde(rename = "present")]
Present,
#[serde(rename = "absent")]
Absent,
}
#[derive(Serialize, Deserialize, Clone, Debug, JsonSchema)]
pub struct DatabaseFdws {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub ensure: Option<DatabaseFdwsEnsure>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub handler: Option<String>,
pub name: String,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub options: Option<Vec<DatabaseFdwsOptions>>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub owner: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub usage: Option<Vec<DatabaseFdwsUsage>>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub validator: Option<String>,
}
#[derive(Serialize, Deserialize, Clone, Debug, JsonSchema)]
pub enum DatabaseFdwsEnsure {
#[serde(rename = "present")]
Present,
#[serde(rename = "absent")]
Absent,
}
#[derive(Serialize, Deserialize, Clone, Debug, JsonSchema)]
pub struct DatabaseFdwsOptions {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub ensure: Option<DatabaseFdwsOptionsEnsure>,
pub name: String,
pub value: String,
}
#[derive(Serialize, Deserialize, Clone, Debug, JsonSchema)]
pub enum DatabaseFdwsOptionsEnsure {
#[serde(rename = "present")]
Present,
#[serde(rename = "absent")]
Absent,
}
#[derive(Serialize, Deserialize, Clone, Debug, JsonSchema)]
pub struct DatabaseFdwsUsage {
pub name: String,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "type")]
pub r#type: Option<DatabaseFdwsUsageType>,
}
#[derive(Serialize, Deserialize, Clone, Debug, JsonSchema)]
pub enum DatabaseFdwsUsageType {
#[serde(rename = "grant")]
Grant,
#[serde(rename = "revoke")]
Revoke,
}
#[derive(Serialize, Deserialize, Clone, Debug, JsonSchema)]
pub struct DatabaseSchemas {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub ensure: Option<DatabaseSchemasEnsure>,
pub name: String,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub owner: Option<String>,
}
#[derive(Serialize, Deserialize, Clone, Debug, JsonSchema)]
pub enum DatabaseSchemasEnsure {
#[serde(rename = "present")]
Present,
#[serde(rename = "absent")]
Absent,
}
#[derive(Serialize, Deserialize, Clone, Debug, JsonSchema)]
pub struct DatabaseServers {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub ensure: Option<DatabaseServersEnsure>,
pub fdw: String,
pub name: String,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub options: Option<Vec<DatabaseServersOptions>>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub usage: Option<Vec<DatabaseServersUsage>>,
}
#[derive(Serialize, Deserialize, Clone, Debug, JsonSchema)]
pub enum DatabaseServersEnsure {
#[serde(rename = "present")]
Present,
#[serde(rename = "absent")]
Absent,
}
#[derive(Serialize, Deserialize, Clone, Debug, JsonSchema)]
pub struct DatabaseServersOptions {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub ensure: Option<DatabaseServersOptionsEnsure>,
pub name: String,
pub value: String,
}
#[derive(Serialize, Deserialize, Clone, Debug, JsonSchema)]
pub enum DatabaseServersOptionsEnsure {
#[serde(rename = "present")]
Present,
#[serde(rename = "absent")]
Absent,
}
#[derive(Serialize, Deserialize, Clone, Debug, JsonSchema)]
pub struct DatabaseServersUsage {
pub name: String,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "type")]
pub r#type: Option<DatabaseServersUsageType>,
}
#[derive(Serialize, Deserialize, Clone, Debug, JsonSchema)]
pub enum DatabaseServersUsageType {
#[serde(rename = "grant")]
Grant,
#[serde(rename = "revoke")]
Revoke,
}
#[derive(Serialize, Deserialize, Clone, Debug, JsonSchema)]
pub struct DatabaseStatus {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub applied: Option<bool>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub extensions: Option<Vec<DatabaseStatusExtensions>>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub fdws: Option<Vec<DatabaseStatusFdws>>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub message: Option<String>,
#[serde(
default,
skip_serializing_if = "Option::is_none",
rename = "observedGeneration"
)]
pub observed_generation: Option<i64>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub schemas: Option<Vec<DatabaseStatusSchemas>>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub servers: Option<Vec<DatabaseStatusServers>>,
}
#[derive(Serialize, Deserialize, Clone, Debug, JsonSchema)]
pub struct DatabaseStatusExtensions {
pub applied: bool,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub message: Option<String>,
pub name: String,
}
#[derive(Serialize, Deserialize, Clone, Debug, JsonSchema)]
pub struct DatabaseStatusFdws {
pub applied: bool,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub message: Option<String>,
pub name: String,
}
#[derive(Serialize, Deserialize, Clone, Debug, JsonSchema)]
pub struct DatabaseStatusSchemas {
pub applied: bool,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub message: Option<String>,
pub name: String,
}
#[derive(Serialize, Deserialize, Clone, Debug, JsonSchema)]
pub struct DatabaseStatusServers {
pub applied: bool,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub message: Option<String>,
pub name: String,
}