fastly_api/models/
logging_kafka_additional.rs

1/*
2 * Fastly API
3 *
4 * Via the Fastly API you can perform any of the operations that are possible within the management console,  including creating services, domains, and backends, configuring rules or uploading your own application code, as well as account operations such as user administration and billing reports. The API is organized into collections of endpoints that allow manipulation of objects related to Fastly services and accounts. For the most accurate and up-to-date API reference content, visit our [Developer Hub](https://www.fastly.com/documentation/reference/api/) 
5 *
6 */
7
8
9
10
11#[derive(Clone, Debug, PartialEq, Default, Serialize, Deserialize)]
12pub struct LoggingKafkaAdditional {
13    /// The Kafka topic to send logs to. Required.
14    #[serde(rename = "topic", skip_serializing_if = "Option::is_none")]
15    pub topic: Option<String>,
16    /// A comma-separated list of IP addresses or hostnames of Kafka brokers. Required.
17    #[serde(rename = "brokers", skip_serializing_if = "Option::is_none")]
18    pub brokers: Option<String>,
19    /// The codec used for compression of your logs.
20    #[serde(rename = "compression_codec", skip_serializing_if = "Option::is_none")]
21    pub compression_codec: Option<CompressionCodec>,
22    /// The number of acknowledgements a leader must receive before a write is considered successful.
23    #[serde(rename = "required_acks", skip_serializing_if = "Option::is_none")]
24    pub required_acks: Option<RequiredAcks>,
25    /// The maximum number of bytes sent in one request. Defaults `0` (no limit).
26    #[serde(rename = "request_max_bytes", skip_serializing_if = "Option::is_none")]
27    pub request_max_bytes: Option<i32>,
28    /// Enables parsing of key=value tuples from the beginning of a logline, turning them into [record headers](https://cwiki.apache.org/confluence/display/KAFKA/KIP-82+-+Add+Record+Headers).
29    #[serde(rename = "parse_log_keyvals", skip_serializing_if = "Option::is_none")]
30    pub parse_log_keyvals: Option<bool>,
31    /// SASL authentication method.
32    #[serde(rename = "auth_method", skip_serializing_if = "Option::is_none")]
33    pub auth_method: Option<AuthMethod>,
34    /// SASL user.
35    #[serde(rename = "user", skip_serializing_if = "Option::is_none")]
36    pub user: Option<String>,
37    /// SASL password.
38    #[serde(rename = "password", skip_serializing_if = "Option::is_none")]
39    pub password: Option<String>,
40    #[serde(rename = "use_tls", skip_serializing_if = "Option::is_none")]
41    pub use_tls: Option<crate::models::LoggingUseTlsString>,
42}
43
44impl LoggingKafkaAdditional {
45    pub fn new() -> LoggingKafkaAdditional {
46        LoggingKafkaAdditional {
47            topic: None,
48            brokers: None,
49            compression_codec: None,
50            required_acks: None,
51            request_max_bytes: None,
52            parse_log_keyvals: None,
53            auth_method: None,
54            user: None,
55            password: None,
56            use_tls: None,
57        }
58    }
59}
60
61/// The codec used for compression of your logs.
62#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
63pub enum CompressionCodec {
64    #[serde(rename = "gzip")]
65    Gzip,
66    #[serde(rename = "snappy")]
67    Snappy,
68    #[serde(rename = "lz4")]
69    Lz4,
70    #[serde(rename = "null")]
71    Null,
72}
73
74impl Default for CompressionCodec {
75    fn default() -> CompressionCodec {
76        Self::Gzip
77    }
78}
79/// The number of acknowledgements a leader must receive before a write is considered successful.
80#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
81pub enum RequiredAcks {
82    #[serde(rename = "1")]
83    RequiredAcksOne,
84    #[serde(rename = "0")]
85    RequiredAcksNone,
86    #[serde(rename = "-1")]
87    RequiredAcksAll,
88}
89
90impl Default for RequiredAcks {
91    fn default() -> RequiredAcks {
92        Self::RequiredAcksOne
93    }
94}
95/// SASL authentication method.
96#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
97pub enum AuthMethod {
98    #[serde(rename = "plain")]
99    Plain,
100    #[serde(rename = "scram-sha-256")]
101    ScramSha256,
102    #[serde(rename = "scram-sha-512")]
103    ScramSha512,
104}
105
106impl Default for AuthMethod {
107    fn default() -> AuthMethod {
108        Self::Plain
109    }
110}
111