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}