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 9.0-2 (<code>Type=PROTON, Version=20250516</code>)</p></li>
24    /// <li>
25    /// <p>Proton 8.0-5 (<code>Type=PROTON, Version=20241007</code>)</p></li>
26    /// <li>
27    /// <p>Proton 8.0-2c (<code>Type=PROTON, Version=20230704</code>)</p></li>
28    /// </ul></li>
29    /// </ul>
30    pub runtime_environment: ::std::option::Option<crate::types::RuntimeEnvironment>,
31    /// <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>
32    pub executable_path: ::std::option::Option<::std::string::String>,
33    /// <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>
34    /// <p>This value is immutable. To designate a different content location, create a new application.</p><note>
35    /// <p>The Amazon S3 bucket and the Amazon GameLift Streams application must be in the same Amazon Web Services Region.</p>
36    /// </note>
37    pub application_source_uri: ::std::option::Option<::std::string::String>,
38    /// <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>
39    pub application_log_paths: ::std::option::Option<::std::vec::Vec<::std::string::String>>,
40    /// <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>
41    /// <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>
42    /// </note>
43    pub application_log_output_uri: ::std::option::Option<::std::string::String>,
44    /// <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>
45    pub tags: ::std::option::Option<::std::collections::HashMap<::std::string::String, ::std::string::String>>,
46    /// <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>
47    pub client_token: ::std::option::Option<::std::string::String>,
48}
49impl CreateApplicationInput {
50    /// <p>A human-readable label for the application. You can update this value later.</p>
51    pub fn description(&self) -> ::std::option::Option<&str> {
52        self.description.as_deref()
53    }
54    /// <p>Configuration settings that identify the operating system for an application resource. This can also include a compatibility layer and other drivers.</p>
55    /// <p>A runtime environment can be one of the following:</p>
56    /// <ul>
57    /// <li>
58    /// <p>For Linux applications</p>
59    /// <ul>
60    /// <li>
61    /// <p>Ubuntu 22.04 LTS (<code>Type=UBUNTU, Version=22_04_LTS</code>)</p></li>
62    /// </ul></li>
63    /// <li>
64    /// <p>For Windows applications</p>
65    /// <ul>
66    /// <li>
67    /// <p>Microsoft Windows Server 2022 Base (<code>Type=WINDOWS, Version=2022</code>)</p></li>
68    /// <li>
69    /// <p>Proton 9.0-2 (<code>Type=PROTON, Version=20250516</code>)</p></li>
70    /// <li>
71    /// <p>Proton 8.0-5 (<code>Type=PROTON, Version=20241007</code>)</p></li>
72    /// <li>
73    /// <p>Proton 8.0-2c (<code>Type=PROTON, Version=20230704</code>)</p></li>
74    /// </ul></li>
75    /// </ul>
76    pub fn runtime_environment(&self) -> ::std::option::Option<&crate::types::RuntimeEnvironment> {
77        self.runtime_environment.as_ref()
78    }
79    /// <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>
80    pub fn executable_path(&self) -> ::std::option::Option<&str> {
81        self.executable_path.as_deref()
82    }
83    /// <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>
84    /// <p>This value is immutable. To designate a different content location, create a new application.</p><note>
85    /// <p>The Amazon S3 bucket and the Amazon GameLift Streams application must be in the same Amazon Web Services Region.</p>
86    /// </note>
87    pub fn application_source_uri(&self) -> ::std::option::Option<&str> {
88        self.application_source_uri.as_deref()
89    }
90    /// <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>
91    ///
92    /// 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()`.
93    pub fn application_log_paths(&self) -> &[::std::string::String] {
94        self.application_log_paths.as_deref().unwrap_or_default()
95    }
96    /// <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>
97    /// <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>
98    /// </note>
99    pub fn application_log_output_uri(&self) -> ::std::option::Option<&str> {
100        self.application_log_output_uri.as_deref()
101    }
102    /// <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>
103    pub fn tags(&self) -> ::std::option::Option<&::std::collections::HashMap<::std::string::String, ::std::string::String>> {
104        self.tags.as_ref()
105    }
106    /// <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>
107    pub fn client_token(&self) -> ::std::option::Option<&str> {
108        self.client_token.as_deref()
109    }
110}
111impl CreateApplicationInput {
112    /// Creates a new builder-style object to manufacture [`CreateApplicationInput`](crate::operation::create_application::CreateApplicationInput).
113    pub fn builder() -> crate::operation::create_application::builders::CreateApplicationInputBuilder {
114        crate::operation::create_application::builders::CreateApplicationInputBuilder::default()
115    }
116}
117
118/// A builder for [`CreateApplicationInput`](crate::operation::create_application::CreateApplicationInput).
119#[derive(::std::clone::Clone, ::std::cmp::PartialEq, ::std::default::Default, ::std::fmt::Debug)]
120#[non_exhaustive]
121pub struct CreateApplicationInputBuilder {
122    pub(crate) description: ::std::option::Option<::std::string::String>,
123    pub(crate) runtime_environment: ::std::option::Option<crate::types::RuntimeEnvironment>,
124    pub(crate) executable_path: ::std::option::Option<::std::string::String>,
125    pub(crate) application_source_uri: ::std::option::Option<::std::string::String>,
126    pub(crate) application_log_paths: ::std::option::Option<::std::vec::Vec<::std::string::String>>,
127    pub(crate) application_log_output_uri: ::std::option::Option<::std::string::String>,
128    pub(crate) tags: ::std::option::Option<::std::collections::HashMap<::std::string::String, ::std::string::String>>,
129    pub(crate) client_token: ::std::option::Option<::std::string::String>,
130}
131impl CreateApplicationInputBuilder {
132    /// <p>A human-readable label for the application. You can update this value later.</p>
133    /// This field is required.
134    pub fn description(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
135        self.description = ::std::option::Option::Some(input.into());
136        self
137    }
138    /// <p>A human-readable label for the application. You can update this value later.</p>
139    pub fn set_description(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
140        self.description = input;
141        self
142    }
143    /// <p>A human-readable label for the application. You can update this value later.</p>
144    pub fn get_description(&self) -> &::std::option::Option<::std::string::String> {
145        &self.description
146    }
147    /// <p>Configuration settings that identify the operating system for an application resource. This can also include a compatibility layer and other drivers.</p>
148    /// <p>A runtime environment can be one of the following:</p>
149    /// <ul>
150    /// <li>
151    /// <p>For Linux applications</p>
152    /// <ul>
153    /// <li>
154    /// <p>Ubuntu 22.04 LTS (<code>Type=UBUNTU, Version=22_04_LTS</code>)</p></li>
155    /// </ul></li>
156    /// <li>
157    /// <p>For Windows applications</p>
158    /// <ul>
159    /// <li>
160    /// <p>Microsoft Windows Server 2022 Base (<code>Type=WINDOWS, Version=2022</code>)</p></li>
161    /// <li>
162    /// <p>Proton 9.0-2 (<code>Type=PROTON, Version=20250516</code>)</p></li>
163    /// <li>
164    /// <p>Proton 8.0-5 (<code>Type=PROTON, Version=20241007</code>)</p></li>
165    /// <li>
166    /// <p>Proton 8.0-2c (<code>Type=PROTON, Version=20230704</code>)</p></li>
167    /// </ul></li>
168    /// </ul>
169    /// This field is required.
170    pub fn runtime_environment(mut self, input: crate::types::RuntimeEnvironment) -> Self {
171        self.runtime_environment = ::std::option::Option::Some(input);
172        self
173    }
174    /// <p>Configuration settings that identify the operating system for an application resource. This can also include a compatibility layer and other drivers.</p>
175    /// <p>A runtime environment can be one of the following:</p>
176    /// <ul>
177    /// <li>
178    /// <p>For Linux applications</p>
179    /// <ul>
180    /// <li>
181    /// <p>Ubuntu 22.04 LTS (<code>Type=UBUNTU, Version=22_04_LTS</code>)</p></li>
182    /// </ul></li>
183    /// <li>
184    /// <p>For Windows applications</p>
185    /// <ul>
186    /// <li>
187    /// <p>Microsoft Windows Server 2022 Base (<code>Type=WINDOWS, Version=2022</code>)</p></li>
188    /// <li>
189    /// <p>Proton 9.0-2 (<code>Type=PROTON, Version=20250516</code>)</p></li>
190    /// <li>
191    /// <p>Proton 8.0-5 (<code>Type=PROTON, Version=20241007</code>)</p></li>
192    /// <li>
193    /// <p>Proton 8.0-2c (<code>Type=PROTON, Version=20230704</code>)</p></li>
194    /// </ul></li>
195    /// </ul>
196    pub fn set_runtime_environment(mut self, input: ::std::option::Option<crate::types::RuntimeEnvironment>) -> Self {
197        self.runtime_environment = input;
198        self
199    }
200    /// <p>Configuration settings that identify the operating system for an application resource. This can also include a compatibility layer and other drivers.</p>
201    /// <p>A runtime environment can be one of the following:</p>
202    /// <ul>
203    /// <li>
204    /// <p>For Linux applications</p>
205    /// <ul>
206    /// <li>
207    /// <p>Ubuntu 22.04 LTS (<code>Type=UBUNTU, Version=22_04_LTS</code>)</p></li>
208    /// </ul></li>
209    /// <li>
210    /// <p>For Windows applications</p>
211    /// <ul>
212    /// <li>
213    /// <p>Microsoft Windows Server 2022 Base (<code>Type=WINDOWS, Version=2022</code>)</p></li>
214    /// <li>
215    /// <p>Proton 9.0-2 (<code>Type=PROTON, Version=20250516</code>)</p></li>
216    /// <li>
217    /// <p>Proton 8.0-5 (<code>Type=PROTON, Version=20241007</code>)</p></li>
218    /// <li>
219    /// <p>Proton 8.0-2c (<code>Type=PROTON, Version=20230704</code>)</p></li>
220    /// </ul></li>
221    /// </ul>
222    pub fn get_runtime_environment(&self) -> &::std::option::Option<crate::types::RuntimeEnvironment> {
223        &self.runtime_environment
224    }
225    /// <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>
226    /// This field is required.
227    pub fn executable_path(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
228        self.executable_path = ::std::option::Option::Some(input.into());
229        self
230    }
231    /// <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>
232    pub fn set_executable_path(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
233        self.executable_path = input;
234        self
235    }
236    /// <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>
237    pub fn get_executable_path(&self) -> &::std::option::Option<::std::string::String> {
238        &self.executable_path
239    }
240    /// <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>
241    /// <p>This value is immutable. To designate a different content location, create a new application.</p><note>
242    /// <p>The Amazon S3 bucket and the Amazon GameLift Streams application must be in the same Amazon Web Services Region.</p>
243    /// </note>
244    /// This field is required.
245    pub fn application_source_uri(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
246        self.application_source_uri = ::std::option::Option::Some(input.into());
247        self
248    }
249    /// <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>
250    /// <p>This value is immutable. To designate a different content location, create a new application.</p><note>
251    /// <p>The Amazon S3 bucket and the Amazon GameLift Streams application must be in the same Amazon Web Services Region.</p>
252    /// </note>
253    pub fn set_application_source_uri(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
254        self.application_source_uri = input;
255        self
256    }
257    /// <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>
258    /// <p>This value is immutable. To designate a different content location, create a new application.</p><note>
259    /// <p>The Amazon S3 bucket and the Amazon GameLift Streams application must be in the same Amazon Web Services Region.</p>
260    /// </note>
261    pub fn get_application_source_uri(&self) -> &::std::option::Option<::std::string::String> {
262        &self.application_source_uri
263    }
264    /// Appends an item to `application_log_paths`.
265    ///
266    /// To override the contents of this collection use [`set_application_log_paths`](Self::set_application_log_paths).
267    ///
268    /// <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>
269    pub fn application_log_paths(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
270        let mut v = self.application_log_paths.unwrap_or_default();
271        v.push(input.into());
272        self.application_log_paths = ::std::option::Option::Some(v);
273        self
274    }
275    /// <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>
276    pub fn set_application_log_paths(mut self, input: ::std::option::Option<::std::vec::Vec<::std::string::String>>) -> Self {
277        self.application_log_paths = input;
278        self
279    }
280    /// <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>
281    pub fn get_application_log_paths(&self) -> &::std::option::Option<::std::vec::Vec<::std::string::String>> {
282        &self.application_log_paths
283    }
284    /// <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>
285    /// <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>
286    /// </note>
287    pub fn application_log_output_uri(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
288        self.application_log_output_uri = ::std::option::Option::Some(input.into());
289        self
290    }
291    /// <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>
292    /// <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>
293    /// </note>
294    pub fn set_application_log_output_uri(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
295        self.application_log_output_uri = input;
296        self
297    }
298    /// <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>
299    /// <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>
300    /// </note>
301    pub fn get_application_log_output_uri(&self) -> &::std::option::Option<::std::string::String> {
302        &self.application_log_output_uri
303    }
304    /// Adds a key-value pair to `tags`.
305    ///
306    /// To override the contents of this collection use [`set_tags`](Self::set_tags).
307    ///
308    /// <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>
309    pub fn tags(mut self, k: impl ::std::convert::Into<::std::string::String>, v: impl ::std::convert::Into<::std::string::String>) -> Self {
310        let mut hash_map = self.tags.unwrap_or_default();
311        hash_map.insert(k.into(), v.into());
312        self.tags = ::std::option::Option::Some(hash_map);
313        self
314    }
315    /// <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>
316    pub fn set_tags(mut self, input: ::std::option::Option<::std::collections::HashMap<::std::string::String, ::std::string::String>>) -> Self {
317        self.tags = input;
318        self
319    }
320    /// <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>
321    pub fn get_tags(&self) -> &::std::option::Option<::std::collections::HashMap<::std::string::String, ::std::string::String>> {
322        &self.tags
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 client_token(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
326        self.client_token = ::std::option::Option::Some(input.into());
327        self
328    }
329    /// <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>
330    pub fn set_client_token(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
331        self.client_token = input;
332        self
333    }
334    /// <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>
335    pub fn get_client_token(&self) -> &::std::option::Option<::std::string::String> {
336        &self.client_token
337    }
338    /// Consumes the builder and constructs a [`CreateApplicationInput`](crate::operation::create_application::CreateApplicationInput).
339    pub fn build(
340        self,
341    ) -> ::std::result::Result<crate::operation::create_application::CreateApplicationInput, ::aws_smithy_types::error::operation::BuildError> {
342        ::std::result::Result::Ok(crate::operation::create_application::CreateApplicationInput {
343            description: self.description,
344            runtime_environment: self.runtime_environment,
345            executable_path: self.executable_path,
346            application_source_uri: self.application_source_uri,
347            application_log_paths: self.application_log_paths,
348            application_log_output_uri: self.application_log_output_uri,
349            tags: self.tags,
350            client_token: self.client_token,
351        })
352    }
353}