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}