aws_sdk_cloudformation/operation/update_stack_set/builders.rs
1// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
2pub use crate::operation::update_stack_set::_update_stack_set_output::UpdateStackSetOutputBuilder;
3
4pub use crate::operation::update_stack_set::_update_stack_set_input::UpdateStackSetInputBuilder;
5
6impl crate::operation::update_stack_set::builders::UpdateStackSetInputBuilder {
7 /// Sends a request with this input using the given client.
8 pub async fn send_with(
9 self,
10 client: &crate::Client,
11 ) -> ::std::result::Result<
12 crate::operation::update_stack_set::UpdateStackSetOutput,
13 ::aws_smithy_runtime_api::client::result::SdkError<
14 crate::operation::update_stack_set::UpdateStackSetError,
15 ::aws_smithy_runtime_api::client::orchestrator::HttpResponse,
16 >,
17 > {
18 let mut fluent_builder = client.update_stack_set();
19 fluent_builder.inner = self;
20 fluent_builder.send().await
21 }
22}
23/// Fluent builder constructing a request to `UpdateStackSet`.
24///
25/// <p>Updates the StackSet and associated stack instances in the specified accounts and Amazon Web Services Regions.</p>
26/// <p>Even if the StackSet operation created by updating the StackSet fails (completely or partially, below or above a specified failure tolerance), the StackSet is updated with your changes. Subsequent <code>CreateStackInstances</code> calls on the specified StackSet use the updated StackSet.</p><note>
27/// <p>The maximum number of organizational unit (OUs) supported by a <code>UpdateStackSet</code> operation is 50.</p>
28/// <p>If you need more than 50, consider the following options:</p>
29/// <ul>
30/// <li>
31/// <p><i>Batch processing:</i> If you don't want to expose your OU hierarchy, split up the operations into multiple calls with less than 50 OUs each.</p></li>
32/// <li>
33/// <p><i>Parent OU strategy:</i> If you don't mind exposing the OU hierarchy, target a parent OU that contains all desired child OUs.</p></li>
34/// </ul>
35/// </note>
36#[derive(::std::clone::Clone, ::std::fmt::Debug)]
37pub struct UpdateStackSetFluentBuilder {
38 handle: ::std::sync::Arc<crate::client::Handle>,
39 inner: crate::operation::update_stack_set::builders::UpdateStackSetInputBuilder,
40 config_override: ::std::option::Option<crate::config::Builder>,
41}
42impl
43 crate::client::customize::internal::CustomizableSend<
44 crate::operation::update_stack_set::UpdateStackSetOutput,
45 crate::operation::update_stack_set::UpdateStackSetError,
46 > for UpdateStackSetFluentBuilder
47{
48 fn send(
49 self,
50 config_override: crate::config::Builder,
51 ) -> crate::client::customize::internal::BoxFuture<
52 crate::client::customize::internal::SendResult<
53 crate::operation::update_stack_set::UpdateStackSetOutput,
54 crate::operation::update_stack_set::UpdateStackSetError,
55 >,
56 > {
57 ::std::boxed::Box::pin(async move { self.config_override(config_override).send().await })
58 }
59}
60impl UpdateStackSetFluentBuilder {
61 /// Creates a new `UpdateStackSetFluentBuilder`.
62 pub(crate) fn new(handle: ::std::sync::Arc<crate::client::Handle>) -> Self {
63 Self {
64 handle,
65 inner: ::std::default::Default::default(),
66 config_override: ::std::option::Option::None,
67 }
68 }
69 /// Access the UpdateStackSet as a reference.
70 pub fn as_input(&self) -> &crate::operation::update_stack_set::builders::UpdateStackSetInputBuilder {
71 &self.inner
72 }
73 /// Sends the request and returns the response.
74 ///
75 /// If an error occurs, an `SdkError` will be returned with additional details that
76 /// can be matched against.
77 ///
78 /// By default, any retryable failures will be retried twice. Retry behavior
79 /// is configurable with the [RetryConfig](aws_smithy_types::retry::RetryConfig), which can be
80 /// set when configuring the client.
81 pub async fn send(
82 self,
83 ) -> ::std::result::Result<
84 crate::operation::update_stack_set::UpdateStackSetOutput,
85 ::aws_smithy_runtime_api::client::result::SdkError<
86 crate::operation::update_stack_set::UpdateStackSetError,
87 ::aws_smithy_runtime_api::client::orchestrator::HttpResponse,
88 >,
89 > {
90 let input = self
91 .inner
92 .build()
93 .map_err(::aws_smithy_runtime_api::client::result::SdkError::construction_failure)?;
94 let runtime_plugins = crate::operation::update_stack_set::UpdateStackSet::operation_runtime_plugins(
95 self.handle.runtime_plugins.clone(),
96 &self.handle.conf,
97 self.config_override,
98 );
99 crate::operation::update_stack_set::UpdateStackSet::orchestrate(&runtime_plugins, input).await
100 }
101
102 /// Consumes this builder, creating a customizable operation that can be modified before being sent.
103 pub fn customize(
104 self,
105 ) -> crate::client::customize::CustomizableOperation<
106 crate::operation::update_stack_set::UpdateStackSetOutput,
107 crate::operation::update_stack_set::UpdateStackSetError,
108 Self,
109 > {
110 crate::client::customize::CustomizableOperation::new(self)
111 }
112 pub(crate) fn config_override(mut self, config_override: impl ::std::convert::Into<crate::config::Builder>) -> Self {
113 self.set_config_override(::std::option::Option::Some(config_override.into()));
114 self
115 }
116
117 pub(crate) fn set_config_override(&mut self, config_override: ::std::option::Option<crate::config::Builder>) -> &mut Self {
118 self.config_override = config_override;
119 self
120 }
121 /// <p>The name or unique ID of the StackSet that you want to update.</p>
122 pub fn stack_set_name(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
123 self.inner = self.inner.stack_set_name(input.into());
124 self
125 }
126 /// <p>The name or unique ID of the StackSet that you want to update.</p>
127 pub fn set_stack_set_name(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
128 self.inner = self.inner.set_stack_set_name(input);
129 self
130 }
131 /// <p>The name or unique ID of the StackSet that you want to update.</p>
132 pub fn get_stack_set_name(&self) -> &::std::option::Option<::std::string::String> {
133 self.inner.get_stack_set_name()
134 }
135 /// <p>A brief description of updates that you are making.</p>
136 pub fn description(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
137 self.inner = self.inner.description(input.into());
138 self
139 }
140 /// <p>A brief description of updates that you are making.</p>
141 pub fn set_description(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
142 self.inner = self.inner.set_description(input);
143 self
144 }
145 /// <p>A brief description of updates that you are making.</p>
146 pub fn get_description(&self) -> &::std::option::Option<::std::string::String> {
147 self.inner.get_description()
148 }
149 /// <p>The structure that contains the template body, with a minimum length of 1 byte and a maximum length of 51,200 bytes.</p>
150 /// <p>Conditional: You must specify only one of the following parameters: <code>TemplateBody</code> or <code>TemplateURL</code>—or set <code>UsePreviousTemplate</code> to true.</p>
151 pub fn template_body(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
152 self.inner = self.inner.template_body(input.into());
153 self
154 }
155 /// <p>The structure that contains the template body, with a minimum length of 1 byte and a maximum length of 51,200 bytes.</p>
156 /// <p>Conditional: You must specify only one of the following parameters: <code>TemplateBody</code> or <code>TemplateURL</code>—or set <code>UsePreviousTemplate</code> to true.</p>
157 pub fn set_template_body(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
158 self.inner = self.inner.set_template_body(input);
159 self
160 }
161 /// <p>The structure that contains the template body, with a minimum length of 1 byte and a maximum length of 51,200 bytes.</p>
162 /// <p>Conditional: You must specify only one of the following parameters: <code>TemplateBody</code> or <code>TemplateURL</code>—or set <code>UsePreviousTemplate</code> to true.</p>
163 pub fn get_template_body(&self) -> &::std::option::Option<::std::string::String> {
164 self.inner.get_template_body()
165 }
166 /// <p>The URL of a file that contains the template body. The URL must point to a template (maximum size: 1 MB) that is located in an Amazon S3 bucket or a Systems Manager document. The location for an Amazon S3 bucket must start with <code>https://</code>. S3 static website URLs are not supported.</p>
167 /// <p>Conditional: You must specify only one of the following parameters: <code>TemplateBody</code> or <code>TemplateURL</code>—or set <code>UsePreviousTemplate</code> to true.</p>
168 pub fn template_url(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
169 self.inner = self.inner.template_url(input.into());
170 self
171 }
172 /// <p>The URL of a file that contains the template body. The URL must point to a template (maximum size: 1 MB) that is located in an Amazon S3 bucket or a Systems Manager document. The location for an Amazon S3 bucket must start with <code>https://</code>. S3 static website URLs are not supported.</p>
173 /// <p>Conditional: You must specify only one of the following parameters: <code>TemplateBody</code> or <code>TemplateURL</code>—or set <code>UsePreviousTemplate</code> to true.</p>
174 pub fn set_template_url(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
175 self.inner = self.inner.set_template_url(input);
176 self
177 }
178 /// <p>The URL of a file that contains the template body. The URL must point to a template (maximum size: 1 MB) that is located in an Amazon S3 bucket or a Systems Manager document. The location for an Amazon S3 bucket must start with <code>https://</code>. S3 static website URLs are not supported.</p>
179 /// <p>Conditional: You must specify only one of the following parameters: <code>TemplateBody</code> or <code>TemplateURL</code>—or set <code>UsePreviousTemplate</code> to true.</p>
180 pub fn get_template_url(&self) -> &::std::option::Option<::std::string::String> {
181 self.inner.get_template_url()
182 }
183 /// <p>Use the existing template that's associated with the StackSet that you're updating.</p>
184 /// <p>Conditional: You must specify only one of the following parameters: <code>TemplateBody</code> or <code>TemplateURL</code>—or set <code>UsePreviousTemplate</code> to true.</p>
185 pub fn use_previous_template(mut self, input: bool) -> Self {
186 self.inner = self.inner.use_previous_template(input);
187 self
188 }
189 /// <p>Use the existing template that's associated with the StackSet that you're updating.</p>
190 /// <p>Conditional: You must specify only one of the following parameters: <code>TemplateBody</code> or <code>TemplateURL</code>—or set <code>UsePreviousTemplate</code> to true.</p>
191 pub fn set_use_previous_template(mut self, input: ::std::option::Option<bool>) -> Self {
192 self.inner = self.inner.set_use_previous_template(input);
193 self
194 }
195 /// <p>Use the existing template that's associated with the StackSet that you're updating.</p>
196 /// <p>Conditional: You must specify only one of the following parameters: <code>TemplateBody</code> or <code>TemplateURL</code>—or set <code>UsePreviousTemplate</code> to true.</p>
197 pub fn get_use_previous_template(&self) -> &::std::option::Option<bool> {
198 self.inner.get_use_previous_template()
199 }
200 ///
201 /// Appends an item to `Parameters`.
202 ///
203 /// To override the contents of this collection use [`set_parameters`](Self::set_parameters).
204 ///
205 /// <p>A list of input parameters for the StackSet template.</p>
206 pub fn parameters(mut self, input: crate::types::Parameter) -> Self {
207 self.inner = self.inner.parameters(input);
208 self
209 }
210 /// <p>A list of input parameters for the StackSet template.</p>
211 pub fn set_parameters(mut self, input: ::std::option::Option<::std::vec::Vec<crate::types::Parameter>>) -> Self {
212 self.inner = self.inner.set_parameters(input);
213 self
214 }
215 /// <p>A list of input parameters for the StackSet template.</p>
216 pub fn get_parameters(&self) -> &::std::option::Option<::std::vec::Vec<crate::types::Parameter>> {
217 self.inner.get_parameters()
218 }
219 ///
220 /// Appends an item to `Capabilities`.
221 ///
222 /// To override the contents of this collection use [`set_capabilities`](Self::set_capabilities).
223 ///
224 /// <p>In some cases, you must explicitly acknowledge that your stack template contains certain capabilities in order for CloudFormation to update the StackSet and its associated stack instances.</p>
225 /// <ul>
226 /// <li>
227 /// <p><code>CAPABILITY_IAM</code> and <code>CAPABILITY_NAMED_IAM</code></p>
228 /// <p>Some stack templates might include resources that can affect permissions in your Amazon Web Services account, for example, by creating new IAM users. For those stacks sets, you must explicitly acknowledge this by specifying one of these capabilities.</p>
229 /// <p>The following IAM resources require you to specify either the <code>CAPABILITY_IAM</code> or <code>CAPABILITY_NAMED_IAM</code> capability.</p>
230 /// <ul>
231 /// <li>
232 /// <p>If you have IAM resources, you can specify either capability.</p></li>
233 /// <li>
234 /// <p>If you have IAM resources with custom names, you <i>must</i> specify <code>CAPABILITY_NAMED_IAM</code>.</p></li>
235 /// <li>
236 /// <p>If you don't specify either of these capabilities, CloudFormation returns an <code>InsufficientCapabilities</code> error.</p></li>
237 /// </ul>
238 /// <p>If your stack template contains these resources, we recommend that you review all permissions associated with them and edit their permissions if necessary.</p>
239 /// <ul>
240 /// <li>
241 /// <p><a href="https://docs.aws.amazon.com/AWSCloudFormation/latest/TemplateReference/aws-resource-iam-accesskey.html">AWS::IAM::AccessKey</a></p></li>
242 /// <li>
243 /// <p><a href="https://docs.aws.amazon.com/AWSCloudFormation/latest/TemplateReference/aws-resource-iam-group.html">AWS::IAM::Group</a></p></li>
244 /// <li>
245 /// <p><a href="https://docs.aws.amazon.com/AWSCloudFormation/latest/TemplateReference/aws-resource-iam-instanceprofile.html">AWS::IAM::InstanceProfile</a></p></li>
246 /// <li>
247 /// <p><a href="https://docs.aws.amazon.com/AWSCloudFormation/latest/TemplateReference/aws-resource-iam-policy.html">AWS::IAM::Policy</a></p></li>
248 /// <li>
249 /// <p><a href="https://docs.aws.amazon.com/AWSCloudFormation/latest/TemplateReference/aws-resource-iam-role.html">AWS::IAM::Role</a></p></li>
250 /// <li>
251 /// <p><a href="https://docs.aws.amazon.com/AWSCloudFormation/latest/TemplateReference/aws-resource-iam-user.html">AWS::IAM::User</a></p></li>
252 /// <li>
253 /// <p><a href="https://docs.aws.amazon.com/AWSCloudFormation/latest/TemplateReference/aws-resource-iam-usertogroupaddition.html">AWS::IAM::UserToGroupAddition</a></p></li>
254 /// </ul>
255 /// <p>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></li>
256 /// <li>
257 /// <p><code>CAPABILITY_AUTO_EXPAND</code></p>
258 /// <p>Some templates reference macros. If your StackSet template references one or more macros, you must update the StackSet directly from the processed template, without first reviewing the resulting changes in a change set. To update the StackSet directly, you must acknowledge this capability. For more information, see <a href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/template-macros.html">Perform custom processing on CloudFormation templates with template macros</a>.</p><important>
259 /// <p>StackSets with service-managed permissions do not currently support the use of macros in templates. (This includes the <a href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/transform-aws-include.html">AWS::Include</a> and <a href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/transform-aws-serverless.html">AWS::Serverless</a> transforms, which are macros hosted by CloudFormation.) Even if you specify this capability for a StackSet with service-managed permissions, if you reference a macro in your template the StackSet operation will fail.</p>
260 /// </important></li>
261 /// </ul>
262 pub fn capabilities(mut self, input: crate::types::Capability) -> Self {
263 self.inner = self.inner.capabilities(input);
264 self
265 }
266 /// <p>In some cases, you must explicitly acknowledge that your stack template contains certain capabilities in order for CloudFormation to update the StackSet and its associated stack instances.</p>
267 /// <ul>
268 /// <li>
269 /// <p><code>CAPABILITY_IAM</code> and <code>CAPABILITY_NAMED_IAM</code></p>
270 /// <p>Some stack templates might include resources that can affect permissions in your Amazon Web Services account, for example, by creating new IAM users. For those stacks sets, you must explicitly acknowledge this by specifying one of these capabilities.</p>
271 /// <p>The following IAM resources require you to specify either the <code>CAPABILITY_IAM</code> or <code>CAPABILITY_NAMED_IAM</code> capability.</p>
272 /// <ul>
273 /// <li>
274 /// <p>If you have IAM resources, you can specify either capability.</p></li>
275 /// <li>
276 /// <p>If you have IAM resources with custom names, you <i>must</i> specify <code>CAPABILITY_NAMED_IAM</code>.</p></li>
277 /// <li>
278 /// <p>If you don't specify either of these capabilities, CloudFormation returns an <code>InsufficientCapabilities</code> error.</p></li>
279 /// </ul>
280 /// <p>If your stack template contains these resources, we recommend that you review all permissions associated with them and edit their permissions if necessary.</p>
281 /// <ul>
282 /// <li>
283 /// <p><a href="https://docs.aws.amazon.com/AWSCloudFormation/latest/TemplateReference/aws-resource-iam-accesskey.html">AWS::IAM::AccessKey</a></p></li>
284 /// <li>
285 /// <p><a href="https://docs.aws.amazon.com/AWSCloudFormation/latest/TemplateReference/aws-resource-iam-group.html">AWS::IAM::Group</a></p></li>
286 /// <li>
287 /// <p><a href="https://docs.aws.amazon.com/AWSCloudFormation/latest/TemplateReference/aws-resource-iam-instanceprofile.html">AWS::IAM::InstanceProfile</a></p></li>
288 /// <li>
289 /// <p><a href="https://docs.aws.amazon.com/AWSCloudFormation/latest/TemplateReference/aws-resource-iam-policy.html">AWS::IAM::Policy</a></p></li>
290 /// <li>
291 /// <p><a href="https://docs.aws.amazon.com/AWSCloudFormation/latest/TemplateReference/aws-resource-iam-role.html">AWS::IAM::Role</a></p></li>
292 /// <li>
293 /// <p><a href="https://docs.aws.amazon.com/AWSCloudFormation/latest/TemplateReference/aws-resource-iam-user.html">AWS::IAM::User</a></p></li>
294 /// <li>
295 /// <p><a href="https://docs.aws.amazon.com/AWSCloudFormation/latest/TemplateReference/aws-resource-iam-usertogroupaddition.html">AWS::IAM::UserToGroupAddition</a></p></li>
296 /// </ul>
297 /// <p>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></li>
298 /// <li>
299 /// <p><code>CAPABILITY_AUTO_EXPAND</code></p>
300 /// <p>Some templates reference macros. If your StackSet template references one or more macros, you must update the StackSet directly from the processed template, without first reviewing the resulting changes in a change set. To update the StackSet directly, you must acknowledge this capability. For more information, see <a href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/template-macros.html">Perform custom processing on CloudFormation templates with template macros</a>.</p><important>
301 /// <p>StackSets with service-managed permissions do not currently support the use of macros in templates. (This includes the <a href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/transform-aws-include.html">AWS::Include</a> and <a href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/transform-aws-serverless.html">AWS::Serverless</a> transforms, which are macros hosted by CloudFormation.) Even if you specify this capability for a StackSet with service-managed permissions, if you reference a macro in your template the StackSet operation will fail.</p>
302 /// </important></li>
303 /// </ul>
304 pub fn set_capabilities(mut self, input: ::std::option::Option<::std::vec::Vec<crate::types::Capability>>) -> Self {
305 self.inner = self.inner.set_capabilities(input);
306 self
307 }
308 /// <p>In some cases, you must explicitly acknowledge that your stack template contains certain capabilities in order for CloudFormation to update the StackSet and its associated stack instances.</p>
309 /// <ul>
310 /// <li>
311 /// <p><code>CAPABILITY_IAM</code> and <code>CAPABILITY_NAMED_IAM</code></p>
312 /// <p>Some stack templates might include resources that can affect permissions in your Amazon Web Services account, for example, by creating new IAM users. For those stacks sets, you must explicitly acknowledge this by specifying one of these capabilities.</p>
313 /// <p>The following IAM resources require you to specify either the <code>CAPABILITY_IAM</code> or <code>CAPABILITY_NAMED_IAM</code> capability.</p>
314 /// <ul>
315 /// <li>
316 /// <p>If you have IAM resources, you can specify either capability.</p></li>
317 /// <li>
318 /// <p>If you have IAM resources with custom names, you <i>must</i> specify <code>CAPABILITY_NAMED_IAM</code>.</p></li>
319 /// <li>
320 /// <p>If you don't specify either of these capabilities, CloudFormation returns an <code>InsufficientCapabilities</code> error.</p></li>
321 /// </ul>
322 /// <p>If your stack template contains these resources, we recommend that you review all permissions associated with them and edit their permissions if necessary.</p>
323 /// <ul>
324 /// <li>
325 /// <p><a href="https://docs.aws.amazon.com/AWSCloudFormation/latest/TemplateReference/aws-resource-iam-accesskey.html">AWS::IAM::AccessKey</a></p></li>
326 /// <li>
327 /// <p><a href="https://docs.aws.amazon.com/AWSCloudFormation/latest/TemplateReference/aws-resource-iam-group.html">AWS::IAM::Group</a></p></li>
328 /// <li>
329 /// <p><a href="https://docs.aws.amazon.com/AWSCloudFormation/latest/TemplateReference/aws-resource-iam-instanceprofile.html">AWS::IAM::InstanceProfile</a></p></li>
330 /// <li>
331 /// <p><a href="https://docs.aws.amazon.com/AWSCloudFormation/latest/TemplateReference/aws-resource-iam-policy.html">AWS::IAM::Policy</a></p></li>
332 /// <li>
333 /// <p><a href="https://docs.aws.amazon.com/AWSCloudFormation/latest/TemplateReference/aws-resource-iam-role.html">AWS::IAM::Role</a></p></li>
334 /// <li>
335 /// <p><a href="https://docs.aws.amazon.com/AWSCloudFormation/latest/TemplateReference/aws-resource-iam-user.html">AWS::IAM::User</a></p></li>
336 /// <li>
337 /// <p><a href="https://docs.aws.amazon.com/AWSCloudFormation/latest/TemplateReference/aws-resource-iam-usertogroupaddition.html">AWS::IAM::UserToGroupAddition</a></p></li>
338 /// </ul>
339 /// <p>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></li>
340 /// <li>
341 /// <p><code>CAPABILITY_AUTO_EXPAND</code></p>
342 /// <p>Some templates reference macros. If your StackSet template references one or more macros, you must update the StackSet directly from the processed template, without first reviewing the resulting changes in a change set. To update the StackSet directly, you must acknowledge this capability. For more information, see <a href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/template-macros.html">Perform custom processing on CloudFormation templates with template macros</a>.</p><important>
343 /// <p>StackSets with service-managed permissions do not currently support the use of macros in templates. (This includes the <a href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/transform-aws-include.html">AWS::Include</a> and <a href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/transform-aws-serverless.html">AWS::Serverless</a> transforms, which are macros hosted by CloudFormation.) Even if you specify this capability for a StackSet with service-managed permissions, if you reference a macro in your template the StackSet operation will fail.</p>
344 /// </important></li>
345 /// </ul>
346 pub fn get_capabilities(&self) -> &::std::option::Option<::std::vec::Vec<crate::types::Capability>> {
347 self.inner.get_capabilities()
348 }
349 ///
350 /// Appends an item to `Tags`.
351 ///
352 /// To override the contents of this collection use [`set_tags`](Self::set_tags).
353 ///
354 /// <p>The key-value pairs to associate with this StackSet and the stacks created from it. CloudFormation also propagates these tags to supported resources that are created in the stacks. You can specify a maximum number of 50 tags.</p>
355 /// <p>If you specify tags for this parameter, those tags replace any list of tags that are currently associated with this StackSet. This means:</p>
356 /// <ul>
357 /// <li>
358 /// <p>If you don't specify this parameter, CloudFormation doesn't modify the stack's tags.</p></li>
359 /// <li>
360 /// <p>If you specify <i>any</i> tags using this parameter, you must specify <i>all</i> the tags that you want associated with this StackSet, even tags you've specified before (for example, when creating the StackSet or during a previous update of the StackSet.). Any tags that you don't include in the updated list of tags are removed from the StackSet, and therefore from the stacks and resources as well.</p></li>
361 /// <li>
362 /// <p>If you specify an empty value, CloudFormation removes all currently associated tags.</p></li>
363 /// </ul>
364 /// <p>If you specify new tags as part of an <code>UpdateStackSet</code> action, CloudFormation checks to see if you have the required IAM permission to tag resources. If you omit tags that are currently associated with the StackSet from the list of tags you specify, CloudFormation assumes that you want to remove those tags from the StackSet, and checks to see if you have permission to untag resources. If you don't have the necessary permission(s), the entire <code>UpdateStackSet</code> action fails with an <code>access denied</code> error, and the StackSet is not updated.</p>
365 pub fn tags(mut self, input: crate::types::Tag) -> Self {
366 self.inner = self.inner.tags(input);
367 self
368 }
369 /// <p>The key-value pairs to associate with this StackSet and the stacks created from it. CloudFormation also propagates these tags to supported resources that are created in the stacks. You can specify a maximum number of 50 tags.</p>
370 /// <p>If you specify tags for this parameter, those tags replace any list of tags that are currently associated with this StackSet. This means:</p>
371 /// <ul>
372 /// <li>
373 /// <p>If you don't specify this parameter, CloudFormation doesn't modify the stack's tags.</p></li>
374 /// <li>
375 /// <p>If you specify <i>any</i> tags using this parameter, you must specify <i>all</i> the tags that you want associated with this StackSet, even tags you've specified before (for example, when creating the StackSet or during a previous update of the StackSet.). Any tags that you don't include in the updated list of tags are removed from the StackSet, and therefore from the stacks and resources as well.</p></li>
376 /// <li>
377 /// <p>If you specify an empty value, CloudFormation removes all currently associated tags.</p></li>
378 /// </ul>
379 /// <p>If you specify new tags as part of an <code>UpdateStackSet</code> action, CloudFormation checks to see if you have the required IAM permission to tag resources. If you omit tags that are currently associated with the StackSet from the list of tags you specify, CloudFormation assumes that you want to remove those tags from the StackSet, and checks to see if you have permission to untag resources. If you don't have the necessary permission(s), the entire <code>UpdateStackSet</code> action fails with an <code>access denied</code> error, and the StackSet is not updated.</p>
380 pub fn set_tags(mut self, input: ::std::option::Option<::std::vec::Vec<crate::types::Tag>>) -> Self {
381 self.inner = self.inner.set_tags(input);
382 self
383 }
384 /// <p>The key-value pairs to associate with this StackSet and the stacks created from it. CloudFormation also propagates these tags to supported resources that are created in the stacks. You can specify a maximum number of 50 tags.</p>
385 /// <p>If you specify tags for this parameter, those tags replace any list of tags that are currently associated with this StackSet. This means:</p>
386 /// <ul>
387 /// <li>
388 /// <p>If you don't specify this parameter, CloudFormation doesn't modify the stack's tags.</p></li>
389 /// <li>
390 /// <p>If you specify <i>any</i> tags using this parameter, you must specify <i>all</i> the tags that you want associated with this StackSet, even tags you've specified before (for example, when creating the StackSet or during a previous update of the StackSet.). Any tags that you don't include in the updated list of tags are removed from the StackSet, and therefore from the stacks and resources as well.</p></li>
391 /// <li>
392 /// <p>If you specify an empty value, CloudFormation removes all currently associated tags.</p></li>
393 /// </ul>
394 /// <p>If you specify new tags as part of an <code>UpdateStackSet</code> action, CloudFormation checks to see if you have the required IAM permission to tag resources. If you omit tags that are currently associated with the StackSet from the list of tags you specify, CloudFormation assumes that you want to remove those tags from the StackSet, and checks to see if you have permission to untag resources. If you don't have the necessary permission(s), the entire <code>UpdateStackSet</code> action fails with an <code>access denied</code> error, and the StackSet is not updated.</p>
395 pub fn get_tags(&self) -> &::std::option::Option<::std::vec::Vec<crate::types::Tag>> {
396 self.inner.get_tags()
397 }
398 /// <p>Preferences for how CloudFormation performs this StackSet operation.</p>
399 pub fn operation_preferences(mut self, input: crate::types::StackSetOperationPreferences) -> Self {
400 self.inner = self.inner.operation_preferences(input);
401 self
402 }
403 /// <p>Preferences for how CloudFormation performs this StackSet operation.</p>
404 pub fn set_operation_preferences(mut self, input: ::std::option::Option<crate::types::StackSetOperationPreferences>) -> Self {
405 self.inner = self.inner.set_operation_preferences(input);
406 self
407 }
408 /// <p>Preferences for how CloudFormation performs this StackSet operation.</p>
409 pub fn get_operation_preferences(&self) -> &::std::option::Option<crate::types::StackSetOperationPreferences> {
410 self.inner.get_operation_preferences()
411 }
412 /// <p>\[Self-managed permissions\] The Amazon Resource Name (ARN) of the IAM role to use to update this StackSet.</p>
413 /// <p>Specify an IAM role only if you are using customized administrator roles to control which users or groups can manage specific StackSets 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>
414 /// <p>If you specified a customized administrator role when you created the StackSet, you must specify a customized administrator role, even if it is the same customized administrator role used with this StackSet previously.</p>
415 pub fn administration_role_arn(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
416 self.inner = self.inner.administration_role_arn(input.into());
417 self
418 }
419 /// <p>\[Self-managed permissions\] The Amazon Resource Name (ARN) of the IAM role to use to update this StackSet.</p>
420 /// <p>Specify an IAM role only if you are using customized administrator roles to control which users or groups can manage specific StackSets 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>
421 /// <p>If you specified a customized administrator role when you created the StackSet, you must specify a customized administrator role, even if it is the same customized administrator role used with this StackSet previously.</p>
422 pub fn set_administration_role_arn(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
423 self.inner = self.inner.set_administration_role_arn(input);
424 self
425 }
426 /// <p>\[Self-managed permissions\] The Amazon Resource Name (ARN) of the IAM role to use to update this StackSet.</p>
427 /// <p>Specify an IAM role only if you are using customized administrator roles to control which users or groups can manage specific StackSets 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>
428 /// <p>If you specified a customized administrator role when you created the StackSet, you must specify a customized administrator role, even if it is the same customized administrator role used with this StackSet previously.</p>
429 pub fn get_administration_role_arn(&self) -> &::std::option::Option<::std::string::String> {
430 self.inner.get_administration_role_arn()
431 }
432 /// <p>\[Self-managed permissions\] The name of the IAM execution role to use to update the stack set. If you do not specify an execution role, CloudFormation uses the AWSCloudFormationStackSetExecutionRole role for the StackSet operation.</p>
433 /// <p>Specify an IAM role only if you are using customized execution roles to control which stack resources users and groups can include in their StackSets.</p>
434 /// <p>If you specify a customized execution role, CloudFormation uses that role to update the stack. If you do not specify a customized execution role, CloudFormation performs the update using the role previously associated with the StackSet, so long as you have permissions to perform operations on the StackSet.</p>
435 pub fn execution_role_name(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
436 self.inner = self.inner.execution_role_name(input.into());
437 self
438 }
439 /// <p>\[Self-managed permissions\] The name of the IAM execution role to use to update the stack set. If you do not specify an execution role, CloudFormation uses the AWSCloudFormationStackSetExecutionRole role for the StackSet operation.</p>
440 /// <p>Specify an IAM role only if you are using customized execution roles to control which stack resources users and groups can include in their StackSets.</p>
441 /// <p>If you specify a customized execution role, CloudFormation uses that role to update the stack. If you do not specify a customized execution role, CloudFormation performs the update using the role previously associated with the StackSet, so long as you have permissions to perform operations on the StackSet.</p>
442 pub fn set_execution_role_name(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
443 self.inner = self.inner.set_execution_role_name(input);
444 self
445 }
446 /// <p>\[Self-managed permissions\] The name of the IAM execution role to use to update the stack set. If you do not specify an execution role, CloudFormation uses the AWSCloudFormationStackSetExecutionRole role for the StackSet operation.</p>
447 /// <p>Specify an IAM role only if you are using customized execution roles to control which stack resources users and groups can include in their StackSets.</p>
448 /// <p>If you specify a customized execution role, CloudFormation uses that role to update the stack. If you do not specify a customized execution role, CloudFormation performs the update using the role previously associated with the StackSet, so long as you have permissions to perform operations on the StackSet.</p>
449 pub fn get_execution_role_name(&self) -> &::std::option::Option<::std::string::String> {
450 self.inner.get_execution_role_name()
451 }
452 /// <p>\[Service-managed permissions\] The Organizations accounts in which to update associated stack instances.</p>
453 /// <p>To update all the stack instances associated with this StackSet, do not specify <code>DeploymentTargets</code> or <code>Regions</code>.</p>
454 /// <p>If the StackSet update includes changes to the template (that is, if <code>TemplateBody</code> or <code>TemplateURL</code> is specified), or the <code>Parameters</code>, CloudFormation marks all stack instances with a status of <code>OUTDATED</code> prior to updating the stack instances in the specified accounts and Amazon Web Services Regions. If the StackSet update doesn't include changes to the template or parameters, CloudFormation updates the stack instances in the specified accounts and Regions, while leaving all other stack instances with their existing stack instance status.</p>
455 pub fn deployment_targets(mut self, input: crate::types::DeploymentTargets) -> Self {
456 self.inner = self.inner.deployment_targets(input);
457 self
458 }
459 /// <p>\[Service-managed permissions\] The Organizations accounts in which to update associated stack instances.</p>
460 /// <p>To update all the stack instances associated with this StackSet, do not specify <code>DeploymentTargets</code> or <code>Regions</code>.</p>
461 /// <p>If the StackSet update includes changes to the template (that is, if <code>TemplateBody</code> or <code>TemplateURL</code> is specified), or the <code>Parameters</code>, CloudFormation marks all stack instances with a status of <code>OUTDATED</code> prior to updating the stack instances in the specified accounts and Amazon Web Services Regions. If the StackSet update doesn't include changes to the template or parameters, CloudFormation updates the stack instances in the specified accounts and Regions, while leaving all other stack instances with their existing stack instance status.</p>
462 pub fn set_deployment_targets(mut self, input: ::std::option::Option<crate::types::DeploymentTargets>) -> Self {
463 self.inner = self.inner.set_deployment_targets(input);
464 self
465 }
466 /// <p>\[Service-managed permissions\] The Organizations accounts in which to update associated stack instances.</p>
467 /// <p>To update all the stack instances associated with this StackSet, do not specify <code>DeploymentTargets</code> or <code>Regions</code>.</p>
468 /// <p>If the StackSet update includes changes to the template (that is, if <code>TemplateBody</code> or <code>TemplateURL</code> is specified), or the <code>Parameters</code>, CloudFormation marks all stack instances with a status of <code>OUTDATED</code> prior to updating the stack instances in the specified accounts and Amazon Web Services Regions. If the StackSet update doesn't include changes to the template or parameters, CloudFormation updates the stack instances in the specified accounts and Regions, while leaving all other stack instances with their existing stack instance status.</p>
469 pub fn get_deployment_targets(&self) -> &::std::option::Option<crate::types::DeploymentTargets> {
470 self.inner.get_deployment_targets()
471 }
472 /// <p>Describes how the IAM roles required for StackSet operations are created. You cannot modify <code>PermissionModel</code> if there are stack instances associated with your stack set.</p>
473 /// <ul>
474 /// <li>
475 /// <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>
476 /// <li>
477 /// <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 StackSets with Organizations</a>.</p></li>
478 /// </ul>
479 pub fn permission_model(mut self, input: crate::types::PermissionModels) -> Self {
480 self.inner = self.inner.permission_model(input);
481 self
482 }
483 /// <p>Describes how the IAM roles required for StackSet operations are created. You cannot modify <code>PermissionModel</code> if there are stack instances associated with your stack set.</p>
484 /// <ul>
485 /// <li>
486 /// <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>
487 /// <li>
488 /// <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 StackSets with Organizations</a>.</p></li>
489 /// </ul>
490 pub fn set_permission_model(mut self, input: ::std::option::Option<crate::types::PermissionModels>) -> Self {
491 self.inner = self.inner.set_permission_model(input);
492 self
493 }
494 /// <p>Describes how the IAM roles required for StackSet operations are created. You cannot modify <code>PermissionModel</code> if there are stack instances associated with your stack set.</p>
495 /// <ul>
496 /// <li>
497 /// <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>
498 /// <li>
499 /// <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 StackSets with Organizations</a>.</p></li>
500 /// </ul>
501 pub fn get_permission_model(&self) -> &::std::option::Option<crate::types::PermissionModels> {
502 self.inner.get_permission_model()
503 }
504 /// <p>\[Service-managed permissions\] Describes whether StackSets automatically deploys to Organizations accounts that are added to a target organization or organizational unit (OU). For more information, see Enable or disable automatic deployments for StackSets in Organizations in the CloudFormation User Guide.</p>
505 /// <p>If you specify <code>AutoDeployment</code>, don't specify <code>DeploymentTargets</code> or <code>Regions</code>.</p>
506 pub fn auto_deployment(mut self, input: crate::types::AutoDeployment) -> Self {
507 self.inner = self.inner.auto_deployment(input);
508 self
509 }
510 /// <p>\[Service-managed permissions\] Describes whether StackSets automatically deploys to Organizations accounts that are added to a target organization or organizational unit (OU). For more information, see Enable or disable automatic deployments for StackSets in Organizations in the CloudFormation User Guide.</p>
511 /// <p>If you specify <code>AutoDeployment</code>, don't specify <code>DeploymentTargets</code> or <code>Regions</code>.</p>
512 pub fn set_auto_deployment(mut self, input: ::std::option::Option<crate::types::AutoDeployment>) -> Self {
513 self.inner = self.inner.set_auto_deployment(input);
514 self
515 }
516 /// <p>\[Service-managed permissions\] Describes whether StackSets automatically deploys to Organizations accounts that are added to a target organization or organizational unit (OU). For more information, see Enable or disable automatic deployments for StackSets in Organizations in the CloudFormation User Guide.</p>
517 /// <p>If you specify <code>AutoDeployment</code>, don't specify <code>DeploymentTargets</code> or <code>Regions</code>.</p>
518 pub fn get_auto_deployment(&self) -> &::std::option::Option<crate::types::AutoDeployment> {
519 self.inner.get_auto_deployment()
520 }
521 /// <p>The unique ID for this StackSet operation.</p>
522 /// <p>The operation ID also functions as an idempotency token, to ensure that CloudFormation performs the StackSet operation only once, even if you retry the request multiple times. You might retry StackSet operation requests to ensure that CloudFormation successfully received them.</p>
523 /// <p>If you don't specify an operation ID, CloudFormation generates one automatically.</p>
524 /// <p>Repeating this StackSet operation with a new operation ID retries all stack instances whose status is <code>OUTDATED</code>.</p>
525 pub fn operation_id(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
526 self.inner = self.inner.operation_id(input.into());
527 self
528 }
529 /// <p>The unique ID for this StackSet operation.</p>
530 /// <p>The operation ID also functions as an idempotency token, to ensure that CloudFormation performs the StackSet operation only once, even if you retry the request multiple times. You might retry StackSet operation requests to ensure that CloudFormation successfully received them.</p>
531 /// <p>If you don't specify an operation ID, CloudFormation generates one automatically.</p>
532 /// <p>Repeating this StackSet operation with a new operation ID retries all stack instances whose status is <code>OUTDATED</code>.</p>
533 pub fn set_operation_id(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
534 self.inner = self.inner.set_operation_id(input);
535 self
536 }
537 /// <p>The unique ID for this StackSet operation.</p>
538 /// <p>The operation ID also functions as an idempotency token, to ensure that CloudFormation performs the StackSet operation only once, even if you retry the request multiple times. You might retry StackSet operation requests to ensure that CloudFormation successfully received them.</p>
539 /// <p>If you don't specify an operation ID, CloudFormation generates one automatically.</p>
540 /// <p>Repeating this StackSet operation with a new operation ID retries all stack instances whose status is <code>OUTDATED</code>.</p>
541 pub fn get_operation_id(&self) -> &::std::option::Option<::std::string::String> {
542 self.inner.get_operation_id()
543 }
544 ///
545 /// Appends an item to `Accounts`.
546 ///
547 /// To override the contents of this collection use [`set_accounts`](Self::set_accounts).
548 ///
549 /// <p>\[Self-managed permissions\] The accounts in which to update associated stack instances. If you specify accounts, you must also specify the Amazon Web Services Regions in which to update StackSet instances.</p>
550 /// <p>To update <i>all</i> the stack instances associated with this StackSet, don't specify the <code>Accounts</code> or <code>Regions</code> properties.</p>
551 /// <p>If the StackSet update includes changes to the template (that is, if the <code>TemplateBody</code> or <code>TemplateURL</code> properties are specified), or the <code>Parameters</code> property, CloudFormation marks all stack instances with a status of <code>OUTDATED</code> prior to updating the stack instances in the specified accounts and Amazon Web Services Regions. If the StackSet update does not include changes to the template or parameters, CloudFormation updates the stack instances in the specified accounts and Amazon Web Services Regions, while leaving all other stack instances with their existing stack instance status.</p>
552 pub fn accounts(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
553 self.inner = self.inner.accounts(input.into());
554 self
555 }
556 /// <p>\[Self-managed permissions\] The accounts in which to update associated stack instances. If you specify accounts, you must also specify the Amazon Web Services Regions in which to update StackSet instances.</p>
557 /// <p>To update <i>all</i> the stack instances associated with this StackSet, don't specify the <code>Accounts</code> or <code>Regions</code> properties.</p>
558 /// <p>If the StackSet update includes changes to the template (that is, if the <code>TemplateBody</code> or <code>TemplateURL</code> properties are specified), or the <code>Parameters</code> property, CloudFormation marks all stack instances with a status of <code>OUTDATED</code> prior to updating the stack instances in the specified accounts and Amazon Web Services Regions. If the StackSet update does not include changes to the template or parameters, CloudFormation updates the stack instances in the specified accounts and Amazon Web Services Regions, while leaving all other stack instances with their existing stack instance status.</p>
559 pub fn set_accounts(mut self, input: ::std::option::Option<::std::vec::Vec<::std::string::String>>) -> Self {
560 self.inner = self.inner.set_accounts(input);
561 self
562 }
563 /// <p>\[Self-managed permissions\] The accounts in which to update associated stack instances. If you specify accounts, you must also specify the Amazon Web Services Regions in which to update StackSet instances.</p>
564 /// <p>To update <i>all</i> the stack instances associated with this StackSet, don't specify the <code>Accounts</code> or <code>Regions</code> properties.</p>
565 /// <p>If the StackSet update includes changes to the template (that is, if the <code>TemplateBody</code> or <code>TemplateURL</code> properties are specified), or the <code>Parameters</code> property, CloudFormation marks all stack instances with a status of <code>OUTDATED</code> prior to updating the stack instances in the specified accounts and Amazon Web Services Regions. If the StackSet update does not include changes to the template or parameters, CloudFormation updates the stack instances in the specified accounts and Amazon Web Services Regions, while leaving all other stack instances with their existing stack instance status.</p>
566 pub fn get_accounts(&self) -> &::std::option::Option<::std::vec::Vec<::std::string::String>> {
567 self.inner.get_accounts()
568 }
569 ///
570 /// Appends an item to `Regions`.
571 ///
572 /// To override the contents of this collection use [`set_regions`](Self::set_regions).
573 ///
574 /// <p>The Amazon Web Services Regions in which to update associated stack instances. If you specify Regions, you must also specify accounts in which to update StackSet instances.</p>
575 /// <p>To update <i>all</i> the stack instances associated with this StackSet, do not specify the <code>Accounts</code> or <code>Regions</code> properties.</p>
576 /// <p>If the StackSet update includes changes to the template (that is, if the <code>TemplateBody</code> or <code>TemplateURL</code> properties are specified), or the <code>Parameters</code> property, CloudFormation marks all stack instances with a status of <code>OUTDATED</code> prior to updating the stack instances in the specified accounts and Regions. If the StackSet update does not include changes to the template or parameters, CloudFormation updates the stack instances in the specified accounts and Regions, while leaving all other stack instances with their existing stack instance status.</p>
577 pub fn regions(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
578 self.inner = self.inner.regions(input.into());
579 self
580 }
581 /// <p>The Amazon Web Services Regions in which to update associated stack instances. If you specify Regions, you must also specify accounts in which to update StackSet instances.</p>
582 /// <p>To update <i>all</i> the stack instances associated with this StackSet, do not specify the <code>Accounts</code> or <code>Regions</code> properties.</p>
583 /// <p>If the StackSet update includes changes to the template (that is, if the <code>TemplateBody</code> or <code>TemplateURL</code> properties are specified), or the <code>Parameters</code> property, CloudFormation marks all stack instances with a status of <code>OUTDATED</code> prior to updating the stack instances in the specified accounts and Regions. If the StackSet update does not include changes to the template or parameters, CloudFormation updates the stack instances in the specified accounts and Regions, while leaving all other stack instances with their existing stack instance status.</p>
584 pub fn set_regions(mut self, input: ::std::option::Option<::std::vec::Vec<::std::string::String>>) -> Self {
585 self.inner = self.inner.set_regions(input);
586 self
587 }
588 /// <p>The Amazon Web Services Regions in which to update associated stack instances. If you specify Regions, you must also specify accounts in which to update StackSet instances.</p>
589 /// <p>To update <i>all</i> the stack instances associated with this StackSet, do not specify the <code>Accounts</code> or <code>Regions</code> properties.</p>
590 /// <p>If the StackSet update includes changes to the template (that is, if the <code>TemplateBody</code> or <code>TemplateURL</code> properties are specified), or the <code>Parameters</code> property, CloudFormation marks all stack instances with a status of <code>OUTDATED</code> prior to updating the stack instances in the specified accounts and Regions. If the StackSet update does not include changes to the template or parameters, CloudFormation updates the stack instances in the specified accounts and Regions, while leaving all other stack instances with their existing stack instance status.</p>
591 pub fn get_regions(&self) -> &::std::option::Option<::std::vec::Vec<::std::string::String>> {
592 self.inner.get_regions()
593 }
594 /// <p>\[Service-managed permissions\] Specifies whether you are acting as an account administrator in the organization's management account or as a delegated administrator in a member account.</p>
595 /// <p>By default, <code>SELF</code> is specified. Use <code>SELF</code> for StackSets with self-managed permissions.</p>
596 /// <ul>
597 /// <li>
598 /// <p>If you are signed in to the management account, specify <code>SELF</code>.</p></li>
599 /// <li>
600 /// <p>If you are signed in to a delegated administrator account, specify <code>DELEGATED_ADMIN</code>.</p>
601 /// <p>Your Amazon Web Services account must be registered as a delegated administrator in the management account. For more information, see <a href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/stacksets-orgs-delegated-admin.html">Register a delegated administrator</a> in the <i>CloudFormation User Guide</i>.</p></li>
602 /// </ul>
603 pub fn call_as(mut self, input: crate::types::CallAs) -> Self {
604 self.inner = self.inner.call_as(input);
605 self
606 }
607 /// <p>\[Service-managed permissions\] Specifies whether you are acting as an account administrator in the organization's management account or as a delegated administrator in a member account.</p>
608 /// <p>By default, <code>SELF</code> is specified. Use <code>SELF</code> for StackSets with self-managed permissions.</p>
609 /// <ul>
610 /// <li>
611 /// <p>If you are signed in to the management account, specify <code>SELF</code>.</p></li>
612 /// <li>
613 /// <p>If you are signed in to a delegated administrator account, specify <code>DELEGATED_ADMIN</code>.</p>
614 /// <p>Your Amazon Web Services account must be registered as a delegated administrator in the management account. For more information, see <a href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/stacksets-orgs-delegated-admin.html">Register a delegated administrator</a> in the <i>CloudFormation User Guide</i>.</p></li>
615 /// </ul>
616 pub fn set_call_as(mut self, input: ::std::option::Option<crate::types::CallAs>) -> Self {
617 self.inner = self.inner.set_call_as(input);
618 self
619 }
620 /// <p>\[Service-managed permissions\] Specifies whether you are acting as an account administrator in the organization's management account or as a delegated administrator in a member account.</p>
621 /// <p>By default, <code>SELF</code> is specified. Use <code>SELF</code> for StackSets with self-managed permissions.</p>
622 /// <ul>
623 /// <li>
624 /// <p>If you are signed in to the management account, specify <code>SELF</code>.</p></li>
625 /// <li>
626 /// <p>If you are signed in to a delegated administrator account, specify <code>DELEGATED_ADMIN</code>.</p>
627 /// <p>Your Amazon Web Services account must be registered as a delegated administrator in the management account. For more information, see <a href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/stacksets-orgs-delegated-admin.html">Register a delegated administrator</a> in the <i>CloudFormation User Guide</i>.</p></li>
628 /// </ul>
629 pub fn get_call_as(&self) -> &::std::option::Option<crate::types::CallAs> {
630 self.inner.get_call_as()
631 }
632 /// <p>Describes whether CloudFormation performs non-conflicting operations concurrently and queues conflicting operations.</p>
633 pub fn managed_execution(mut self, input: crate::types::ManagedExecution) -> Self {
634 self.inner = self.inner.managed_execution(input);
635 self
636 }
637 /// <p>Describes whether CloudFormation performs non-conflicting operations concurrently and queues conflicting operations.</p>
638 pub fn set_managed_execution(mut self, input: ::std::option::Option<crate::types::ManagedExecution>) -> Self {
639 self.inner = self.inner.set_managed_execution(input);
640 self
641 }
642 /// <p>Describes whether CloudFormation performs non-conflicting operations concurrently and queues conflicting operations.</p>
643 pub fn get_managed_execution(&self) -> &::std::option::Option<crate::types::ManagedExecution> {
644 self.inner.get_managed_execution()
645 }
646}