aws_sdk_cloudformation/types/
_stack_set_operation.rs

1// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
2
3/// <p>The structure that contains information about a stack set operation.</p>
4#[non_exhaustive]
5#[derive(::std::clone::Clone, ::std::cmp::PartialEq, ::std::fmt::Debug)]
6pub struct StackSetOperation {
7    /// <p>The unique ID of a stack set operation.</p>
8    pub operation_id: ::std::option::Option<::std::string::String>,
9    /// <p>The ID of the stack set.</p>
10    pub stack_set_id: ::std::option::Option<::std::string::String>,
11    /// <p>The type of stack set operation: <code>CREATE</code>, <code>UPDATE</code>, or <code>DELETE</code>. Create and delete operations affect only the specified stack set instances that are associated with the specified stack set. Update operations affect both the stack set itself, in addition to <i>all</i> associated stack set instances.</p>
12    pub action: ::std::option::Option<crate::types::StackSetOperationAction>,
13    /// <p>The status of the operation.</p>
14    /// <ul>
15    /// <li>
16    /// <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>
17    /// <li>
18    /// <p>QUEUED: \[Service-managed permissions\] For automatic deployments that require a sequence of operations, the operation is queued to be performed. For more information, see the StackSets status codes in the CloudFormation User Guide.</p></li>
19    /// <li>
20    /// <p><code>RUNNING</code>: The operation is currently being performed.</p></li>
21    /// <li>
22    /// <p><code>STOPPED</code>: The user has canceled the operation.</p></li>
23    /// <li>
24    /// <p><code>STOPPING</code>: The operation is in the process of stopping, at user request.</p></li>
25    /// <li>
26    /// <p><code>SUCCEEDED</code>: The operation completed creating or updating all the specified stacks without exceeding the failure tolerance for the operation.</p></li>
27    /// </ul>
28    pub status: ::std::option::Option<crate::types::StackSetOperationStatus>,
29    /// <p>The preferences for how CloudFormation performs this stack set operation.</p>
30    pub operation_preferences: ::std::option::Option<crate::types::StackSetOperationPreferences>,
31    /// <p>For stack set operations of action type <code>DELETE</code>, specifies whether to remove the stack instances from the specified stack set, but doesn't delete the stacks. You can't re-associate a retained stack, or add an existing, saved stack to a new stack set.</p>
32    pub retain_stacks: ::std::option::Option<bool>,
33    /// <p>The Amazon Resource Name (ARN) of the IAM role used to perform this stack set operation.</p>
34    /// <p>Use customized administrator roles to control which users or groups can manage specific stack sets within the same administrator account. For more information, see <a href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/stacksets-prereqs-self-managed.html">Grant self-managed permissions</a> in the <i>CloudFormation User Guide</i>.</p>
35    pub administration_role_arn: ::std::option::Option<::std::string::String>,
36    /// <p>The name of the IAM execution role used to create or update the stack set.</p>
37    /// <p>Use customized execution roles to control which stack resources users and groups can include in their stack sets.</p>
38    pub execution_role_name: ::std::option::Option<::std::string::String>,
39    /// <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>
40    pub creation_timestamp: ::std::option::Option<::aws_smithy_types::DateTime>,
41    /// <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>
42    pub end_timestamp: ::std::option::Option<::aws_smithy_types::DateTime>,
43    /// <p>\[Service-managed permissions\] The Organizations accounts affected by the stack operation.</p>
44    pub deployment_targets: ::std::option::Option<crate::types::DeploymentTargets>,
45    /// <p>Detailed information about the drift status of the stack set. This includes information about drift operations currently being performed on the stack set.</p>
46    /// <p>This information will only be present for stack set operations whose <code>Action</code> type is <code>DETECT_DRIFT</code>.</p>
47    /// <p>For more information, see <a href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/stacksets-drift.html">Performing drift detection on CloudFormation StackSets</a> in the <i>CloudFormation User Guide</i>.</p>
48    pub stack_set_drift_detection_details: ::std::option::Option<crate::types::StackSetDriftDetectionDetails>,
49    /// <p>The status of the operation in details.</p>
50    pub status_reason: ::std::option::Option<::std::string::String>,
51    /// <p>Detailed information about the StackSet operation.</p>
52    pub status_details: ::std::option::Option<crate::types::StackSetOperationStatusDetails>,
53}
54impl StackSetOperation {
55    /// <p>The unique ID of a stack set operation.</p>
56    pub fn operation_id(&self) -> ::std::option::Option<&str> {
57        self.operation_id.as_deref()
58    }
59    /// <p>The ID of the stack set.</p>
60    pub fn stack_set_id(&self) -> ::std::option::Option<&str> {
61        self.stack_set_id.as_deref()
62    }
63    /// <p>The type of stack set operation: <code>CREATE</code>, <code>UPDATE</code>, or <code>DELETE</code>. Create and delete operations affect only the specified stack set instances that are associated with the specified stack set. Update operations affect both the stack set itself, in addition to <i>all</i> associated stack set instances.</p>
64    pub fn action(&self) -> ::std::option::Option<&crate::types::StackSetOperationAction> {
65        self.action.as_ref()
66    }
67    /// <p>The status of the operation.</p>
68    /// <ul>
69    /// <li>
70    /// <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>
71    /// <li>
72    /// <p>QUEUED: \[Service-managed permissions\] For automatic deployments that require a sequence of operations, the operation is queued to be performed. For more information, see the StackSets status codes in the CloudFormation User Guide.</p></li>
73    /// <li>
74    /// <p><code>RUNNING</code>: The operation is currently being performed.</p></li>
75    /// <li>
76    /// <p><code>STOPPED</code>: The user has canceled the operation.</p></li>
77    /// <li>
78    /// <p><code>STOPPING</code>: The operation is in the process of stopping, at user request.</p></li>
79    /// <li>
80    /// <p><code>SUCCEEDED</code>: The operation completed creating or updating all the specified stacks without exceeding the failure tolerance for the operation.</p></li>
81    /// </ul>
82    pub fn status(&self) -> ::std::option::Option<&crate::types::StackSetOperationStatus> {
83        self.status.as_ref()
84    }
85    /// <p>The preferences for how CloudFormation performs this stack set operation.</p>
86    pub fn operation_preferences(&self) -> ::std::option::Option<&crate::types::StackSetOperationPreferences> {
87        self.operation_preferences.as_ref()
88    }
89    /// <p>For stack set operations of action type <code>DELETE</code>, specifies whether to remove the stack instances from the specified stack set, but doesn't delete the stacks. You can't re-associate a retained stack, or add an existing, saved stack to a new stack set.</p>
90    pub fn retain_stacks(&self) -> ::std::option::Option<bool> {
91        self.retain_stacks
92    }
93    /// <p>The Amazon Resource Name (ARN) of the IAM role used to perform this stack set operation.</p>
94    /// <p>Use customized administrator roles to control which users or groups can manage specific stack sets within the same administrator account. For more information, see <a href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/stacksets-prereqs-self-managed.html">Grant self-managed permissions</a> in the <i>CloudFormation User Guide</i>.</p>
95    pub fn administration_role_arn(&self) -> ::std::option::Option<&str> {
96        self.administration_role_arn.as_deref()
97    }
98    /// <p>The name of the IAM execution role used to create or update the stack set.</p>
99    /// <p>Use customized execution roles to control which stack resources users and groups can include in their stack sets.</p>
100    pub fn execution_role_name(&self) -> ::std::option::Option<&str> {
101        self.execution_role_name.as_deref()
102    }
103    /// <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>
104    pub fn creation_timestamp(&self) -> ::std::option::Option<&::aws_smithy_types::DateTime> {
105        self.creation_timestamp.as_ref()
106    }
107    /// <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>
108    pub fn end_timestamp(&self) -> ::std::option::Option<&::aws_smithy_types::DateTime> {
109        self.end_timestamp.as_ref()
110    }
111    /// <p>\[Service-managed permissions\] The Organizations accounts affected by the stack operation.</p>
112    pub fn deployment_targets(&self) -> ::std::option::Option<&crate::types::DeploymentTargets> {
113        self.deployment_targets.as_ref()
114    }
115    /// <p>Detailed information about the drift status of the stack set. This includes information about drift operations currently being performed on the stack set.</p>
116    /// <p>This information will only be present for stack set operations whose <code>Action</code> type is <code>DETECT_DRIFT</code>.</p>
117    /// <p>For more information, see <a href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/stacksets-drift.html">Performing drift detection on CloudFormation StackSets</a> in the <i>CloudFormation User Guide</i>.</p>
118    pub fn stack_set_drift_detection_details(&self) -> ::std::option::Option<&crate::types::StackSetDriftDetectionDetails> {
119        self.stack_set_drift_detection_details.as_ref()
120    }
121    /// <p>The status of the operation in details.</p>
122    pub fn status_reason(&self) -> ::std::option::Option<&str> {
123        self.status_reason.as_deref()
124    }
125    /// <p>Detailed information about the StackSet operation.</p>
126    pub fn status_details(&self) -> ::std::option::Option<&crate::types::StackSetOperationStatusDetails> {
127        self.status_details.as_ref()
128    }
129}
130impl StackSetOperation {
131    /// Creates a new builder-style object to manufacture [`StackSetOperation`](crate::types::StackSetOperation).
132    pub fn builder() -> crate::types::builders::StackSetOperationBuilder {
133        crate::types::builders::StackSetOperationBuilder::default()
134    }
135}
136
137/// A builder for [`StackSetOperation`](crate::types::StackSetOperation).
138#[derive(::std::clone::Clone, ::std::cmp::PartialEq, ::std::default::Default, ::std::fmt::Debug)]
139#[non_exhaustive]
140pub struct StackSetOperationBuilder {
141    pub(crate) operation_id: ::std::option::Option<::std::string::String>,
142    pub(crate) stack_set_id: ::std::option::Option<::std::string::String>,
143    pub(crate) action: ::std::option::Option<crate::types::StackSetOperationAction>,
144    pub(crate) status: ::std::option::Option<crate::types::StackSetOperationStatus>,
145    pub(crate) operation_preferences: ::std::option::Option<crate::types::StackSetOperationPreferences>,
146    pub(crate) retain_stacks: ::std::option::Option<bool>,
147    pub(crate) administration_role_arn: ::std::option::Option<::std::string::String>,
148    pub(crate) execution_role_name: ::std::option::Option<::std::string::String>,
149    pub(crate) creation_timestamp: ::std::option::Option<::aws_smithy_types::DateTime>,
150    pub(crate) end_timestamp: ::std::option::Option<::aws_smithy_types::DateTime>,
151    pub(crate) deployment_targets: ::std::option::Option<crate::types::DeploymentTargets>,
152    pub(crate) stack_set_drift_detection_details: ::std::option::Option<crate::types::StackSetDriftDetectionDetails>,
153    pub(crate) status_reason: ::std::option::Option<::std::string::String>,
154    pub(crate) status_details: ::std::option::Option<crate::types::StackSetOperationStatusDetails>,
155}
156impl StackSetOperationBuilder {
157    /// <p>The unique ID of a stack set operation.</p>
158    pub fn operation_id(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
159        self.operation_id = ::std::option::Option::Some(input.into());
160        self
161    }
162    /// <p>The unique ID of a stack set operation.</p>
163    pub fn set_operation_id(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
164        self.operation_id = input;
165        self
166    }
167    /// <p>The unique ID of a stack set operation.</p>
168    pub fn get_operation_id(&self) -> &::std::option::Option<::std::string::String> {
169        &self.operation_id
170    }
171    /// <p>The ID of the stack set.</p>
172    pub fn stack_set_id(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
173        self.stack_set_id = ::std::option::Option::Some(input.into());
174        self
175    }
176    /// <p>The ID of the stack set.</p>
177    pub fn set_stack_set_id(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
178        self.stack_set_id = input;
179        self
180    }
181    /// <p>The ID of the stack set.</p>
182    pub fn get_stack_set_id(&self) -> &::std::option::Option<::std::string::String> {
183        &self.stack_set_id
184    }
185    /// <p>The type of stack set operation: <code>CREATE</code>, <code>UPDATE</code>, or <code>DELETE</code>. Create and delete operations affect only the specified stack set instances that are associated with the specified stack set. Update operations affect both the stack set itself, in addition to <i>all</i> associated stack set instances.</p>
186    pub fn action(mut self, input: crate::types::StackSetOperationAction) -> Self {
187        self.action = ::std::option::Option::Some(input);
188        self
189    }
190    /// <p>The type of stack set operation: <code>CREATE</code>, <code>UPDATE</code>, or <code>DELETE</code>. Create and delete operations affect only the specified stack set instances that are associated with the specified stack set. Update operations affect both the stack set itself, in addition to <i>all</i> associated stack set instances.</p>
191    pub fn set_action(mut self, input: ::std::option::Option<crate::types::StackSetOperationAction>) -> Self {
192        self.action = input;
193        self
194    }
195    /// <p>The type of stack set operation: <code>CREATE</code>, <code>UPDATE</code>, or <code>DELETE</code>. Create and delete operations affect only the specified stack set instances that are associated with the specified stack set. Update operations affect both the stack set itself, in addition to <i>all</i> associated stack set instances.</p>
196    pub fn get_action(&self) -> &::std::option::Option<crate::types::StackSetOperationAction> {
197        &self.action
198    }
199    /// <p>The status of the operation.</p>
200    /// <ul>
201    /// <li>
202    /// <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>
203    /// <li>
204    /// <p>QUEUED: \[Service-managed permissions\] For automatic deployments that require a sequence of operations, the operation is queued to be performed. For more information, see the StackSets status codes in the CloudFormation User Guide.</p></li>
205    /// <li>
206    /// <p><code>RUNNING</code>: The operation is currently being performed.</p></li>
207    /// <li>
208    /// <p><code>STOPPED</code>: The user has canceled the operation.</p></li>
209    /// <li>
210    /// <p><code>STOPPING</code>: The operation is in the process of stopping, at user request.</p></li>
211    /// <li>
212    /// <p><code>SUCCEEDED</code>: The operation completed creating or updating all the specified stacks without exceeding the failure tolerance for the operation.</p></li>
213    /// </ul>
214    pub fn status(mut self, input: crate::types::StackSetOperationStatus) -> Self {
215        self.status = ::std::option::Option::Some(input);
216        self
217    }
218    /// <p>The status of the operation.</p>
219    /// <ul>
220    /// <li>
221    /// <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>
222    /// <li>
223    /// <p>QUEUED: \[Service-managed permissions\] For automatic deployments that require a sequence of operations, the operation is queued to be performed. For more information, see the StackSets status codes in the CloudFormation User Guide.</p></li>
224    /// <li>
225    /// <p><code>RUNNING</code>: The operation is currently being performed.</p></li>
226    /// <li>
227    /// <p><code>STOPPED</code>: The user has canceled the operation.</p></li>
228    /// <li>
229    /// <p><code>STOPPING</code>: The operation is in the process of stopping, at user request.</p></li>
230    /// <li>
231    /// <p><code>SUCCEEDED</code>: The operation completed creating or updating all the specified stacks without exceeding the failure tolerance for the operation.</p></li>
232    /// </ul>
233    pub fn set_status(mut self, input: ::std::option::Option<crate::types::StackSetOperationStatus>) -> Self {
234        self.status = input;
235        self
236    }
237    /// <p>The status of the operation.</p>
238    /// <ul>
239    /// <li>
240    /// <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>
241    /// <li>
242    /// <p>QUEUED: \[Service-managed permissions\] For automatic deployments that require a sequence of operations, the operation is queued to be performed. For more information, see the StackSets status codes in the CloudFormation User Guide.</p></li>
243    /// <li>
244    /// <p><code>RUNNING</code>: The operation is currently being performed.</p></li>
245    /// <li>
246    /// <p><code>STOPPED</code>: The user has canceled the operation.</p></li>
247    /// <li>
248    /// <p><code>STOPPING</code>: The operation is in the process of stopping, at user request.</p></li>
249    /// <li>
250    /// <p><code>SUCCEEDED</code>: The operation completed creating or updating all the specified stacks without exceeding the failure tolerance for the operation.</p></li>
251    /// </ul>
252    pub fn get_status(&self) -> &::std::option::Option<crate::types::StackSetOperationStatus> {
253        &self.status
254    }
255    /// <p>The preferences for how CloudFormation performs this stack set operation.</p>
256    pub fn operation_preferences(mut self, input: crate::types::StackSetOperationPreferences) -> Self {
257        self.operation_preferences = ::std::option::Option::Some(input);
258        self
259    }
260    /// <p>The preferences for how CloudFormation performs this stack set operation.</p>
261    pub fn set_operation_preferences(mut self, input: ::std::option::Option<crate::types::StackSetOperationPreferences>) -> Self {
262        self.operation_preferences = input;
263        self
264    }
265    /// <p>The preferences for how CloudFormation performs this stack set operation.</p>
266    pub fn get_operation_preferences(&self) -> &::std::option::Option<crate::types::StackSetOperationPreferences> {
267        &self.operation_preferences
268    }
269    /// <p>For stack set operations of action type <code>DELETE</code>, specifies whether to remove the stack instances from the specified stack set, but doesn't delete the stacks. You can't re-associate a retained stack, or add an existing, saved stack to a new stack set.</p>
270    pub fn retain_stacks(mut self, input: bool) -> Self {
271        self.retain_stacks = ::std::option::Option::Some(input);
272        self
273    }
274    /// <p>For stack set operations of action type <code>DELETE</code>, specifies whether to remove the stack instances from the specified stack set, but doesn't delete the stacks. You can't re-associate a retained stack, or add an existing, saved stack to a new stack set.</p>
275    pub fn set_retain_stacks(mut self, input: ::std::option::Option<bool>) -> Self {
276        self.retain_stacks = input;
277        self
278    }
279    /// <p>For stack set operations of action type <code>DELETE</code>, specifies whether to remove the stack instances from the specified stack set, but doesn't delete the stacks. You can't re-associate a retained stack, or add an existing, saved stack to a new stack set.</p>
280    pub fn get_retain_stacks(&self) -> &::std::option::Option<bool> {
281        &self.retain_stacks
282    }
283    /// <p>The Amazon Resource Name (ARN) of the IAM role used to perform this stack set operation.</p>
284    /// <p>Use customized administrator roles to control which users or groups can manage specific stack sets within the same administrator account. For more information, see <a href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/stacksets-prereqs-self-managed.html">Grant self-managed permissions</a> in the <i>CloudFormation User Guide</i>.</p>
285    pub fn administration_role_arn(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
286        self.administration_role_arn = ::std::option::Option::Some(input.into());
287        self
288    }
289    /// <p>The Amazon Resource Name (ARN) of the IAM role used to perform this stack set operation.</p>
290    /// <p>Use customized administrator roles to control which users or groups can manage specific stack sets within the same administrator account. For more information, see <a href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/stacksets-prereqs-self-managed.html">Grant self-managed permissions</a> in the <i>CloudFormation User Guide</i>.</p>
291    pub fn set_administration_role_arn(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
292        self.administration_role_arn = input;
293        self
294    }
295    /// <p>The Amazon Resource Name (ARN) of the IAM role used to perform this stack set operation.</p>
296    /// <p>Use customized administrator roles to control which users or groups can manage specific stack sets within the same administrator account. For more information, see <a href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/stacksets-prereqs-self-managed.html">Grant self-managed permissions</a> in the <i>CloudFormation User Guide</i>.</p>
297    pub fn get_administration_role_arn(&self) -> &::std::option::Option<::std::string::String> {
298        &self.administration_role_arn
299    }
300    /// <p>The name of the IAM execution role used to create or update the stack set.</p>
301    /// <p>Use customized execution roles to control which stack resources users and groups can include in their stack sets.</p>
302    pub fn execution_role_name(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
303        self.execution_role_name = ::std::option::Option::Some(input.into());
304        self
305    }
306    /// <p>The name of the IAM execution role used to create or update the stack set.</p>
307    /// <p>Use customized execution roles to control which stack resources users and groups can include in their stack sets.</p>
308    pub fn set_execution_role_name(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
309        self.execution_role_name = input;
310        self
311    }
312    /// <p>The name of the IAM execution role used to create or update the stack set.</p>
313    /// <p>Use customized execution roles to control which stack resources users and groups can include in their stack sets.</p>
314    pub fn get_execution_role_name(&self) -> &::std::option::Option<::std::string::String> {
315        &self.execution_role_name
316    }
317    /// <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>
318    pub fn creation_timestamp(mut self, input: ::aws_smithy_types::DateTime) -> Self {
319        self.creation_timestamp = ::std::option::Option::Some(input);
320        self
321    }
322    /// <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>
323    pub fn set_creation_timestamp(mut self, input: ::std::option::Option<::aws_smithy_types::DateTime>) -> Self {
324        self.creation_timestamp = input;
325        self
326    }
327    /// <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>
328    pub fn get_creation_timestamp(&self) -> &::std::option::Option<::aws_smithy_types::DateTime> {
329        &self.creation_timestamp
330    }
331    /// <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>
332    pub fn end_timestamp(mut self, input: ::aws_smithy_types::DateTime) -> Self {
333        self.end_timestamp = ::std::option::Option::Some(input);
334        self
335    }
336    /// <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>
337    pub fn set_end_timestamp(mut self, input: ::std::option::Option<::aws_smithy_types::DateTime>) -> Self {
338        self.end_timestamp = input;
339        self
340    }
341    /// <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>
342    pub fn get_end_timestamp(&self) -> &::std::option::Option<::aws_smithy_types::DateTime> {
343        &self.end_timestamp
344    }
345    /// <p>\[Service-managed permissions\] The Organizations accounts affected by the stack operation.</p>
346    pub fn deployment_targets(mut self, input: crate::types::DeploymentTargets) -> Self {
347        self.deployment_targets = ::std::option::Option::Some(input);
348        self
349    }
350    /// <p>\[Service-managed permissions\] The Organizations accounts affected by the stack operation.</p>
351    pub fn set_deployment_targets(mut self, input: ::std::option::Option<crate::types::DeploymentTargets>) -> Self {
352        self.deployment_targets = input;
353        self
354    }
355    /// <p>\[Service-managed permissions\] The Organizations accounts affected by the stack operation.</p>
356    pub fn get_deployment_targets(&self) -> &::std::option::Option<crate::types::DeploymentTargets> {
357        &self.deployment_targets
358    }
359    /// <p>Detailed information about the drift status of the stack set. This includes information about drift operations currently being performed on the stack set.</p>
360    /// <p>This information will only be present for stack set operations whose <code>Action</code> type is <code>DETECT_DRIFT</code>.</p>
361    /// <p>For more information, see <a href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/stacksets-drift.html">Performing drift detection on CloudFormation StackSets</a> in the <i>CloudFormation User Guide</i>.</p>
362    pub fn stack_set_drift_detection_details(mut self, input: crate::types::StackSetDriftDetectionDetails) -> Self {
363        self.stack_set_drift_detection_details = ::std::option::Option::Some(input);
364        self
365    }
366    /// <p>Detailed information about the drift status of the stack set. This includes information about drift operations currently being performed on the stack set.</p>
367    /// <p>This information will only be present for stack set operations whose <code>Action</code> type is <code>DETECT_DRIFT</code>.</p>
368    /// <p>For more information, see <a href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/stacksets-drift.html">Performing drift detection on CloudFormation StackSets</a> in the <i>CloudFormation User Guide</i>.</p>
369    pub fn set_stack_set_drift_detection_details(mut self, input: ::std::option::Option<crate::types::StackSetDriftDetectionDetails>) -> Self {
370        self.stack_set_drift_detection_details = input;
371        self
372    }
373    /// <p>Detailed information about the drift status of the stack set. This includes information about drift operations currently being performed on the stack set.</p>
374    /// <p>This information will only be present for stack set operations whose <code>Action</code> type is <code>DETECT_DRIFT</code>.</p>
375    /// <p>For more information, see <a href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/stacksets-drift.html">Performing drift detection on CloudFormation StackSets</a> in the <i>CloudFormation User Guide</i>.</p>
376    pub fn get_stack_set_drift_detection_details(&self) -> &::std::option::Option<crate::types::StackSetDriftDetectionDetails> {
377        &self.stack_set_drift_detection_details
378    }
379    /// <p>The status of the operation in details.</p>
380    pub fn status_reason(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
381        self.status_reason = ::std::option::Option::Some(input.into());
382        self
383    }
384    /// <p>The status of the operation in details.</p>
385    pub fn set_status_reason(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
386        self.status_reason = input;
387        self
388    }
389    /// <p>The status of the operation in details.</p>
390    pub fn get_status_reason(&self) -> &::std::option::Option<::std::string::String> {
391        &self.status_reason
392    }
393    /// <p>Detailed information about the StackSet operation.</p>
394    pub fn status_details(mut self, input: crate::types::StackSetOperationStatusDetails) -> Self {
395        self.status_details = ::std::option::Option::Some(input);
396        self
397    }
398    /// <p>Detailed information about the StackSet operation.</p>
399    pub fn set_status_details(mut self, input: ::std::option::Option<crate::types::StackSetOperationStatusDetails>) -> Self {
400        self.status_details = input;
401        self
402    }
403    /// <p>Detailed information about the StackSet operation.</p>
404    pub fn get_status_details(&self) -> &::std::option::Option<crate::types::StackSetOperationStatusDetails> {
405        &self.status_details
406    }
407    /// Consumes the builder and constructs a [`StackSetOperation`](crate::types::StackSetOperation).
408    pub fn build(self) -> crate::types::StackSetOperation {
409        crate::types::StackSetOperation {
410            operation_id: self.operation_id,
411            stack_set_id: self.stack_set_id,
412            action: self.action,
413            status: self.status,
414            operation_preferences: self.operation_preferences,
415            retain_stacks: self.retain_stacks,
416            administration_role_arn: self.administration_role_arn,
417            execution_role_name: self.execution_role_name,
418            creation_timestamp: self.creation_timestamp,
419            end_timestamp: self.end_timestamp,
420            deployment_targets: self.deployment_targets,
421            stack_set_drift_detection_details: self.stack_set_drift_detection_details,
422            status_reason: self.status_reason,
423            status_details: self.status_details,
424        }
425    }
426}