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
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.

/// <p>The structures that contain summary information about the specified operation.</p>
#[non_exhaustive]
#[derive(::std::clone::Clone, ::std::cmp::PartialEq, ::std::fmt::Debug)]
pub struct StackSetOperationSummary {
    /// <p>The unique ID of the stack set operation.</p>
    pub operation_id: ::std::option::Option<::std::string::String>,
    /// <p>The type of operation: <code>CREATE</code>, <code>UPDATE</code>, or <code>DELETE</code>. Create and delete operations affect only the specified stack instances that are associated with the specified stack set. Update operations affect both the stack set itself and <i>all</i> associated stack set instances.</p>
    pub action: ::std::option::Option<crate::types::StackSetOperationAction>,
    /// <p>The overall status of the operation.</p>
    /// <ul>
    /// <li>
    /// <p><code>FAILED</code>: The operation exceeded the specified failure tolerance. The failure tolerance value that you've set for an operation is applied for each Region during stack create and update operations. If the number of failed stacks within a Region exceeds the failure tolerance, the status of the operation in the Region is set to <code>FAILED</code>. This in turn sets the status of the operation as a whole to <code>FAILED</code>, and CloudFormation cancels the operation in any remaining Regions.</p></li>
    /// <li>
    /// <p><code>QUEUED</code>: [Service-managed permissions] For automatic deployments that require a sequence of operations, the operation is queued to be performed. For more information, see the <a href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/stacksets-concepts.html#stackset-status-codes">stack set operation status codes</a> in the <i>CloudFormation User Guide</i>.</p></li>
    /// <li>
    /// <p><code>RUNNING</code>: The operation is currently being performed.</p></li>
    /// <li>
    /// <p><code>STOPPED</code>: The user has canceled the operation.</p></li>
    /// <li>
    /// <p><code>STOPPING</code>: The operation is in the process of stopping, at user request.</p></li>
    /// <li>
    /// <p><code>SUCCEEDED</code>: The operation completed creating or updating all the specified stacks without exceeding the failure tolerance for the operation.</p></li>
    /// </ul>
    pub status: ::std::option::Option<crate::types::StackSetOperationStatus>,
    /// <p>The time at which the operation was initiated. Note that the creation times for the stack set operation might differ from the creation time of the individual stacks themselves. This is because CloudFormation needs to perform preparatory work for the operation, such as dispatching the work to the requested Regions, before actually creating the first stacks.</p>
    pub creation_timestamp: ::std::option::Option<::aws_smithy_types::DateTime>,
    /// <p>The time at which the stack set operation ended, across all accounts and Regions specified. Note that this doesn't necessarily mean that the stack set operation was successful, or even attempted, in each account or Region.</p>
    pub end_timestamp: ::std::option::Option<::aws_smithy_types::DateTime>,
    /// <p>The status of the operation in details.</p>
    pub status_reason: ::std::option::Option<::std::string::String>,
    /// <p>Detailed information about the stack set operation.</p>
    pub status_details: ::std::option::Option<crate::types::StackSetOperationStatusDetails>,
    /// <p>The user-specified preferences for how CloudFormation performs a stack set operation.</p>
    /// <p>For more information about maximum concurrent accounts and failure tolerance, see <a href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/stacksets-concepts.html#stackset-ops-options">Stack set operation options</a>.</p>
    pub operation_preferences: ::std::option::Option<crate::types::StackSetOperationPreferences>,
}
impl StackSetOperationSummary {
    /// <p>The unique ID of the stack set operation.</p>
    pub fn operation_id(&self) -> ::std::option::Option<&str> {
        self.operation_id.as_deref()
    }
    /// <p>The type of operation: <code>CREATE</code>, <code>UPDATE</code>, or <code>DELETE</code>. Create and delete operations affect only the specified stack instances that are associated with the specified stack set. Update operations affect both the stack set itself and <i>all</i> associated stack set instances.</p>
    pub fn action(&self) -> ::std::option::Option<&crate::types::StackSetOperationAction> {
        self.action.as_ref()
    }
    /// <p>The overall status of the operation.</p>
    /// <ul>
    /// <li>
    /// <p><code>FAILED</code>: The operation exceeded the specified failure tolerance. The failure tolerance value that you've set for an operation is applied for each Region during stack create and update operations. If the number of failed stacks within a Region exceeds the failure tolerance, the status of the operation in the Region is set to <code>FAILED</code>. This in turn sets the status of the operation as a whole to <code>FAILED</code>, and CloudFormation cancels the operation in any remaining Regions.</p></li>
    /// <li>
    /// <p><code>QUEUED</code>: [Service-managed permissions] For automatic deployments that require a sequence of operations, the operation is queued to be performed. For more information, see the <a href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/stacksets-concepts.html#stackset-status-codes">stack set operation status codes</a> in the <i>CloudFormation User Guide</i>.</p></li>
    /// <li>
    /// <p><code>RUNNING</code>: The operation is currently being performed.</p></li>
    /// <li>
    /// <p><code>STOPPED</code>: The user has canceled the operation.</p></li>
    /// <li>
    /// <p><code>STOPPING</code>: The operation is in the process of stopping, at user request.</p></li>
    /// <li>
    /// <p><code>SUCCEEDED</code>: The operation completed creating or updating all the specified stacks without exceeding the failure tolerance for the operation.</p></li>
    /// </ul>
    pub fn status(&self) -> ::std::option::Option<&crate::types::StackSetOperationStatus> {
        self.status.as_ref()
    }
    /// <p>The time at which the operation was initiated. Note that the creation times for the stack set operation might differ from the creation time of the individual stacks themselves. This is because CloudFormation needs to perform preparatory work for the operation, such as dispatching the work to the requested Regions, before actually creating the first stacks.</p>
    pub fn creation_timestamp(&self) -> ::std::option::Option<&::aws_smithy_types::DateTime> {
        self.creation_timestamp.as_ref()
    }
    /// <p>The time at which the stack set operation ended, across all accounts and Regions specified. Note that this doesn't necessarily mean that the stack set operation was successful, or even attempted, in each account or Region.</p>
    pub fn end_timestamp(&self) -> ::std::option::Option<&::aws_smithy_types::DateTime> {
        self.end_timestamp.as_ref()
    }
    /// <p>The status of the operation in details.</p>
    pub fn status_reason(&self) -> ::std::option::Option<&str> {
        self.status_reason.as_deref()
    }
    /// <p>Detailed information about the stack set operation.</p>
    pub fn status_details(&self) -> ::std::option::Option<&crate::types::StackSetOperationStatusDetails> {
        self.status_details.as_ref()
    }
    /// <p>The user-specified preferences for how CloudFormation performs a stack set operation.</p>
    /// <p>For more information about maximum concurrent accounts and failure tolerance, see <a href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/stacksets-concepts.html#stackset-ops-options">Stack set operation options</a>.</p>
    pub fn operation_preferences(&self) -> ::std::option::Option<&crate::types::StackSetOperationPreferences> {
        self.operation_preferences.as_ref()
    }
}
impl StackSetOperationSummary {
    /// Creates a new builder-style object to manufacture [`StackSetOperationSummary`](crate::types::StackSetOperationSummary).
    pub fn builder() -> crate::types::builders::StackSetOperationSummaryBuilder {
        crate::types::builders::StackSetOperationSummaryBuilder::default()
    }
}

/// A builder for [`StackSetOperationSummary`](crate::types::StackSetOperationSummary).
#[non_exhaustive]
#[derive(::std::clone::Clone, ::std::cmp::PartialEq, ::std::default::Default, ::std::fmt::Debug)]
pub struct StackSetOperationSummaryBuilder {
    pub(crate) operation_id: ::std::option::Option<::std::string::String>,
    pub(crate) action: ::std::option::Option<crate::types::StackSetOperationAction>,
    pub(crate) status: ::std::option::Option<crate::types::StackSetOperationStatus>,
    pub(crate) creation_timestamp: ::std::option::Option<::aws_smithy_types::DateTime>,
    pub(crate) end_timestamp: ::std::option::Option<::aws_smithy_types::DateTime>,
    pub(crate) status_reason: ::std::option::Option<::std::string::String>,
    pub(crate) status_details: ::std::option::Option<crate::types::StackSetOperationStatusDetails>,
    pub(crate) operation_preferences: ::std::option::Option<crate::types::StackSetOperationPreferences>,
}
impl StackSetOperationSummaryBuilder {
    /// <p>The unique ID of the stack set operation.</p>
    pub fn operation_id(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
        self.operation_id = ::std::option::Option::Some(input.into());
        self
    }
    /// <p>The unique ID of the stack set operation.</p>
    pub fn set_operation_id(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
        self.operation_id = input;
        self
    }
    /// <p>The unique ID of the stack set operation.</p>
    pub fn get_operation_id(&self) -> &::std::option::Option<::std::string::String> {
        &self.operation_id
    }
    /// <p>The type of operation: <code>CREATE</code>, <code>UPDATE</code>, or <code>DELETE</code>. Create and delete operations affect only the specified stack instances that are associated with the specified stack set. Update operations affect both the stack set itself and <i>all</i> associated stack set instances.</p>
    pub fn action(mut self, input: crate::types::StackSetOperationAction) -> Self {
        self.action = ::std::option::Option::Some(input);
        self
    }
    /// <p>The type of operation: <code>CREATE</code>, <code>UPDATE</code>, or <code>DELETE</code>. Create and delete operations affect only the specified stack instances that are associated with the specified stack set. Update operations affect both the stack set itself and <i>all</i> associated stack set instances.</p>
    pub fn set_action(mut self, input: ::std::option::Option<crate::types::StackSetOperationAction>) -> Self {
        self.action = input;
        self
    }
    /// <p>The type of operation: <code>CREATE</code>, <code>UPDATE</code>, or <code>DELETE</code>. Create and delete operations affect only the specified stack instances that are associated with the specified stack set. Update operations affect both the stack set itself and <i>all</i> associated stack set instances.</p>
    pub fn get_action(&self) -> &::std::option::Option<crate::types::StackSetOperationAction> {
        &self.action
    }
    /// <p>The overall status of the operation.</p>
    /// <ul>
    /// <li>
    /// <p><code>FAILED</code>: The operation exceeded the specified failure tolerance. The failure tolerance value that you've set for an operation is applied for each Region during stack create and update operations. If the number of failed stacks within a Region exceeds the failure tolerance, the status of the operation in the Region is set to <code>FAILED</code>. This in turn sets the status of the operation as a whole to <code>FAILED</code>, and CloudFormation cancels the operation in any remaining Regions.</p></li>
    /// <li>
    /// <p><code>QUEUED</code>: [Service-managed permissions] For automatic deployments that require a sequence of operations, the operation is queued to be performed. For more information, see the <a href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/stacksets-concepts.html#stackset-status-codes">stack set operation status codes</a> in the <i>CloudFormation User Guide</i>.</p></li>
    /// <li>
    /// <p><code>RUNNING</code>: The operation is currently being performed.</p></li>
    /// <li>
    /// <p><code>STOPPED</code>: The user has canceled the operation.</p></li>
    /// <li>
    /// <p><code>STOPPING</code>: The operation is in the process of stopping, at user request.</p></li>
    /// <li>
    /// <p><code>SUCCEEDED</code>: The operation completed creating or updating all the specified stacks without exceeding the failure tolerance for the operation.</p></li>
    /// </ul>
    pub fn status(mut self, input: crate::types::StackSetOperationStatus) -> Self {
        self.status = ::std::option::Option::Some(input);
        self
    }
    /// <p>The overall status of the operation.</p>
    /// <ul>
    /// <li>
    /// <p><code>FAILED</code>: The operation exceeded the specified failure tolerance. The failure tolerance value that you've set for an operation is applied for each Region during stack create and update operations. If the number of failed stacks within a Region exceeds the failure tolerance, the status of the operation in the Region is set to <code>FAILED</code>. This in turn sets the status of the operation as a whole to <code>FAILED</code>, and CloudFormation cancels the operation in any remaining Regions.</p></li>
    /// <li>
    /// <p><code>QUEUED</code>: [Service-managed permissions] For automatic deployments that require a sequence of operations, the operation is queued to be performed. For more information, see the <a href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/stacksets-concepts.html#stackset-status-codes">stack set operation status codes</a> in the <i>CloudFormation User Guide</i>.</p></li>
    /// <li>
    /// <p><code>RUNNING</code>: The operation is currently being performed.</p></li>
    /// <li>
    /// <p><code>STOPPED</code>: The user has canceled the operation.</p></li>
    /// <li>
    /// <p><code>STOPPING</code>: The operation is in the process of stopping, at user request.</p></li>
    /// <li>
    /// <p><code>SUCCEEDED</code>: The operation completed creating or updating all the specified stacks without exceeding the failure tolerance for the operation.</p></li>
    /// </ul>
    pub fn set_status(mut self, input: ::std::option::Option<crate::types::StackSetOperationStatus>) -> Self {
        self.status = input;
        self
    }
    /// <p>The overall status of the operation.</p>
    /// <ul>
    /// <li>
    /// <p><code>FAILED</code>: The operation exceeded the specified failure tolerance. The failure tolerance value that you've set for an operation is applied for each Region during stack create and update operations. If the number of failed stacks within a Region exceeds the failure tolerance, the status of the operation in the Region is set to <code>FAILED</code>. This in turn sets the status of the operation as a whole to <code>FAILED</code>, and CloudFormation cancels the operation in any remaining Regions.</p></li>
    /// <li>
    /// <p><code>QUEUED</code>: [Service-managed permissions] For automatic deployments that require a sequence of operations, the operation is queued to be performed. For more information, see the <a href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/stacksets-concepts.html#stackset-status-codes">stack set operation status codes</a> in the <i>CloudFormation User Guide</i>.</p></li>
    /// <li>
    /// <p><code>RUNNING</code>: The operation is currently being performed.</p></li>
    /// <li>
    /// <p><code>STOPPED</code>: The user has canceled the operation.</p></li>
    /// <li>
    /// <p><code>STOPPING</code>: The operation is in the process of stopping, at user request.</p></li>
    /// <li>
    /// <p><code>SUCCEEDED</code>: The operation completed creating or updating all the specified stacks without exceeding the failure tolerance for the operation.</p></li>
    /// </ul>
    pub fn get_status(&self) -> &::std::option::Option<crate::types::StackSetOperationStatus> {
        &self.status
    }
    /// <p>The time at which the operation was initiated. Note that the creation times for the stack set operation might differ from the creation time of the individual stacks themselves. This is because CloudFormation needs to perform preparatory work for the operation, such as dispatching the work to the requested Regions, before actually creating the first stacks.</p>
    pub fn creation_timestamp(mut self, input: ::aws_smithy_types::DateTime) -> Self {
        self.creation_timestamp = ::std::option::Option::Some(input);
        self
    }
    /// <p>The time at which the operation was initiated. Note that the creation times for the stack set operation might differ from the creation time of the individual stacks themselves. This is because CloudFormation needs to perform preparatory work for the operation, such as dispatching the work to the requested Regions, before actually creating the first stacks.</p>
    pub fn set_creation_timestamp(mut self, input: ::std::option::Option<::aws_smithy_types::DateTime>) -> Self {
        self.creation_timestamp = input;
        self
    }
    /// <p>The time at which the operation was initiated. Note that the creation times for the stack set operation might differ from the creation time of the individual stacks themselves. This is because CloudFormation needs to perform preparatory work for the operation, such as dispatching the work to the requested Regions, before actually creating the first stacks.</p>
    pub fn get_creation_timestamp(&self) -> &::std::option::Option<::aws_smithy_types::DateTime> {
        &self.creation_timestamp
    }
    /// <p>The time at which the stack set operation ended, across all accounts and Regions specified. Note that this doesn't necessarily mean that the stack set operation was successful, or even attempted, in each account or Region.</p>
    pub fn end_timestamp(mut self, input: ::aws_smithy_types::DateTime) -> Self {
        self.end_timestamp = ::std::option::Option::Some(input);
        self
    }
    /// <p>The time at which the stack set operation ended, across all accounts and Regions specified. Note that this doesn't necessarily mean that the stack set operation was successful, or even attempted, in each account or Region.</p>
    pub fn set_end_timestamp(mut self, input: ::std::option::Option<::aws_smithy_types::DateTime>) -> Self {
        self.end_timestamp = input;
        self
    }
    /// <p>The time at which the stack set operation ended, across all accounts and Regions specified. Note that this doesn't necessarily mean that the stack set operation was successful, or even attempted, in each account or Region.</p>
    pub fn get_end_timestamp(&self) -> &::std::option::Option<::aws_smithy_types::DateTime> {
        &self.end_timestamp
    }
    /// <p>The status of the operation in details.</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 status of the operation in details.</p>
    pub fn set_status_reason(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
        self.status_reason = input;
        self
    }
    /// <p>The status of the operation in details.</p>
    pub fn get_status_reason(&self) -> &::std::option::Option<::std::string::String> {
        &self.status_reason
    }
    /// <p>Detailed information about the stack set operation.</p>
    pub fn status_details(mut self, input: crate::types::StackSetOperationStatusDetails) -> Self {
        self.status_details = ::std::option::Option::Some(input);
        self
    }
    /// <p>Detailed information about the stack set operation.</p>
    pub fn set_status_details(mut self, input: ::std::option::Option<crate::types::StackSetOperationStatusDetails>) -> Self {
        self.status_details = input;
        self
    }
    /// <p>Detailed information about the stack set operation.</p>
    pub fn get_status_details(&self) -> &::std::option::Option<crate::types::StackSetOperationStatusDetails> {
        &self.status_details
    }
    /// <p>The user-specified preferences for how CloudFormation performs a stack set operation.</p>
    /// <p>For more information about maximum concurrent accounts and failure tolerance, see <a href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/stacksets-concepts.html#stackset-ops-options">Stack set operation options</a>.</p>
    pub fn operation_preferences(mut self, input: crate::types::StackSetOperationPreferences) -> Self {
        self.operation_preferences = ::std::option::Option::Some(input);
        self
    }
    /// <p>The user-specified preferences for how CloudFormation performs a stack set operation.</p>
    /// <p>For more information about maximum concurrent accounts and failure tolerance, see <a href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/stacksets-concepts.html#stackset-ops-options">Stack set operation options</a>.</p>
    pub fn set_operation_preferences(mut self, input: ::std::option::Option<crate::types::StackSetOperationPreferences>) -> Self {
        self.operation_preferences = input;
        self
    }
    /// <p>The user-specified preferences for how CloudFormation performs a stack set operation.</p>
    /// <p>For more information about maximum concurrent accounts and failure tolerance, see <a href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/stacksets-concepts.html#stackset-ops-options">Stack set operation options</a>.</p>
    pub fn get_operation_preferences(&self) -> &::std::option::Option<crate::types::StackSetOperationPreferences> {
        &self.operation_preferences
    }
    /// Consumes the builder and constructs a [`StackSetOperationSummary`](crate::types::StackSetOperationSummary).
    pub fn build(self) -> crate::types::StackSetOperationSummary {
        crate::types::StackSetOperationSummary {
            operation_id: self.operation_id,
            action: self.action,
            status: self.status,
            creation_timestamp: self.creation_timestamp,
            end_timestamp: self.end_timestamp,
            status_reason: self.status_reason,
            status_details: self.status_details,
            operation_preferences: self.operation_preferences,
        }
    }
}