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