#[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 = "hazelcast.com", version = "v1alpha1", kind = "WanReplication", plural = "wanreplications")]
#[kube(namespaced)]
#[kube(status = "WanReplicationStatus")]
#[kube(schema = "disabled")]
#[kube(derive="Default")]
#[kube(derive="PartialEq")]
pub struct WanReplicationSpec {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub acknowledgement: Option<WanReplicationAcknowledgement>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub batch: Option<WanReplicationBatch>,
pub endpoints: String,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub queue: Option<WanReplicationQueue>,
pub resources: Vec<WanReplicationResources>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "syncConsistencyCheckStrategy")]
pub sync_consistency_check_strategy: Option<String>,
#[serde(rename = "targetClusterName")]
pub target_cluster_name: String,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct WanReplicationAcknowledgement {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub timeout: Option<i32>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "type")]
pub r#type: Option<WanReplicationAcknowledgementType>,
}
#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)]
pub enum WanReplicationAcknowledgementType {
#[serde(rename = "ACK_ON_OPERATION_COMPLETE")]
AckOnOperationComplete,
#[serde(rename = "ACK_ON_RECEIPT")]
AckOnReceipt,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct WanReplicationBatch {
#[serde(default, skip_serializing_if = "Option::is_none", rename = "maximumDelay")]
pub maximum_delay: Option<i32>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub size: Option<i32>,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct WanReplicationQueue {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub capacity: Option<i32>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "fullBehavior")]
pub full_behavior: Option<WanReplicationQueueFullBehavior>,
}
#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)]
pub enum WanReplicationQueueFullBehavior {
#[serde(rename = "DISCARD_AFTER_MUTATION")]
DiscardAfterMutation,
#[serde(rename = "THROW_EXCEPTION")]
ThrowException,
#[serde(rename = "THROW_EXCEPTION_ONLY_IF_REPLICATION_ACTIVE")]
ThrowExceptionOnlyIfReplicationActive,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct WanReplicationResources {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub kind: Option<WanReplicationResourcesKind>,
pub name: String,
}
#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)]
pub enum WanReplicationResourcesKind {
Map,
Hazelcast,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct WanReplicationStatus {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub message: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub status: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "wanReplicationMapsStatus")]
pub wan_replication_maps_status: Option<BTreeMap<String, WanReplicationStatusWanReplicationMapsStatus>>,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct WanReplicationStatusWanReplicationMapsStatus {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub message: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "publisherId")]
pub publisher_id: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "resourceName")]
pub resource_name: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub status: Option<String>,
}