aws_sdk_cloudformation/types/_stack_set.rs
1// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
2
3/// <p>A structure that contains information about a stack set. A stack set enables you to provision stacks into Amazon Web Services accounts and across Regions by using a single CloudFormation template. In the stack set, you specify the template to use, in addition to any parameters and capabilities that the template requires.</p>
4#[non_exhaustive]
5#[derive(::std::clone::Clone, ::std::cmp::PartialEq, ::std::fmt::Debug)]
6pub struct StackSet {
7 /// <p>The name that's associated with the stack set.</p>
8 pub stack_set_name: ::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>A description of the stack set that you specify when the stack set is created or updated.</p>
12 pub description: ::std::option::Option<::std::string::String>,
13 /// <p>The status of the stack set.</p>
14 pub status: ::std::option::Option<crate::types::StackSetStatus>,
15 /// <p>The structure that contains the body of the template that was used to create or update the stack set.</p>
16 pub template_body: ::std::option::Option<::std::string::String>,
17 /// <p>A list of input parameters for a stack set.</p>
18 pub parameters: ::std::option::Option<::std::vec::Vec<crate::types::Parameter>>,
19 /// <p>The capabilities that are allowed in the stack set. Some stack set templates might include resources that can affect permissions in your Amazon Web Services account—for example, by creating new Identity and Access Management (IAM) users. For more information, see <a href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/control-access-with-iam.html#using-iam-capabilities">Acknowledging IAM resources in CloudFormation templates</a>.</p>
20 pub capabilities: ::std::option::Option<::std::vec::Vec<crate::types::Capability>>,
21 /// <p>A list of tags that specify information about the stack set. A maximum number of 50 tags can be specified.</p>
22 pub tags: ::std::option::Option<::std::vec::Vec<crate::types::Tag>>,
23 /// <p>The Amazon Resource Name (ARN) of the stack set.</p>
24 pub stack_set_arn: ::std::option::Option<::std::string::String>,
25 /// <p>The Amazon Resource Name (ARN) of the IAM role used to create or update the stack set.</p>
26 /// <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.html">Prerequisites for using CloudFormation StackSets</a> in the <i>CloudFormation User Guide</i>.</p>
27 pub administration_role_arn: ::std::option::Option<::std::string::String>,
28 /// <p>The name of the IAM execution role used to create or update the stack set.</p>
29 /// <p>Use customized execution roles to control which stack resources users and groups can include in their stack sets.</p>
30 pub execution_role_name: ::std::option::Option<::std::string::String>,
31 /// <p>Detailed information about the drift status of the stack set.</p>
32 /// <p>For stack sets, contains information about the last <i>completed</i> drift operation performed on the stack set. Information about drift operations currently in progress isn't included.</p>
33 pub stack_set_drift_detection_details: ::std::option::Option<crate::types::StackSetDriftDetectionDetails>,
34 /// <p>\[Service-managed permissions\] Describes whether StackSets automatically deploys to Organizations accounts that are added to a target organization or organizational unit (OU).</p>
35 pub auto_deployment: ::std::option::Option<crate::types::AutoDeployment>,
36 /// <p>Describes how the IAM roles required for stack set operations are created.</p>
37 /// <ul>
38 /// <li>
39 /// <p>With <code>self-managed</code> permissions, you must create the administrator and execution roles required to deploy to target accounts. For more information, see <a href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/stacksets-prereqs-self-managed.html">Grant self-managed permissions</a>.</p></li>
40 /// <li>
41 /// <p>With <code>service-managed</code> permissions, StackSets automatically creates the IAM roles required to deploy to accounts managed by Organizations. For more information, see <a href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/stacksets-orgs-activate-trusted-access.html">Activate trusted access for stack sets with Organizations</a>.</p></li>
42 /// </ul>
43 pub permission_model: ::std::option::Option<crate::types::PermissionModels>,
44 /// <p>\[Service-managed permissions\] The organization root ID or organizational unit (OU) IDs that you specified for DeploymentTargets.</p>
45 pub organizational_unit_ids: ::std::option::Option<::std::vec::Vec<::std::string::String>>,
46 /// <p>Describes whether StackSets performs non-conflicting operations concurrently and queues conflicting operations.</p>
47 pub managed_execution: ::std::option::Option<crate::types::ManagedExecution>,
48 /// <p>Returns a list of all Amazon Web Services Regions the given StackSet has stack instances deployed in. The Amazon Web Services Regions list output is in no particular order.</p>
49 pub regions: ::std::option::Option<::std::vec::Vec<::std::string::String>>,
50}
51impl StackSet {
52 /// <p>The name that's associated with the stack set.</p>
53 pub fn stack_set_name(&self) -> ::std::option::Option<&str> {
54 self.stack_set_name.as_deref()
55 }
56 /// <p>The ID of the stack set.</p>
57 pub fn stack_set_id(&self) -> ::std::option::Option<&str> {
58 self.stack_set_id.as_deref()
59 }
60 /// <p>A description of the stack set that you specify when the stack set is created or updated.</p>
61 pub fn description(&self) -> ::std::option::Option<&str> {
62 self.description.as_deref()
63 }
64 /// <p>The status of the stack set.</p>
65 pub fn status(&self) -> ::std::option::Option<&crate::types::StackSetStatus> {
66 self.status.as_ref()
67 }
68 /// <p>The structure that contains the body of the template that was used to create or update the stack set.</p>
69 pub fn template_body(&self) -> ::std::option::Option<&str> {
70 self.template_body.as_deref()
71 }
72 /// <p>A list of input parameters for a stack set.</p>
73 ///
74 /// If no value was sent for this field, a default will be set. If you want to determine if no value was sent, use `.parameters.is_none()`.
75 pub fn parameters(&self) -> &[crate::types::Parameter] {
76 self.parameters.as_deref().unwrap_or_default()
77 }
78 /// <p>The capabilities that are allowed in the stack set. Some stack set templates might include resources that can affect permissions in your Amazon Web Services account—for example, by creating new Identity and Access Management (IAM) users. For more information, see <a href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/control-access-with-iam.html#using-iam-capabilities">Acknowledging IAM resources in CloudFormation templates</a>.</p>
79 ///
80 /// If no value was sent for this field, a default will be set. If you want to determine if no value was sent, use `.capabilities.is_none()`.
81 pub fn capabilities(&self) -> &[crate::types::Capability] {
82 self.capabilities.as_deref().unwrap_or_default()
83 }
84 /// <p>A list of tags that specify information about the stack set. A maximum number of 50 tags can be specified.</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 `.tags.is_none()`.
87 pub fn tags(&self) -> &[crate::types::Tag] {
88 self.tags.as_deref().unwrap_or_default()
89 }
90 /// <p>The Amazon Resource Name (ARN) of the stack set.</p>
91 pub fn stack_set_arn(&self) -> ::std::option::Option<&str> {
92 self.stack_set_arn.as_deref()
93 }
94 /// <p>The Amazon Resource Name (ARN) of the IAM role used to create or update the stack set.</p>
95 /// <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.html">Prerequisites for using CloudFormation StackSets</a> in the <i>CloudFormation User Guide</i>.</p>
96 pub fn administration_role_arn(&self) -> ::std::option::Option<&str> {
97 self.administration_role_arn.as_deref()
98 }
99 /// <p>The name of the IAM execution role used to create or update the stack set.</p>
100 /// <p>Use customized execution roles to control which stack resources users and groups can include in their stack sets.</p>
101 pub fn execution_role_name(&self) -> ::std::option::Option<&str> {
102 self.execution_role_name.as_deref()
103 }
104 /// <p>Detailed information about the drift status of the stack set.</p>
105 /// <p>For stack sets, contains information about the last <i>completed</i> drift operation performed on the stack set. Information about drift operations currently in progress isn't included.</p>
106 pub fn stack_set_drift_detection_details(&self) -> ::std::option::Option<&crate::types::StackSetDriftDetectionDetails> {
107 self.stack_set_drift_detection_details.as_ref()
108 }
109 /// <p>\[Service-managed permissions\] Describes whether StackSets automatically deploys to Organizations accounts that are added to a target organization or organizational unit (OU).</p>
110 pub fn auto_deployment(&self) -> ::std::option::Option<&crate::types::AutoDeployment> {
111 self.auto_deployment.as_ref()
112 }
113 /// <p>Describes how the IAM roles required for stack set operations are created.</p>
114 /// <ul>
115 /// <li>
116 /// <p>With <code>self-managed</code> permissions, you must create the administrator and execution roles required to deploy to target accounts. For more information, see <a href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/stacksets-prereqs-self-managed.html">Grant self-managed permissions</a>.</p></li>
117 /// <li>
118 /// <p>With <code>service-managed</code> permissions, StackSets automatically creates the IAM roles required to deploy to accounts managed by Organizations. For more information, see <a href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/stacksets-orgs-activate-trusted-access.html">Activate trusted access for stack sets with Organizations</a>.</p></li>
119 /// </ul>
120 pub fn permission_model(&self) -> ::std::option::Option<&crate::types::PermissionModels> {
121 self.permission_model.as_ref()
122 }
123 /// <p>\[Service-managed permissions\] The organization root ID or organizational unit (OU) IDs that you specified for DeploymentTargets.</p>
124 ///
125 /// If no value was sent for this field, a default will be set. If you want to determine if no value was sent, use `.organizational_unit_ids.is_none()`.
126 pub fn organizational_unit_ids(&self) -> &[::std::string::String] {
127 self.organizational_unit_ids.as_deref().unwrap_or_default()
128 }
129 /// <p>Describes whether StackSets performs non-conflicting operations concurrently and queues conflicting operations.</p>
130 pub fn managed_execution(&self) -> ::std::option::Option<&crate::types::ManagedExecution> {
131 self.managed_execution.as_ref()
132 }
133 /// <p>Returns a list of all Amazon Web Services Regions the given StackSet has stack instances deployed in. The Amazon Web Services Regions list output is in no particular order.</p>
134 ///
135 /// If no value was sent for this field, a default will be set. If you want to determine if no value was sent, use `.regions.is_none()`.
136 pub fn regions(&self) -> &[::std::string::String] {
137 self.regions.as_deref().unwrap_or_default()
138 }
139}
140impl StackSet {
141 /// Creates a new builder-style object to manufacture [`StackSet`](crate::types::StackSet).
142 pub fn builder() -> crate::types::builders::StackSetBuilder {
143 crate::types::builders::StackSetBuilder::default()
144 }
145}
146
147/// A builder for [`StackSet`](crate::types::StackSet).
148#[derive(::std::clone::Clone, ::std::cmp::PartialEq, ::std::default::Default, ::std::fmt::Debug)]
149#[non_exhaustive]
150pub struct StackSetBuilder {
151 pub(crate) stack_set_name: ::std::option::Option<::std::string::String>,
152 pub(crate) stack_set_id: ::std::option::Option<::std::string::String>,
153 pub(crate) description: ::std::option::Option<::std::string::String>,
154 pub(crate) status: ::std::option::Option<crate::types::StackSetStatus>,
155 pub(crate) template_body: ::std::option::Option<::std::string::String>,
156 pub(crate) parameters: ::std::option::Option<::std::vec::Vec<crate::types::Parameter>>,
157 pub(crate) capabilities: ::std::option::Option<::std::vec::Vec<crate::types::Capability>>,
158 pub(crate) tags: ::std::option::Option<::std::vec::Vec<crate::types::Tag>>,
159 pub(crate) stack_set_arn: ::std::option::Option<::std::string::String>,
160 pub(crate) administration_role_arn: ::std::option::Option<::std::string::String>,
161 pub(crate) execution_role_name: ::std::option::Option<::std::string::String>,
162 pub(crate) stack_set_drift_detection_details: ::std::option::Option<crate::types::StackSetDriftDetectionDetails>,
163 pub(crate) auto_deployment: ::std::option::Option<crate::types::AutoDeployment>,
164 pub(crate) permission_model: ::std::option::Option<crate::types::PermissionModels>,
165 pub(crate) organizational_unit_ids: ::std::option::Option<::std::vec::Vec<::std::string::String>>,
166 pub(crate) managed_execution: ::std::option::Option<crate::types::ManagedExecution>,
167 pub(crate) regions: ::std::option::Option<::std::vec::Vec<::std::string::String>>,
168}
169impl StackSetBuilder {
170 /// <p>The name that's associated with the stack set.</p>
171 pub fn stack_set_name(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
172 self.stack_set_name = ::std::option::Option::Some(input.into());
173 self
174 }
175 /// <p>The name that's associated with the stack set.</p>
176 pub fn set_stack_set_name(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
177 self.stack_set_name = input;
178 self
179 }
180 /// <p>The name that's associated with the stack set.</p>
181 pub fn get_stack_set_name(&self) -> &::std::option::Option<::std::string::String> {
182 &self.stack_set_name
183 }
184 /// <p>The ID of the stack set.</p>
185 pub fn stack_set_id(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
186 self.stack_set_id = ::std::option::Option::Some(input.into());
187 self
188 }
189 /// <p>The ID of the stack set.</p>
190 pub fn set_stack_set_id(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
191 self.stack_set_id = input;
192 self
193 }
194 /// <p>The ID of the stack set.</p>
195 pub fn get_stack_set_id(&self) -> &::std::option::Option<::std::string::String> {
196 &self.stack_set_id
197 }
198 /// <p>A description of the stack set that you specify when the stack set is created or updated.</p>
199 pub fn description(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
200 self.description = ::std::option::Option::Some(input.into());
201 self
202 }
203 /// <p>A description of the stack set that you specify when the stack set is created or updated.</p>
204 pub fn set_description(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
205 self.description = input;
206 self
207 }
208 /// <p>A description of the stack set that you specify when the stack set is created or updated.</p>
209 pub fn get_description(&self) -> &::std::option::Option<::std::string::String> {
210 &self.description
211 }
212 /// <p>The status of the stack set.</p>
213 pub fn status(mut self, input: crate::types::StackSetStatus) -> Self {
214 self.status = ::std::option::Option::Some(input);
215 self
216 }
217 /// <p>The status of the stack set.</p>
218 pub fn set_status(mut self, input: ::std::option::Option<crate::types::StackSetStatus>) -> Self {
219 self.status = input;
220 self
221 }
222 /// <p>The status of the stack set.</p>
223 pub fn get_status(&self) -> &::std::option::Option<crate::types::StackSetStatus> {
224 &self.status
225 }
226 /// <p>The structure that contains the body of the template that was used to create or update the stack set.</p>
227 pub fn template_body(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
228 self.template_body = ::std::option::Option::Some(input.into());
229 self
230 }
231 /// <p>The structure that contains the body of the template that was used to create or update the stack set.</p>
232 pub fn set_template_body(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
233 self.template_body = input;
234 self
235 }
236 /// <p>The structure that contains the body of the template that was used to create or update the stack set.</p>
237 pub fn get_template_body(&self) -> &::std::option::Option<::std::string::String> {
238 &self.template_body
239 }
240 /// Appends an item to `parameters`.
241 ///
242 /// To override the contents of this collection use [`set_parameters`](Self::set_parameters).
243 ///
244 /// <p>A list of input parameters for a stack set.</p>
245 pub fn parameters(mut self, input: crate::types::Parameter) -> Self {
246 let mut v = self.parameters.unwrap_or_default();
247 v.push(input);
248 self.parameters = ::std::option::Option::Some(v);
249 self
250 }
251 /// <p>A list of input parameters for a stack set.</p>
252 pub fn set_parameters(mut self, input: ::std::option::Option<::std::vec::Vec<crate::types::Parameter>>) -> Self {
253 self.parameters = input;
254 self
255 }
256 /// <p>A list of input parameters for a stack set.</p>
257 pub fn get_parameters(&self) -> &::std::option::Option<::std::vec::Vec<crate::types::Parameter>> {
258 &self.parameters
259 }
260 /// Appends an item to `capabilities`.
261 ///
262 /// To override the contents of this collection use [`set_capabilities`](Self::set_capabilities).
263 ///
264 /// <p>The capabilities that are allowed in the stack set. Some stack set templates might include resources that can affect permissions in your Amazon Web Services account—for example, by creating new Identity and Access Management (IAM) users. For more information, see <a href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/control-access-with-iam.html#using-iam-capabilities">Acknowledging IAM resources in CloudFormation templates</a>.</p>
265 pub fn capabilities(mut self, input: crate::types::Capability) -> Self {
266 let mut v = self.capabilities.unwrap_or_default();
267 v.push(input);
268 self.capabilities = ::std::option::Option::Some(v);
269 self
270 }
271 /// <p>The capabilities that are allowed in the stack set. Some stack set templates might include resources that can affect permissions in your Amazon Web Services account—for example, by creating new Identity and Access Management (IAM) users. For more information, see <a href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/control-access-with-iam.html#using-iam-capabilities">Acknowledging IAM resources in CloudFormation templates</a>.</p>
272 pub fn set_capabilities(mut self, input: ::std::option::Option<::std::vec::Vec<crate::types::Capability>>) -> Self {
273 self.capabilities = input;
274 self
275 }
276 /// <p>The capabilities that are allowed in the stack set. Some stack set templates might include resources that can affect permissions in your Amazon Web Services account—for example, by creating new Identity and Access Management (IAM) users. For more information, see <a href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/control-access-with-iam.html#using-iam-capabilities">Acknowledging IAM resources in CloudFormation templates</a>.</p>
277 pub fn get_capabilities(&self) -> &::std::option::Option<::std::vec::Vec<crate::types::Capability>> {
278 &self.capabilities
279 }
280 /// Appends an item to `tags`.
281 ///
282 /// To override the contents of this collection use [`set_tags`](Self::set_tags).
283 ///
284 /// <p>A list of tags that specify information about the stack set. A maximum number of 50 tags can be specified.</p>
285 pub fn tags(mut self, input: crate::types::Tag) -> Self {
286 let mut v = self.tags.unwrap_or_default();
287 v.push(input);
288 self.tags = ::std::option::Option::Some(v);
289 self
290 }
291 /// <p>A list of tags that specify information about the stack set. A maximum number of 50 tags can be specified.</p>
292 pub fn set_tags(mut self, input: ::std::option::Option<::std::vec::Vec<crate::types::Tag>>) -> Self {
293 self.tags = input;
294 self
295 }
296 /// <p>A list of tags that specify information about the stack set. A maximum number of 50 tags can be specified.</p>
297 pub fn get_tags(&self) -> &::std::option::Option<::std::vec::Vec<crate::types::Tag>> {
298 &self.tags
299 }
300 /// <p>The Amazon Resource Name (ARN) of the stack set.</p>
301 pub fn stack_set_arn(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
302 self.stack_set_arn = ::std::option::Option::Some(input.into());
303 self
304 }
305 /// <p>The Amazon Resource Name (ARN) of the stack set.</p>
306 pub fn set_stack_set_arn(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
307 self.stack_set_arn = input;
308 self
309 }
310 /// <p>The Amazon Resource Name (ARN) of the stack set.</p>
311 pub fn get_stack_set_arn(&self) -> &::std::option::Option<::std::string::String> {
312 &self.stack_set_arn
313 }
314 /// <p>The Amazon Resource Name (ARN) of the IAM role used to create or update the stack set.</p>
315 /// <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.html">Prerequisites for using CloudFormation StackSets</a> in the <i>CloudFormation User Guide</i>.</p>
316 pub fn administration_role_arn(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
317 self.administration_role_arn = ::std::option::Option::Some(input.into());
318 self
319 }
320 /// <p>The Amazon Resource Name (ARN) of the IAM role used to create or update the stack set.</p>
321 /// <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.html">Prerequisites for using CloudFormation StackSets</a> in the <i>CloudFormation User Guide</i>.</p>
322 pub fn set_administration_role_arn(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
323 self.administration_role_arn = input;
324 self
325 }
326 /// <p>The Amazon Resource Name (ARN) of the IAM role used to create or update the stack set.</p>
327 /// <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.html">Prerequisites for using CloudFormation StackSets</a> in the <i>CloudFormation User Guide</i>.</p>
328 pub fn get_administration_role_arn(&self) -> &::std::option::Option<::std::string::String> {
329 &self.administration_role_arn
330 }
331 /// <p>The name of the IAM execution role used to create or update the stack set.</p>
332 /// <p>Use customized execution roles to control which stack resources users and groups can include in their stack sets.</p>
333 pub fn execution_role_name(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
334 self.execution_role_name = ::std::option::Option::Some(input.into());
335 self
336 }
337 /// <p>The name of the IAM execution role used to create or update the stack set.</p>
338 /// <p>Use customized execution roles to control which stack resources users and groups can include in their stack sets.</p>
339 pub fn set_execution_role_name(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
340 self.execution_role_name = input;
341 self
342 }
343 /// <p>The name of the IAM execution role used to create or update the stack set.</p>
344 /// <p>Use customized execution roles to control which stack resources users and groups can include in their stack sets.</p>
345 pub fn get_execution_role_name(&self) -> &::std::option::Option<::std::string::String> {
346 &self.execution_role_name
347 }
348 /// <p>Detailed information about the drift status of the stack set.</p>
349 /// <p>For stack sets, contains information about the last <i>completed</i> drift operation performed on the stack set. Information about drift operations currently in progress isn't included.</p>
350 pub fn stack_set_drift_detection_details(mut self, input: crate::types::StackSetDriftDetectionDetails) -> Self {
351 self.stack_set_drift_detection_details = ::std::option::Option::Some(input);
352 self
353 }
354 /// <p>Detailed information about the drift status of the stack set.</p>
355 /// <p>For stack sets, contains information about the last <i>completed</i> drift operation performed on the stack set. Information about drift operations currently in progress isn't included.</p>
356 pub fn set_stack_set_drift_detection_details(mut self, input: ::std::option::Option<crate::types::StackSetDriftDetectionDetails>) -> Self {
357 self.stack_set_drift_detection_details = input;
358 self
359 }
360 /// <p>Detailed information about the drift status of the stack set.</p>
361 /// <p>For stack sets, contains information about the last <i>completed</i> drift operation performed on the stack set. Information about drift operations currently in progress isn't included.</p>
362 pub fn get_stack_set_drift_detection_details(&self) -> &::std::option::Option<crate::types::StackSetDriftDetectionDetails> {
363 &self.stack_set_drift_detection_details
364 }
365 /// <p>\[Service-managed permissions\] Describes whether StackSets automatically deploys to Organizations accounts that are added to a target organization or organizational unit (OU).</p>
366 pub fn auto_deployment(mut self, input: crate::types::AutoDeployment) -> Self {
367 self.auto_deployment = ::std::option::Option::Some(input);
368 self
369 }
370 /// <p>\[Service-managed permissions\] Describes whether StackSets automatically deploys to Organizations accounts that are added to a target organization or organizational unit (OU).</p>
371 pub fn set_auto_deployment(mut self, input: ::std::option::Option<crate::types::AutoDeployment>) -> Self {
372 self.auto_deployment = input;
373 self
374 }
375 /// <p>\[Service-managed permissions\] Describes whether StackSets automatically deploys to Organizations accounts that are added to a target organization or organizational unit (OU).</p>
376 pub fn get_auto_deployment(&self) -> &::std::option::Option<crate::types::AutoDeployment> {
377 &self.auto_deployment
378 }
379 /// <p>Describes how the IAM roles required for stack set operations are created.</p>
380 /// <ul>
381 /// <li>
382 /// <p>With <code>self-managed</code> permissions, you must create the administrator and execution roles required to deploy to target accounts. For more information, see <a href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/stacksets-prereqs-self-managed.html">Grant self-managed permissions</a>.</p></li>
383 /// <li>
384 /// <p>With <code>service-managed</code> permissions, StackSets automatically creates the IAM roles required to deploy to accounts managed by Organizations. For more information, see <a href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/stacksets-orgs-activate-trusted-access.html">Activate trusted access for stack sets with Organizations</a>.</p></li>
385 /// </ul>
386 pub fn permission_model(mut self, input: crate::types::PermissionModels) -> Self {
387 self.permission_model = ::std::option::Option::Some(input);
388 self
389 }
390 /// <p>Describes how the IAM roles required for stack set operations are created.</p>
391 /// <ul>
392 /// <li>
393 /// <p>With <code>self-managed</code> permissions, you must create the administrator and execution roles required to deploy to target accounts. For more information, see <a href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/stacksets-prereqs-self-managed.html">Grant self-managed permissions</a>.</p></li>
394 /// <li>
395 /// <p>With <code>service-managed</code> permissions, StackSets automatically creates the IAM roles required to deploy to accounts managed by Organizations. For more information, see <a href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/stacksets-orgs-activate-trusted-access.html">Activate trusted access for stack sets with Organizations</a>.</p></li>
396 /// </ul>
397 pub fn set_permission_model(mut self, input: ::std::option::Option<crate::types::PermissionModels>) -> Self {
398 self.permission_model = input;
399 self
400 }
401 /// <p>Describes how the IAM roles required for stack set operations are created.</p>
402 /// <ul>
403 /// <li>
404 /// <p>With <code>self-managed</code> permissions, you must create the administrator and execution roles required to deploy to target accounts. For more information, see <a href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/stacksets-prereqs-self-managed.html">Grant self-managed permissions</a>.</p></li>
405 /// <li>
406 /// <p>With <code>service-managed</code> permissions, StackSets automatically creates the IAM roles required to deploy to accounts managed by Organizations. For more information, see <a href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/stacksets-orgs-activate-trusted-access.html">Activate trusted access for stack sets with Organizations</a>.</p></li>
407 /// </ul>
408 pub fn get_permission_model(&self) -> &::std::option::Option<crate::types::PermissionModels> {
409 &self.permission_model
410 }
411 /// Appends an item to `organizational_unit_ids`.
412 ///
413 /// To override the contents of this collection use [`set_organizational_unit_ids`](Self::set_organizational_unit_ids).
414 ///
415 /// <p>\[Service-managed permissions\] The organization root ID or organizational unit (OU) IDs that you specified for DeploymentTargets.</p>
416 pub fn organizational_unit_ids(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
417 let mut v = self.organizational_unit_ids.unwrap_or_default();
418 v.push(input.into());
419 self.organizational_unit_ids = ::std::option::Option::Some(v);
420 self
421 }
422 /// <p>\[Service-managed permissions\] The organization root ID or organizational unit (OU) IDs that you specified for DeploymentTargets.</p>
423 pub fn set_organizational_unit_ids(mut self, input: ::std::option::Option<::std::vec::Vec<::std::string::String>>) -> Self {
424 self.organizational_unit_ids = input;
425 self
426 }
427 /// <p>\[Service-managed permissions\] The organization root ID or organizational unit (OU) IDs that you specified for DeploymentTargets.</p>
428 pub fn get_organizational_unit_ids(&self) -> &::std::option::Option<::std::vec::Vec<::std::string::String>> {
429 &self.organizational_unit_ids
430 }
431 /// <p>Describes whether StackSets performs non-conflicting operations concurrently and queues conflicting operations.</p>
432 pub fn managed_execution(mut self, input: crate::types::ManagedExecution) -> Self {
433 self.managed_execution = ::std::option::Option::Some(input);
434 self
435 }
436 /// <p>Describes whether StackSets performs non-conflicting operations concurrently and queues conflicting operations.</p>
437 pub fn set_managed_execution(mut self, input: ::std::option::Option<crate::types::ManagedExecution>) -> Self {
438 self.managed_execution = input;
439 self
440 }
441 /// <p>Describes whether StackSets performs non-conflicting operations concurrently and queues conflicting operations.</p>
442 pub fn get_managed_execution(&self) -> &::std::option::Option<crate::types::ManagedExecution> {
443 &self.managed_execution
444 }
445 /// Appends an item to `regions`.
446 ///
447 /// To override the contents of this collection use [`set_regions`](Self::set_regions).
448 ///
449 /// <p>Returns a list of all Amazon Web Services Regions the given StackSet has stack instances deployed in. The Amazon Web Services Regions list output is in no particular order.</p>
450 pub fn regions(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
451 let mut v = self.regions.unwrap_or_default();
452 v.push(input.into());
453 self.regions = ::std::option::Option::Some(v);
454 self
455 }
456 /// <p>Returns a list of all Amazon Web Services Regions the given StackSet has stack instances deployed in. The Amazon Web Services Regions list output is in no particular order.</p>
457 pub fn set_regions(mut self, input: ::std::option::Option<::std::vec::Vec<::std::string::String>>) -> Self {
458 self.regions = input;
459 self
460 }
461 /// <p>Returns a list of all Amazon Web Services Regions the given StackSet has stack instances deployed in. The Amazon Web Services Regions list output is in no particular order.</p>
462 pub fn get_regions(&self) -> &::std::option::Option<::std::vec::Vec<::std::string::String>> {
463 &self.regions
464 }
465 /// Consumes the builder and constructs a [`StackSet`](crate::types::StackSet).
466 pub fn build(self) -> crate::types::StackSet {
467 crate::types::StackSet {
468 stack_set_name: self.stack_set_name,
469 stack_set_id: self.stack_set_id,
470 description: self.description,
471 status: self.status,
472 template_body: self.template_body,
473 parameters: self.parameters,
474 capabilities: self.capabilities,
475 tags: self.tags,
476 stack_set_arn: self.stack_set_arn,
477 administration_role_arn: self.administration_role_arn,
478 execution_role_name: self.execution_role_name,
479 stack_set_drift_detection_details: self.stack_set_drift_detection_details,
480 auto_deployment: self.auto_deployment,
481 permission_model: self.permission_model,
482 organizational_unit_ids: self.organizational_unit_ids,
483 managed_execution: self.managed_execution,
484 regions: self.regions,
485 }
486 }
487}