aws_sdk_m2/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 unique identifier of the application.</p>
7    pub name: ::std::string::String,
8    /// <p>The description of the application.</p>
9    pub description: ::std::option::Option<::std::string::String>,
10    /// <p>The identifier of the application.</p>
11    pub application_id: ::std::string::String,
12    /// <p>The Amazon Resource Name (ARN) of the application.</p>
13    pub application_arn: ::std::string::String,
14    /// <p>The status of the application.</p>
15    pub status: crate::types::ApplicationLifecycle,
16    /// <p>The latest version of the application.</p>
17    pub latest_version: ::std::option::Option<crate::types::ApplicationVersionSummary>,
18    /// <p>The version of the application that is deployed.</p>
19    pub deployed_version: ::std::option::Option<crate::types::DeployedVersionSummary>,
20    /// <p>The type of the target platform for the application.</p>
21    pub engine_type: crate::types::EngineType,
22    /// <p>The list of log summaries. Each log summary includes the log type as well as the log group identifier. These are CloudWatch logs. Amazon Web Services Mainframe Modernization pushes the application log to CloudWatch under the customer's account.</p>
23    pub log_groups: ::std::option::Option<::std::vec::Vec<crate::types::LogGroupSummary>>,
24    /// <p>The timestamp when this application was created.</p>
25    pub creation_time: ::aws_smithy_types::DateTime,
26    /// <p>The timestamp when you last started the application. Null until the application runs for the first time.</p>
27    pub last_start_time: ::std::option::Option<::aws_smithy_types::DateTime>,
28    /// <p>A list of tags associated with the application.</p>
29    pub tags: ::std::option::Option<::std::collections::HashMap<::std::string::String, ::std::string::String>>,
30    /// <p>The identifier of the runtime environment where you want to deploy the application.</p>
31    pub environment_id: ::std::option::Option<::std::string::String>,
32    /// <p>Returns the Amazon Resource Names (ARNs) of the target groups that are attached to the network load balancer.</p>
33    pub target_group_arns: ::std::option::Option<::std::vec::Vec<::std::string::String>>,
34    /// <p>The Amazon Resource Name (ARN) for the network load balancer listener created in your Amazon Web Services account. Amazon Web Services Mainframe Modernization creates this listener for you the first time you deploy an application.</p>
35    pub listener_arns: ::std::option::Option<::std::vec::Vec<::std::string::String>>,
36    /// <p>The port associated with the network load balancer listener created in your Amazon Web Services account.</p>
37    pub listener_ports: ::std::option::Option<::std::vec::Vec<i32>>,
38    /// <p>The public DNS name of the load balancer created in your Amazon Web Services account.</p>
39    pub load_balancer_dns_name: ::std::option::Option<::std::string::String>,
40    /// <p>The reason for the reported status.</p>
41    pub status_reason: ::std::option::Option<::std::string::String>,
42    /// <p>The identifier of a customer managed key.</p>
43    pub kms_key_id: ::std::option::Option<::std::string::String>,
44    /// <p>The Amazon Resource Name (ARN) of the role associated with the application.</p>
45    pub role_arn: ::std::option::Option<::std::string::String>,
46    _request_id: Option<String>,
47}
48impl GetApplicationOutput {
49    /// <p>The unique identifier of the application.</p>
50    pub fn name(&self) -> &str {
51        use std::ops::Deref;
52        self.name.deref()
53    }
54    /// <p>The description of the application.</p>
55    pub fn description(&self) -> ::std::option::Option<&str> {
56        self.description.as_deref()
57    }
58    /// <p>The identifier of the application.</p>
59    pub fn application_id(&self) -> &str {
60        use std::ops::Deref;
61        self.application_id.deref()
62    }
63    /// <p>The Amazon Resource Name (ARN) of the application.</p>
64    pub fn application_arn(&self) -> &str {
65        use std::ops::Deref;
66        self.application_arn.deref()
67    }
68    /// <p>The status of the application.</p>
69    pub fn status(&self) -> &crate::types::ApplicationLifecycle {
70        &self.status
71    }
72    /// <p>The latest version of the application.</p>
73    pub fn latest_version(&self) -> ::std::option::Option<&crate::types::ApplicationVersionSummary> {
74        self.latest_version.as_ref()
75    }
76    /// <p>The version of the application that is deployed.</p>
77    pub fn deployed_version(&self) -> ::std::option::Option<&crate::types::DeployedVersionSummary> {
78        self.deployed_version.as_ref()
79    }
80    /// <p>The type of the target platform for the application.</p>
81    pub fn engine_type(&self) -> &crate::types::EngineType {
82        &self.engine_type
83    }
84    /// <p>The list of log summaries. Each log summary includes the log type as well as the log group identifier. These are CloudWatch logs. Amazon Web Services Mainframe Modernization pushes the application log to CloudWatch under the customer's account.</p>
85    ///
86    /// If no value was sent for this field, a default will be set. If you want to determine if no value was sent, use `.log_groups.is_none()`.
87    pub fn log_groups(&self) -> &[crate::types::LogGroupSummary] {
88        self.log_groups.as_deref().unwrap_or_default()
89    }
90    /// <p>The timestamp when this application was created.</p>
91    pub fn creation_time(&self) -> &::aws_smithy_types::DateTime {
92        &self.creation_time
93    }
94    /// <p>The timestamp when you last started the application. Null until the application runs for the first time.</p>
95    pub fn last_start_time(&self) -> ::std::option::Option<&::aws_smithy_types::DateTime> {
96        self.last_start_time.as_ref()
97    }
98    /// <p>A list of tags associated with the application.</p>
99    pub fn tags(&self) -> ::std::option::Option<&::std::collections::HashMap<::std::string::String, ::std::string::String>> {
100        self.tags.as_ref()
101    }
102    /// <p>The identifier of the runtime environment where you want to deploy the application.</p>
103    pub fn environment_id(&self) -> ::std::option::Option<&str> {
104        self.environment_id.as_deref()
105    }
106    /// <p>Returns the Amazon Resource Names (ARNs) of the target groups that are attached to the network load balancer.</p>
107    ///
108    /// If no value was sent for this field, a default will be set. If you want to determine if no value was sent, use `.target_group_arns.is_none()`.
109    pub fn target_group_arns(&self) -> &[::std::string::String] {
110        self.target_group_arns.as_deref().unwrap_or_default()
111    }
112    /// <p>The Amazon Resource Name (ARN) for the network load balancer listener created in your Amazon Web Services account. Amazon Web Services Mainframe Modernization creates this listener for you the first time you deploy an application.</p>
113    ///
114    /// If no value was sent for this field, a default will be set. If you want to determine if no value was sent, use `.listener_arns.is_none()`.
115    pub fn listener_arns(&self) -> &[::std::string::String] {
116        self.listener_arns.as_deref().unwrap_or_default()
117    }
118    /// <p>The port associated with the network load balancer listener created in your Amazon Web Services account.</p>
119    ///
120    /// If no value was sent for this field, a default will be set. If you want to determine if no value was sent, use `.listener_ports.is_none()`.
121    pub fn listener_ports(&self) -> &[i32] {
122        self.listener_ports.as_deref().unwrap_or_default()
123    }
124    /// <p>The public DNS name of the load balancer created in your Amazon Web Services account.</p>
125    pub fn load_balancer_dns_name(&self) -> ::std::option::Option<&str> {
126        self.load_balancer_dns_name.as_deref()
127    }
128    /// <p>The reason for the reported status.</p>
129    pub fn status_reason(&self) -> ::std::option::Option<&str> {
130        self.status_reason.as_deref()
131    }
132    /// <p>The identifier of a customer managed key.</p>
133    pub fn kms_key_id(&self) -> ::std::option::Option<&str> {
134        self.kms_key_id.as_deref()
135    }
136    /// <p>The Amazon Resource Name (ARN) of the role associated with the application.</p>
137    pub fn role_arn(&self) -> ::std::option::Option<&str> {
138        self.role_arn.as_deref()
139    }
140}
141impl ::aws_types::request_id::RequestId for GetApplicationOutput {
142    fn request_id(&self) -> Option<&str> {
143        self._request_id.as_deref()
144    }
145}
146impl GetApplicationOutput {
147    /// Creates a new builder-style object to manufacture [`GetApplicationOutput`](crate::operation::get_application::GetApplicationOutput).
148    pub fn builder() -> crate::operation::get_application::builders::GetApplicationOutputBuilder {
149        crate::operation::get_application::builders::GetApplicationOutputBuilder::default()
150    }
151}
152
153/// A builder for [`GetApplicationOutput`](crate::operation::get_application::GetApplicationOutput).
154#[derive(::std::clone::Clone, ::std::cmp::PartialEq, ::std::default::Default, ::std::fmt::Debug)]
155#[non_exhaustive]
156pub struct GetApplicationOutputBuilder {
157    pub(crate) name: ::std::option::Option<::std::string::String>,
158    pub(crate) description: ::std::option::Option<::std::string::String>,
159    pub(crate) application_id: ::std::option::Option<::std::string::String>,
160    pub(crate) application_arn: ::std::option::Option<::std::string::String>,
161    pub(crate) status: ::std::option::Option<crate::types::ApplicationLifecycle>,
162    pub(crate) latest_version: ::std::option::Option<crate::types::ApplicationVersionSummary>,
163    pub(crate) deployed_version: ::std::option::Option<crate::types::DeployedVersionSummary>,
164    pub(crate) engine_type: ::std::option::Option<crate::types::EngineType>,
165    pub(crate) log_groups: ::std::option::Option<::std::vec::Vec<crate::types::LogGroupSummary>>,
166    pub(crate) creation_time: ::std::option::Option<::aws_smithy_types::DateTime>,
167    pub(crate) last_start_time: ::std::option::Option<::aws_smithy_types::DateTime>,
168    pub(crate) tags: ::std::option::Option<::std::collections::HashMap<::std::string::String, ::std::string::String>>,
169    pub(crate) environment_id: ::std::option::Option<::std::string::String>,
170    pub(crate) target_group_arns: ::std::option::Option<::std::vec::Vec<::std::string::String>>,
171    pub(crate) listener_arns: ::std::option::Option<::std::vec::Vec<::std::string::String>>,
172    pub(crate) listener_ports: ::std::option::Option<::std::vec::Vec<i32>>,
173    pub(crate) load_balancer_dns_name: ::std::option::Option<::std::string::String>,
174    pub(crate) status_reason: ::std::option::Option<::std::string::String>,
175    pub(crate) kms_key_id: ::std::option::Option<::std::string::String>,
176    pub(crate) role_arn: ::std::option::Option<::std::string::String>,
177    _request_id: Option<String>,
178}
179impl GetApplicationOutputBuilder {
180    /// <p>The unique identifier of the application.</p>
181    /// This field is required.
182    pub fn name(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
183        self.name = ::std::option::Option::Some(input.into());
184        self
185    }
186    /// <p>The unique identifier of the application.</p>
187    pub fn set_name(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
188        self.name = input;
189        self
190    }
191    /// <p>The unique identifier of the application.</p>
192    pub fn get_name(&self) -> &::std::option::Option<::std::string::String> {
193        &self.name
194    }
195    /// <p>The description of the application.</p>
196    pub fn description(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
197        self.description = ::std::option::Option::Some(input.into());
198        self
199    }
200    /// <p>The description of the application.</p>
201    pub fn set_description(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
202        self.description = input;
203        self
204    }
205    /// <p>The description of the application.</p>
206    pub fn get_description(&self) -> &::std::option::Option<::std::string::String> {
207        &self.description
208    }
209    /// <p>The identifier of the application.</p>
210    /// This field is required.
211    pub fn application_id(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
212        self.application_id = ::std::option::Option::Some(input.into());
213        self
214    }
215    /// <p>The identifier of the application.</p>
216    pub fn set_application_id(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
217        self.application_id = input;
218        self
219    }
220    /// <p>The identifier of the application.</p>
221    pub fn get_application_id(&self) -> &::std::option::Option<::std::string::String> {
222        &self.application_id
223    }
224    /// <p>The Amazon Resource Name (ARN) of the application.</p>
225    /// This field is required.
226    pub fn application_arn(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
227        self.application_arn = ::std::option::Option::Some(input.into());
228        self
229    }
230    /// <p>The Amazon Resource Name (ARN) of the application.</p>
231    pub fn set_application_arn(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
232        self.application_arn = input;
233        self
234    }
235    /// <p>The Amazon Resource Name (ARN) of the application.</p>
236    pub fn get_application_arn(&self) -> &::std::option::Option<::std::string::String> {
237        &self.application_arn
238    }
239    /// <p>The status of the application.</p>
240    /// This field is required.
241    pub fn status(mut self, input: crate::types::ApplicationLifecycle) -> Self {
242        self.status = ::std::option::Option::Some(input);
243        self
244    }
245    /// <p>The status of the application.</p>
246    pub fn set_status(mut self, input: ::std::option::Option<crate::types::ApplicationLifecycle>) -> Self {
247        self.status = input;
248        self
249    }
250    /// <p>The status of the application.</p>
251    pub fn get_status(&self) -> &::std::option::Option<crate::types::ApplicationLifecycle> {
252        &self.status
253    }
254    /// <p>The latest version of the application.</p>
255    /// This field is required.
256    pub fn latest_version(mut self, input: crate::types::ApplicationVersionSummary) -> Self {
257        self.latest_version = ::std::option::Option::Some(input);
258        self
259    }
260    /// <p>The latest version of the application.</p>
261    pub fn set_latest_version(mut self, input: ::std::option::Option<crate::types::ApplicationVersionSummary>) -> Self {
262        self.latest_version = input;
263        self
264    }
265    /// <p>The latest version of the application.</p>
266    pub fn get_latest_version(&self) -> &::std::option::Option<crate::types::ApplicationVersionSummary> {
267        &self.latest_version
268    }
269    /// <p>The version of the application that is deployed.</p>
270    pub fn deployed_version(mut self, input: crate::types::DeployedVersionSummary) -> Self {
271        self.deployed_version = ::std::option::Option::Some(input);
272        self
273    }
274    /// <p>The version of the application that is deployed.</p>
275    pub fn set_deployed_version(mut self, input: ::std::option::Option<crate::types::DeployedVersionSummary>) -> Self {
276        self.deployed_version = input;
277        self
278    }
279    /// <p>The version of the application that is deployed.</p>
280    pub fn get_deployed_version(&self) -> &::std::option::Option<crate::types::DeployedVersionSummary> {
281        &self.deployed_version
282    }
283    /// <p>The type of the target platform for the application.</p>
284    /// This field is required.
285    pub fn engine_type(mut self, input: crate::types::EngineType) -> Self {
286        self.engine_type = ::std::option::Option::Some(input);
287        self
288    }
289    /// <p>The type of the target platform for the application.</p>
290    pub fn set_engine_type(mut self, input: ::std::option::Option<crate::types::EngineType>) -> Self {
291        self.engine_type = input;
292        self
293    }
294    /// <p>The type of the target platform for the application.</p>
295    pub fn get_engine_type(&self) -> &::std::option::Option<crate::types::EngineType> {
296        &self.engine_type
297    }
298    /// Appends an item to `log_groups`.
299    ///
300    /// To override the contents of this collection use [`set_log_groups`](Self::set_log_groups).
301    ///
302    /// <p>The list of log summaries. Each log summary includes the log type as well as the log group identifier. These are CloudWatch logs. Amazon Web Services Mainframe Modernization pushes the application log to CloudWatch under the customer's account.</p>
303    pub fn log_groups(mut self, input: crate::types::LogGroupSummary) -> Self {
304        let mut v = self.log_groups.unwrap_or_default();
305        v.push(input);
306        self.log_groups = ::std::option::Option::Some(v);
307        self
308    }
309    /// <p>The list of log summaries. Each log summary includes the log type as well as the log group identifier. These are CloudWatch logs. Amazon Web Services Mainframe Modernization pushes the application log to CloudWatch under the customer's account.</p>
310    pub fn set_log_groups(mut self, input: ::std::option::Option<::std::vec::Vec<crate::types::LogGroupSummary>>) -> Self {
311        self.log_groups = input;
312        self
313    }
314    /// <p>The list of log summaries. Each log summary includes the log type as well as the log group identifier. These are CloudWatch logs. Amazon Web Services Mainframe Modernization pushes the application log to CloudWatch under the customer's account.</p>
315    pub fn get_log_groups(&self) -> &::std::option::Option<::std::vec::Vec<crate::types::LogGroupSummary>> {
316        &self.log_groups
317    }
318    /// <p>The timestamp when this application was created.</p>
319    /// This field is required.
320    pub fn creation_time(mut self, input: ::aws_smithy_types::DateTime) -> Self {
321        self.creation_time = ::std::option::Option::Some(input);
322        self
323    }
324    /// <p>The timestamp when this application was created.</p>
325    pub fn set_creation_time(mut self, input: ::std::option::Option<::aws_smithy_types::DateTime>) -> Self {
326        self.creation_time = input;
327        self
328    }
329    /// <p>The timestamp when this application was created.</p>
330    pub fn get_creation_time(&self) -> &::std::option::Option<::aws_smithy_types::DateTime> {
331        &self.creation_time
332    }
333    /// <p>The timestamp when you last started the application. Null until the application runs for the first time.</p>
334    pub fn last_start_time(mut self, input: ::aws_smithy_types::DateTime) -> Self {
335        self.last_start_time = ::std::option::Option::Some(input);
336        self
337    }
338    /// <p>The timestamp when you last started the application. Null until the application runs for the first time.</p>
339    pub fn set_last_start_time(mut self, input: ::std::option::Option<::aws_smithy_types::DateTime>) -> Self {
340        self.last_start_time = input;
341        self
342    }
343    /// <p>The timestamp when you last started the application. Null until the application runs for the first time.</p>
344    pub fn get_last_start_time(&self) -> &::std::option::Option<::aws_smithy_types::DateTime> {
345        &self.last_start_time
346    }
347    /// Adds a key-value pair to `tags`.
348    ///
349    /// To override the contents of this collection use [`set_tags`](Self::set_tags).
350    ///
351    /// <p>A list of tags associated with the application.</p>
352    pub fn tags(mut self, k: impl ::std::convert::Into<::std::string::String>, v: impl ::std::convert::Into<::std::string::String>) -> Self {
353        let mut hash_map = self.tags.unwrap_or_default();
354        hash_map.insert(k.into(), v.into());
355        self.tags = ::std::option::Option::Some(hash_map);
356        self
357    }
358    /// <p>A list of tags associated with the application.</p>
359    pub fn set_tags(mut self, input: ::std::option::Option<::std::collections::HashMap<::std::string::String, ::std::string::String>>) -> Self {
360        self.tags = input;
361        self
362    }
363    /// <p>A list of tags associated with the application.</p>
364    pub fn get_tags(&self) -> &::std::option::Option<::std::collections::HashMap<::std::string::String, ::std::string::String>> {
365        &self.tags
366    }
367    /// <p>The identifier of the runtime environment where you want to deploy the application.</p>
368    pub fn environment_id(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
369        self.environment_id = ::std::option::Option::Some(input.into());
370        self
371    }
372    /// <p>The identifier of the runtime environment where you want to deploy the application.</p>
373    pub fn set_environment_id(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
374        self.environment_id = input;
375        self
376    }
377    /// <p>The identifier of the runtime environment where you want to deploy the application.</p>
378    pub fn get_environment_id(&self) -> &::std::option::Option<::std::string::String> {
379        &self.environment_id
380    }
381    /// Appends an item to `target_group_arns`.
382    ///
383    /// To override the contents of this collection use [`set_target_group_arns`](Self::set_target_group_arns).
384    ///
385    /// <p>Returns the Amazon Resource Names (ARNs) of the target groups that are attached to the network load balancer.</p>
386    pub fn target_group_arns(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
387        let mut v = self.target_group_arns.unwrap_or_default();
388        v.push(input.into());
389        self.target_group_arns = ::std::option::Option::Some(v);
390        self
391    }
392    /// <p>Returns the Amazon Resource Names (ARNs) of the target groups that are attached to the network load balancer.</p>
393    pub fn set_target_group_arns(mut self, input: ::std::option::Option<::std::vec::Vec<::std::string::String>>) -> Self {
394        self.target_group_arns = input;
395        self
396    }
397    /// <p>Returns the Amazon Resource Names (ARNs) of the target groups that are attached to the network load balancer.</p>
398    pub fn get_target_group_arns(&self) -> &::std::option::Option<::std::vec::Vec<::std::string::String>> {
399        &self.target_group_arns
400    }
401    /// Appends an item to `listener_arns`.
402    ///
403    /// To override the contents of this collection use [`set_listener_arns`](Self::set_listener_arns).
404    ///
405    /// <p>The Amazon Resource Name (ARN) for the network load balancer listener created in your Amazon Web Services account. Amazon Web Services Mainframe Modernization creates this listener for you the first time you deploy an application.</p>
406    pub fn listener_arns(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
407        let mut v = self.listener_arns.unwrap_or_default();
408        v.push(input.into());
409        self.listener_arns = ::std::option::Option::Some(v);
410        self
411    }
412    /// <p>The Amazon Resource Name (ARN) for the network load balancer listener created in your Amazon Web Services account. Amazon Web Services Mainframe Modernization creates this listener for you the first time you deploy an application.</p>
413    pub fn set_listener_arns(mut self, input: ::std::option::Option<::std::vec::Vec<::std::string::String>>) -> Self {
414        self.listener_arns = input;
415        self
416    }
417    /// <p>The Amazon Resource Name (ARN) for the network load balancer listener created in your Amazon Web Services account. Amazon Web Services Mainframe Modernization creates this listener for you the first time you deploy an application.</p>
418    pub fn get_listener_arns(&self) -> &::std::option::Option<::std::vec::Vec<::std::string::String>> {
419        &self.listener_arns
420    }
421    /// Appends an item to `listener_ports`.
422    ///
423    /// To override the contents of this collection use [`set_listener_ports`](Self::set_listener_ports).
424    ///
425    /// <p>The port associated with the network load balancer listener created in your Amazon Web Services account.</p>
426    pub fn listener_ports(mut self, input: i32) -> Self {
427        let mut v = self.listener_ports.unwrap_or_default();
428        v.push(input);
429        self.listener_ports = ::std::option::Option::Some(v);
430        self
431    }
432    /// <p>The port associated with the network load balancer listener created in your Amazon Web Services account.</p>
433    pub fn set_listener_ports(mut self, input: ::std::option::Option<::std::vec::Vec<i32>>) -> Self {
434        self.listener_ports = input;
435        self
436    }
437    /// <p>The port associated with the network load balancer listener created in your Amazon Web Services account.</p>
438    pub fn get_listener_ports(&self) -> &::std::option::Option<::std::vec::Vec<i32>> {
439        &self.listener_ports
440    }
441    /// <p>The public DNS name of the load balancer created in your Amazon Web Services account.</p>
442    pub fn load_balancer_dns_name(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
443        self.load_balancer_dns_name = ::std::option::Option::Some(input.into());
444        self
445    }
446    /// <p>The public DNS name of the load balancer created in your Amazon Web Services account.</p>
447    pub fn set_load_balancer_dns_name(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
448        self.load_balancer_dns_name = input;
449        self
450    }
451    /// <p>The public DNS name of the load balancer created in your Amazon Web Services account.</p>
452    pub fn get_load_balancer_dns_name(&self) -> &::std::option::Option<::std::string::String> {
453        &self.load_balancer_dns_name
454    }
455    /// <p>The reason for the reported status.</p>
456    pub fn status_reason(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
457        self.status_reason = ::std::option::Option::Some(input.into());
458        self
459    }
460    /// <p>The reason for the reported status.</p>
461    pub fn set_status_reason(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
462        self.status_reason = input;
463        self
464    }
465    /// <p>The reason for the reported status.</p>
466    pub fn get_status_reason(&self) -> &::std::option::Option<::std::string::String> {
467        &self.status_reason
468    }
469    /// <p>The identifier of a customer managed key.</p>
470    pub fn kms_key_id(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
471        self.kms_key_id = ::std::option::Option::Some(input.into());
472        self
473    }
474    /// <p>The identifier of a customer managed key.</p>
475    pub fn set_kms_key_id(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
476        self.kms_key_id = input;
477        self
478    }
479    /// <p>The identifier of a customer managed key.</p>
480    pub fn get_kms_key_id(&self) -> &::std::option::Option<::std::string::String> {
481        &self.kms_key_id
482    }
483    /// <p>The Amazon Resource Name (ARN) of the role associated with the application.</p>
484    pub fn role_arn(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
485        self.role_arn = ::std::option::Option::Some(input.into());
486        self
487    }
488    /// <p>The Amazon Resource Name (ARN) of the role associated with the application.</p>
489    pub fn set_role_arn(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
490        self.role_arn = input;
491        self
492    }
493    /// <p>The Amazon Resource Name (ARN) of the role associated with the application.</p>
494    pub fn get_role_arn(&self) -> &::std::option::Option<::std::string::String> {
495        &self.role_arn
496    }
497    pub(crate) fn _request_id(mut self, request_id: impl Into<String>) -> Self {
498        self._request_id = Some(request_id.into());
499        self
500    }
501
502    pub(crate) fn _set_request_id(&mut self, request_id: Option<String>) -> &mut Self {
503        self._request_id = request_id;
504        self
505    }
506    /// Consumes the builder and constructs a [`GetApplicationOutput`](crate::operation::get_application::GetApplicationOutput).
507    /// This method will fail if any of the following fields are not set:
508    /// - [`name`](crate::operation::get_application::builders::GetApplicationOutputBuilder::name)
509    /// - [`application_id`](crate::operation::get_application::builders::GetApplicationOutputBuilder::application_id)
510    /// - [`application_arn`](crate::operation::get_application::builders::GetApplicationOutputBuilder::application_arn)
511    /// - [`status`](crate::operation::get_application::builders::GetApplicationOutputBuilder::status)
512    /// - [`engine_type`](crate::operation::get_application::builders::GetApplicationOutputBuilder::engine_type)
513    /// - [`creation_time`](crate::operation::get_application::builders::GetApplicationOutputBuilder::creation_time)
514    pub fn build(
515        self,
516    ) -> ::std::result::Result<crate::operation::get_application::GetApplicationOutput, ::aws_smithy_types::error::operation::BuildError> {
517        ::std::result::Result::Ok(crate::operation::get_application::GetApplicationOutput {
518            name: self.name.ok_or_else(|| {
519                ::aws_smithy_types::error::operation::BuildError::missing_field(
520                    "name",
521                    "name was not specified but it is required when building GetApplicationOutput",
522                )
523            })?,
524            description: self.description,
525            application_id: self.application_id.ok_or_else(|| {
526                ::aws_smithy_types::error::operation::BuildError::missing_field(
527                    "application_id",
528                    "application_id was not specified but it is required when building GetApplicationOutput",
529                )
530            })?,
531            application_arn: self.application_arn.ok_or_else(|| {
532                ::aws_smithy_types::error::operation::BuildError::missing_field(
533                    "application_arn",
534                    "application_arn was not specified but it is required when building GetApplicationOutput",
535                )
536            })?,
537            status: self.status.ok_or_else(|| {
538                ::aws_smithy_types::error::operation::BuildError::missing_field(
539                    "status",
540                    "status was not specified but it is required when building GetApplicationOutput",
541                )
542            })?,
543            latest_version: self.latest_version,
544            deployed_version: self.deployed_version,
545            engine_type: self.engine_type.ok_or_else(|| {
546                ::aws_smithy_types::error::operation::BuildError::missing_field(
547                    "engine_type",
548                    "engine_type was not specified but it is required when building GetApplicationOutput",
549                )
550            })?,
551            log_groups: self.log_groups,
552            creation_time: self.creation_time.ok_or_else(|| {
553                ::aws_smithy_types::error::operation::BuildError::missing_field(
554                    "creation_time",
555                    "creation_time was not specified but it is required when building GetApplicationOutput",
556                )
557            })?,
558            last_start_time: self.last_start_time,
559            tags: self.tags,
560            environment_id: self.environment_id,
561            target_group_arns: self.target_group_arns,
562            listener_arns: self.listener_arns,
563            listener_ports: self.listener_ports,
564            load_balancer_dns_name: self.load_balancer_dns_name,
565            status_reason: self.status_reason,
566            kms_key_id: self.kms_key_id,
567            role_arn: self.role_arn,
568            _request_id: self._request_id,
569        })
570    }
571}