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