Skip to main content

aws_sdk_securityhub/types/
_aws_ecs_task_definition_container_definitions_log_configuration_details.rs

1// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
2
3/// <p>The log configuration specification for the container.</p>
4#[non_exhaustive]
5#[derive(::std::clone::Clone, ::std::cmp::PartialEq, ::std::fmt::Debug)]
6pub struct AwsEcsTaskDefinitionContainerDefinitionsLogConfigurationDetails {
7    /// <p>The log driver to use for the container.</p>
8    /// <p>Valid values on Fargate are as follows:</p>
9    /// <ul>
10    /// <li>
11    /// <p><code>awsfirelens</code></p></li>
12    /// <li>
13    /// <p><code>awslogs</code></p></li>
14    /// <li>
15    /// <p><code>splunk</code></p></li>
16    /// </ul>
17    /// <p>Valid values on Amazon EC2 are as follows:</p>
18    /// <ul>
19    /// <li>
20    /// <p><code>awsfirelens</code></p></li>
21    /// <li>
22    /// <p><code>awslogs</code></p></li>
23    /// <li>
24    /// <p><code>fluentd</code></p></li>
25    /// <li>
26    /// <p><code>gelf</code></p></li>
27    /// <li>
28    /// <p><code>journald</code></p></li>
29    /// <li>
30    /// <p><code>json-file</code></p></li>
31    /// <li>
32    /// <p><code>logentries</code></p></li>
33    /// <li>
34    /// <p><code>splunk</code></p></li>
35    /// <li>
36    /// <p><code>syslog</code></p></li>
37    /// </ul>
38    pub log_driver: ::std::option::Option<::std::string::String>,
39    /// <p>The configuration options to send to the log driver. Requires version 1.19 of the Docker Remote API or greater on your container instance.</p>
40    pub options: ::std::option::Option<::std::collections::HashMap<::std::string::String, ::std::string::String>>,
41    /// <p>The secrets to pass to the log configuration.</p>
42    pub secret_options:
43        ::std::option::Option<::std::vec::Vec<crate::types::AwsEcsTaskDefinitionContainerDefinitionsLogConfigurationSecretOptionsDetails>>,
44}
45impl AwsEcsTaskDefinitionContainerDefinitionsLogConfigurationDetails {
46    /// <p>The log driver to use for the container.</p>
47    /// <p>Valid values on Fargate are as follows:</p>
48    /// <ul>
49    /// <li>
50    /// <p><code>awsfirelens</code></p></li>
51    /// <li>
52    /// <p><code>awslogs</code></p></li>
53    /// <li>
54    /// <p><code>splunk</code></p></li>
55    /// </ul>
56    /// <p>Valid values on Amazon EC2 are as follows:</p>
57    /// <ul>
58    /// <li>
59    /// <p><code>awsfirelens</code></p></li>
60    /// <li>
61    /// <p><code>awslogs</code></p></li>
62    /// <li>
63    /// <p><code>fluentd</code></p></li>
64    /// <li>
65    /// <p><code>gelf</code></p></li>
66    /// <li>
67    /// <p><code>journald</code></p></li>
68    /// <li>
69    /// <p><code>json-file</code></p></li>
70    /// <li>
71    /// <p><code>logentries</code></p></li>
72    /// <li>
73    /// <p><code>splunk</code></p></li>
74    /// <li>
75    /// <p><code>syslog</code></p></li>
76    /// </ul>
77    pub fn log_driver(&self) -> ::std::option::Option<&str> {
78        self.log_driver.as_deref()
79    }
80    /// <p>The configuration options to send to the log driver. Requires version 1.19 of the Docker Remote API or greater on your container instance.</p>
81    pub fn options(&self) -> ::std::option::Option<&::std::collections::HashMap<::std::string::String, ::std::string::String>> {
82        self.options.as_ref()
83    }
84    /// <p>The secrets to pass to the log configuration.</p>
85    ///
86    /// If no value was sent for this field, a default will be set. If you want to determine if no value was sent, use `.secret_options.is_none()`.
87    pub fn secret_options(&self) -> &[crate::types::AwsEcsTaskDefinitionContainerDefinitionsLogConfigurationSecretOptionsDetails] {
88        self.secret_options.as_deref().unwrap_or_default()
89    }
90}
91impl AwsEcsTaskDefinitionContainerDefinitionsLogConfigurationDetails {
92    /// Creates a new builder-style object to manufacture [`AwsEcsTaskDefinitionContainerDefinitionsLogConfigurationDetails`](crate::types::AwsEcsTaskDefinitionContainerDefinitionsLogConfigurationDetails).
93    pub fn builder() -> crate::types::builders::AwsEcsTaskDefinitionContainerDefinitionsLogConfigurationDetailsBuilder {
94        crate::types::builders::AwsEcsTaskDefinitionContainerDefinitionsLogConfigurationDetailsBuilder::default()
95    }
96}
97
98/// A builder for [`AwsEcsTaskDefinitionContainerDefinitionsLogConfigurationDetails`](crate::types::AwsEcsTaskDefinitionContainerDefinitionsLogConfigurationDetails).
99#[derive(::std::clone::Clone, ::std::cmp::PartialEq, ::std::default::Default, ::std::fmt::Debug)]
100#[non_exhaustive]
101pub struct AwsEcsTaskDefinitionContainerDefinitionsLogConfigurationDetailsBuilder {
102    pub(crate) log_driver: ::std::option::Option<::std::string::String>,
103    pub(crate) options: ::std::option::Option<::std::collections::HashMap<::std::string::String, ::std::string::String>>,
104    pub(crate) secret_options:
105        ::std::option::Option<::std::vec::Vec<crate::types::AwsEcsTaskDefinitionContainerDefinitionsLogConfigurationSecretOptionsDetails>>,
106}
107impl AwsEcsTaskDefinitionContainerDefinitionsLogConfigurationDetailsBuilder {
108    /// <p>The log driver to use for the container.</p>
109    /// <p>Valid values on Fargate are as follows:</p>
110    /// <ul>
111    /// <li>
112    /// <p><code>awsfirelens</code></p></li>
113    /// <li>
114    /// <p><code>awslogs</code></p></li>
115    /// <li>
116    /// <p><code>splunk</code></p></li>
117    /// </ul>
118    /// <p>Valid values on Amazon EC2 are as follows:</p>
119    /// <ul>
120    /// <li>
121    /// <p><code>awsfirelens</code></p></li>
122    /// <li>
123    /// <p><code>awslogs</code></p></li>
124    /// <li>
125    /// <p><code>fluentd</code></p></li>
126    /// <li>
127    /// <p><code>gelf</code></p></li>
128    /// <li>
129    /// <p><code>journald</code></p></li>
130    /// <li>
131    /// <p><code>json-file</code></p></li>
132    /// <li>
133    /// <p><code>logentries</code></p></li>
134    /// <li>
135    /// <p><code>splunk</code></p></li>
136    /// <li>
137    /// <p><code>syslog</code></p></li>
138    /// </ul>
139    pub fn log_driver(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
140        self.log_driver = ::std::option::Option::Some(input.into());
141        self
142    }
143    /// <p>The log driver to use for the container.</p>
144    /// <p>Valid values on Fargate are as follows:</p>
145    /// <ul>
146    /// <li>
147    /// <p><code>awsfirelens</code></p></li>
148    /// <li>
149    /// <p><code>awslogs</code></p></li>
150    /// <li>
151    /// <p><code>splunk</code></p></li>
152    /// </ul>
153    /// <p>Valid values on Amazon EC2 are as follows:</p>
154    /// <ul>
155    /// <li>
156    /// <p><code>awsfirelens</code></p></li>
157    /// <li>
158    /// <p><code>awslogs</code></p></li>
159    /// <li>
160    /// <p><code>fluentd</code></p></li>
161    /// <li>
162    /// <p><code>gelf</code></p></li>
163    /// <li>
164    /// <p><code>journald</code></p></li>
165    /// <li>
166    /// <p><code>json-file</code></p></li>
167    /// <li>
168    /// <p><code>logentries</code></p></li>
169    /// <li>
170    /// <p><code>splunk</code></p></li>
171    /// <li>
172    /// <p><code>syslog</code></p></li>
173    /// </ul>
174    pub fn set_log_driver(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
175        self.log_driver = input;
176        self
177    }
178    /// <p>The log driver to use for the container.</p>
179    /// <p>Valid values on Fargate are as follows:</p>
180    /// <ul>
181    /// <li>
182    /// <p><code>awsfirelens</code></p></li>
183    /// <li>
184    /// <p><code>awslogs</code></p></li>
185    /// <li>
186    /// <p><code>splunk</code></p></li>
187    /// </ul>
188    /// <p>Valid values on Amazon EC2 are as follows:</p>
189    /// <ul>
190    /// <li>
191    /// <p><code>awsfirelens</code></p></li>
192    /// <li>
193    /// <p><code>awslogs</code></p></li>
194    /// <li>
195    /// <p><code>fluentd</code></p></li>
196    /// <li>
197    /// <p><code>gelf</code></p></li>
198    /// <li>
199    /// <p><code>journald</code></p></li>
200    /// <li>
201    /// <p><code>json-file</code></p></li>
202    /// <li>
203    /// <p><code>logentries</code></p></li>
204    /// <li>
205    /// <p><code>splunk</code></p></li>
206    /// <li>
207    /// <p><code>syslog</code></p></li>
208    /// </ul>
209    pub fn get_log_driver(&self) -> &::std::option::Option<::std::string::String> {
210        &self.log_driver
211    }
212    /// Adds a key-value pair to `options`.
213    ///
214    /// To override the contents of this collection use [`set_options`](Self::set_options).
215    ///
216    /// <p>The configuration options to send to the log driver. Requires version 1.19 of the Docker Remote API or greater on your container instance.</p>
217    pub fn options(mut self, k: impl ::std::convert::Into<::std::string::String>, v: impl ::std::convert::Into<::std::string::String>) -> Self {
218        let mut hash_map = self.options.unwrap_or_default();
219        hash_map.insert(k.into(), v.into());
220        self.options = ::std::option::Option::Some(hash_map);
221        self
222    }
223    /// <p>The configuration options to send to the log driver. Requires version 1.19 of the Docker Remote API or greater on your container instance.</p>
224    pub fn set_options(mut self, input: ::std::option::Option<::std::collections::HashMap<::std::string::String, ::std::string::String>>) -> Self {
225        self.options = input;
226        self
227    }
228    /// <p>The configuration options to send to the log driver. Requires version 1.19 of the Docker Remote API or greater on your container instance.</p>
229    pub fn get_options(&self) -> &::std::option::Option<::std::collections::HashMap<::std::string::String, ::std::string::String>> {
230        &self.options
231    }
232    /// Appends an item to `secret_options`.
233    ///
234    /// To override the contents of this collection use [`set_secret_options`](Self::set_secret_options).
235    ///
236    /// <p>The secrets to pass to the log configuration.</p>
237    pub fn secret_options(mut self, input: crate::types::AwsEcsTaskDefinitionContainerDefinitionsLogConfigurationSecretOptionsDetails) -> Self {
238        let mut v = self.secret_options.unwrap_or_default();
239        v.push(input);
240        self.secret_options = ::std::option::Option::Some(v);
241        self
242    }
243    /// <p>The secrets to pass to the log configuration.</p>
244    pub fn set_secret_options(
245        mut self,
246        input: ::std::option::Option<::std::vec::Vec<crate::types::AwsEcsTaskDefinitionContainerDefinitionsLogConfigurationSecretOptionsDetails>>,
247    ) -> Self {
248        self.secret_options = input;
249        self
250    }
251    /// <p>The secrets to pass to the log configuration.</p>
252    pub fn get_secret_options(
253        &self,
254    ) -> &::std::option::Option<::std::vec::Vec<crate::types::AwsEcsTaskDefinitionContainerDefinitionsLogConfigurationSecretOptionsDetails>> {
255        &self.secret_options
256    }
257    /// Consumes the builder and constructs a [`AwsEcsTaskDefinitionContainerDefinitionsLogConfigurationDetails`](crate::types::AwsEcsTaskDefinitionContainerDefinitionsLogConfigurationDetails).
258    pub fn build(self) -> crate::types::AwsEcsTaskDefinitionContainerDefinitionsLogConfigurationDetails {
259        crate::types::AwsEcsTaskDefinitionContainerDefinitionsLogConfigurationDetails {
260            log_driver: self.log_driver,
261            options: self.options,
262            secret_options: self.secret_options,
263        }
264    }
265}