aws_sdk_gameliftstreams/operation/create_application/_create_application_output.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 CreateApplicationOutput {
6 /// <p>The <a href="https://docs.aws.amazon.com/IAM/latest/UserGuide/reference-arns.html">Amazon Resource Name (ARN)</a> that's assigned to an application resource and uniquely identifies it across all Amazon Web Services Regions. Format is <code>arn:aws:gameliftstreams:\[AWS Region\]:\[AWS account\]:application/\[resource ID\]</code>.</p>
7 pub arn: ::std::string::String,
8 /// <p>A human-readable label for the application. You can edit this value.</p>
9 pub description: ::std::option::Option<::std::string::String>,
10 /// <p>Configuration settings that identify the operating system for an application resource. This can also include a compatibility layer and other drivers.</p>
11 /// <p>A runtime environment can be one of the following:</p>
12 /// <ul>
13 /// <li>
14 /// <p>For Linux applications</p>
15 /// <ul>
16 /// <li>
17 /// <p>Ubuntu 22.04 LTS (<code>Type=UBUNTU, Version=22_04_LTS</code>)</p></li>
18 /// </ul></li>
19 /// <li>
20 /// <p>For Windows applications</p>
21 /// <ul>
22 /// <li>
23 /// <p>Microsoft Windows Server 2022 Base (<code>Type=WINDOWS, Version=2022</code>)</p></li>
24 /// <li>
25 /// <p>Proton 9.0-2 (<code>Type=PROTON, Version=20250516</code>)</p></li>
26 /// <li>
27 /// <p>Proton 8.0-5 (<code>Type=PROTON, Version=20241007</code>)</p></li>
28 /// <li>
29 /// <p>Proton 8.0-2c (<code>Type=PROTON, Version=20230704</code>)</p></li>
30 /// </ul></li>
31 /// </ul>
32 pub runtime_environment: ::std::option::Option<crate::types::RuntimeEnvironment>,
33 /// <p>The path and file name of the executable file that launches the content for streaming.</p>
34 pub executable_path: ::std::option::Option<::std::string::String>,
35 /// <p>Locations of log files that your content generates during a stream session. Amazon GameLift Streams uploads 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>
36 pub application_log_paths: ::std::option::Option<::std::vec::Vec<::std::string::String>>,
37 /// <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>
38 pub application_log_output_uri: ::std::option::Option<::std::string::String>,
39 /// <p>The original Amazon S3 location of uploaded stream content for the application.</p>
40 pub application_source_uri: ::std::option::Option<::std::string::String>,
41 /// <p>A unique ID value that is assigned to the resource when it's created. Format example: <code>a-9ZY8X7Wv6</code>.</p>
42 pub id: ::std::option::Option<::std::string::String>,
43 /// <p>The current status of the application resource. Possible statuses include the following:</p>
44 /// <ul>
45 /// <li>
46 /// <p><code>INITIALIZED</code>: Amazon GameLift Streams has received the request and is initiating the work flow to create an application.</p></li>
47 /// <li>
48 /// <p><code>PROCESSING</code>: The create application work flow is in process. Amazon GameLift Streams is copying the content and caching for future deployment in a stream group.</p></li>
49 /// <li>
50 /// <p><code>READY</code>: The application is ready to deploy in a stream group.</p></li>
51 /// <li>
52 /// <p><code>ERROR</code>: An error occurred when setting up the application. See <code>StatusReason</code> for more information.</p></li>
53 /// <li>
54 /// <p><code>DELETING</code>: Amazon GameLift Streams is in the process of deleting the application.</p></li>
55 /// </ul>
56 pub status: ::std::option::Option<crate::types::ApplicationStatus>,
57 /// <p>A short description of the status reason when the application is in <code>ERROR</code> status.</p>
58 pub status_reason: ::std::option::Option<crate::types::ApplicationStatusReason>,
59 /// <p>A set of replication statuses for each location.</p>
60 pub replication_statuses: ::std::option::Option<::std::vec::Vec<crate::types::ReplicationStatus>>,
61 /// <p>A timestamp that indicates when this resource was created. Timestamps are expressed using in ISO8601 format, such as: <code>2022-12-27T22:29:40+00:00</code> (UTC).</p>
62 pub created_at: ::std::option::Option<::aws_smithy_types::DateTime>,
63 /// <p>A timestamp that indicates when this resource was last updated. Timestamps are expressed using in ISO8601 format, such as: <code>2022-12-27T22:29:40+00:00</code> (UTC).</p>
64 pub last_updated_at: ::std::option::Option<::aws_smithy_types::DateTime>,
65 /// <p>A newly created application is not associated to any stream groups. This value is empty.</p>
66 pub associated_stream_groups: ::std::option::Option<::std::vec::Vec<::std::string::String>>,
67 _request_id: Option<String>,
68}
69impl CreateApplicationOutput {
70 /// <p>The <a href="https://docs.aws.amazon.com/IAM/latest/UserGuide/reference-arns.html">Amazon Resource Name (ARN)</a> that's assigned to an application resource and uniquely identifies it across all Amazon Web Services Regions. Format is <code>arn:aws:gameliftstreams:\[AWS Region\]:\[AWS account\]:application/\[resource ID\]</code>.</p>
71 pub fn arn(&self) -> &str {
72 use std::ops::Deref;
73 self.arn.deref()
74 }
75 /// <p>A human-readable label for the application. You can edit this value.</p>
76 pub fn description(&self) -> ::std::option::Option<&str> {
77 self.description.as_deref()
78 }
79 /// <p>Configuration settings that identify the operating system for an application resource. This can also include a compatibility layer and other drivers.</p>
80 /// <p>A runtime environment can be one of the following:</p>
81 /// <ul>
82 /// <li>
83 /// <p>For Linux applications</p>
84 /// <ul>
85 /// <li>
86 /// <p>Ubuntu 22.04 LTS (<code>Type=UBUNTU, Version=22_04_LTS</code>)</p></li>
87 /// </ul></li>
88 /// <li>
89 /// <p>For Windows applications</p>
90 /// <ul>
91 /// <li>
92 /// <p>Microsoft Windows Server 2022 Base (<code>Type=WINDOWS, Version=2022</code>)</p></li>
93 /// <li>
94 /// <p>Proton 9.0-2 (<code>Type=PROTON, Version=20250516</code>)</p></li>
95 /// <li>
96 /// <p>Proton 8.0-5 (<code>Type=PROTON, Version=20241007</code>)</p></li>
97 /// <li>
98 /// <p>Proton 8.0-2c (<code>Type=PROTON, Version=20230704</code>)</p></li>
99 /// </ul></li>
100 /// </ul>
101 pub fn runtime_environment(&self) -> ::std::option::Option<&crate::types::RuntimeEnvironment> {
102 self.runtime_environment.as_ref()
103 }
104 /// <p>The path and file name of the executable file that launches the content for streaming.</p>
105 pub fn executable_path(&self) -> ::std::option::Option<&str> {
106 self.executable_path.as_deref()
107 }
108 /// <p>Locations of log files that your content generates during a stream session. Amazon GameLift Streams uploads 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>
109 ///
110 /// 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()`.
111 pub fn application_log_paths(&self) -> &[::std::string::String] {
112 self.application_log_paths.as_deref().unwrap_or_default()
113 }
114 /// <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>
115 pub fn application_log_output_uri(&self) -> ::std::option::Option<&str> {
116 self.application_log_output_uri.as_deref()
117 }
118 /// <p>The original Amazon S3 location of uploaded stream content for the application.</p>
119 pub fn application_source_uri(&self) -> ::std::option::Option<&str> {
120 self.application_source_uri.as_deref()
121 }
122 /// <p>A unique ID value that is assigned to the resource when it's created. Format example: <code>a-9ZY8X7Wv6</code>.</p>
123 pub fn id(&self) -> ::std::option::Option<&str> {
124 self.id.as_deref()
125 }
126 /// <p>The current status of the application resource. Possible statuses include the following:</p>
127 /// <ul>
128 /// <li>
129 /// <p><code>INITIALIZED</code>: Amazon GameLift Streams has received the request and is initiating the work flow to create an application.</p></li>
130 /// <li>
131 /// <p><code>PROCESSING</code>: The create application work flow is in process. Amazon GameLift Streams is copying the content and caching for future deployment in a stream group.</p></li>
132 /// <li>
133 /// <p><code>READY</code>: The application is ready to deploy in a stream group.</p></li>
134 /// <li>
135 /// <p><code>ERROR</code>: An error occurred when setting up the application. See <code>StatusReason</code> for more information.</p></li>
136 /// <li>
137 /// <p><code>DELETING</code>: Amazon GameLift Streams is in the process of deleting the application.</p></li>
138 /// </ul>
139 pub fn status(&self) -> ::std::option::Option<&crate::types::ApplicationStatus> {
140 self.status.as_ref()
141 }
142 /// <p>A short description of the status reason when the application is in <code>ERROR</code> status.</p>
143 pub fn status_reason(&self) -> ::std::option::Option<&crate::types::ApplicationStatusReason> {
144 self.status_reason.as_ref()
145 }
146 /// <p>A set of replication statuses for each location.</p>
147 ///
148 /// If no value was sent for this field, a default will be set. If you want to determine if no value was sent, use `.replication_statuses.is_none()`.
149 pub fn replication_statuses(&self) -> &[crate::types::ReplicationStatus] {
150 self.replication_statuses.as_deref().unwrap_or_default()
151 }
152 /// <p>A timestamp that indicates when this resource was created. Timestamps are expressed using in ISO8601 format, such as: <code>2022-12-27T22:29:40+00:00</code> (UTC).</p>
153 pub fn created_at(&self) -> ::std::option::Option<&::aws_smithy_types::DateTime> {
154 self.created_at.as_ref()
155 }
156 /// <p>A timestamp that indicates when this resource was last updated. Timestamps are expressed using in ISO8601 format, such as: <code>2022-12-27T22:29:40+00:00</code> (UTC).</p>
157 pub fn last_updated_at(&self) -> ::std::option::Option<&::aws_smithy_types::DateTime> {
158 self.last_updated_at.as_ref()
159 }
160 /// <p>A newly created application is not associated to any stream groups. This value is empty.</p>
161 ///
162 /// If no value was sent for this field, a default will be set. If you want to determine if no value was sent, use `.associated_stream_groups.is_none()`.
163 pub fn associated_stream_groups(&self) -> &[::std::string::String] {
164 self.associated_stream_groups.as_deref().unwrap_or_default()
165 }
166}
167impl ::aws_types::request_id::RequestId for CreateApplicationOutput {
168 fn request_id(&self) -> Option<&str> {
169 self._request_id.as_deref()
170 }
171}
172impl CreateApplicationOutput {
173 /// Creates a new builder-style object to manufacture [`CreateApplicationOutput`](crate::operation::create_application::CreateApplicationOutput).
174 pub fn builder() -> crate::operation::create_application::builders::CreateApplicationOutputBuilder {
175 crate::operation::create_application::builders::CreateApplicationOutputBuilder::default()
176 }
177}
178
179/// A builder for [`CreateApplicationOutput`](crate::operation::create_application::CreateApplicationOutput).
180#[derive(::std::clone::Clone, ::std::cmp::PartialEq, ::std::default::Default, ::std::fmt::Debug)]
181#[non_exhaustive]
182pub struct CreateApplicationOutputBuilder {
183 pub(crate) arn: ::std::option::Option<::std::string::String>,
184 pub(crate) description: ::std::option::Option<::std::string::String>,
185 pub(crate) runtime_environment: ::std::option::Option<crate::types::RuntimeEnvironment>,
186 pub(crate) executable_path: ::std::option::Option<::std::string::String>,
187 pub(crate) application_log_paths: ::std::option::Option<::std::vec::Vec<::std::string::String>>,
188 pub(crate) application_log_output_uri: ::std::option::Option<::std::string::String>,
189 pub(crate) application_source_uri: ::std::option::Option<::std::string::String>,
190 pub(crate) id: ::std::option::Option<::std::string::String>,
191 pub(crate) status: ::std::option::Option<crate::types::ApplicationStatus>,
192 pub(crate) status_reason: ::std::option::Option<crate::types::ApplicationStatusReason>,
193 pub(crate) replication_statuses: ::std::option::Option<::std::vec::Vec<crate::types::ReplicationStatus>>,
194 pub(crate) created_at: ::std::option::Option<::aws_smithy_types::DateTime>,
195 pub(crate) last_updated_at: ::std::option::Option<::aws_smithy_types::DateTime>,
196 pub(crate) associated_stream_groups: ::std::option::Option<::std::vec::Vec<::std::string::String>>,
197 _request_id: Option<String>,
198}
199impl CreateApplicationOutputBuilder {
200 /// <p>The <a href="https://docs.aws.amazon.com/IAM/latest/UserGuide/reference-arns.html">Amazon Resource Name (ARN)</a> that's assigned to an application resource and uniquely identifies it across all Amazon Web Services Regions. Format is <code>arn:aws:gameliftstreams:\[AWS Region\]:\[AWS account\]:application/\[resource ID\]</code>.</p>
201 /// This field is required.
202 pub fn arn(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
203 self.arn = ::std::option::Option::Some(input.into());
204 self
205 }
206 /// <p>The <a href="https://docs.aws.amazon.com/IAM/latest/UserGuide/reference-arns.html">Amazon Resource Name (ARN)</a> that's assigned to an application resource and uniquely identifies it across all Amazon Web Services Regions. Format is <code>arn:aws:gameliftstreams:\[AWS Region\]:\[AWS account\]:application/\[resource ID\]</code>.</p>
207 pub fn set_arn(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
208 self.arn = input;
209 self
210 }
211 /// <p>The <a href="https://docs.aws.amazon.com/IAM/latest/UserGuide/reference-arns.html">Amazon Resource Name (ARN)</a> that's assigned to an application resource and uniquely identifies it across all Amazon Web Services Regions. Format is <code>arn:aws:gameliftstreams:\[AWS Region\]:\[AWS account\]:application/\[resource ID\]</code>.</p>
212 pub fn get_arn(&self) -> &::std::option::Option<::std::string::String> {
213 &self.arn
214 }
215 /// <p>A human-readable label for the application. You can edit this value.</p>
216 pub fn description(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
217 self.description = ::std::option::Option::Some(input.into());
218 self
219 }
220 /// <p>A human-readable label for the application. You can edit this value.</p>
221 pub fn set_description(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
222 self.description = input;
223 self
224 }
225 /// <p>A human-readable label for the application. You can edit this value.</p>
226 pub fn get_description(&self) -> &::std::option::Option<::std::string::String> {
227 &self.description
228 }
229 /// <p>Configuration settings that identify the operating system for an application resource. This can also include a compatibility layer and other drivers.</p>
230 /// <p>A runtime environment can be one of the following:</p>
231 /// <ul>
232 /// <li>
233 /// <p>For Linux applications</p>
234 /// <ul>
235 /// <li>
236 /// <p>Ubuntu 22.04 LTS (<code>Type=UBUNTU, Version=22_04_LTS</code>)</p></li>
237 /// </ul></li>
238 /// <li>
239 /// <p>For Windows applications</p>
240 /// <ul>
241 /// <li>
242 /// <p>Microsoft Windows Server 2022 Base (<code>Type=WINDOWS, Version=2022</code>)</p></li>
243 /// <li>
244 /// <p>Proton 9.0-2 (<code>Type=PROTON, Version=20250516</code>)</p></li>
245 /// <li>
246 /// <p>Proton 8.0-5 (<code>Type=PROTON, Version=20241007</code>)</p></li>
247 /// <li>
248 /// <p>Proton 8.0-2c (<code>Type=PROTON, Version=20230704</code>)</p></li>
249 /// </ul></li>
250 /// </ul>
251 pub fn runtime_environment(mut self, input: crate::types::RuntimeEnvironment) -> Self {
252 self.runtime_environment = ::std::option::Option::Some(input);
253 self
254 }
255 /// <p>Configuration settings that identify the operating system for an application resource. This can also include a compatibility layer and other drivers.</p>
256 /// <p>A runtime environment can be one of the following:</p>
257 /// <ul>
258 /// <li>
259 /// <p>For Linux applications</p>
260 /// <ul>
261 /// <li>
262 /// <p>Ubuntu 22.04 LTS (<code>Type=UBUNTU, Version=22_04_LTS</code>)</p></li>
263 /// </ul></li>
264 /// <li>
265 /// <p>For Windows applications</p>
266 /// <ul>
267 /// <li>
268 /// <p>Microsoft Windows Server 2022 Base (<code>Type=WINDOWS, Version=2022</code>)</p></li>
269 /// <li>
270 /// <p>Proton 9.0-2 (<code>Type=PROTON, Version=20250516</code>)</p></li>
271 /// <li>
272 /// <p>Proton 8.0-5 (<code>Type=PROTON, Version=20241007</code>)</p></li>
273 /// <li>
274 /// <p>Proton 8.0-2c (<code>Type=PROTON, Version=20230704</code>)</p></li>
275 /// </ul></li>
276 /// </ul>
277 pub fn set_runtime_environment(mut self, input: ::std::option::Option<crate::types::RuntimeEnvironment>) -> Self {
278 self.runtime_environment = input;
279 self
280 }
281 /// <p>Configuration settings that identify the operating system for an application resource. This can also include a compatibility layer and other drivers.</p>
282 /// <p>A runtime environment can be one of the following:</p>
283 /// <ul>
284 /// <li>
285 /// <p>For Linux applications</p>
286 /// <ul>
287 /// <li>
288 /// <p>Ubuntu 22.04 LTS (<code>Type=UBUNTU, Version=22_04_LTS</code>)</p></li>
289 /// </ul></li>
290 /// <li>
291 /// <p>For Windows applications</p>
292 /// <ul>
293 /// <li>
294 /// <p>Microsoft Windows Server 2022 Base (<code>Type=WINDOWS, Version=2022</code>)</p></li>
295 /// <li>
296 /// <p>Proton 9.0-2 (<code>Type=PROTON, Version=20250516</code>)</p></li>
297 /// <li>
298 /// <p>Proton 8.0-5 (<code>Type=PROTON, Version=20241007</code>)</p></li>
299 /// <li>
300 /// <p>Proton 8.0-2c (<code>Type=PROTON, Version=20230704</code>)</p></li>
301 /// </ul></li>
302 /// </ul>
303 pub fn get_runtime_environment(&self) -> &::std::option::Option<crate::types::RuntimeEnvironment> {
304 &self.runtime_environment
305 }
306 /// <p>The path and file name of the executable file that launches the content for streaming.</p>
307 pub fn executable_path(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
308 self.executable_path = ::std::option::Option::Some(input.into());
309 self
310 }
311 /// <p>The path and file name of the executable file that launches the content for streaming.</p>
312 pub fn set_executable_path(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
313 self.executable_path = input;
314 self
315 }
316 /// <p>The path and file name of the executable file that launches the content for streaming.</p>
317 pub fn get_executable_path(&self) -> &::std::option::Option<::std::string::String> {
318 &self.executable_path
319 }
320 /// Appends an item to `application_log_paths`.
321 ///
322 /// To override the contents of this collection use [`set_application_log_paths`](Self::set_application_log_paths).
323 ///
324 /// <p>Locations of log files that your content generates during a stream session. Amazon GameLift Streams uploads 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>
325 pub fn application_log_paths(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
326 let mut v = self.application_log_paths.unwrap_or_default();
327 v.push(input.into());
328 self.application_log_paths = ::std::option::Option::Some(v);
329 self
330 }
331 /// <p>Locations of log files that your content generates during a stream session. Amazon GameLift Streams uploads 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>
332 pub fn set_application_log_paths(mut self, input: ::std::option::Option<::std::vec::Vec<::std::string::String>>) -> Self {
333 self.application_log_paths = input;
334 self
335 }
336 /// <p>Locations of log files that your content generates during a stream session. Amazon GameLift Streams uploads 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>
337 pub fn get_application_log_paths(&self) -> &::std::option::Option<::std::vec::Vec<::std::string::String>> {
338 &self.application_log_paths
339 }
340 /// <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>
341 pub fn application_log_output_uri(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
342 self.application_log_output_uri = ::std::option::Option::Some(input.into());
343 self
344 }
345 /// <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>
346 pub fn set_application_log_output_uri(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
347 self.application_log_output_uri = input;
348 self
349 }
350 /// <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>
351 pub fn get_application_log_output_uri(&self) -> &::std::option::Option<::std::string::String> {
352 &self.application_log_output_uri
353 }
354 /// <p>The original Amazon S3 location of uploaded stream content for the application.</p>
355 pub fn application_source_uri(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
356 self.application_source_uri = ::std::option::Option::Some(input.into());
357 self
358 }
359 /// <p>The original Amazon S3 location of uploaded stream content for the application.</p>
360 pub fn set_application_source_uri(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
361 self.application_source_uri = input;
362 self
363 }
364 /// <p>The original Amazon S3 location of uploaded stream content for the application.</p>
365 pub fn get_application_source_uri(&self) -> &::std::option::Option<::std::string::String> {
366 &self.application_source_uri
367 }
368 /// <p>A unique ID value that is assigned to the resource when it's created. Format example: <code>a-9ZY8X7Wv6</code>.</p>
369 pub fn id(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
370 self.id = ::std::option::Option::Some(input.into());
371 self
372 }
373 /// <p>A unique ID value that is assigned to the resource when it's created. Format example: <code>a-9ZY8X7Wv6</code>.</p>
374 pub fn set_id(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
375 self.id = input;
376 self
377 }
378 /// <p>A unique ID value that is assigned to the resource when it's created. Format example: <code>a-9ZY8X7Wv6</code>.</p>
379 pub fn get_id(&self) -> &::std::option::Option<::std::string::String> {
380 &self.id
381 }
382 /// <p>The current status of the application resource. Possible statuses include the following:</p>
383 /// <ul>
384 /// <li>
385 /// <p><code>INITIALIZED</code>: Amazon GameLift Streams has received the request and is initiating the work flow to create an application.</p></li>
386 /// <li>
387 /// <p><code>PROCESSING</code>: The create application work flow is in process. Amazon GameLift Streams is copying the content and caching for future deployment in a stream group.</p></li>
388 /// <li>
389 /// <p><code>READY</code>: The application is ready to deploy in a stream group.</p></li>
390 /// <li>
391 /// <p><code>ERROR</code>: An error occurred when setting up the application. See <code>StatusReason</code> for more information.</p></li>
392 /// <li>
393 /// <p><code>DELETING</code>: Amazon GameLift Streams is in the process of deleting the application.</p></li>
394 /// </ul>
395 pub fn status(mut self, input: crate::types::ApplicationStatus) -> Self {
396 self.status = ::std::option::Option::Some(input);
397 self
398 }
399 /// <p>The current status of the application resource. Possible statuses include the following:</p>
400 /// <ul>
401 /// <li>
402 /// <p><code>INITIALIZED</code>: Amazon GameLift Streams has received the request and is initiating the work flow to create an application.</p></li>
403 /// <li>
404 /// <p><code>PROCESSING</code>: The create application work flow is in process. Amazon GameLift Streams is copying the content and caching for future deployment in a stream group.</p></li>
405 /// <li>
406 /// <p><code>READY</code>: The application is ready to deploy in a stream group.</p></li>
407 /// <li>
408 /// <p><code>ERROR</code>: An error occurred when setting up the application. See <code>StatusReason</code> for more information.</p></li>
409 /// <li>
410 /// <p><code>DELETING</code>: Amazon GameLift Streams is in the process of deleting the application.</p></li>
411 /// </ul>
412 pub fn set_status(mut self, input: ::std::option::Option<crate::types::ApplicationStatus>) -> Self {
413 self.status = input;
414 self
415 }
416 /// <p>The current status of the application resource. Possible statuses include the following:</p>
417 /// <ul>
418 /// <li>
419 /// <p><code>INITIALIZED</code>: Amazon GameLift Streams has received the request and is initiating the work flow to create an application.</p></li>
420 /// <li>
421 /// <p><code>PROCESSING</code>: The create application work flow is in process. Amazon GameLift Streams is copying the content and caching for future deployment in a stream group.</p></li>
422 /// <li>
423 /// <p><code>READY</code>: The application is ready to deploy in a stream group.</p></li>
424 /// <li>
425 /// <p><code>ERROR</code>: An error occurred when setting up the application. See <code>StatusReason</code> for more information.</p></li>
426 /// <li>
427 /// <p><code>DELETING</code>: Amazon GameLift Streams is in the process of deleting the application.</p></li>
428 /// </ul>
429 pub fn get_status(&self) -> &::std::option::Option<crate::types::ApplicationStatus> {
430 &self.status
431 }
432 /// <p>A short description of the status reason when the application is in <code>ERROR</code> status.</p>
433 pub fn status_reason(mut self, input: crate::types::ApplicationStatusReason) -> Self {
434 self.status_reason = ::std::option::Option::Some(input);
435 self
436 }
437 /// <p>A short description of the status reason when the application is in <code>ERROR</code> status.</p>
438 pub fn set_status_reason(mut self, input: ::std::option::Option<crate::types::ApplicationStatusReason>) -> Self {
439 self.status_reason = input;
440 self
441 }
442 /// <p>A short description of the status reason when the application is in <code>ERROR</code> status.</p>
443 pub fn get_status_reason(&self) -> &::std::option::Option<crate::types::ApplicationStatusReason> {
444 &self.status_reason
445 }
446 /// Appends an item to `replication_statuses`.
447 ///
448 /// To override the contents of this collection use [`set_replication_statuses`](Self::set_replication_statuses).
449 ///
450 /// <p>A set of replication statuses for each location.</p>
451 pub fn replication_statuses(mut self, input: crate::types::ReplicationStatus) -> Self {
452 let mut v = self.replication_statuses.unwrap_or_default();
453 v.push(input);
454 self.replication_statuses = ::std::option::Option::Some(v);
455 self
456 }
457 /// <p>A set of replication statuses for each location.</p>
458 pub fn set_replication_statuses(mut self, input: ::std::option::Option<::std::vec::Vec<crate::types::ReplicationStatus>>) -> Self {
459 self.replication_statuses = input;
460 self
461 }
462 /// <p>A set of replication statuses for each location.</p>
463 pub fn get_replication_statuses(&self) -> &::std::option::Option<::std::vec::Vec<crate::types::ReplicationStatus>> {
464 &self.replication_statuses
465 }
466 /// <p>A timestamp that indicates when this resource was created. Timestamps are expressed using in ISO8601 format, such as: <code>2022-12-27T22:29:40+00:00</code> (UTC).</p>
467 pub fn created_at(mut self, input: ::aws_smithy_types::DateTime) -> Self {
468 self.created_at = ::std::option::Option::Some(input);
469 self
470 }
471 /// <p>A timestamp that indicates when this resource was created. Timestamps are expressed using in ISO8601 format, such as: <code>2022-12-27T22:29:40+00:00</code> (UTC).</p>
472 pub fn set_created_at(mut self, input: ::std::option::Option<::aws_smithy_types::DateTime>) -> Self {
473 self.created_at = input;
474 self
475 }
476 /// <p>A timestamp that indicates when this resource was created. Timestamps are expressed using in ISO8601 format, such as: <code>2022-12-27T22:29:40+00:00</code> (UTC).</p>
477 pub fn get_created_at(&self) -> &::std::option::Option<::aws_smithy_types::DateTime> {
478 &self.created_at
479 }
480 /// <p>A timestamp that indicates when this resource was last updated. Timestamps are expressed using in ISO8601 format, such as: <code>2022-12-27T22:29:40+00:00</code> (UTC).</p>
481 pub fn last_updated_at(mut self, input: ::aws_smithy_types::DateTime) -> Self {
482 self.last_updated_at = ::std::option::Option::Some(input);
483 self
484 }
485 /// <p>A timestamp that indicates when this resource was last updated. Timestamps are expressed using in ISO8601 format, such as: <code>2022-12-27T22:29:40+00:00</code> (UTC).</p>
486 pub fn set_last_updated_at(mut self, input: ::std::option::Option<::aws_smithy_types::DateTime>) -> Self {
487 self.last_updated_at = input;
488 self
489 }
490 /// <p>A timestamp that indicates when this resource was last updated. Timestamps are expressed using in ISO8601 format, such as: <code>2022-12-27T22:29:40+00:00</code> (UTC).</p>
491 pub fn get_last_updated_at(&self) -> &::std::option::Option<::aws_smithy_types::DateTime> {
492 &self.last_updated_at
493 }
494 /// Appends an item to `associated_stream_groups`.
495 ///
496 /// To override the contents of this collection use [`set_associated_stream_groups`](Self::set_associated_stream_groups).
497 ///
498 /// <p>A newly created application is not associated to any stream groups. This value is empty.</p>
499 pub fn associated_stream_groups(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
500 let mut v = self.associated_stream_groups.unwrap_or_default();
501 v.push(input.into());
502 self.associated_stream_groups = ::std::option::Option::Some(v);
503 self
504 }
505 /// <p>A newly created application is not associated to any stream groups. This value is empty.</p>
506 pub fn set_associated_stream_groups(mut self, input: ::std::option::Option<::std::vec::Vec<::std::string::String>>) -> Self {
507 self.associated_stream_groups = input;
508 self
509 }
510 /// <p>A newly created application is not associated to any stream groups. This value is empty.</p>
511 pub fn get_associated_stream_groups(&self) -> &::std::option::Option<::std::vec::Vec<::std::string::String>> {
512 &self.associated_stream_groups
513 }
514 pub(crate) fn _request_id(mut self, request_id: impl Into<String>) -> Self {
515 self._request_id = Some(request_id.into());
516 self
517 }
518
519 pub(crate) fn _set_request_id(&mut self, request_id: Option<String>) -> &mut Self {
520 self._request_id = request_id;
521 self
522 }
523 /// Consumes the builder and constructs a [`CreateApplicationOutput`](crate::operation::create_application::CreateApplicationOutput).
524 /// This method will fail if any of the following fields are not set:
525 /// - [`arn`](crate::operation::create_application::builders::CreateApplicationOutputBuilder::arn)
526 pub fn build(
527 self,
528 ) -> ::std::result::Result<crate::operation::create_application::CreateApplicationOutput, ::aws_smithy_types::error::operation::BuildError> {
529 ::std::result::Result::Ok(crate::operation::create_application::CreateApplicationOutput {
530 arn: self.arn.ok_or_else(|| {
531 ::aws_smithy_types::error::operation::BuildError::missing_field(
532 "arn",
533 "arn was not specified but it is required when building CreateApplicationOutput",
534 )
535 })?,
536 description: self.description,
537 runtime_environment: self.runtime_environment,
538 executable_path: self.executable_path,
539 application_log_paths: self.application_log_paths,
540 application_log_output_uri: self.application_log_output_uri,
541 application_source_uri: self.application_source_uri,
542 id: self.id,
543 status: self.status,
544 status_reason: self.status_reason,
545 replication_statuses: self.replication_statuses,
546 created_at: self.created_at,
547 last_updated_at: self.last_updated_at,
548 associated_stream_groups: self.associated_stream_groups,
549 _request_id: self._request_id,
550 })
551 }
552}