#[allow(unused_imports)]
mod prelude {
pub use kube::CustomResource;
pub use serde::{Serialize, Deserialize};
pub use std::collections::BTreeMap;
pub use k8s_openapi::apimachinery::pkg::apis::meta::v1::Condition;
}
use self::prelude::*;
#[derive(CustomResource, Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
#[kube(group = "jetstream.nats.io", version = "v1beta2", kind = "Consumer", plural = "consumers")]
#[kube(namespaced)]
#[kube(status = "ConsumerStatus")]
#[kube(schema = "disabled")]
#[kube(derive="Default")]
#[kube(derive="PartialEq")]
pub struct ConsumerSpec {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub account: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "ackPolicy")]
pub ack_policy: Option<ConsumerAckPolicy>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "ackWait")]
pub ack_wait: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub backoff: Option<Vec<String>>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub creds: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "deliverGroup")]
pub deliver_group: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "deliverPolicy")]
pub deliver_policy: Option<ConsumerDeliverPolicy>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "deliverSubject")]
pub deliver_subject: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub description: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "durableName")]
pub durable_name: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "filterSubject")]
pub filter_subject: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "filterSubjects")]
pub filter_subjects: Option<Vec<String>>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "flowControl")]
pub flow_control: Option<bool>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "headersOnly")]
pub headers_only: Option<bool>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "heartbeatInterval")]
pub heartbeat_interval: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "inactiveThreshold")]
pub inactive_threshold: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "jsDomain")]
pub js_domain: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "maxAckPending")]
pub max_ack_pending: Option<i64>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "maxDeliver")]
pub max_deliver: Option<i64>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "maxRequestBatch")]
pub max_request_batch: Option<i64>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "maxRequestExpires")]
pub max_request_expires: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "maxRequestMaxBytes")]
pub max_request_max_bytes: Option<i64>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "maxWaiting")]
pub max_waiting: Option<i64>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "memStorage")]
pub mem_storage: Option<bool>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub metadata: Option<BTreeMap<String, String>>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub nkey: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "optStartSeq")]
pub opt_start_seq: Option<i64>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "optStartTime")]
pub opt_start_time: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "pauseUntil")]
pub pause_until: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "pinnedTtl")]
pub pinned_ttl: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "preventDelete")]
pub prevent_delete: Option<bool>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "preventUpdate")]
pub prevent_update: Option<bool>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "priorityGroups")]
pub priority_groups: Option<Vec<String>>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "priorityPolicy")]
pub priority_policy: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "rateLimitBps")]
pub rate_limit_bps: Option<i64>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "replayPolicy")]
pub replay_policy: Option<ConsumerReplayPolicy>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub replicas: Option<i64>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "sampleFreq")]
pub sample_freq: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub servers: Option<Vec<String>>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "streamName")]
pub stream_name: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub tls: Option<ConsumerTls>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "tlsFirst")]
pub tls_first: Option<bool>,
}
#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)]
pub enum ConsumerAckPolicy {
#[serde(rename = "none")]
None,
#[serde(rename = "all")]
All,
#[serde(rename = "explicit")]
Explicit,
}
#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)]
pub enum ConsumerDeliverPolicy {
#[serde(rename = "all")]
All,
#[serde(rename = "last")]
Last,
#[serde(rename = "new")]
New,
#[serde(rename = "byStartSequence")]
ByStartSequence,
#[serde(rename = "byStartTime")]
ByStartTime,
#[serde(rename = "lastPerSubject")]
LastPerSubject,
}
#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)]
pub enum ConsumerReplayPolicy {
#[serde(rename = "instant")]
Instant,
#[serde(rename = "original")]
Original,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct ConsumerTls {
#[serde(default, skip_serializing_if = "Option::is_none", rename = "clientCert")]
pub client_cert: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "clientKey")]
pub client_key: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "rootCas")]
pub root_cas: Option<Vec<String>>,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct ConsumerStatus {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub conditions: Option<Vec<Condition>>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "observedGeneration")]
pub observed_generation: Option<i64>,
}