1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.

/// <p>Defines an application version summary.</p>
#[non_exhaustive]
#[derive(::std::clone::Clone, ::std::cmp::PartialEq, ::std::fmt::Debug)]
pub struct ApplicationVersionSummary {
    /// <p>The application version.</p>
    pub application_version: i32,
    /// <p>The status of the application.</p>
    pub status: crate::types::ApplicationVersionLifecycle,
    /// <p>The reason for the reported status.</p>
    pub status_reason: ::std::option::Option<::std::string::String>,
    /// <p>The timestamp when the application version was created.</p>
    pub creation_time: ::aws_smithy_types::DateTime,
}
impl ApplicationVersionSummary {
    /// <p>The application version.</p>
    pub fn application_version(&self) -> i32 {
        self.application_version
    }
    /// <p>The status of the application.</p>
    pub fn status(&self) -> &crate::types::ApplicationVersionLifecycle {
        &self.status
    }
    /// <p>The reason for the reported status.</p>
    pub fn status_reason(&self) -> ::std::option::Option<&str> {
        self.status_reason.as_deref()
    }
    /// <p>The timestamp when the application version was created.</p>
    pub fn creation_time(&self) -> &::aws_smithy_types::DateTime {
        &self.creation_time
    }
}
impl ApplicationVersionSummary {
    /// Creates a new builder-style object to manufacture [`ApplicationVersionSummary`](crate::types::ApplicationVersionSummary).
    pub fn builder() -> crate::types::builders::ApplicationVersionSummaryBuilder {
        crate::types::builders::ApplicationVersionSummaryBuilder::default()
    }
}

/// A builder for [`ApplicationVersionSummary`](crate::types::ApplicationVersionSummary).
#[derive(::std::clone::Clone, ::std::cmp::PartialEq, ::std::default::Default, ::std::fmt::Debug)]
#[non_exhaustive]
pub struct ApplicationVersionSummaryBuilder {
    pub(crate) application_version: ::std::option::Option<i32>,
    pub(crate) status: ::std::option::Option<crate::types::ApplicationVersionLifecycle>,
    pub(crate) status_reason: ::std::option::Option<::std::string::String>,
    pub(crate) creation_time: ::std::option::Option<::aws_smithy_types::DateTime>,
}
impl ApplicationVersionSummaryBuilder {
    /// <p>The application version.</p>
    /// This field is required.
    pub fn application_version(mut self, input: i32) -> Self {
        self.application_version = ::std::option::Option::Some(input);
        self
    }
    /// <p>The application version.</p>
    pub fn set_application_version(mut self, input: ::std::option::Option<i32>) -> Self {
        self.application_version = input;
        self
    }
    /// <p>The application version.</p>
    pub fn get_application_version(&self) -> &::std::option::Option<i32> {
        &self.application_version
    }
    /// <p>The status of the application.</p>
    /// This field is required.
    pub fn status(mut self, input: crate::types::ApplicationVersionLifecycle) -> Self {
        self.status = ::std::option::Option::Some(input);
        self
    }
    /// <p>The status of the application.</p>
    pub fn set_status(mut self, input: ::std::option::Option<crate::types::ApplicationVersionLifecycle>) -> Self {
        self.status = input;
        self
    }
    /// <p>The status of the application.</p>
    pub fn get_status(&self) -> &::std::option::Option<crate::types::ApplicationVersionLifecycle> {
        &self.status
    }
    /// <p>The reason for the reported status.</p>
    pub fn status_reason(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
        self.status_reason = ::std::option::Option::Some(input.into());
        self
    }
    /// <p>The reason for the reported status.</p>
    pub fn set_status_reason(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
        self.status_reason = input;
        self
    }
    /// <p>The reason for the reported status.</p>
    pub fn get_status_reason(&self) -> &::std::option::Option<::std::string::String> {
        &self.status_reason
    }
    /// <p>The timestamp when the application version was created.</p>
    /// This field is required.
    pub fn creation_time(mut self, input: ::aws_smithy_types::DateTime) -> Self {
        self.creation_time = ::std::option::Option::Some(input);
        self
    }
    /// <p>The timestamp when the application version was created.</p>
    pub fn set_creation_time(mut self, input: ::std::option::Option<::aws_smithy_types::DateTime>) -> Self {
        self.creation_time = input;
        self
    }
    /// <p>The timestamp when the application version was created.</p>
    pub fn get_creation_time(&self) -> &::std::option::Option<::aws_smithy_types::DateTime> {
        &self.creation_time
    }
    /// Consumes the builder and constructs a [`ApplicationVersionSummary`](crate::types::ApplicationVersionSummary).
    /// This method will fail if any of the following fields are not set:
    /// - [`application_version`](crate::types::builders::ApplicationVersionSummaryBuilder::application_version)
    /// - [`status`](crate::types::builders::ApplicationVersionSummaryBuilder::status)
    /// - [`creation_time`](crate::types::builders::ApplicationVersionSummaryBuilder::creation_time)
    pub fn build(self) -> ::std::result::Result<crate::types::ApplicationVersionSummary, ::aws_smithy_types::error::operation::BuildError> {
        ::std::result::Result::Ok(crate::types::ApplicationVersionSummary {
            application_version: self.application_version.ok_or_else(|| {
                ::aws_smithy_types::error::operation::BuildError::missing_field(
                    "application_version",
                    "application_version was not specified but it is required when building ApplicationVersionSummary",
                )
            })?,
            status: self.status.ok_or_else(|| {
                ::aws_smithy_types::error::operation::BuildError::missing_field(
                    "status",
                    "status was not specified but it is required when building ApplicationVersionSummary",
                )
            })?,
            status_reason: self.status_reason,
            creation_time: self.creation_time.ok_or_else(|| {
                ::aws_smithy_types::error::operation::BuildError::missing_field(
                    "creation_time",
                    "creation_time was not specified but it is required when building ApplicationVersionSummary",
                )
            })?,
        })
    }
}