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
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.

/// <p>Defines an application summary.</p>
#[non_exhaustive]
#[derive(::std::clone::Clone, ::std::cmp::PartialEq, ::std::fmt::Debug)]
pub struct AppSummary {
    /// <p>Amazon Resource Name (ARN) of the Resilience Hub application. The format for this ARN is: arn:<code>partition</code>:resiliencehub:<code>region</code>:<code>account</code>:app/<code>app-id</code>. For more information about ARNs, see <a href="https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html"> Amazon Resource Names (ARNs)</a> in the <i>AWS General Reference</i> guide.</p>
    pub app_arn: ::std::option::Option<::std::string::String>,
    /// <p>The name of the application.</p>
    pub name: ::std::option::Option<::std::string::String>,
    /// <p>The optional description for an app.</p>
    pub description: ::std::option::Option<::std::string::String>,
    /// <p>The timestamp for when the app was created.</p>
    pub creation_time: ::std::option::Option<::aws_smithy_types::DateTime>,
    /// <p>The current status of compliance for the resiliency policy.</p>
    pub compliance_status: ::std::option::Option<crate::types::AppComplianceStatusType>,
    /// <p>The current resiliency score for the application.</p>
    pub resiliency_score: f64,
    /// <p> Assessment execution schedule with 'Daily' or 'Disabled' values. </p>
    pub assessment_schedule: ::std::option::Option<crate::types::AppAssessmentScheduleType>,
    /// <p>Status of the application.</p>
    pub status: ::std::option::Option<crate::types::AppStatusType>,
    /// <p>Indicates if compliance drifts (deviations) were detected while running an assessment for your application.</p>
    pub drift_status: ::std::option::Option<crate::types::AppDriftStatusType>,
}
impl AppSummary {
    /// <p>Amazon Resource Name (ARN) of the Resilience Hub application. The format for this ARN is: arn:<code>partition</code>:resiliencehub:<code>region</code>:<code>account</code>:app/<code>app-id</code>. For more information about ARNs, see <a href="https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html"> Amazon Resource Names (ARNs)</a> in the <i>AWS General Reference</i> guide.</p>
    pub fn app_arn(&self) -> ::std::option::Option<&str> {
        self.app_arn.as_deref()
    }
    /// <p>The name of the application.</p>
    pub fn name(&self) -> ::std::option::Option<&str> {
        self.name.as_deref()
    }
    /// <p>The optional description for an app.</p>
    pub fn description(&self) -> ::std::option::Option<&str> {
        self.description.as_deref()
    }
    /// <p>The timestamp for when the app was created.</p>
    pub fn creation_time(&self) -> ::std::option::Option<&::aws_smithy_types::DateTime> {
        self.creation_time.as_ref()
    }
    /// <p>The current status of compliance for the resiliency policy.</p>
    pub fn compliance_status(&self) -> ::std::option::Option<&crate::types::AppComplianceStatusType> {
        self.compliance_status.as_ref()
    }
    /// <p>The current resiliency score for the application.</p>
    pub fn resiliency_score(&self) -> f64 {
        self.resiliency_score
    }
    /// <p> Assessment execution schedule with 'Daily' or 'Disabled' values. </p>
    pub fn assessment_schedule(&self) -> ::std::option::Option<&crate::types::AppAssessmentScheduleType> {
        self.assessment_schedule.as_ref()
    }
    /// <p>Status of the application.</p>
    pub fn status(&self) -> ::std::option::Option<&crate::types::AppStatusType> {
        self.status.as_ref()
    }
    /// <p>Indicates if compliance drifts (deviations) were detected while running an assessment for your application.</p>
    pub fn drift_status(&self) -> ::std::option::Option<&crate::types::AppDriftStatusType> {
        self.drift_status.as_ref()
    }
}
impl AppSummary {
    /// Creates a new builder-style object to manufacture [`AppSummary`](crate::types::AppSummary).
    pub fn builder() -> crate::types::builders::AppSummaryBuilder {
        crate::types::builders::AppSummaryBuilder::default()
    }
}

/// A builder for [`AppSummary`](crate::types::AppSummary).
#[non_exhaustive]
#[derive(::std::clone::Clone, ::std::cmp::PartialEq, ::std::default::Default, ::std::fmt::Debug)]
pub struct AppSummaryBuilder {
    pub(crate) app_arn: ::std::option::Option<::std::string::String>,
    pub(crate) name: ::std::option::Option<::std::string::String>,
    pub(crate) description: ::std::option::Option<::std::string::String>,
    pub(crate) creation_time: ::std::option::Option<::aws_smithy_types::DateTime>,
    pub(crate) compliance_status: ::std::option::Option<crate::types::AppComplianceStatusType>,
    pub(crate) resiliency_score: ::std::option::Option<f64>,
    pub(crate) assessment_schedule: ::std::option::Option<crate::types::AppAssessmentScheduleType>,
    pub(crate) status: ::std::option::Option<crate::types::AppStatusType>,
    pub(crate) drift_status: ::std::option::Option<crate::types::AppDriftStatusType>,
}
impl AppSummaryBuilder {
    /// <p>Amazon Resource Name (ARN) of the Resilience Hub application. The format for this ARN is: arn:<code>partition</code>:resiliencehub:<code>region</code>:<code>account</code>:app/<code>app-id</code>. For more information about ARNs, see <a href="https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html"> Amazon Resource Names (ARNs)</a> in the <i>AWS General Reference</i> guide.</p>
    pub fn app_arn(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
        self.app_arn = ::std::option::Option::Some(input.into());
        self
    }
    /// <p>Amazon Resource Name (ARN) of the Resilience Hub application. The format for this ARN is: arn:<code>partition</code>:resiliencehub:<code>region</code>:<code>account</code>:app/<code>app-id</code>. For more information about ARNs, see <a href="https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html"> Amazon Resource Names (ARNs)</a> in the <i>AWS General Reference</i> guide.</p>
    pub fn set_app_arn(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
        self.app_arn = input;
        self
    }
    /// <p>Amazon Resource Name (ARN) of the Resilience Hub application. The format for this ARN is: arn:<code>partition</code>:resiliencehub:<code>region</code>:<code>account</code>:app/<code>app-id</code>. For more information about ARNs, see <a href="https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html"> Amazon Resource Names (ARNs)</a> in the <i>AWS General Reference</i> guide.</p>
    pub fn get_app_arn(&self) -> &::std::option::Option<::std::string::String> {
        &self.app_arn
    }
    /// <p>The name of the application.</p>
    pub fn name(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
        self.name = ::std::option::Option::Some(input.into());
        self
    }
    /// <p>The name of the application.</p>
    pub fn set_name(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
        self.name = input;
        self
    }
    /// <p>The name of the application.</p>
    pub fn get_name(&self) -> &::std::option::Option<::std::string::String> {
        &self.name
    }
    /// <p>The optional description for an app.</p>
    pub fn description(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
        self.description = ::std::option::Option::Some(input.into());
        self
    }
    /// <p>The optional description for an app.</p>
    pub fn set_description(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
        self.description = input;
        self
    }
    /// <p>The optional description for an app.</p>
    pub fn get_description(&self) -> &::std::option::Option<::std::string::String> {
        &self.description
    }
    /// <p>The timestamp for when the app was created.</p>
    pub fn creation_time(mut self, input: ::aws_smithy_types::DateTime) -> Self {
        self.creation_time = ::std::option::Option::Some(input);
        self
    }
    /// <p>The timestamp for when the app 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 for when the app was created.</p>
    pub fn get_creation_time(&self) -> &::std::option::Option<::aws_smithy_types::DateTime> {
        &self.creation_time
    }
    /// <p>The current status of compliance for the resiliency policy.</p>
    pub fn compliance_status(mut self, input: crate::types::AppComplianceStatusType) -> Self {
        self.compliance_status = ::std::option::Option::Some(input);
        self
    }
    /// <p>The current status of compliance for the resiliency policy.</p>
    pub fn set_compliance_status(mut self, input: ::std::option::Option<crate::types::AppComplianceStatusType>) -> Self {
        self.compliance_status = input;
        self
    }
    /// <p>The current status of compliance for the resiliency policy.</p>
    pub fn get_compliance_status(&self) -> &::std::option::Option<crate::types::AppComplianceStatusType> {
        &self.compliance_status
    }
    /// <p>The current resiliency score for the application.</p>
    pub fn resiliency_score(mut self, input: f64) -> Self {
        self.resiliency_score = ::std::option::Option::Some(input);
        self
    }
    /// <p>The current resiliency score for the application.</p>
    pub fn set_resiliency_score(mut self, input: ::std::option::Option<f64>) -> Self {
        self.resiliency_score = input;
        self
    }
    /// <p>The current resiliency score for the application.</p>
    pub fn get_resiliency_score(&self) -> &::std::option::Option<f64> {
        &self.resiliency_score
    }
    /// <p> Assessment execution schedule with 'Daily' or 'Disabled' values. </p>
    pub fn assessment_schedule(mut self, input: crate::types::AppAssessmentScheduleType) -> Self {
        self.assessment_schedule = ::std::option::Option::Some(input);
        self
    }
    /// <p> Assessment execution schedule with 'Daily' or 'Disabled' values. </p>
    pub fn set_assessment_schedule(mut self, input: ::std::option::Option<crate::types::AppAssessmentScheduleType>) -> Self {
        self.assessment_schedule = input;
        self
    }
    /// <p> Assessment execution schedule with 'Daily' or 'Disabled' values. </p>
    pub fn get_assessment_schedule(&self) -> &::std::option::Option<crate::types::AppAssessmentScheduleType> {
        &self.assessment_schedule
    }
    /// <p>Status of the application.</p>
    pub fn status(mut self, input: crate::types::AppStatusType) -> Self {
        self.status = ::std::option::Option::Some(input);
        self
    }
    /// <p>Status of the application.</p>
    pub fn set_status(mut self, input: ::std::option::Option<crate::types::AppStatusType>) -> Self {
        self.status = input;
        self
    }
    /// <p>Status of the application.</p>
    pub fn get_status(&self) -> &::std::option::Option<crate::types::AppStatusType> {
        &self.status
    }
    /// <p>Indicates if compliance drifts (deviations) were detected while running an assessment for your application.</p>
    pub fn drift_status(mut self, input: crate::types::AppDriftStatusType) -> Self {
        self.drift_status = ::std::option::Option::Some(input);
        self
    }
    /// <p>Indicates if compliance drifts (deviations) were detected while running an assessment for your application.</p>
    pub fn set_drift_status(mut self, input: ::std::option::Option<crate::types::AppDriftStatusType>) -> Self {
        self.drift_status = input;
        self
    }
    /// <p>Indicates if compliance drifts (deviations) were detected while running an assessment for your application.</p>
    pub fn get_drift_status(&self) -> &::std::option::Option<crate::types::AppDriftStatusType> {
        &self.drift_status
    }
    /// Consumes the builder and constructs a [`AppSummary`](crate::types::AppSummary).
    pub fn build(self) -> crate::types::AppSummary {
        crate::types::AppSummary {
            app_arn: self.app_arn,
            name: self.name,
            description: self.description,
            creation_time: self.creation_time,
            compliance_status: self.compliance_status,
            resiliency_score: self.resiliency_score.unwrap_or_default(),
            assessment_schedule: self.assessment_schedule,
            status: self.status,
            drift_status: self.drift_status,
        }
    }
}