#[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 = "fluentd.fluent.io", version = "v1alpha1", kind = "ClusterInput", plural = "clusterinputs")]
#[kube(schema = "disabled")]
#[kube(derive="Default")]
#[kube(derive="PartialEq")]
pub struct ClusterInputSpec {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub inputs: Option<Vec<ClusterInputInputs>>,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct ClusterInputInputs {
#[serde(default, skip_serializing_if = "Option::is_none", rename = "customPlugin")]
pub custom_plugin: Option<ClusterInputInputsCustomPlugin>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub forward: Option<ClusterInputInputsForward>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub http: Option<ClusterInputInputsHttp>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub id: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub label: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "logLevel")]
pub log_level: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "monitorAgent")]
pub monitor_agent: Option<ClusterInputInputsMonitorAgent>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub sample: Option<ClusterInputInputsSample>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub tail: Option<ClusterInputInputsTail>,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct ClusterInputInputsCustomPlugin {
pub config: String,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct ClusterInputInputsForward {
#[serde(default, skip_serializing_if = "Option::is_none", rename = "addTagPrefix")]
pub add_tag_prefix: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub bind: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "chunkSizeLimit")]
pub chunk_size_limit: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "chunkSizeWarnLimit")]
pub chunk_size_warn_limit: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub client: Option<ClusterInputInputsForwardClient>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "denyKeepalive")]
pub deny_keepalive: Option<bool>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "lingerTimeout")]
pub linger_timeout: Option<i64>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub port: Option<i32>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "resolveHostname")]
pub resolve_hostname: Option<bool>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub security: Option<ClusterInputInputsForwardSecurity>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "sendKeepalivePacket")]
pub send_keepalive_packet: Option<bool>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "skipInvalidEvent")]
pub skip_invalid_event: Option<bool>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "sourceAddressKey")]
pub source_address_key: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "sourceHostnameKey")]
pub source_hostname_key: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub tag: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub transport: Option<ClusterInputInputsForwardTransport>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub user: Option<ClusterInputInputsForwardUser>,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct ClusterInputInputsForwardClient {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub host: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub network: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "sharedKey")]
pub shared_key: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub users: Option<String>,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct ClusterInputInputsForwardSecurity {
#[serde(default, skip_serializing_if = "Option::is_none", rename = "allowAnonymousSource")]
pub allow_anonymous_source: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "selfHostname")]
pub self_hostname: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "sharedKey")]
pub shared_key: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub user: Option<ClusterInputInputsForwardSecurityUser>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "userAuth")]
pub user_auth: Option<String>,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct ClusterInputInputsForwardSecurityUser {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub password: Option<ClusterInputInputsForwardSecurityUserPassword>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub username: Option<ClusterInputInputsForwardSecurityUserUsername>,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct ClusterInputInputsForwardSecurityUserPassword {
#[serde(default, skip_serializing_if = "Option::is_none", rename = "valueFrom")]
pub value_from: Option<ClusterInputInputsForwardSecurityUserPasswordValueFrom>,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct ClusterInputInputsForwardSecurityUserPasswordValueFrom {
#[serde(default, skip_serializing_if = "Option::is_none", rename = "secretKeyRef")]
pub secret_key_ref: Option<ClusterInputInputsForwardSecurityUserPasswordValueFromSecretKeyRef>,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct ClusterInputInputsForwardSecurityUserPasswordValueFromSecretKeyRef {
pub key: String,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub name: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub optional: Option<bool>,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct ClusterInputInputsForwardSecurityUserUsername {
#[serde(default, skip_serializing_if = "Option::is_none", rename = "valueFrom")]
pub value_from: Option<ClusterInputInputsForwardSecurityUserUsernameValueFrom>,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct ClusterInputInputsForwardSecurityUserUsernameValueFrom {
#[serde(default, skip_serializing_if = "Option::is_none", rename = "secretKeyRef")]
pub secret_key_ref: Option<ClusterInputInputsForwardSecurityUserUsernameValueFromSecretKeyRef>,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct ClusterInputInputsForwardSecurityUserUsernameValueFromSecretKeyRef {
pub key: String,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub name: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub optional: Option<bool>,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct ClusterInputInputsForwardTransport {
#[serde(default, skip_serializing_if = "Option::is_none", rename = "caCertPath")]
pub ca_cert_path: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "caPath")]
pub ca_path: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "caPrivateKeyPassphrase")]
pub ca_private_key_passphrase: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "caPrivateKeyPath")]
pub ca_private_key_path: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "certPath")]
pub cert_path: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "certVerifier")]
pub cert_verifier: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub ciphers: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "clientCertAuth")]
pub client_cert_auth: Option<bool>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub insecure: Option<bool>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "privateKeyPassphrase")]
pub private_key_passphrase: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "privateKeyPath")]
pub private_key_path: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub protocol: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub version: Option<String>,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct ClusterInputInputsForwardUser {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub password: Option<ClusterInputInputsForwardUserPassword>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub username: Option<ClusterInputInputsForwardUserUsername>,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct ClusterInputInputsForwardUserPassword {
#[serde(default, skip_serializing_if = "Option::is_none", rename = "valueFrom")]
pub value_from: Option<ClusterInputInputsForwardUserPasswordValueFrom>,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct ClusterInputInputsForwardUserPasswordValueFrom {
#[serde(default, skip_serializing_if = "Option::is_none", rename = "secretKeyRef")]
pub secret_key_ref: Option<ClusterInputInputsForwardUserPasswordValueFromSecretKeyRef>,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct ClusterInputInputsForwardUserPasswordValueFromSecretKeyRef {
pub key: String,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub name: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub optional: Option<bool>,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct ClusterInputInputsForwardUserUsername {
#[serde(default, skip_serializing_if = "Option::is_none", rename = "valueFrom")]
pub value_from: Option<ClusterInputInputsForwardUserUsernameValueFrom>,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct ClusterInputInputsForwardUserUsernameValueFrom {
#[serde(default, skip_serializing_if = "Option::is_none", rename = "secretKeyRef")]
pub secret_key_ref: Option<ClusterInputInputsForwardUserUsernameValueFromSecretKeyRef>,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct ClusterInputInputsForwardUserUsernameValueFromSecretKeyRef {
pub key: String,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub name: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub optional: Option<bool>,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct ClusterInputInputsHttp {
#[serde(default, skip_serializing_if = "Option::is_none", rename = "addHttpHeaders")]
pub add_http_headers: Option<bool>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "addRemoteAddr")]
pub add_remote_addr: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub bind: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "bodySizeLimit")]
pub body_size_limit: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "corsAllOrigins")]
pub cors_all_origins: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "corsAllowCredentials")]
pub cors_allow_credentials: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "keepaliveTimeout")]
pub keepalive_timeout: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub parse: Option<ClusterInputInputsHttpParse>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub port: Option<i32>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "respondsWithEmptyImg")]
pub responds_with_empty_img: Option<bool>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub transport: Option<ClusterInputInputsHttpTransport>,
}
#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)]
pub struct ClusterInputInputsHttpParse {
#[serde(default, skip_serializing_if = "Option::is_none", rename = "customPatternPath")]
pub custom_pattern_path: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "estimateCurrentEvent")]
pub estimate_current_event: Option<bool>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub expression: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub grok: Option<Vec<ClusterInputInputsHttpParseGrok>>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "grokFailureKey")]
pub grok_failure_key: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "grokPattern")]
pub grok_pattern: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "grokPatternSeries")]
pub grok_pattern_series: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub id: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "keepTimeKey")]
pub keep_time_key: Option<bool>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub localtime: Option<bool>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "logLevel")]
pub log_level: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "multiLineStartRegexp")]
pub multi_line_start_regexp: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "timeFormat")]
pub time_format: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "timeFormatFallbacks")]
pub time_format_fallbacks: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "timeKey")]
pub time_key: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "timeType")]
pub time_type: Option<ClusterInputInputsHttpParseTimeType>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub timeout: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub timezone: Option<String>,
#[serde(rename = "type")]
pub r#type: ClusterInputInputsHttpParseType,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub types: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub utc: Option<bool>,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct ClusterInputInputsHttpParseGrok {
#[serde(default, skip_serializing_if = "Option::is_none", rename = "keepTimeKey")]
pub keep_time_key: Option<bool>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub name: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub pattern: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "timeFormat")]
pub time_format: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "timeKey")]
pub time_key: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "timeZone")]
pub time_zone: Option<String>,
}
#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)]
pub enum ClusterInputInputsHttpParseTimeType {
#[serde(rename = "float")]
Float,
#[serde(rename = "unixtime")]
Unixtime,
#[serde(rename = "string")]
String,
#[serde(rename = "mixed")]
Mixed,
}
#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)]
pub enum ClusterInputInputsHttpParseType {
#[serde(rename = "regexp")]
Regexp,
#[serde(rename = "apache2")]
Apache2,
#[serde(rename = "apache_error")]
ApacheError,
#[serde(rename = "nginx")]
Nginx,
#[serde(rename = "syslog")]
Syslog,
#[serde(rename = "csv")]
Csv,
#[serde(rename = "tsv")]
Tsv,
#[serde(rename = "ltsv")]
Ltsv,
#[serde(rename = "json")]
Json,
#[serde(rename = "multiline")]
Multiline,
#[serde(rename = "none")]
None,
#[serde(rename = "grok")]
Grok,
#[serde(rename = "multiline_grok")]
MultilineGrok,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct ClusterInputInputsHttpTransport {
#[serde(default, skip_serializing_if = "Option::is_none", rename = "caCertPath")]
pub ca_cert_path: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "caPath")]
pub ca_path: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "caPrivateKeyPassphrase")]
pub ca_private_key_passphrase: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "caPrivateKeyPath")]
pub ca_private_key_path: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "certPath")]
pub cert_path: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "certVerifier")]
pub cert_verifier: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub ciphers: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "clientCertAuth")]
pub client_cert_auth: Option<bool>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub insecure: Option<bool>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "privateKeyPassphrase")]
pub private_key_passphrase: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "privateKeyPath")]
pub private_key_path: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub protocol: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub version: Option<String>,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct ClusterInputInputsMonitorAgent {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub bind: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "emitInterval")]
pub emit_interval: Option<i64>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "includeConfig")]
pub include_config: Option<bool>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "includeRetry")]
pub include_retry: Option<bool>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub port: Option<i64>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub tag: Option<String>,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct ClusterInputInputsSample {
#[serde(default, skip_serializing_if = "Option::is_none", rename = "autoIncrementKey")]
pub auto_increment_key: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub rate: Option<i64>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub sample: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub size: Option<i64>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub tag: Option<String>,
}
#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)]
pub struct ClusterInputInputsTail {
#[serde(default, skip_serializing_if = "Option::is_none", rename = "emitUnmatchedLines")]
pub emit_unmatched_lines: Option<bool>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "enableStatWatcher")]
pub enable_stat_watcher: Option<bool>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "enableWatchTimer")]
pub enable_watch_timer: Option<bool>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub encoding: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "excludePath")]
pub exclude_path: Option<Vec<String>>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "followInodes")]
pub follow_inodes: Option<bool>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "fromEncoding")]
pub from_encoding: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub group: Option<ClusterInputInputsTailGroup>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "ignoreRepeatedPermissionError")]
pub ignore_repeated_permission_error: Option<bool>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "limitRecentlyModified")]
pub limit_recently_modified: Option<i32>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "maxLineSize")]
pub max_line_size: Option<i32>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "multilineFlushInterval")]
pub multiline_flush_interval: Option<i32>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "openOnEveryUpdate")]
pub open_on_every_update: Option<bool>,
pub parse: ClusterInputInputsTailParse,
pub path: String,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "pathKey")]
pub path_key: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "pathTimezone")]
pub path_timezone: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "posFile")]
pub pos_file: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "posFileCompactionInterval")]
pub pos_file_compaction_interval: Option<i32>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "readBytesLimitPerSecond")]
pub read_bytes_limit_per_second: Option<i32>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "readFromHead")]
pub read_from_head: Option<bool>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "readLinesLimit")]
pub read_lines_limit: Option<i32>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "refreshInterval")]
pub refresh_interval: Option<i32>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "rotateWait")]
pub rotate_wait: Option<i32>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "skipRefreshOnStartup")]
pub skip_refresh_on_startup: Option<bool>,
pub tag: String,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct ClusterInputInputsTailGroup {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub pattern: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "ratePeriod")]
pub rate_period: Option<i32>,
pub rule: ClusterInputInputsTailGroupRule,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct ClusterInputInputsTailGroupRule {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub limit: Option<i32>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "match")]
pub r#match: Option<BTreeMap<String, String>>,
}
#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)]
pub struct ClusterInputInputsTailParse {
#[serde(default, skip_serializing_if = "Option::is_none", rename = "customPatternPath")]
pub custom_pattern_path: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "estimateCurrentEvent")]
pub estimate_current_event: Option<bool>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub expression: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub grok: Option<Vec<ClusterInputInputsTailParseGrok>>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "grokFailureKey")]
pub grok_failure_key: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "grokPattern")]
pub grok_pattern: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "grokPatternSeries")]
pub grok_pattern_series: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub id: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "keepTimeKey")]
pub keep_time_key: Option<bool>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub localtime: Option<bool>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "logLevel")]
pub log_level: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "multiLineStartRegexp")]
pub multi_line_start_regexp: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "timeFormat")]
pub time_format: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "timeFormatFallbacks")]
pub time_format_fallbacks: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "timeKey")]
pub time_key: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "timeType")]
pub time_type: Option<ClusterInputInputsTailParseTimeType>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub timeout: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub timezone: Option<String>,
#[serde(rename = "type")]
pub r#type: ClusterInputInputsTailParseType,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub types: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub utc: Option<bool>,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct ClusterInputInputsTailParseGrok {
#[serde(default, skip_serializing_if = "Option::is_none", rename = "keepTimeKey")]
pub keep_time_key: Option<bool>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub name: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub pattern: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "timeFormat")]
pub time_format: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "timeKey")]
pub time_key: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "timeZone")]
pub time_zone: Option<String>,
}
#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)]
pub enum ClusterInputInputsTailParseTimeType {
#[serde(rename = "float")]
Float,
#[serde(rename = "unixtime")]
Unixtime,
#[serde(rename = "string")]
String,
#[serde(rename = "mixed")]
Mixed,
}
#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)]
pub enum ClusterInputInputsTailParseType {
#[serde(rename = "regexp")]
Regexp,
#[serde(rename = "apache2")]
Apache2,
#[serde(rename = "apache_error")]
ApacheError,
#[serde(rename = "nginx")]
Nginx,
#[serde(rename = "syslog")]
Syslog,
#[serde(rename = "csv")]
Csv,
#[serde(rename = "tsv")]
Tsv,
#[serde(rename = "ltsv")]
Ltsv,
#[serde(rename = "json")]
Json,
#[serde(rename = "multiline")]
Multiline,
#[serde(rename = "none")]
None,
#[serde(rename = "grok")]
Grok,
#[serde(rename = "multiline_grok")]
MultilineGrok,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct ClusterInputStatus {
}