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