aws_sdk_gameliftstreams/operation/create_application/
_create_application_input.rs

1// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
2#[allow(missing_docs)] // documentation missing in model
3#[non_exhaustive]
4#[derive(::std::clone::Clone, ::std::cmp::PartialEq, ::std::fmt::Debug)]
5pub struct CreateApplicationInput {
6    /// <p>A human-readable label for the application. You can update this value later.</p>
7    pub description: ::std::option::Option<::std::string::String>,
8    /// <p>Configuration settings that identify the operating system for an application resource. This can also include a compatibility layer and other drivers.</p>
9    /// <p>A runtime environment can be one of the following:</p>
10    /// <ul>
11    /// <li>
12    /// <p>For Linux applications</p>
13    /// <ul>
14    /// <li>
15    /// <p>Ubuntu 22.04 LTS (<code>Type=UBUNTU, Version=22_04_LTS</code>)</p></li>
16    /// </ul></li>
17    /// <li>
18    /// <p>For Windows applications</p>
19    /// <ul>
20    /// <li>
21    /// <p>Microsoft Windows Server 2022 Base (<code>Type=WINDOWS, Version=2022</code>)</p></li>
22    /// <li>
23    /// <p>Proton 8.0-5 (<code>Type=PROTON, Version=20241007</code>)</p></li>
24    /// <li>
25    /// <p>Proton 8.0-2c (<code>Type=PROTON, Version=20230704</code>)</p></li>
26    /// </ul></li>
27    /// </ul>
28    pub runtime_environment: ::std::option::Option<crate::types::RuntimeEnvironment>,
29    /// <p>The path and file name of the executable file that launches the content for streaming. Enter a path value that is relative to the location set in <code>ApplicationSourceUri</code>.</p>
30    pub executable_path: ::std::option::Option<::std::string::String>,
31    /// <p>The location of the content that you want to stream. Enter an Amazon S3 URI to a bucket that contains your game or other application. The location can have a multi-level prefix structure, but it must include all the files needed to run the content. Amazon GameLift Streams copies everything under the specified location.</p>
32    /// <p>This value is immutable. To designate a different content location, create a new application.</p><note>
33    /// <p>The Amazon S3 bucket and the Amazon GameLift Streams application must be in the same Amazon Web Services Region.</p>
34    /// </note>
35    pub application_source_uri: ::std::option::Option<::std::string::String>,
36    /// <p>Locations of log files that your content generates during a stream session. Enter path values that are relative to the <code>ApplicationSourceUri</code> location. You can specify up to 10 log paths. Amazon GameLift Streams uploads designated log files to the Amazon S3 bucket that you specify in <code>ApplicationLogOutputUri</code> at the end of a stream session. To retrieve stored log files, call <a href="https://docs.aws.amazon.com/gameliftstreams/latest/apireference/API_GetStreamSession.html">GetStreamSession</a> and get the <code>LogFileLocationUri</code>.</p>
37    pub application_log_paths: ::std::option::Option<::std::vec::Vec<::std::string::String>>,
38    /// <p>An Amazon S3 URI to a bucket where you would like Amazon GameLift Streams to save application logs. Required if you specify one or more <code>ApplicationLogPaths</code>.</p><note>
39    /// <p>The log bucket must have permissions that give Amazon GameLift Streams access to write the log files. For more information, see <a href="https://docs.aws.amazon.com/gameliftstreams/latest/developerguide/applications.html#application-bucket-permission-template">Application log bucket permission policy</a> in the <i>Amazon GameLift Streams Developer Guide</i>.</p>
40    /// </note>
41    pub application_log_output_uri: ::std::option::Option<::std::string::String>,
42    /// <p>A list of labels to assign to the new application resource. Tags are developer-defined key-value pairs. Tagging Amazon Web Services resources is useful for resource management, access management and cost allocation. See <a href="https://docs.aws.amazon.com/general/latest/gr/aws_tagging.html"> Tagging Amazon Web Services Resources</a> in the <i>Amazon Web Services General Reference</i>. You can use <a href="https://docs.aws.amazon.com/gameliftstreams/latest/apireference/API_TagResource.html">TagResource</a> to add tags, <a href="https://docs.aws.amazon.com/gameliftstreams/latest/apireference/API_UntagResource.html">UntagResource</a> to remove tags, and <a href="https://docs.aws.amazon.com/gameliftstreams/latest/apireference/API_ListTagsForResource.html">ListTagsForResource</a> to view tags on existing resources.</p>
43    pub tags: ::std::option::Option<::std::collections::HashMap<::std::string::String, ::std::string::String>>,
44    /// <p>A unique identifier that represents a client request. The request is idempotent, which ensures that an API request completes only once. When users send a request, Amazon GameLift Streams automatically populates this field.</p>
45    pub client_token: ::std::option::Option<::std::string::String>,
46}
47impl CreateApplicationInput {
48    /// <p>A human-readable label for the application. You can update this value later.</p>
49    pub fn description(&self) -> ::std::option::Option<&str> {
50        self.description.as_deref()
51    }
52    /// <p>Configuration settings that identify the operating system for an application resource. This can also include a compatibility layer and other drivers.</p>
53    /// <p>A runtime environment can be one of the following:</p>
54    /// <ul>
55    /// <li>
56    /// <p>For Linux applications</p>
57    /// <ul>
58    /// <li>
59    /// <p>Ubuntu 22.04 LTS (<code>Type=UBUNTU, Version=22_04_LTS</code>)</p></li>
60    /// </ul></li>
61    /// <li>
62    /// <p>For Windows applications</p>
63    /// <ul>
64    /// <li>
65    /// <p>Microsoft Windows Server 2022 Base (<code>Type=WINDOWS, Version=2022</code>)</p></li>
66    /// <li>
67    /// <p>Proton 8.0-5 (<code>Type=PROTON, Version=20241007</code>)</p></li>
68    /// <li>
69    /// <p>Proton 8.0-2c (<code>Type=PROTON, Version=20230704</code>)</p></li>
70    /// </ul></li>
71    /// </ul>
72    pub fn runtime_environment(&self) -> ::std::option::Option<&crate::types::RuntimeEnvironment> {
73        self.runtime_environment.as_ref()
74    }
75    /// <p>The path and file name of the executable file that launches the content for streaming. Enter a path value that is relative to the location set in <code>ApplicationSourceUri</code>.</p>
76    pub fn executable_path(&self) -> ::std::option::Option<&str> {
77        self.executable_path.as_deref()
78    }
79    /// <p>The location of the content that you want to stream. Enter an Amazon S3 URI to a bucket that contains your game or other application. The location can have a multi-level prefix structure, but it must include all the files needed to run the content. Amazon GameLift Streams copies everything under the specified location.</p>
80    /// <p>This value is immutable. To designate a different content location, create a new application.</p><note>
81    /// <p>The Amazon S3 bucket and the Amazon GameLift Streams application must be in the same Amazon Web Services Region.</p>
82    /// </note>
83    pub fn application_source_uri(&self) -> ::std::option::Option<&str> {
84        self.application_source_uri.as_deref()
85    }
86    /// <p>Locations of log files that your content generates during a stream session. Enter path values that are relative to the <code>ApplicationSourceUri</code> location. You can specify up to 10 log paths. Amazon GameLift Streams uploads designated log files to the Amazon S3 bucket that you specify in <code>ApplicationLogOutputUri</code> at the end of a stream session. To retrieve stored log files, call <a href="https://docs.aws.amazon.com/gameliftstreams/latest/apireference/API_GetStreamSession.html">GetStreamSession</a> and get the <code>LogFileLocationUri</code>.</p>
87    ///
88    /// If no value was sent for this field, a default will be set. If you want to determine if no value was sent, use `.application_log_paths.is_none()`.
89    pub fn application_log_paths(&self) -> &[::std::string::String] {
90        self.application_log_paths.as_deref().unwrap_or_default()
91    }
92    /// <p>An Amazon S3 URI to a bucket where you would like Amazon GameLift Streams to save application logs. Required if you specify one or more <code>ApplicationLogPaths</code>.</p><note>
93    /// <p>The log bucket must have permissions that give Amazon GameLift Streams access to write the log files. For more information, see <a href="https://docs.aws.amazon.com/gameliftstreams/latest/developerguide/applications.html#application-bucket-permission-template">Application log bucket permission policy</a> in the <i>Amazon GameLift Streams Developer Guide</i>.</p>
94    /// </note>
95    pub fn application_log_output_uri(&self) -> ::std::option::Option<&str> {
96        self.application_log_output_uri.as_deref()
97    }
98    /// <p>A list of labels to assign to the new application resource. Tags are developer-defined key-value pairs. Tagging Amazon Web Services resources is useful for resource management, access management and cost allocation. See <a href="https://docs.aws.amazon.com/general/latest/gr/aws_tagging.html"> Tagging Amazon Web Services Resources</a> in the <i>Amazon Web Services General Reference</i>. You can use <a href="https://docs.aws.amazon.com/gameliftstreams/latest/apireference/API_TagResource.html">TagResource</a> to add tags, <a href="https://docs.aws.amazon.com/gameliftstreams/latest/apireference/API_UntagResource.html">UntagResource</a> to remove tags, and <a href="https://docs.aws.amazon.com/gameliftstreams/latest/apireference/API_ListTagsForResource.html">ListTagsForResource</a> to view tags on existing resources.</p>
99    pub fn tags(&self) -> ::std::option::Option<&::std::collections::HashMap<::std::string::String, ::std::string::String>> {
100        self.tags.as_ref()
101    }
102    /// <p>A unique identifier that represents a client request. The request is idempotent, which ensures that an API request completes only once. When users send a request, Amazon GameLift Streams automatically populates this field.</p>
103    pub fn client_token(&self) -> ::std::option::Option<&str> {
104        self.client_token.as_deref()
105    }
106}
107impl CreateApplicationInput {
108    /// Creates a new builder-style object to manufacture [`CreateApplicationInput`](crate::operation::create_application::CreateApplicationInput).
109    pub fn builder() -> crate::operation::create_application::builders::CreateApplicationInputBuilder {
110        crate::operation::create_application::builders::CreateApplicationInputBuilder::default()
111    }
112}
113
114/// A builder for [`CreateApplicationInput`](crate::operation::create_application::CreateApplicationInput).
115#[derive(::std::clone::Clone, ::std::cmp::PartialEq, ::std::default::Default, ::std::fmt::Debug)]
116#[non_exhaustive]
117pub struct CreateApplicationInputBuilder {
118    pub(crate) description: ::std::option::Option<::std::string::String>,
119    pub(crate) runtime_environment: ::std::option::Option<crate::types::RuntimeEnvironment>,
120    pub(crate) executable_path: ::std::option::Option<::std::string::String>,
121    pub(crate) application_source_uri: ::std::option::Option<::std::string::String>,
122    pub(crate) application_log_paths: ::std::option::Option<::std::vec::Vec<::std::string::String>>,
123    pub(crate) application_log_output_uri: ::std::option::Option<::std::string::String>,
124    pub(crate) tags: ::std::option::Option<::std::collections::HashMap<::std::string::String, ::std::string::String>>,
125    pub(crate) client_token: ::std::option::Option<::std::string::String>,
126}
127impl CreateApplicationInputBuilder {
128    /// <p>A human-readable label for the application. You can update this value later.</p>
129    /// This field is required.
130    pub fn description(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
131        self.description = ::std::option::Option::Some(input.into());
132        self
133    }
134    /// <p>A human-readable label for the application. You can update this value later.</p>
135    pub fn set_description(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
136        self.description = input;
137        self
138    }
139    /// <p>A human-readable label for the application. You can update this value later.</p>
140    pub fn get_description(&self) -> &::std::option::Option<::std::string::String> {
141        &self.description
142    }
143    /// <p>Configuration settings that identify the operating system for an application resource. This can also include a compatibility layer and other drivers.</p>
144    /// <p>A runtime environment can be one of the following:</p>
145    /// <ul>
146    /// <li>
147    /// <p>For Linux applications</p>
148    /// <ul>
149    /// <li>
150    /// <p>Ubuntu 22.04 LTS (<code>Type=UBUNTU, Version=22_04_LTS</code>)</p></li>
151    /// </ul></li>
152    /// <li>
153    /// <p>For Windows applications</p>
154    /// <ul>
155    /// <li>
156    /// <p>Microsoft Windows Server 2022 Base (<code>Type=WINDOWS, Version=2022</code>)</p></li>
157    /// <li>
158    /// <p>Proton 8.0-5 (<code>Type=PROTON, Version=20241007</code>)</p></li>
159    /// <li>
160    /// <p>Proton 8.0-2c (<code>Type=PROTON, Version=20230704</code>)</p></li>
161    /// </ul></li>
162    /// </ul>
163    /// This field is required.
164    pub fn runtime_environment(mut self, input: crate::types::RuntimeEnvironment) -> Self {
165        self.runtime_environment = ::std::option::Option::Some(input);
166        self
167    }
168    /// <p>Configuration settings that identify the operating system for an application resource. This can also include a compatibility layer and other drivers.</p>
169    /// <p>A runtime environment can be one of the following:</p>
170    /// <ul>
171    /// <li>
172    /// <p>For Linux applications</p>
173    /// <ul>
174    /// <li>
175    /// <p>Ubuntu 22.04 LTS (<code>Type=UBUNTU, Version=22_04_LTS</code>)</p></li>
176    /// </ul></li>
177    /// <li>
178    /// <p>For Windows applications</p>
179    /// <ul>
180    /// <li>
181    /// <p>Microsoft Windows Server 2022 Base (<code>Type=WINDOWS, Version=2022</code>)</p></li>
182    /// <li>
183    /// <p>Proton 8.0-5 (<code>Type=PROTON, Version=20241007</code>)</p></li>
184    /// <li>
185    /// <p>Proton 8.0-2c (<code>Type=PROTON, Version=20230704</code>)</p></li>
186    /// </ul></li>
187    /// </ul>
188    pub fn set_runtime_environment(mut self, input: ::std::option::Option<crate::types::RuntimeEnvironment>) -> Self {
189        self.runtime_environment = input;
190        self
191    }
192    /// <p>Configuration settings that identify the operating system for an application resource. This can also include a compatibility layer and other drivers.</p>
193    /// <p>A runtime environment can be one of the following:</p>
194    /// <ul>
195    /// <li>
196    /// <p>For Linux applications</p>
197    /// <ul>
198    /// <li>
199    /// <p>Ubuntu 22.04 LTS (<code>Type=UBUNTU, Version=22_04_LTS</code>)</p></li>
200    /// </ul></li>
201    /// <li>
202    /// <p>For Windows applications</p>
203    /// <ul>
204    /// <li>
205    /// <p>Microsoft Windows Server 2022 Base (<code>Type=WINDOWS, Version=2022</code>)</p></li>
206    /// <li>
207    /// <p>Proton 8.0-5 (<code>Type=PROTON, Version=20241007</code>)</p></li>
208    /// <li>
209    /// <p>Proton 8.0-2c (<code>Type=PROTON, Version=20230704</code>)</p></li>
210    /// </ul></li>
211    /// </ul>
212    pub fn get_runtime_environment(&self) -> &::std::option::Option<crate::types::RuntimeEnvironment> {
213        &self.runtime_environment
214    }
215    /// <p>The path and file name of the executable file that launches the content for streaming. Enter a path value that is relative to the location set in <code>ApplicationSourceUri</code>.</p>
216    /// This field is required.
217    pub fn executable_path(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
218        self.executable_path = ::std::option::Option::Some(input.into());
219        self
220    }
221    /// <p>The path and file name of the executable file that launches the content for streaming. Enter a path value that is relative to the location set in <code>ApplicationSourceUri</code>.</p>
222    pub fn set_executable_path(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
223        self.executable_path = input;
224        self
225    }
226    /// <p>The path and file name of the executable file that launches the content for streaming. Enter a path value that is relative to the location set in <code>ApplicationSourceUri</code>.</p>
227    pub fn get_executable_path(&self) -> &::std::option::Option<::std::string::String> {
228        &self.executable_path
229    }
230    /// <p>The location of the content that you want to stream. Enter an Amazon S3 URI to a bucket that contains your game or other application. The location can have a multi-level prefix structure, but it must include all the files needed to run the content. Amazon GameLift Streams copies everything under the specified location.</p>
231    /// <p>This value is immutable. To designate a different content location, create a new application.</p><note>
232    /// <p>The Amazon S3 bucket and the Amazon GameLift Streams application must be in the same Amazon Web Services Region.</p>
233    /// </note>
234    /// This field is required.
235    pub fn application_source_uri(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
236        self.application_source_uri = ::std::option::Option::Some(input.into());
237        self
238    }
239    /// <p>The location of the content that you want to stream. Enter an Amazon S3 URI to a bucket that contains your game or other application. The location can have a multi-level prefix structure, but it must include all the files needed to run the content. Amazon GameLift Streams copies everything under the specified location.</p>
240    /// <p>This value is immutable. To designate a different content location, create a new application.</p><note>
241    /// <p>The Amazon S3 bucket and the Amazon GameLift Streams application must be in the same Amazon Web Services Region.</p>
242    /// </note>
243    pub fn set_application_source_uri(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
244        self.application_source_uri = input;
245        self
246    }
247    /// <p>The location of the content that you want to stream. Enter an Amazon S3 URI to a bucket that contains your game or other application. The location can have a multi-level prefix structure, but it must include all the files needed to run the content. Amazon GameLift Streams copies everything under the specified location.</p>
248    /// <p>This value is immutable. To designate a different content location, create a new application.</p><note>
249    /// <p>The Amazon S3 bucket and the Amazon GameLift Streams application must be in the same Amazon Web Services Region.</p>
250    /// </note>
251    pub fn get_application_source_uri(&self) -> &::std::option::Option<::std::string::String> {
252        &self.application_source_uri
253    }
254    /// Appends an item to `application_log_paths`.
255    ///
256    /// To override the contents of this collection use [`set_application_log_paths`](Self::set_application_log_paths).
257    ///
258    /// <p>Locations of log files that your content generates during a stream session. Enter path values that are relative to the <code>ApplicationSourceUri</code> location. You can specify up to 10 log paths. Amazon GameLift Streams uploads designated log files to the Amazon S3 bucket that you specify in <code>ApplicationLogOutputUri</code> at the end of a stream session. To retrieve stored log files, call <a href="https://docs.aws.amazon.com/gameliftstreams/latest/apireference/API_GetStreamSession.html">GetStreamSession</a> and get the <code>LogFileLocationUri</code>.</p>
259    pub fn application_log_paths(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
260        let mut v = self.application_log_paths.unwrap_or_default();
261        v.push(input.into());
262        self.application_log_paths = ::std::option::Option::Some(v);
263        self
264    }
265    /// <p>Locations of log files that your content generates during a stream session. Enter path values that are relative to the <code>ApplicationSourceUri</code> location. You can specify up to 10 log paths. Amazon GameLift Streams uploads designated log files to the Amazon S3 bucket that you specify in <code>ApplicationLogOutputUri</code> at the end of a stream session. To retrieve stored log files, call <a href="https://docs.aws.amazon.com/gameliftstreams/latest/apireference/API_GetStreamSession.html">GetStreamSession</a> and get the <code>LogFileLocationUri</code>.</p>
266    pub fn set_application_log_paths(mut self, input: ::std::option::Option<::std::vec::Vec<::std::string::String>>) -> Self {
267        self.application_log_paths = input;
268        self
269    }
270    /// <p>Locations of log files that your content generates during a stream session. Enter path values that are relative to the <code>ApplicationSourceUri</code> location. You can specify up to 10 log paths. Amazon GameLift Streams uploads designated log files to the Amazon S3 bucket that you specify in <code>ApplicationLogOutputUri</code> at the end of a stream session. To retrieve stored log files, call <a href="https://docs.aws.amazon.com/gameliftstreams/latest/apireference/API_GetStreamSession.html">GetStreamSession</a> and get the <code>LogFileLocationUri</code>.</p>
271    pub fn get_application_log_paths(&self) -> &::std::option::Option<::std::vec::Vec<::std::string::String>> {
272        &self.application_log_paths
273    }
274    /// <p>An Amazon S3 URI to a bucket where you would like Amazon GameLift Streams to save application logs. Required if you specify one or more <code>ApplicationLogPaths</code>.</p><note>
275    /// <p>The log bucket must have permissions that give Amazon GameLift Streams access to write the log files. For more information, see <a href="https://docs.aws.amazon.com/gameliftstreams/latest/developerguide/applications.html#application-bucket-permission-template">Application log bucket permission policy</a> in the <i>Amazon GameLift Streams Developer Guide</i>.</p>
276    /// </note>
277    pub fn application_log_output_uri(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
278        self.application_log_output_uri = ::std::option::Option::Some(input.into());
279        self
280    }
281    /// <p>An Amazon S3 URI to a bucket where you would like Amazon GameLift Streams to save application logs. Required if you specify one or more <code>ApplicationLogPaths</code>.</p><note>
282    /// <p>The log bucket must have permissions that give Amazon GameLift Streams access to write the log files. For more information, see <a href="https://docs.aws.amazon.com/gameliftstreams/latest/developerguide/applications.html#application-bucket-permission-template">Application log bucket permission policy</a> in the <i>Amazon GameLift Streams Developer Guide</i>.</p>
283    /// </note>
284    pub fn set_application_log_output_uri(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
285        self.application_log_output_uri = input;
286        self
287    }
288    /// <p>An Amazon S3 URI to a bucket where you would like Amazon GameLift Streams to save application logs. Required if you specify one or more <code>ApplicationLogPaths</code>.</p><note>
289    /// <p>The log bucket must have permissions that give Amazon GameLift Streams access to write the log files. For more information, see <a href="https://docs.aws.amazon.com/gameliftstreams/latest/developerguide/applications.html#application-bucket-permission-template">Application log bucket permission policy</a> in the <i>Amazon GameLift Streams Developer Guide</i>.</p>
290    /// </note>
291    pub fn get_application_log_output_uri(&self) -> &::std::option::Option<::std::string::String> {
292        &self.application_log_output_uri
293    }
294    /// Adds a key-value pair to `tags`.
295    ///
296    /// To override the contents of this collection use [`set_tags`](Self::set_tags).
297    ///
298    /// <p>A list of labels to assign to the new application resource. Tags are developer-defined key-value pairs. Tagging Amazon Web Services resources is useful for resource management, access management and cost allocation. See <a href="https://docs.aws.amazon.com/general/latest/gr/aws_tagging.html"> Tagging Amazon Web Services Resources</a> in the <i>Amazon Web Services General Reference</i>. You can use <a href="https://docs.aws.amazon.com/gameliftstreams/latest/apireference/API_TagResource.html">TagResource</a> to add tags, <a href="https://docs.aws.amazon.com/gameliftstreams/latest/apireference/API_UntagResource.html">UntagResource</a> to remove tags, and <a href="https://docs.aws.amazon.com/gameliftstreams/latest/apireference/API_ListTagsForResource.html">ListTagsForResource</a> to view tags on existing resources.</p>
299    pub fn tags(mut self, k: impl ::std::convert::Into<::std::string::String>, v: impl ::std::convert::Into<::std::string::String>) -> Self {
300        let mut hash_map = self.tags.unwrap_or_default();
301        hash_map.insert(k.into(), v.into());
302        self.tags = ::std::option::Option::Some(hash_map);
303        self
304    }
305    /// <p>A list of labels to assign to the new application resource. Tags are developer-defined key-value pairs. Tagging Amazon Web Services resources is useful for resource management, access management and cost allocation. See <a href="https://docs.aws.amazon.com/general/latest/gr/aws_tagging.html"> Tagging Amazon Web Services Resources</a> in the <i>Amazon Web Services General Reference</i>. You can use <a href="https://docs.aws.amazon.com/gameliftstreams/latest/apireference/API_TagResource.html">TagResource</a> to add tags, <a href="https://docs.aws.amazon.com/gameliftstreams/latest/apireference/API_UntagResource.html">UntagResource</a> to remove tags, and <a href="https://docs.aws.amazon.com/gameliftstreams/latest/apireference/API_ListTagsForResource.html">ListTagsForResource</a> to view tags on existing resources.</p>
306    pub fn set_tags(mut self, input: ::std::option::Option<::std::collections::HashMap<::std::string::String, ::std::string::String>>) -> Self {
307        self.tags = input;
308        self
309    }
310    /// <p>A list of labels to assign to the new application resource. Tags are developer-defined key-value pairs. Tagging Amazon Web Services resources is useful for resource management, access management and cost allocation. See <a href="https://docs.aws.amazon.com/general/latest/gr/aws_tagging.html"> Tagging Amazon Web Services Resources</a> in the <i>Amazon Web Services General Reference</i>. You can use <a href="https://docs.aws.amazon.com/gameliftstreams/latest/apireference/API_TagResource.html">TagResource</a> to add tags, <a href="https://docs.aws.amazon.com/gameliftstreams/latest/apireference/API_UntagResource.html">UntagResource</a> to remove tags, and <a href="https://docs.aws.amazon.com/gameliftstreams/latest/apireference/API_ListTagsForResource.html">ListTagsForResource</a> to view tags on existing resources.</p>
311    pub fn get_tags(&self) -> &::std::option::Option<::std::collections::HashMap<::std::string::String, ::std::string::String>> {
312        &self.tags
313    }
314    /// <p>A unique identifier that represents a client request. The request is idempotent, which ensures that an API request completes only once. When users send a request, Amazon GameLift Streams automatically populates this field.</p>
315    pub fn client_token(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
316        self.client_token = ::std::option::Option::Some(input.into());
317        self
318    }
319    /// <p>A unique identifier that represents a client request. The request is idempotent, which ensures that an API request completes only once. When users send a request, Amazon GameLift Streams automatically populates this field.</p>
320    pub fn set_client_token(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
321        self.client_token = input;
322        self
323    }
324    /// <p>A unique identifier that represents a client request. The request is idempotent, which ensures that an API request completes only once. When users send a request, Amazon GameLift Streams automatically populates this field.</p>
325    pub fn get_client_token(&self) -> &::std::option::Option<::std::string::String> {
326        &self.client_token
327    }
328    /// Consumes the builder and constructs a [`CreateApplicationInput`](crate::operation::create_application::CreateApplicationInput).
329    pub fn build(
330        self,
331    ) -> ::std::result::Result<crate::operation::create_application::CreateApplicationInput, ::aws_smithy_types::error::operation::BuildError> {
332        ::std::result::Result::Ok(crate::operation::create_application::CreateApplicationInput {
333            description: self.description,
334            runtime_environment: self.runtime_environment,
335            executable_path: self.executable_path,
336            application_source_uri: self.application_source_uri,
337            application_log_paths: self.application_log_paths,
338            application_log_output_uri: self.application_log_output_uri,
339            tags: self.tags,
340            client_token: self.client_token,
341        })
342    }
343}