1// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT.
2
3package cloudformation
4
5import (
6	"fmt"
7	"time"
8
9	"github.com/aws/aws-sdk-go/aws"
10	"github.com/aws/aws-sdk-go/aws/awsutil"
11	"github.com/aws/aws-sdk-go/aws/request"
12	"github.com/aws/aws-sdk-go/private/protocol"
13	"github.com/aws/aws-sdk-go/private/protocol/query"
14)
15
16const opCancelUpdateStack = "CancelUpdateStack"
17
18// CancelUpdateStackRequest generates a "aws/request.Request" representing the
19// client's request for the CancelUpdateStack operation. The "output" return
20// value will be populated with the request's response once the request completes
21// successfully.
22//
23// Use "Send" method on the returned Request to send the API call to the service.
24// the "output" return value is not valid until after Send returns without error.
25//
26// See CancelUpdateStack for more information on using the CancelUpdateStack
27// API call, and error handling.
28//
29// This method is useful when you want to inject custom logic or configuration
30// into the SDK's request lifecycle. Such as custom headers, or retry logic.
31//
32//
33//    // Example sending a request using the CancelUpdateStackRequest method.
34//    req, resp := client.CancelUpdateStackRequest(params)
35//
36//    err := req.Send()
37//    if err == nil { // resp is now filled
38//        fmt.Println(resp)
39//    }
40//
41// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/CancelUpdateStack
42func (c *CloudFormation) CancelUpdateStackRequest(input *CancelUpdateStackInput) (req *request.Request, output *CancelUpdateStackOutput) {
43	op := &request.Operation{
44		Name:       opCancelUpdateStack,
45		HTTPMethod: "POST",
46		HTTPPath:   "/",
47	}
48
49	if input == nil {
50		input = &CancelUpdateStackInput{}
51	}
52
53	output = &CancelUpdateStackOutput{}
54	req = c.newRequest(op, input, output)
55	req.Handlers.Unmarshal.Swap(query.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
56	return
57}
58
59// CancelUpdateStack API operation for AWS CloudFormation.
60//
61// Cancels an update on the specified stack. If the call completes successfully,
62// the stack rolls back the update and reverts to the previous stack configuration.
63//
64// You can cancel only stacks that are in the UPDATE_IN_PROGRESS state.
65//
66// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
67// with awserr.Error's Code and Message methods to get detailed information about
68// the error.
69//
70// See the AWS API reference guide for AWS CloudFormation's
71// API operation CancelUpdateStack for usage and error information.
72//
73// Returned Error Codes:
74//   * ErrCodeTokenAlreadyExistsException "TokenAlreadyExistsException"
75//   A client request token already exists.
76//
77// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/CancelUpdateStack
78func (c *CloudFormation) CancelUpdateStack(input *CancelUpdateStackInput) (*CancelUpdateStackOutput, error) {
79	req, out := c.CancelUpdateStackRequest(input)
80	return out, req.Send()
81}
82
83// CancelUpdateStackWithContext is the same as CancelUpdateStack with the addition of
84// the ability to pass a context and additional request options.
85//
86// See CancelUpdateStack for details on how to use this API operation.
87//
88// The context must be non-nil and will be used for request cancellation. If
89// the context is nil a panic will occur. In the future the SDK may create
90// sub-contexts for http.Requests. See https://golang.org/pkg/context/
91// for more information on using Contexts.
92func (c *CloudFormation) CancelUpdateStackWithContext(ctx aws.Context, input *CancelUpdateStackInput, opts ...request.Option) (*CancelUpdateStackOutput, error) {
93	req, out := c.CancelUpdateStackRequest(input)
94	req.SetContext(ctx)
95	req.ApplyOptions(opts...)
96	return out, req.Send()
97}
98
99const opContinueUpdateRollback = "ContinueUpdateRollback"
100
101// ContinueUpdateRollbackRequest generates a "aws/request.Request" representing the
102// client's request for the ContinueUpdateRollback operation. The "output" return
103// value will be populated with the request's response once the request completes
104// successfully.
105//
106// Use "Send" method on the returned Request to send the API call to the service.
107// the "output" return value is not valid until after Send returns without error.
108//
109// See ContinueUpdateRollback for more information on using the ContinueUpdateRollback
110// API call, and error handling.
111//
112// This method is useful when you want to inject custom logic or configuration
113// into the SDK's request lifecycle. Such as custom headers, or retry logic.
114//
115//
116//    // Example sending a request using the ContinueUpdateRollbackRequest method.
117//    req, resp := client.ContinueUpdateRollbackRequest(params)
118//
119//    err := req.Send()
120//    if err == nil { // resp is now filled
121//        fmt.Println(resp)
122//    }
123//
124// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/ContinueUpdateRollback
125func (c *CloudFormation) ContinueUpdateRollbackRequest(input *ContinueUpdateRollbackInput) (req *request.Request, output *ContinueUpdateRollbackOutput) {
126	op := &request.Operation{
127		Name:       opContinueUpdateRollback,
128		HTTPMethod: "POST",
129		HTTPPath:   "/",
130	}
131
132	if input == nil {
133		input = &ContinueUpdateRollbackInput{}
134	}
135
136	output = &ContinueUpdateRollbackOutput{}
137	req = c.newRequest(op, input, output)
138	req.Handlers.Unmarshal.Swap(query.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
139	return
140}
141
142// ContinueUpdateRollback API operation for AWS CloudFormation.
143//
144// For a specified stack that is in the UPDATE_ROLLBACK_FAILED state, continues
145// rolling it back to the UPDATE_ROLLBACK_COMPLETE state. Depending on the cause
146// of the failure, you can manually fix the error (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/troubleshooting.html#troubleshooting-errors-update-rollback-failed)
147// and continue the rollback. By continuing the rollback, you can return your
148// stack to a working state (the UPDATE_ROLLBACK_COMPLETE state), and then try
149// to update the stack again.
150//
151// A stack goes into the UPDATE_ROLLBACK_FAILED state when AWS CloudFormation
152// cannot roll back all changes after a failed stack update. For example, you
153// might have a stack that is rolling back to an old database instance that
154// was deleted outside of AWS CloudFormation. Because AWS CloudFormation doesn't
155// know the database was deleted, it assumes that the database instance still
156// exists and attempts to roll back to it, causing the update rollback to fail.
157//
158// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
159// with awserr.Error's Code and Message methods to get detailed information about
160// the error.
161//
162// See the AWS API reference guide for AWS CloudFormation's
163// API operation ContinueUpdateRollback for usage and error information.
164//
165// Returned Error Codes:
166//   * ErrCodeTokenAlreadyExistsException "TokenAlreadyExistsException"
167//   A client request token already exists.
168//
169// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/ContinueUpdateRollback
170func (c *CloudFormation) ContinueUpdateRollback(input *ContinueUpdateRollbackInput) (*ContinueUpdateRollbackOutput, error) {
171	req, out := c.ContinueUpdateRollbackRequest(input)
172	return out, req.Send()
173}
174
175// ContinueUpdateRollbackWithContext is the same as ContinueUpdateRollback with the addition of
176// the ability to pass a context and additional request options.
177//
178// See ContinueUpdateRollback for details on how to use this API operation.
179//
180// The context must be non-nil and will be used for request cancellation. If
181// the context is nil a panic will occur. In the future the SDK may create
182// sub-contexts for http.Requests. See https://golang.org/pkg/context/
183// for more information on using Contexts.
184func (c *CloudFormation) ContinueUpdateRollbackWithContext(ctx aws.Context, input *ContinueUpdateRollbackInput, opts ...request.Option) (*ContinueUpdateRollbackOutput, error) {
185	req, out := c.ContinueUpdateRollbackRequest(input)
186	req.SetContext(ctx)
187	req.ApplyOptions(opts...)
188	return out, req.Send()
189}
190
191const opCreateChangeSet = "CreateChangeSet"
192
193// CreateChangeSetRequest generates a "aws/request.Request" representing the
194// client's request for the CreateChangeSet operation. The "output" return
195// value will be populated with the request's response once the request completes
196// successfully.
197//
198// Use "Send" method on the returned Request to send the API call to the service.
199// the "output" return value is not valid until after Send returns without error.
200//
201// See CreateChangeSet for more information on using the CreateChangeSet
202// API call, and error handling.
203//
204// This method is useful when you want to inject custom logic or configuration
205// into the SDK's request lifecycle. Such as custom headers, or retry logic.
206//
207//
208//    // Example sending a request using the CreateChangeSetRequest method.
209//    req, resp := client.CreateChangeSetRequest(params)
210//
211//    err := req.Send()
212//    if err == nil { // resp is now filled
213//        fmt.Println(resp)
214//    }
215//
216// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/CreateChangeSet
217func (c *CloudFormation) CreateChangeSetRequest(input *CreateChangeSetInput) (req *request.Request, output *CreateChangeSetOutput) {
218	op := &request.Operation{
219		Name:       opCreateChangeSet,
220		HTTPMethod: "POST",
221		HTTPPath:   "/",
222	}
223
224	if input == nil {
225		input = &CreateChangeSetInput{}
226	}
227
228	output = &CreateChangeSetOutput{}
229	req = c.newRequest(op, input, output)
230	return
231}
232
233// CreateChangeSet API operation for AWS CloudFormation.
234//
235// Creates a list of changes that will be applied to a stack so that you can
236// review the changes before executing them. You can create a change set for
237// a stack that doesn't exist or an existing stack. If you create a change set
238// for a stack that doesn't exist, the change set shows all of the resources
239// that AWS CloudFormation will create. If you create a change set for an existing
240// stack, AWS CloudFormation compares the stack's information with the information
241// that you submit in the change set and lists the differences. Use change sets
242// to understand which resources AWS CloudFormation will create or change, and
243// how it will change resources in an existing stack, before you create or update
244// a stack.
245//
246// To create a change set for a stack that doesn't exist, for the ChangeSetType
247// parameter, specify CREATE. To create a change set for an existing stack,
248// specify UPDATE for the ChangeSetType parameter. To create a change set for
249// an import operation, specify IMPORT for the ChangeSetType parameter. After
250// the CreateChangeSet call successfully completes, AWS CloudFormation starts
251// creating the change set. To check the status of the change set or to review
252// it, use the DescribeChangeSet action.
253//
254// When you are satisfied with the changes the change set will make, execute
255// the change set by using the ExecuteChangeSet action. AWS CloudFormation doesn't
256// make changes until you execute the change set.
257//
258// To create a change set for the entire stack hierachy, set IncludeNestedStacks
259// to True.
260//
261// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
262// with awserr.Error's Code and Message methods to get detailed information about
263// the error.
264//
265// See the AWS API reference guide for AWS CloudFormation's
266// API operation CreateChangeSet for usage and error information.
267//
268// Returned Error Codes:
269//   * ErrCodeAlreadyExistsException "AlreadyExistsException"
270//   The resource with the name requested already exists.
271//
272//   * ErrCodeInsufficientCapabilitiesException "InsufficientCapabilitiesException"
273//   The template contains resources with capabilities that weren't specified
274//   in the Capabilities parameter.
275//
276//   * ErrCodeLimitExceededException "LimitExceededException"
277//   The quota for the resource has already been reached.
278//
279//   For information on resource and stack limitations, see Limits (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/cloudformation-limits.html)
280//   in the AWS CloudFormation User Guide.
281//
282// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/CreateChangeSet
283func (c *CloudFormation) CreateChangeSet(input *CreateChangeSetInput) (*CreateChangeSetOutput, error) {
284	req, out := c.CreateChangeSetRequest(input)
285	return out, req.Send()
286}
287
288// CreateChangeSetWithContext is the same as CreateChangeSet with the addition of
289// the ability to pass a context and additional request options.
290//
291// See CreateChangeSet for details on how to use this API operation.
292//
293// The context must be non-nil and will be used for request cancellation. If
294// the context is nil a panic will occur. In the future the SDK may create
295// sub-contexts for http.Requests. See https://golang.org/pkg/context/
296// for more information on using Contexts.
297func (c *CloudFormation) CreateChangeSetWithContext(ctx aws.Context, input *CreateChangeSetInput, opts ...request.Option) (*CreateChangeSetOutput, error) {
298	req, out := c.CreateChangeSetRequest(input)
299	req.SetContext(ctx)
300	req.ApplyOptions(opts...)
301	return out, req.Send()
302}
303
304const opCreateStack = "CreateStack"
305
306// CreateStackRequest generates a "aws/request.Request" representing the
307// client's request for the CreateStack operation. The "output" return
308// value will be populated with the request's response once the request completes
309// successfully.
310//
311// Use "Send" method on the returned Request to send the API call to the service.
312// the "output" return value is not valid until after Send returns without error.
313//
314// See CreateStack for more information on using the CreateStack
315// API call, and error handling.
316//
317// This method is useful when you want to inject custom logic or configuration
318// into the SDK's request lifecycle. Such as custom headers, or retry logic.
319//
320//
321//    // Example sending a request using the CreateStackRequest method.
322//    req, resp := client.CreateStackRequest(params)
323//
324//    err := req.Send()
325//    if err == nil { // resp is now filled
326//        fmt.Println(resp)
327//    }
328//
329// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/CreateStack
330func (c *CloudFormation) CreateStackRequest(input *CreateStackInput) (req *request.Request, output *CreateStackOutput) {
331	op := &request.Operation{
332		Name:       opCreateStack,
333		HTTPMethod: "POST",
334		HTTPPath:   "/",
335	}
336
337	if input == nil {
338		input = &CreateStackInput{}
339	}
340
341	output = &CreateStackOutput{}
342	req = c.newRequest(op, input, output)
343	return
344}
345
346// CreateStack API operation for AWS CloudFormation.
347//
348// Creates a stack as specified in the template. After the call completes successfully,
349// the stack creation starts. You can check the status of the stack via the
350// DescribeStacks API.
351//
352// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
353// with awserr.Error's Code and Message methods to get detailed information about
354// the error.
355//
356// See the AWS API reference guide for AWS CloudFormation's
357// API operation CreateStack for usage and error information.
358//
359// Returned Error Codes:
360//   * ErrCodeLimitExceededException "LimitExceededException"
361//   The quota for the resource has already been reached.
362//
363//   For information on resource and stack limitations, see Limits (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/cloudformation-limits.html)
364//   in the AWS CloudFormation User Guide.
365//
366//   * ErrCodeAlreadyExistsException "AlreadyExistsException"
367//   The resource with the name requested already exists.
368//
369//   * ErrCodeTokenAlreadyExistsException "TokenAlreadyExistsException"
370//   A client request token already exists.
371//
372//   * ErrCodeInsufficientCapabilitiesException "InsufficientCapabilitiesException"
373//   The template contains resources with capabilities that weren't specified
374//   in the Capabilities parameter.
375//
376// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/CreateStack
377func (c *CloudFormation) CreateStack(input *CreateStackInput) (*CreateStackOutput, error) {
378	req, out := c.CreateStackRequest(input)
379	return out, req.Send()
380}
381
382// CreateStackWithContext is the same as CreateStack with the addition of
383// the ability to pass a context and additional request options.
384//
385// See CreateStack for details on how to use this API operation.
386//
387// The context must be non-nil and will be used for request cancellation. If
388// the context is nil a panic will occur. In the future the SDK may create
389// sub-contexts for http.Requests. See https://golang.org/pkg/context/
390// for more information on using Contexts.
391func (c *CloudFormation) CreateStackWithContext(ctx aws.Context, input *CreateStackInput, opts ...request.Option) (*CreateStackOutput, error) {
392	req, out := c.CreateStackRequest(input)
393	req.SetContext(ctx)
394	req.ApplyOptions(opts...)
395	return out, req.Send()
396}
397
398const opCreateStackInstances = "CreateStackInstances"
399
400// CreateStackInstancesRequest generates a "aws/request.Request" representing the
401// client's request for the CreateStackInstances operation. The "output" return
402// value will be populated with the request's response once the request completes
403// successfully.
404//
405// Use "Send" method on the returned Request to send the API call to the service.
406// the "output" return value is not valid until after Send returns without error.
407//
408// See CreateStackInstances for more information on using the CreateStackInstances
409// API call, and error handling.
410//
411// This method is useful when you want to inject custom logic or configuration
412// into the SDK's request lifecycle. Such as custom headers, or retry logic.
413//
414//
415//    // Example sending a request using the CreateStackInstancesRequest method.
416//    req, resp := client.CreateStackInstancesRequest(params)
417//
418//    err := req.Send()
419//    if err == nil { // resp is now filled
420//        fmt.Println(resp)
421//    }
422//
423// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/CreateStackInstances
424func (c *CloudFormation) CreateStackInstancesRequest(input *CreateStackInstancesInput) (req *request.Request, output *CreateStackInstancesOutput) {
425	op := &request.Operation{
426		Name:       opCreateStackInstances,
427		HTTPMethod: "POST",
428		HTTPPath:   "/",
429	}
430
431	if input == nil {
432		input = &CreateStackInstancesInput{}
433	}
434
435	output = &CreateStackInstancesOutput{}
436	req = c.newRequest(op, input, output)
437	return
438}
439
440// CreateStackInstances API operation for AWS CloudFormation.
441//
442// Creates stack instances for the specified accounts, within the specified
443// Regions. A stack instance refers to a stack in a specific account and Region.
444// You must specify at least one value for either Accounts or DeploymentTargets,
445// and you must specify at least one value for Regions.
446//
447// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
448// with awserr.Error's Code and Message methods to get detailed information about
449// the error.
450//
451// See the AWS API reference guide for AWS CloudFormation's
452// API operation CreateStackInstances for usage and error information.
453//
454// Returned Error Codes:
455//   * ErrCodeStackSetNotFoundException "StackSetNotFoundException"
456//   The specified stack set doesn't exist.
457//
458//   * ErrCodeOperationInProgressException "OperationInProgressException"
459//   Another operation is currently in progress for this stack set. Only one operation
460//   can be performed for a stack set at a given time.
461//
462//   * ErrCodeOperationIdAlreadyExistsException "OperationIdAlreadyExistsException"
463//   The specified operation ID already exists.
464//
465//   * ErrCodeStaleRequestException "StaleRequestException"
466//   Another operation has been performed on this stack set since the specified
467//   operation was performed.
468//
469//   * ErrCodeInvalidOperationException "InvalidOperationException"
470//   The specified operation isn't valid.
471//
472//   * ErrCodeLimitExceededException "LimitExceededException"
473//   The quota for the resource has already been reached.
474//
475//   For information on resource and stack limitations, see Limits (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/cloudformation-limits.html)
476//   in the AWS CloudFormation User Guide.
477//
478// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/CreateStackInstances
479func (c *CloudFormation) CreateStackInstances(input *CreateStackInstancesInput) (*CreateStackInstancesOutput, error) {
480	req, out := c.CreateStackInstancesRequest(input)
481	return out, req.Send()
482}
483
484// CreateStackInstancesWithContext is the same as CreateStackInstances with the addition of
485// the ability to pass a context and additional request options.
486//
487// See CreateStackInstances for details on how to use this API operation.
488//
489// The context must be non-nil and will be used for request cancellation. If
490// the context is nil a panic will occur. In the future the SDK may create
491// sub-contexts for http.Requests. See https://golang.org/pkg/context/
492// for more information on using Contexts.
493func (c *CloudFormation) CreateStackInstancesWithContext(ctx aws.Context, input *CreateStackInstancesInput, opts ...request.Option) (*CreateStackInstancesOutput, error) {
494	req, out := c.CreateStackInstancesRequest(input)
495	req.SetContext(ctx)
496	req.ApplyOptions(opts...)
497	return out, req.Send()
498}
499
500const opCreateStackSet = "CreateStackSet"
501
502// CreateStackSetRequest generates a "aws/request.Request" representing the
503// client's request for the CreateStackSet operation. The "output" return
504// value will be populated with the request's response once the request completes
505// successfully.
506//
507// Use "Send" method on the returned Request to send the API call to the service.
508// the "output" return value is not valid until after Send returns without error.
509//
510// See CreateStackSet for more information on using the CreateStackSet
511// API call, and error handling.
512//
513// This method is useful when you want to inject custom logic or configuration
514// into the SDK's request lifecycle. Such as custom headers, or retry logic.
515//
516//
517//    // Example sending a request using the CreateStackSetRequest method.
518//    req, resp := client.CreateStackSetRequest(params)
519//
520//    err := req.Send()
521//    if err == nil { // resp is now filled
522//        fmt.Println(resp)
523//    }
524//
525// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/CreateStackSet
526func (c *CloudFormation) CreateStackSetRequest(input *CreateStackSetInput) (req *request.Request, output *CreateStackSetOutput) {
527	op := &request.Operation{
528		Name:       opCreateStackSet,
529		HTTPMethod: "POST",
530		HTTPPath:   "/",
531	}
532
533	if input == nil {
534		input = &CreateStackSetInput{}
535	}
536
537	output = &CreateStackSetOutput{}
538	req = c.newRequest(op, input, output)
539	return
540}
541
542// CreateStackSet API operation for AWS CloudFormation.
543//
544// Creates a stack set.
545//
546// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
547// with awserr.Error's Code and Message methods to get detailed information about
548// the error.
549//
550// See the AWS API reference guide for AWS CloudFormation's
551// API operation CreateStackSet for usage and error information.
552//
553// Returned Error Codes:
554//   * ErrCodeNameAlreadyExistsException "NameAlreadyExistsException"
555//   The specified name is already in use.
556//
557//   * ErrCodeCreatedButModifiedException "CreatedButModifiedException"
558//   The specified resource exists, but has been changed.
559//
560//   * ErrCodeLimitExceededException "LimitExceededException"
561//   The quota for the resource has already been reached.
562//
563//   For information on resource and stack limitations, see Limits (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/cloudformation-limits.html)
564//   in the AWS CloudFormation User Guide.
565//
566// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/CreateStackSet
567func (c *CloudFormation) CreateStackSet(input *CreateStackSetInput) (*CreateStackSetOutput, error) {
568	req, out := c.CreateStackSetRequest(input)
569	return out, req.Send()
570}
571
572// CreateStackSetWithContext is the same as CreateStackSet with the addition of
573// the ability to pass a context and additional request options.
574//
575// See CreateStackSet for details on how to use this API operation.
576//
577// The context must be non-nil and will be used for request cancellation. If
578// the context is nil a panic will occur. In the future the SDK may create
579// sub-contexts for http.Requests. See https://golang.org/pkg/context/
580// for more information on using Contexts.
581func (c *CloudFormation) CreateStackSetWithContext(ctx aws.Context, input *CreateStackSetInput, opts ...request.Option) (*CreateStackSetOutput, error) {
582	req, out := c.CreateStackSetRequest(input)
583	req.SetContext(ctx)
584	req.ApplyOptions(opts...)
585	return out, req.Send()
586}
587
588const opDeleteChangeSet = "DeleteChangeSet"
589
590// DeleteChangeSetRequest generates a "aws/request.Request" representing the
591// client's request for the DeleteChangeSet operation. The "output" return
592// value will be populated with the request's response once the request completes
593// successfully.
594//
595// Use "Send" method on the returned Request to send the API call to the service.
596// the "output" return value is not valid until after Send returns without error.
597//
598// See DeleteChangeSet for more information on using the DeleteChangeSet
599// API call, and error handling.
600//
601// This method is useful when you want to inject custom logic or configuration
602// into the SDK's request lifecycle. Such as custom headers, or retry logic.
603//
604//
605//    // Example sending a request using the DeleteChangeSetRequest method.
606//    req, resp := client.DeleteChangeSetRequest(params)
607//
608//    err := req.Send()
609//    if err == nil { // resp is now filled
610//        fmt.Println(resp)
611//    }
612//
613// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/DeleteChangeSet
614func (c *CloudFormation) DeleteChangeSetRequest(input *DeleteChangeSetInput) (req *request.Request, output *DeleteChangeSetOutput) {
615	op := &request.Operation{
616		Name:       opDeleteChangeSet,
617		HTTPMethod: "POST",
618		HTTPPath:   "/",
619	}
620
621	if input == nil {
622		input = &DeleteChangeSetInput{}
623	}
624
625	output = &DeleteChangeSetOutput{}
626	req = c.newRequest(op, input, output)
627	req.Handlers.Unmarshal.Swap(query.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
628	return
629}
630
631// DeleteChangeSet API operation for AWS CloudFormation.
632//
633// Deletes the specified change set. Deleting change sets ensures that no one
634// executes the wrong change set.
635//
636// If the call successfully completes, AWS CloudFormation successfully deleted
637// the change set.
638//
639// If IncludeNestedStacks specifies True during the creation of the nested change
640// set, then DeleteChangeSet will delete all change sets that belong to the
641// stacks hierarchy and will also delete all change sets for nested stacks with
642// the status of REVIEW_IN_PROGRESS.
643//
644// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
645// with awserr.Error's Code and Message methods to get detailed information about
646// the error.
647//
648// See the AWS API reference guide for AWS CloudFormation's
649// API operation DeleteChangeSet for usage and error information.
650//
651// Returned Error Codes:
652//   * ErrCodeInvalidChangeSetStatusException "InvalidChangeSetStatus"
653//   The specified change set can't be used to update the stack. For example,
654//   the change set status might be CREATE_IN_PROGRESS, or the stack status might
655//   be UPDATE_IN_PROGRESS.
656//
657// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/DeleteChangeSet
658func (c *CloudFormation) DeleteChangeSet(input *DeleteChangeSetInput) (*DeleteChangeSetOutput, error) {
659	req, out := c.DeleteChangeSetRequest(input)
660	return out, req.Send()
661}
662
663// DeleteChangeSetWithContext is the same as DeleteChangeSet with the addition of
664// the ability to pass a context and additional request options.
665//
666// See DeleteChangeSet for details on how to use this API operation.
667//
668// The context must be non-nil and will be used for request cancellation. If
669// the context is nil a panic will occur. In the future the SDK may create
670// sub-contexts for http.Requests. See https://golang.org/pkg/context/
671// for more information on using Contexts.
672func (c *CloudFormation) DeleteChangeSetWithContext(ctx aws.Context, input *DeleteChangeSetInput, opts ...request.Option) (*DeleteChangeSetOutput, error) {
673	req, out := c.DeleteChangeSetRequest(input)
674	req.SetContext(ctx)
675	req.ApplyOptions(opts...)
676	return out, req.Send()
677}
678
679const opDeleteStack = "DeleteStack"
680
681// DeleteStackRequest generates a "aws/request.Request" representing the
682// client's request for the DeleteStack operation. The "output" return
683// value will be populated with the request's response once the request completes
684// successfully.
685//
686// Use "Send" method on the returned Request to send the API call to the service.
687// the "output" return value is not valid until after Send returns without error.
688//
689// See DeleteStack for more information on using the DeleteStack
690// API call, and error handling.
691//
692// This method is useful when you want to inject custom logic or configuration
693// into the SDK's request lifecycle. Such as custom headers, or retry logic.
694//
695//
696//    // Example sending a request using the DeleteStackRequest method.
697//    req, resp := client.DeleteStackRequest(params)
698//
699//    err := req.Send()
700//    if err == nil { // resp is now filled
701//        fmt.Println(resp)
702//    }
703//
704// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/DeleteStack
705func (c *CloudFormation) DeleteStackRequest(input *DeleteStackInput) (req *request.Request, output *DeleteStackOutput) {
706	op := &request.Operation{
707		Name:       opDeleteStack,
708		HTTPMethod: "POST",
709		HTTPPath:   "/",
710	}
711
712	if input == nil {
713		input = &DeleteStackInput{}
714	}
715
716	output = &DeleteStackOutput{}
717	req = c.newRequest(op, input, output)
718	req.Handlers.Unmarshal.Swap(query.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
719	return
720}
721
722// DeleteStack API operation for AWS CloudFormation.
723//
724// Deletes a specified stack. Once the call completes successfully, stack deletion
725// starts. Deleted stacks do not show up in the DescribeStacks API if the deletion
726// has been completed successfully.
727//
728// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
729// with awserr.Error's Code and Message methods to get detailed information about
730// the error.
731//
732// See the AWS API reference guide for AWS CloudFormation's
733// API operation DeleteStack for usage and error information.
734//
735// Returned Error Codes:
736//   * ErrCodeTokenAlreadyExistsException "TokenAlreadyExistsException"
737//   A client request token already exists.
738//
739// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/DeleteStack
740func (c *CloudFormation) DeleteStack(input *DeleteStackInput) (*DeleteStackOutput, error) {
741	req, out := c.DeleteStackRequest(input)
742	return out, req.Send()
743}
744
745// DeleteStackWithContext is the same as DeleteStack with the addition of
746// the ability to pass a context and additional request options.
747//
748// See DeleteStack for details on how to use this API operation.
749//
750// The context must be non-nil and will be used for request cancellation. If
751// the context is nil a panic will occur. In the future the SDK may create
752// sub-contexts for http.Requests. See https://golang.org/pkg/context/
753// for more information on using Contexts.
754func (c *CloudFormation) DeleteStackWithContext(ctx aws.Context, input *DeleteStackInput, opts ...request.Option) (*DeleteStackOutput, error) {
755	req, out := c.DeleteStackRequest(input)
756	req.SetContext(ctx)
757	req.ApplyOptions(opts...)
758	return out, req.Send()
759}
760
761const opDeleteStackInstances = "DeleteStackInstances"
762
763// DeleteStackInstancesRequest generates a "aws/request.Request" representing the
764// client's request for the DeleteStackInstances operation. The "output" return
765// value will be populated with the request's response once the request completes
766// successfully.
767//
768// Use "Send" method on the returned Request to send the API call to the service.
769// the "output" return value is not valid until after Send returns without error.
770//
771// See DeleteStackInstances for more information on using the DeleteStackInstances
772// API call, and error handling.
773//
774// This method is useful when you want to inject custom logic or configuration
775// into the SDK's request lifecycle. Such as custom headers, or retry logic.
776//
777//
778//    // Example sending a request using the DeleteStackInstancesRequest method.
779//    req, resp := client.DeleteStackInstancesRequest(params)
780//
781//    err := req.Send()
782//    if err == nil { // resp is now filled
783//        fmt.Println(resp)
784//    }
785//
786// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/DeleteStackInstances
787func (c *CloudFormation) DeleteStackInstancesRequest(input *DeleteStackInstancesInput) (req *request.Request, output *DeleteStackInstancesOutput) {
788	op := &request.Operation{
789		Name:       opDeleteStackInstances,
790		HTTPMethod: "POST",
791		HTTPPath:   "/",
792	}
793
794	if input == nil {
795		input = &DeleteStackInstancesInput{}
796	}
797
798	output = &DeleteStackInstancesOutput{}
799	req = c.newRequest(op, input, output)
800	return
801}
802
803// DeleteStackInstances API operation for AWS CloudFormation.
804//
805// Deletes stack instances for the specified accounts, in the specified Regions.
806//
807// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
808// with awserr.Error's Code and Message methods to get detailed information about
809// the error.
810//
811// See the AWS API reference guide for AWS CloudFormation's
812// API operation DeleteStackInstances for usage and error information.
813//
814// Returned Error Codes:
815//   * ErrCodeStackSetNotFoundException "StackSetNotFoundException"
816//   The specified stack set doesn't exist.
817//
818//   * ErrCodeOperationInProgressException "OperationInProgressException"
819//   Another operation is currently in progress for this stack set. Only one operation
820//   can be performed for a stack set at a given time.
821//
822//   * ErrCodeOperationIdAlreadyExistsException "OperationIdAlreadyExistsException"
823//   The specified operation ID already exists.
824//
825//   * ErrCodeStaleRequestException "StaleRequestException"
826//   Another operation has been performed on this stack set since the specified
827//   operation was performed.
828//
829//   * ErrCodeInvalidOperationException "InvalidOperationException"
830//   The specified operation isn't valid.
831//
832// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/DeleteStackInstances
833func (c *CloudFormation) DeleteStackInstances(input *DeleteStackInstancesInput) (*DeleteStackInstancesOutput, error) {
834	req, out := c.DeleteStackInstancesRequest(input)
835	return out, req.Send()
836}
837
838// DeleteStackInstancesWithContext is the same as DeleteStackInstances with the addition of
839// the ability to pass a context and additional request options.
840//
841// See DeleteStackInstances for details on how to use this API operation.
842//
843// The context must be non-nil and will be used for request cancellation. If
844// the context is nil a panic will occur. In the future the SDK may create
845// sub-contexts for http.Requests. See https://golang.org/pkg/context/
846// for more information on using Contexts.
847func (c *CloudFormation) DeleteStackInstancesWithContext(ctx aws.Context, input *DeleteStackInstancesInput, opts ...request.Option) (*DeleteStackInstancesOutput, error) {
848	req, out := c.DeleteStackInstancesRequest(input)
849	req.SetContext(ctx)
850	req.ApplyOptions(opts...)
851	return out, req.Send()
852}
853
854const opDeleteStackSet = "DeleteStackSet"
855
856// DeleteStackSetRequest generates a "aws/request.Request" representing the
857// client's request for the DeleteStackSet operation. The "output" return
858// value will be populated with the request's response once the request completes
859// successfully.
860//
861// Use "Send" method on the returned Request to send the API call to the service.
862// the "output" return value is not valid until after Send returns without error.
863//
864// See DeleteStackSet for more information on using the DeleteStackSet
865// API call, and error handling.
866//
867// This method is useful when you want to inject custom logic or configuration
868// into the SDK's request lifecycle. Such as custom headers, or retry logic.
869//
870//
871//    // Example sending a request using the DeleteStackSetRequest method.
872//    req, resp := client.DeleteStackSetRequest(params)
873//
874//    err := req.Send()
875//    if err == nil { // resp is now filled
876//        fmt.Println(resp)
877//    }
878//
879// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/DeleteStackSet
880func (c *CloudFormation) DeleteStackSetRequest(input *DeleteStackSetInput) (req *request.Request, output *DeleteStackSetOutput) {
881	op := &request.Operation{
882		Name:       opDeleteStackSet,
883		HTTPMethod: "POST",
884		HTTPPath:   "/",
885	}
886
887	if input == nil {
888		input = &DeleteStackSetInput{}
889	}
890
891	output = &DeleteStackSetOutput{}
892	req = c.newRequest(op, input, output)
893	req.Handlers.Unmarshal.Swap(query.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
894	return
895}
896
897// DeleteStackSet API operation for AWS CloudFormation.
898//
899// Deletes a stack set. Before you can delete a stack set, all of its member
900// stack instances must be deleted. For more information about how to do this,
901// see DeleteStackInstances.
902//
903// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
904// with awserr.Error's Code and Message methods to get detailed information about
905// the error.
906//
907// See the AWS API reference guide for AWS CloudFormation's
908// API operation DeleteStackSet for usage and error information.
909//
910// Returned Error Codes:
911//   * ErrCodeStackSetNotEmptyException "StackSetNotEmptyException"
912//   You can't yet delete this stack set, because it still contains one or more
913//   stack instances. Delete all stack instances from the stack set before deleting
914//   the stack set.
915//
916//   * ErrCodeOperationInProgressException "OperationInProgressException"
917//   Another operation is currently in progress for this stack set. Only one operation
918//   can be performed for a stack set at a given time.
919//
920// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/DeleteStackSet
921func (c *CloudFormation) DeleteStackSet(input *DeleteStackSetInput) (*DeleteStackSetOutput, error) {
922	req, out := c.DeleteStackSetRequest(input)
923	return out, req.Send()
924}
925
926// DeleteStackSetWithContext is the same as DeleteStackSet with the addition of
927// the ability to pass a context and additional request options.
928//
929// See DeleteStackSet for details on how to use this API operation.
930//
931// The context must be non-nil and will be used for request cancellation. If
932// the context is nil a panic will occur. In the future the SDK may create
933// sub-contexts for http.Requests. See https://golang.org/pkg/context/
934// for more information on using Contexts.
935func (c *CloudFormation) DeleteStackSetWithContext(ctx aws.Context, input *DeleteStackSetInput, opts ...request.Option) (*DeleteStackSetOutput, error) {
936	req, out := c.DeleteStackSetRequest(input)
937	req.SetContext(ctx)
938	req.ApplyOptions(opts...)
939	return out, req.Send()
940}
941
942const opDeregisterType = "DeregisterType"
943
944// DeregisterTypeRequest generates a "aws/request.Request" representing the
945// client's request for the DeregisterType operation. The "output" return
946// value will be populated with the request's response once the request completes
947// successfully.
948//
949// Use "Send" method on the returned Request to send the API call to the service.
950// the "output" return value is not valid until after Send returns without error.
951//
952// See DeregisterType for more information on using the DeregisterType
953// API call, and error handling.
954//
955// This method is useful when you want to inject custom logic or configuration
956// into the SDK's request lifecycle. Such as custom headers, or retry logic.
957//
958//
959//    // Example sending a request using the DeregisterTypeRequest method.
960//    req, resp := client.DeregisterTypeRequest(params)
961//
962//    err := req.Send()
963//    if err == nil { // resp is now filled
964//        fmt.Println(resp)
965//    }
966//
967// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/DeregisterType
968func (c *CloudFormation) DeregisterTypeRequest(input *DeregisterTypeInput) (req *request.Request, output *DeregisterTypeOutput) {
969	op := &request.Operation{
970		Name:       opDeregisterType,
971		HTTPMethod: "POST",
972		HTTPPath:   "/",
973	}
974
975	if input == nil {
976		input = &DeregisterTypeInput{}
977	}
978
979	output = &DeregisterTypeOutput{}
980	req = c.newRequest(op, input, output)
981	req.Handlers.Unmarshal.Swap(query.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
982	return
983}
984
985// DeregisterType API operation for AWS CloudFormation.
986//
987// Marks an extension or extension version as DEPRECATED in the CloudFormation
988// registry, removing it from active use. Deprecated extensions or extension
989// versions cannot be used in CloudFormation operations.
990//
991// To deregister an entire extension, you must individually deregister all active
992// versions of that extension. If an extension has only a single active version,
993// deregistering that version results in the extension itself being deregistered
994// and marked as deprecated in the registry.
995//
996// You cannot deregister the default version of an extension if there are other
997// active version of that extension. If you do deregister the default version
998// of an extension, the textensionype itself is deregistered as well and marked
999// as deprecated.
1000//
1001// To view the deprecation status of an extension or extension version, use
1002// DescribeType (https://docs.aws.amazon.com/AWSCloudFormation/latest/APIReference/API_DescribeType.html).
1003//
1004// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1005// with awserr.Error's Code and Message methods to get detailed information about
1006// the error.
1007//
1008// See the AWS API reference guide for AWS CloudFormation's
1009// API operation DeregisterType for usage and error information.
1010//
1011// Returned Error Codes:
1012//   * ErrCodeCFNRegistryException "CFNRegistryException"
1013//   An error occurred during a CloudFormation registry operation.
1014//
1015//   * ErrCodeTypeNotFoundException "TypeNotFoundException"
1016//   The specified type does not exist in the CloudFormation registry.
1017//
1018// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/DeregisterType
1019func (c *CloudFormation) DeregisterType(input *DeregisterTypeInput) (*DeregisterTypeOutput, error) {
1020	req, out := c.DeregisterTypeRequest(input)
1021	return out, req.Send()
1022}
1023
1024// DeregisterTypeWithContext is the same as DeregisterType with the addition of
1025// the ability to pass a context and additional request options.
1026//
1027// See DeregisterType for details on how to use this API operation.
1028//
1029// The context must be non-nil and will be used for request cancellation. If
1030// the context is nil a panic will occur. In the future the SDK may create
1031// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1032// for more information on using Contexts.
1033func (c *CloudFormation) DeregisterTypeWithContext(ctx aws.Context, input *DeregisterTypeInput, opts ...request.Option) (*DeregisterTypeOutput, error) {
1034	req, out := c.DeregisterTypeRequest(input)
1035	req.SetContext(ctx)
1036	req.ApplyOptions(opts...)
1037	return out, req.Send()
1038}
1039
1040const opDescribeAccountLimits = "DescribeAccountLimits"
1041
1042// DescribeAccountLimitsRequest generates a "aws/request.Request" representing the
1043// client's request for the DescribeAccountLimits operation. The "output" return
1044// value will be populated with the request's response once the request completes
1045// successfully.
1046//
1047// Use "Send" method on the returned Request to send the API call to the service.
1048// the "output" return value is not valid until after Send returns without error.
1049//
1050// See DescribeAccountLimits for more information on using the DescribeAccountLimits
1051// API call, and error handling.
1052//
1053// This method is useful when you want to inject custom logic or configuration
1054// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1055//
1056//
1057//    // Example sending a request using the DescribeAccountLimitsRequest method.
1058//    req, resp := client.DescribeAccountLimitsRequest(params)
1059//
1060//    err := req.Send()
1061//    if err == nil { // resp is now filled
1062//        fmt.Println(resp)
1063//    }
1064//
1065// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/DescribeAccountLimits
1066func (c *CloudFormation) DescribeAccountLimitsRequest(input *DescribeAccountLimitsInput) (req *request.Request, output *DescribeAccountLimitsOutput) {
1067	op := &request.Operation{
1068		Name:       opDescribeAccountLimits,
1069		HTTPMethod: "POST",
1070		HTTPPath:   "/",
1071		Paginator: &request.Paginator{
1072			InputTokens:     []string{"NextToken"},
1073			OutputTokens:    []string{"NextToken"},
1074			LimitToken:      "",
1075			TruncationToken: "",
1076		},
1077	}
1078
1079	if input == nil {
1080		input = &DescribeAccountLimitsInput{}
1081	}
1082
1083	output = &DescribeAccountLimitsOutput{}
1084	req = c.newRequest(op, input, output)
1085	return
1086}
1087
1088// DescribeAccountLimits API operation for AWS CloudFormation.
1089//
1090// Retrieves your account's AWS CloudFormation limits, such as the maximum number
1091// of stacks that you can create in your account. For more information about
1092// account limits, see AWS CloudFormation Limits (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/cloudformation-limits.html)
1093// in the AWS CloudFormation User Guide.
1094//
1095// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1096// with awserr.Error's Code and Message methods to get detailed information about
1097// the error.
1098//
1099// See the AWS API reference guide for AWS CloudFormation's
1100// API operation DescribeAccountLimits for usage and error information.
1101// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/DescribeAccountLimits
1102func (c *CloudFormation) DescribeAccountLimits(input *DescribeAccountLimitsInput) (*DescribeAccountLimitsOutput, error) {
1103	req, out := c.DescribeAccountLimitsRequest(input)
1104	return out, req.Send()
1105}
1106
1107// DescribeAccountLimitsWithContext is the same as DescribeAccountLimits with the addition of
1108// the ability to pass a context and additional request options.
1109//
1110// See DescribeAccountLimits for details on how to use this API operation.
1111//
1112// The context must be non-nil and will be used for request cancellation. If
1113// the context is nil a panic will occur. In the future the SDK may create
1114// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1115// for more information on using Contexts.
1116func (c *CloudFormation) DescribeAccountLimitsWithContext(ctx aws.Context, input *DescribeAccountLimitsInput, opts ...request.Option) (*DescribeAccountLimitsOutput, error) {
1117	req, out := c.DescribeAccountLimitsRequest(input)
1118	req.SetContext(ctx)
1119	req.ApplyOptions(opts...)
1120	return out, req.Send()
1121}
1122
1123// DescribeAccountLimitsPages iterates over the pages of a DescribeAccountLimits operation,
1124// calling the "fn" function with the response data for each page. To stop
1125// iterating, return false from the fn function.
1126//
1127// See DescribeAccountLimits method for more information on how to use this operation.
1128//
1129// Note: This operation can generate multiple requests to a service.
1130//
1131//    // Example iterating over at most 3 pages of a DescribeAccountLimits operation.
1132//    pageNum := 0
1133//    err := client.DescribeAccountLimitsPages(params,
1134//        func(page *cloudformation.DescribeAccountLimitsOutput, lastPage bool) bool {
1135//            pageNum++
1136//            fmt.Println(page)
1137//            return pageNum <= 3
1138//        })
1139//
1140func (c *CloudFormation) DescribeAccountLimitsPages(input *DescribeAccountLimitsInput, fn func(*DescribeAccountLimitsOutput, bool) bool) error {
1141	return c.DescribeAccountLimitsPagesWithContext(aws.BackgroundContext(), input, fn)
1142}
1143
1144// DescribeAccountLimitsPagesWithContext same as DescribeAccountLimitsPages except
1145// it takes a Context and allows setting request options on the pages.
1146//
1147// The context must be non-nil and will be used for request cancellation. If
1148// the context is nil a panic will occur. In the future the SDK may create
1149// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1150// for more information on using Contexts.
1151func (c *CloudFormation) DescribeAccountLimitsPagesWithContext(ctx aws.Context, input *DescribeAccountLimitsInput, fn func(*DescribeAccountLimitsOutput, bool) bool, opts ...request.Option) error {
1152	p := request.Pagination{
1153		NewRequest: func() (*request.Request, error) {
1154			var inCpy *DescribeAccountLimitsInput
1155			if input != nil {
1156				tmp := *input
1157				inCpy = &tmp
1158			}
1159			req, _ := c.DescribeAccountLimitsRequest(inCpy)
1160			req.SetContext(ctx)
1161			req.ApplyOptions(opts...)
1162			return req, nil
1163		},
1164	}
1165
1166	for p.Next() {
1167		if !fn(p.Page().(*DescribeAccountLimitsOutput), !p.HasNextPage()) {
1168			break
1169		}
1170	}
1171
1172	return p.Err()
1173}
1174
1175const opDescribeChangeSet = "DescribeChangeSet"
1176
1177// DescribeChangeSetRequest generates a "aws/request.Request" representing the
1178// client's request for the DescribeChangeSet operation. The "output" return
1179// value will be populated with the request's response once the request completes
1180// successfully.
1181//
1182// Use "Send" method on the returned Request to send the API call to the service.
1183// the "output" return value is not valid until after Send returns without error.
1184//
1185// See DescribeChangeSet for more information on using the DescribeChangeSet
1186// API call, and error handling.
1187//
1188// This method is useful when you want to inject custom logic or configuration
1189// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1190//
1191//
1192//    // Example sending a request using the DescribeChangeSetRequest method.
1193//    req, resp := client.DescribeChangeSetRequest(params)
1194//
1195//    err := req.Send()
1196//    if err == nil { // resp is now filled
1197//        fmt.Println(resp)
1198//    }
1199//
1200// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/DescribeChangeSet
1201func (c *CloudFormation) DescribeChangeSetRequest(input *DescribeChangeSetInput) (req *request.Request, output *DescribeChangeSetOutput) {
1202	op := &request.Operation{
1203		Name:       opDescribeChangeSet,
1204		HTTPMethod: "POST",
1205		HTTPPath:   "/",
1206	}
1207
1208	if input == nil {
1209		input = &DescribeChangeSetInput{}
1210	}
1211
1212	output = &DescribeChangeSetOutput{}
1213	req = c.newRequest(op, input, output)
1214	return
1215}
1216
1217// DescribeChangeSet API operation for AWS CloudFormation.
1218//
1219// Returns the inputs for the change set and a list of changes that AWS CloudFormation
1220// will make if you execute the change set. For more information, see Updating
1221// Stacks Using Change Sets (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-changesets.html)
1222// in the AWS CloudFormation User Guide.
1223//
1224// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1225// with awserr.Error's Code and Message methods to get detailed information about
1226// the error.
1227//
1228// See the AWS API reference guide for AWS CloudFormation's
1229// API operation DescribeChangeSet for usage and error information.
1230//
1231// Returned Error Codes:
1232//   * ErrCodeChangeSetNotFoundException "ChangeSetNotFound"
1233//   The specified change set name or ID doesn't exit. To view valid change sets
1234//   for a stack, use the ListChangeSets action.
1235//
1236// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/DescribeChangeSet
1237func (c *CloudFormation) DescribeChangeSet(input *DescribeChangeSetInput) (*DescribeChangeSetOutput, error) {
1238	req, out := c.DescribeChangeSetRequest(input)
1239	return out, req.Send()
1240}
1241
1242// DescribeChangeSetWithContext is the same as DescribeChangeSet with the addition of
1243// the ability to pass a context and additional request options.
1244//
1245// See DescribeChangeSet for details on how to use this API operation.
1246//
1247// The context must be non-nil and will be used for request cancellation. If
1248// the context is nil a panic will occur. In the future the SDK may create
1249// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1250// for more information on using Contexts.
1251func (c *CloudFormation) DescribeChangeSetWithContext(ctx aws.Context, input *DescribeChangeSetInput, opts ...request.Option) (*DescribeChangeSetOutput, error) {
1252	req, out := c.DescribeChangeSetRequest(input)
1253	req.SetContext(ctx)
1254	req.ApplyOptions(opts...)
1255	return out, req.Send()
1256}
1257
1258const opDescribeStackDriftDetectionStatus = "DescribeStackDriftDetectionStatus"
1259
1260// DescribeStackDriftDetectionStatusRequest generates a "aws/request.Request" representing the
1261// client's request for the DescribeStackDriftDetectionStatus operation. The "output" return
1262// value will be populated with the request's response once the request completes
1263// successfully.
1264//
1265// Use "Send" method on the returned Request to send the API call to the service.
1266// the "output" return value is not valid until after Send returns without error.
1267//
1268// See DescribeStackDriftDetectionStatus for more information on using the DescribeStackDriftDetectionStatus
1269// API call, and error handling.
1270//
1271// This method is useful when you want to inject custom logic or configuration
1272// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1273//
1274//
1275//    // Example sending a request using the DescribeStackDriftDetectionStatusRequest method.
1276//    req, resp := client.DescribeStackDriftDetectionStatusRequest(params)
1277//
1278//    err := req.Send()
1279//    if err == nil { // resp is now filled
1280//        fmt.Println(resp)
1281//    }
1282//
1283// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/DescribeStackDriftDetectionStatus
1284func (c *CloudFormation) DescribeStackDriftDetectionStatusRequest(input *DescribeStackDriftDetectionStatusInput) (req *request.Request, output *DescribeStackDriftDetectionStatusOutput) {
1285	op := &request.Operation{
1286		Name:       opDescribeStackDriftDetectionStatus,
1287		HTTPMethod: "POST",
1288		HTTPPath:   "/",
1289	}
1290
1291	if input == nil {
1292		input = &DescribeStackDriftDetectionStatusInput{}
1293	}
1294
1295	output = &DescribeStackDriftDetectionStatusOutput{}
1296	req = c.newRequest(op, input, output)
1297	return
1298}
1299
1300// DescribeStackDriftDetectionStatus API operation for AWS CloudFormation.
1301//
1302// Returns information about a stack drift detection operation. A stack drift
1303// detection operation detects whether a stack's actual configuration differs,
1304// or has drifted, from it's expected configuration, as defined in the stack
1305// template and any values specified as template parameters. A stack is considered
1306// to have drifted if one or more of its resources have drifted. For more information
1307// on stack and resource drift, see Detecting Unregulated Configuration Changes
1308// to Stacks and Resources (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-stack-drift.html).
1309//
1310// Use DetectStackDrift to initiate a stack drift detection operation. DetectStackDrift
1311// returns a StackDriftDetectionId you can use to monitor the progress of the
1312// operation using DescribeStackDriftDetectionStatus. Once the drift detection
1313// operation has completed, use DescribeStackResourceDrifts to return drift
1314// information about the stack and its resources.
1315//
1316// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1317// with awserr.Error's Code and Message methods to get detailed information about
1318// the error.
1319//
1320// See the AWS API reference guide for AWS CloudFormation's
1321// API operation DescribeStackDriftDetectionStatus for usage and error information.
1322// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/DescribeStackDriftDetectionStatus
1323func (c *CloudFormation) DescribeStackDriftDetectionStatus(input *DescribeStackDriftDetectionStatusInput) (*DescribeStackDriftDetectionStatusOutput, error) {
1324	req, out := c.DescribeStackDriftDetectionStatusRequest(input)
1325	return out, req.Send()
1326}
1327
1328// DescribeStackDriftDetectionStatusWithContext is the same as DescribeStackDriftDetectionStatus with the addition of
1329// the ability to pass a context and additional request options.
1330//
1331// See DescribeStackDriftDetectionStatus for details on how to use this API operation.
1332//
1333// The context must be non-nil and will be used for request cancellation. If
1334// the context is nil a panic will occur. In the future the SDK may create
1335// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1336// for more information on using Contexts.
1337func (c *CloudFormation) DescribeStackDriftDetectionStatusWithContext(ctx aws.Context, input *DescribeStackDriftDetectionStatusInput, opts ...request.Option) (*DescribeStackDriftDetectionStatusOutput, error) {
1338	req, out := c.DescribeStackDriftDetectionStatusRequest(input)
1339	req.SetContext(ctx)
1340	req.ApplyOptions(opts...)
1341	return out, req.Send()
1342}
1343
1344const opDescribeStackEvents = "DescribeStackEvents"
1345
1346// DescribeStackEventsRequest generates a "aws/request.Request" representing the
1347// client's request for the DescribeStackEvents operation. The "output" return
1348// value will be populated with the request's response once the request completes
1349// successfully.
1350//
1351// Use "Send" method on the returned Request to send the API call to the service.
1352// the "output" return value is not valid until after Send returns without error.
1353//
1354// See DescribeStackEvents for more information on using the DescribeStackEvents
1355// API call, and error handling.
1356//
1357// This method is useful when you want to inject custom logic or configuration
1358// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1359//
1360//
1361//    // Example sending a request using the DescribeStackEventsRequest method.
1362//    req, resp := client.DescribeStackEventsRequest(params)
1363//
1364//    err := req.Send()
1365//    if err == nil { // resp is now filled
1366//        fmt.Println(resp)
1367//    }
1368//
1369// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/DescribeStackEvents
1370func (c *CloudFormation) DescribeStackEventsRequest(input *DescribeStackEventsInput) (req *request.Request, output *DescribeStackEventsOutput) {
1371	op := &request.Operation{
1372		Name:       opDescribeStackEvents,
1373		HTTPMethod: "POST",
1374		HTTPPath:   "/",
1375		Paginator: &request.Paginator{
1376			InputTokens:     []string{"NextToken"},
1377			OutputTokens:    []string{"NextToken"},
1378			LimitToken:      "",
1379			TruncationToken: "",
1380		},
1381	}
1382
1383	if input == nil {
1384		input = &DescribeStackEventsInput{}
1385	}
1386
1387	output = &DescribeStackEventsOutput{}
1388	req = c.newRequest(op, input, output)
1389	return
1390}
1391
1392// DescribeStackEvents API operation for AWS CloudFormation.
1393//
1394// Returns all stack related events for a specified stack in reverse chronological
1395// order. For more information about a stack's event history, go to Stacks (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/concept-stack.html)
1396// in the AWS CloudFormation User Guide.
1397//
1398// You can list events for stacks that have failed to create or have been deleted
1399// by specifying the unique stack identifier (stack ID).
1400//
1401// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1402// with awserr.Error's Code and Message methods to get detailed information about
1403// the error.
1404//
1405// See the AWS API reference guide for AWS CloudFormation's
1406// API operation DescribeStackEvents for usage and error information.
1407// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/DescribeStackEvents
1408func (c *CloudFormation) DescribeStackEvents(input *DescribeStackEventsInput) (*DescribeStackEventsOutput, error) {
1409	req, out := c.DescribeStackEventsRequest(input)
1410	return out, req.Send()
1411}
1412
1413// DescribeStackEventsWithContext is the same as DescribeStackEvents with the addition of
1414// the ability to pass a context and additional request options.
1415//
1416// See DescribeStackEvents for details on how to use this API operation.
1417//
1418// The context must be non-nil and will be used for request cancellation. If
1419// the context is nil a panic will occur. In the future the SDK may create
1420// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1421// for more information on using Contexts.
1422func (c *CloudFormation) DescribeStackEventsWithContext(ctx aws.Context, input *DescribeStackEventsInput, opts ...request.Option) (*DescribeStackEventsOutput, error) {
1423	req, out := c.DescribeStackEventsRequest(input)
1424	req.SetContext(ctx)
1425	req.ApplyOptions(opts...)
1426	return out, req.Send()
1427}
1428
1429// DescribeStackEventsPages iterates over the pages of a DescribeStackEvents operation,
1430// calling the "fn" function with the response data for each page. To stop
1431// iterating, return false from the fn function.
1432//
1433// See DescribeStackEvents method for more information on how to use this operation.
1434//
1435// Note: This operation can generate multiple requests to a service.
1436//
1437//    // Example iterating over at most 3 pages of a DescribeStackEvents operation.
1438//    pageNum := 0
1439//    err := client.DescribeStackEventsPages(params,
1440//        func(page *cloudformation.DescribeStackEventsOutput, lastPage bool) bool {
1441//            pageNum++
1442//            fmt.Println(page)
1443//            return pageNum <= 3
1444//        })
1445//
1446func (c *CloudFormation) DescribeStackEventsPages(input *DescribeStackEventsInput, fn func(*DescribeStackEventsOutput, bool) bool) error {
1447	return c.DescribeStackEventsPagesWithContext(aws.BackgroundContext(), input, fn)
1448}
1449
1450// DescribeStackEventsPagesWithContext same as DescribeStackEventsPages except
1451// it takes a Context and allows setting request options on the pages.
1452//
1453// The context must be non-nil and will be used for request cancellation. If
1454// the context is nil a panic will occur. In the future the SDK may create
1455// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1456// for more information on using Contexts.
1457func (c *CloudFormation) DescribeStackEventsPagesWithContext(ctx aws.Context, input *DescribeStackEventsInput, fn func(*DescribeStackEventsOutput, bool) bool, opts ...request.Option) error {
1458	p := request.Pagination{
1459		NewRequest: func() (*request.Request, error) {
1460			var inCpy *DescribeStackEventsInput
1461			if input != nil {
1462				tmp := *input
1463				inCpy = &tmp
1464			}
1465			req, _ := c.DescribeStackEventsRequest(inCpy)
1466			req.SetContext(ctx)
1467			req.ApplyOptions(opts...)
1468			return req, nil
1469		},
1470	}
1471
1472	for p.Next() {
1473		if !fn(p.Page().(*DescribeStackEventsOutput), !p.HasNextPage()) {
1474			break
1475		}
1476	}
1477
1478	return p.Err()
1479}
1480
1481const opDescribeStackInstance = "DescribeStackInstance"
1482
1483// DescribeStackInstanceRequest generates a "aws/request.Request" representing the
1484// client's request for the DescribeStackInstance operation. The "output" return
1485// value will be populated with the request's response once the request completes
1486// successfully.
1487//
1488// Use "Send" method on the returned Request to send the API call to the service.
1489// the "output" return value is not valid until after Send returns without error.
1490//
1491// See DescribeStackInstance for more information on using the DescribeStackInstance
1492// API call, and error handling.
1493//
1494// This method is useful when you want to inject custom logic or configuration
1495// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1496//
1497//
1498//    // Example sending a request using the DescribeStackInstanceRequest method.
1499//    req, resp := client.DescribeStackInstanceRequest(params)
1500//
1501//    err := req.Send()
1502//    if err == nil { // resp is now filled
1503//        fmt.Println(resp)
1504//    }
1505//
1506// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/DescribeStackInstance
1507func (c *CloudFormation) DescribeStackInstanceRequest(input *DescribeStackInstanceInput) (req *request.Request, output *DescribeStackInstanceOutput) {
1508	op := &request.Operation{
1509		Name:       opDescribeStackInstance,
1510		HTTPMethod: "POST",
1511		HTTPPath:   "/",
1512	}
1513
1514	if input == nil {
1515		input = &DescribeStackInstanceInput{}
1516	}
1517
1518	output = &DescribeStackInstanceOutput{}
1519	req = c.newRequest(op, input, output)
1520	return
1521}
1522
1523// DescribeStackInstance API operation for AWS CloudFormation.
1524//
1525// Returns the stack instance that's associated with the specified stack set,
1526// AWS account, and Region.
1527//
1528// For a list of stack instances that are associated with a specific stack set,
1529// use ListStackInstances.
1530//
1531// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1532// with awserr.Error's Code and Message methods to get detailed information about
1533// the error.
1534//
1535// See the AWS API reference guide for AWS CloudFormation's
1536// API operation DescribeStackInstance for usage and error information.
1537//
1538// Returned Error Codes:
1539//   * ErrCodeStackSetNotFoundException "StackSetNotFoundException"
1540//   The specified stack set doesn't exist.
1541//
1542//   * ErrCodeStackInstanceNotFoundException "StackInstanceNotFoundException"
1543//   The specified stack instance doesn't exist.
1544//
1545// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/DescribeStackInstance
1546func (c *CloudFormation) DescribeStackInstance(input *DescribeStackInstanceInput) (*DescribeStackInstanceOutput, error) {
1547	req, out := c.DescribeStackInstanceRequest(input)
1548	return out, req.Send()
1549}
1550
1551// DescribeStackInstanceWithContext is the same as DescribeStackInstance with the addition of
1552// the ability to pass a context and additional request options.
1553//
1554// See DescribeStackInstance for details on how to use this API operation.
1555//
1556// The context must be non-nil and will be used for request cancellation. If
1557// the context is nil a panic will occur. In the future the SDK may create
1558// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1559// for more information on using Contexts.
1560func (c *CloudFormation) DescribeStackInstanceWithContext(ctx aws.Context, input *DescribeStackInstanceInput, opts ...request.Option) (*DescribeStackInstanceOutput, error) {
1561	req, out := c.DescribeStackInstanceRequest(input)
1562	req.SetContext(ctx)
1563	req.ApplyOptions(opts...)
1564	return out, req.Send()
1565}
1566
1567const opDescribeStackResource = "DescribeStackResource"
1568
1569// DescribeStackResourceRequest generates a "aws/request.Request" representing the
1570// client's request for the DescribeStackResource operation. The "output" return
1571// value will be populated with the request's response once the request completes
1572// successfully.
1573//
1574// Use "Send" method on the returned Request to send the API call to the service.
1575// the "output" return value is not valid until after Send returns without error.
1576//
1577// See DescribeStackResource for more information on using the DescribeStackResource
1578// API call, and error handling.
1579//
1580// This method is useful when you want to inject custom logic or configuration
1581// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1582//
1583//
1584//    // Example sending a request using the DescribeStackResourceRequest method.
1585//    req, resp := client.DescribeStackResourceRequest(params)
1586//
1587//    err := req.Send()
1588//    if err == nil { // resp is now filled
1589//        fmt.Println(resp)
1590//    }
1591//
1592// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/DescribeStackResource
1593func (c *CloudFormation) DescribeStackResourceRequest(input *DescribeStackResourceInput) (req *request.Request, output *DescribeStackResourceOutput) {
1594	op := &request.Operation{
1595		Name:       opDescribeStackResource,
1596		HTTPMethod: "POST",
1597		HTTPPath:   "/",
1598	}
1599
1600	if input == nil {
1601		input = &DescribeStackResourceInput{}
1602	}
1603
1604	output = &DescribeStackResourceOutput{}
1605	req = c.newRequest(op, input, output)
1606	return
1607}
1608
1609// DescribeStackResource API operation for AWS CloudFormation.
1610//
1611// Returns a description of the specified resource in the specified stack.
1612//
1613// For deleted stacks, DescribeStackResource returns resource information for
1614// up to 90 days after the stack has been deleted.
1615//
1616// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1617// with awserr.Error's Code and Message methods to get detailed information about
1618// the error.
1619//
1620// See the AWS API reference guide for AWS CloudFormation's
1621// API operation DescribeStackResource for usage and error information.
1622// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/DescribeStackResource
1623func (c *CloudFormation) DescribeStackResource(input *DescribeStackResourceInput) (*DescribeStackResourceOutput, error) {
1624	req, out := c.DescribeStackResourceRequest(input)
1625	return out, req.Send()
1626}
1627
1628// DescribeStackResourceWithContext is the same as DescribeStackResource with the addition of
1629// the ability to pass a context and additional request options.
1630//
1631// See DescribeStackResource for details on how to use this API operation.
1632//
1633// The context must be non-nil and will be used for request cancellation. If
1634// the context is nil a panic will occur. In the future the SDK may create
1635// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1636// for more information on using Contexts.
1637func (c *CloudFormation) DescribeStackResourceWithContext(ctx aws.Context, input *DescribeStackResourceInput, opts ...request.Option) (*DescribeStackResourceOutput, error) {
1638	req, out := c.DescribeStackResourceRequest(input)
1639	req.SetContext(ctx)
1640	req.ApplyOptions(opts...)
1641	return out, req.Send()
1642}
1643
1644const opDescribeStackResourceDrifts = "DescribeStackResourceDrifts"
1645
1646// DescribeStackResourceDriftsRequest generates a "aws/request.Request" representing the
1647// client's request for the DescribeStackResourceDrifts operation. The "output" return
1648// value will be populated with the request's response once the request completes
1649// successfully.
1650//
1651// Use "Send" method on the returned Request to send the API call to the service.
1652// the "output" return value is not valid until after Send returns without error.
1653//
1654// See DescribeStackResourceDrifts for more information on using the DescribeStackResourceDrifts
1655// API call, and error handling.
1656//
1657// This method is useful when you want to inject custom logic or configuration
1658// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1659//
1660//
1661//    // Example sending a request using the DescribeStackResourceDriftsRequest method.
1662//    req, resp := client.DescribeStackResourceDriftsRequest(params)
1663//
1664//    err := req.Send()
1665//    if err == nil { // resp is now filled
1666//        fmt.Println(resp)
1667//    }
1668//
1669// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/DescribeStackResourceDrifts
1670func (c *CloudFormation) DescribeStackResourceDriftsRequest(input *DescribeStackResourceDriftsInput) (req *request.Request, output *DescribeStackResourceDriftsOutput) {
1671	op := &request.Operation{
1672		Name:       opDescribeStackResourceDrifts,
1673		HTTPMethod: "POST",
1674		HTTPPath:   "/",
1675		Paginator: &request.Paginator{
1676			InputTokens:     []string{"NextToken"},
1677			OutputTokens:    []string{"NextToken"},
1678			LimitToken:      "MaxResults",
1679			TruncationToken: "",
1680		},
1681	}
1682
1683	if input == nil {
1684		input = &DescribeStackResourceDriftsInput{}
1685	}
1686
1687	output = &DescribeStackResourceDriftsOutput{}
1688	req = c.newRequest(op, input, output)
1689	return
1690}
1691
1692// DescribeStackResourceDrifts API operation for AWS CloudFormation.
1693//
1694// Returns drift information for the resources that have been checked for drift
1695// in the specified stack. This includes actual and expected configuration values
1696// for resources where AWS CloudFormation detects configuration drift.
1697//
1698// For a given stack, there will be one StackResourceDrift for each stack resource
1699// that has been checked for drift. Resources that have not yet been checked
1700// for drift are not included. Resources that do not currently support drift
1701// detection are not checked, and so not included. For a list of resources that
1702// support drift detection, see Resources that Support Drift Detection (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-stack-drift-resource-list.html).
1703//
1704// Use DetectStackResourceDrift to detect drift on individual resources, or
1705// DetectStackDrift to detect drift on all supported resources for a given stack.
1706//
1707// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1708// with awserr.Error's Code and Message methods to get detailed information about
1709// the error.
1710//
1711// See the AWS API reference guide for AWS CloudFormation's
1712// API operation DescribeStackResourceDrifts for usage and error information.
1713// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/DescribeStackResourceDrifts
1714func (c *CloudFormation) DescribeStackResourceDrifts(input *DescribeStackResourceDriftsInput) (*DescribeStackResourceDriftsOutput, error) {
1715	req, out := c.DescribeStackResourceDriftsRequest(input)
1716	return out, req.Send()
1717}
1718
1719// DescribeStackResourceDriftsWithContext is the same as DescribeStackResourceDrifts with the addition of
1720// the ability to pass a context and additional request options.
1721//
1722// See DescribeStackResourceDrifts for details on how to use this API operation.
1723//
1724// The context must be non-nil and will be used for request cancellation. If
1725// the context is nil a panic will occur. In the future the SDK may create
1726// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1727// for more information on using Contexts.
1728func (c *CloudFormation) DescribeStackResourceDriftsWithContext(ctx aws.Context, input *DescribeStackResourceDriftsInput, opts ...request.Option) (*DescribeStackResourceDriftsOutput, error) {
1729	req, out := c.DescribeStackResourceDriftsRequest(input)
1730	req.SetContext(ctx)
1731	req.ApplyOptions(opts...)
1732	return out, req.Send()
1733}
1734
1735// DescribeStackResourceDriftsPages iterates over the pages of a DescribeStackResourceDrifts operation,
1736// calling the "fn" function with the response data for each page. To stop
1737// iterating, return false from the fn function.
1738//
1739// See DescribeStackResourceDrifts method for more information on how to use this operation.
1740//
1741// Note: This operation can generate multiple requests to a service.
1742//
1743//    // Example iterating over at most 3 pages of a DescribeStackResourceDrifts operation.
1744//    pageNum := 0
1745//    err := client.DescribeStackResourceDriftsPages(params,
1746//        func(page *cloudformation.DescribeStackResourceDriftsOutput, lastPage bool) bool {
1747//            pageNum++
1748//            fmt.Println(page)
1749//            return pageNum <= 3
1750//        })
1751//
1752func (c *CloudFormation) DescribeStackResourceDriftsPages(input *DescribeStackResourceDriftsInput, fn func(*DescribeStackResourceDriftsOutput, bool) bool) error {
1753	return c.DescribeStackResourceDriftsPagesWithContext(aws.BackgroundContext(), input, fn)
1754}
1755
1756// DescribeStackResourceDriftsPagesWithContext same as DescribeStackResourceDriftsPages except
1757// it takes a Context and allows setting request options on the pages.
1758//
1759// The context must be non-nil and will be used for request cancellation. If
1760// the context is nil a panic will occur. In the future the SDK may create
1761// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1762// for more information on using Contexts.
1763func (c *CloudFormation) DescribeStackResourceDriftsPagesWithContext(ctx aws.Context, input *DescribeStackResourceDriftsInput, fn func(*DescribeStackResourceDriftsOutput, bool) bool, opts ...request.Option) error {
1764	p := request.Pagination{
1765		NewRequest: func() (*request.Request, error) {
1766			var inCpy *DescribeStackResourceDriftsInput
1767			if input != nil {
1768				tmp := *input
1769				inCpy = &tmp
1770			}
1771			req, _ := c.DescribeStackResourceDriftsRequest(inCpy)
1772			req.SetContext(ctx)
1773			req.ApplyOptions(opts...)
1774			return req, nil
1775		},
1776	}
1777
1778	for p.Next() {
1779		if !fn(p.Page().(*DescribeStackResourceDriftsOutput), !p.HasNextPage()) {
1780			break
1781		}
1782	}
1783
1784	return p.Err()
1785}
1786
1787const opDescribeStackResources = "DescribeStackResources"
1788
1789// DescribeStackResourcesRequest generates a "aws/request.Request" representing the
1790// client's request for the DescribeStackResources operation. The "output" return
1791// value will be populated with the request's response once the request completes
1792// successfully.
1793//
1794// Use "Send" method on the returned Request to send the API call to the service.
1795// the "output" return value is not valid until after Send returns without error.
1796//
1797// See DescribeStackResources for more information on using the DescribeStackResources
1798// API call, and error handling.
1799//
1800// This method is useful when you want to inject custom logic or configuration
1801// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1802//
1803//
1804//    // Example sending a request using the DescribeStackResourcesRequest method.
1805//    req, resp := client.DescribeStackResourcesRequest(params)
1806//
1807//    err := req.Send()
1808//    if err == nil { // resp is now filled
1809//        fmt.Println(resp)
1810//    }
1811//
1812// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/DescribeStackResources
1813func (c *CloudFormation) DescribeStackResourcesRequest(input *DescribeStackResourcesInput) (req *request.Request, output *DescribeStackResourcesOutput) {
1814	op := &request.Operation{
1815		Name:       opDescribeStackResources,
1816		HTTPMethod: "POST",
1817		HTTPPath:   "/",
1818	}
1819
1820	if input == nil {
1821		input = &DescribeStackResourcesInput{}
1822	}
1823
1824	output = &DescribeStackResourcesOutput{}
1825	req = c.newRequest(op, input, output)
1826	return
1827}
1828
1829// DescribeStackResources API operation for AWS CloudFormation.
1830//
1831// Returns AWS resource descriptions for running and deleted stacks. If StackName
1832// is specified, all the associated resources that are part of the stack are
1833// returned. If PhysicalResourceId is specified, the associated resources of
1834// the stack that the resource belongs to are returned.
1835//
1836// Only the first 100 resources will be returned. If your stack has more resources
1837// than this, you should use ListStackResources instead.
1838//
1839// For deleted stacks, DescribeStackResources returns resource information for
1840// up to 90 days after the stack has been deleted.
1841//
1842// You must specify either StackName or PhysicalResourceId, but not both. In
1843// addition, you can specify LogicalResourceId to filter the returned result.
1844// For more information about resources, the LogicalResourceId and PhysicalResourceId,
1845// go to the AWS CloudFormation User Guide (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/).
1846//
1847// A ValidationError is returned if you specify both StackName and PhysicalResourceId
1848// in the same request.
1849//
1850// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1851// with awserr.Error's Code and Message methods to get detailed information about
1852// the error.
1853//
1854// See the AWS API reference guide for AWS CloudFormation's
1855// API operation DescribeStackResources for usage and error information.
1856// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/DescribeStackResources
1857func (c *CloudFormation) DescribeStackResources(input *DescribeStackResourcesInput) (*DescribeStackResourcesOutput, error) {
1858	req, out := c.DescribeStackResourcesRequest(input)
1859	return out, req.Send()
1860}
1861
1862// DescribeStackResourcesWithContext is the same as DescribeStackResources with the addition of
1863// the ability to pass a context and additional request options.
1864//
1865// See DescribeStackResources for details on how to use this API operation.
1866//
1867// The context must be non-nil and will be used for request cancellation. If
1868// the context is nil a panic will occur. In the future the SDK may create
1869// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1870// for more information on using Contexts.
1871func (c *CloudFormation) DescribeStackResourcesWithContext(ctx aws.Context, input *DescribeStackResourcesInput, opts ...request.Option) (*DescribeStackResourcesOutput, error) {
1872	req, out := c.DescribeStackResourcesRequest(input)
1873	req.SetContext(ctx)
1874	req.ApplyOptions(opts...)
1875	return out, req.Send()
1876}
1877
1878const opDescribeStackSet = "DescribeStackSet"
1879
1880// DescribeStackSetRequest generates a "aws/request.Request" representing the
1881// client's request for the DescribeStackSet operation. The "output" return
1882// value will be populated with the request's response once the request completes
1883// successfully.
1884//
1885// Use "Send" method on the returned Request to send the API call to the service.
1886// the "output" return value is not valid until after Send returns without error.
1887//
1888// See DescribeStackSet for more information on using the DescribeStackSet
1889// API call, and error handling.
1890//
1891// This method is useful when you want to inject custom logic or configuration
1892// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1893//
1894//
1895//    // Example sending a request using the DescribeStackSetRequest method.
1896//    req, resp := client.DescribeStackSetRequest(params)
1897//
1898//    err := req.Send()
1899//    if err == nil { // resp is now filled
1900//        fmt.Println(resp)
1901//    }
1902//
1903// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/DescribeStackSet
1904func (c *CloudFormation) DescribeStackSetRequest(input *DescribeStackSetInput) (req *request.Request, output *DescribeStackSetOutput) {
1905	op := &request.Operation{
1906		Name:       opDescribeStackSet,
1907		HTTPMethod: "POST",
1908		HTTPPath:   "/",
1909	}
1910
1911	if input == nil {
1912		input = &DescribeStackSetInput{}
1913	}
1914
1915	output = &DescribeStackSetOutput{}
1916	req = c.newRequest(op, input, output)
1917	return
1918}
1919
1920// DescribeStackSet API operation for AWS CloudFormation.
1921//
1922// Returns the description of the specified stack set.
1923//
1924// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1925// with awserr.Error's Code and Message methods to get detailed information about
1926// the error.
1927//
1928// See the AWS API reference guide for AWS CloudFormation's
1929// API operation DescribeStackSet for usage and error information.
1930//
1931// Returned Error Codes:
1932//   * ErrCodeStackSetNotFoundException "StackSetNotFoundException"
1933//   The specified stack set doesn't exist.
1934//
1935// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/DescribeStackSet
1936func (c *CloudFormation) DescribeStackSet(input *DescribeStackSetInput) (*DescribeStackSetOutput, error) {
1937	req, out := c.DescribeStackSetRequest(input)
1938	return out, req.Send()
1939}
1940
1941// DescribeStackSetWithContext is the same as DescribeStackSet with the addition of
1942// the ability to pass a context and additional request options.
1943//
1944// See DescribeStackSet for details on how to use this API operation.
1945//
1946// The context must be non-nil and will be used for request cancellation. If
1947// the context is nil a panic will occur. In the future the SDK may create
1948// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1949// for more information on using Contexts.
1950func (c *CloudFormation) DescribeStackSetWithContext(ctx aws.Context, input *DescribeStackSetInput, opts ...request.Option) (*DescribeStackSetOutput, error) {
1951	req, out := c.DescribeStackSetRequest(input)
1952	req.SetContext(ctx)
1953	req.ApplyOptions(opts...)
1954	return out, req.Send()
1955}
1956
1957const opDescribeStackSetOperation = "DescribeStackSetOperation"
1958
1959// DescribeStackSetOperationRequest generates a "aws/request.Request" representing the
1960// client's request for the DescribeStackSetOperation operation. The "output" return
1961// value will be populated with the request's response once the request completes
1962// successfully.
1963//
1964// Use "Send" method on the returned Request to send the API call to the service.
1965// the "output" return value is not valid until after Send returns without error.
1966//
1967// See DescribeStackSetOperation for more information on using the DescribeStackSetOperation
1968// API call, and error handling.
1969//
1970// This method is useful when you want to inject custom logic or configuration
1971// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1972//
1973//
1974//    // Example sending a request using the DescribeStackSetOperationRequest method.
1975//    req, resp := client.DescribeStackSetOperationRequest(params)
1976//
1977//    err := req.Send()
1978//    if err == nil { // resp is now filled
1979//        fmt.Println(resp)
1980//    }
1981//
1982// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/DescribeStackSetOperation
1983func (c *CloudFormation) DescribeStackSetOperationRequest(input *DescribeStackSetOperationInput) (req *request.Request, output *DescribeStackSetOperationOutput) {
1984	op := &request.Operation{
1985		Name:       opDescribeStackSetOperation,
1986		HTTPMethod: "POST",
1987		HTTPPath:   "/",
1988	}
1989
1990	if input == nil {
1991		input = &DescribeStackSetOperationInput{}
1992	}
1993
1994	output = &DescribeStackSetOperationOutput{}
1995	req = c.newRequest(op, input, output)
1996	return
1997}
1998
1999// DescribeStackSetOperation API operation for AWS CloudFormation.
2000//
2001// Returns the description of the specified stack set operation.
2002//
2003// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
2004// with awserr.Error's Code and Message methods to get detailed information about
2005// the error.
2006//
2007// See the AWS API reference guide for AWS CloudFormation's
2008// API operation DescribeStackSetOperation for usage and error information.
2009//
2010// Returned Error Codes:
2011//   * ErrCodeStackSetNotFoundException "StackSetNotFoundException"
2012//   The specified stack set doesn't exist.
2013//
2014//   * ErrCodeOperationNotFoundException "OperationNotFoundException"
2015//   The specified ID refers to an operation that doesn't exist.
2016//
2017// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/DescribeStackSetOperation
2018func (c *CloudFormation) DescribeStackSetOperation(input *DescribeStackSetOperationInput) (*DescribeStackSetOperationOutput, error) {
2019	req, out := c.DescribeStackSetOperationRequest(input)
2020	return out, req.Send()
2021}
2022
2023// DescribeStackSetOperationWithContext is the same as DescribeStackSetOperation with the addition of
2024// the ability to pass a context and additional request options.
2025//
2026// See DescribeStackSetOperation for details on how to use this API operation.
2027//
2028// The context must be non-nil and will be used for request cancellation. If
2029// the context is nil a panic will occur. In the future the SDK may create
2030// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2031// for more information on using Contexts.
2032func (c *CloudFormation) DescribeStackSetOperationWithContext(ctx aws.Context, input *DescribeStackSetOperationInput, opts ...request.Option) (*DescribeStackSetOperationOutput, error) {
2033	req, out := c.DescribeStackSetOperationRequest(input)
2034	req.SetContext(ctx)
2035	req.ApplyOptions(opts...)
2036	return out, req.Send()
2037}
2038
2039const opDescribeStacks = "DescribeStacks"
2040
2041// DescribeStacksRequest generates a "aws/request.Request" representing the
2042// client's request for the DescribeStacks operation. The "output" return
2043// value will be populated with the request's response once the request completes
2044// successfully.
2045//
2046// Use "Send" method on the returned Request to send the API call to the service.
2047// the "output" return value is not valid until after Send returns without error.
2048//
2049// See DescribeStacks for more information on using the DescribeStacks
2050// API call, and error handling.
2051//
2052// This method is useful when you want to inject custom logic or configuration
2053// into the SDK's request lifecycle. Such as custom headers, or retry logic.
2054//
2055//
2056//    // Example sending a request using the DescribeStacksRequest method.
2057//    req, resp := client.DescribeStacksRequest(params)
2058//
2059//    err := req.Send()
2060//    if err == nil { // resp is now filled
2061//        fmt.Println(resp)
2062//    }
2063//
2064// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/DescribeStacks
2065func (c *CloudFormation) DescribeStacksRequest(input *DescribeStacksInput) (req *request.Request, output *DescribeStacksOutput) {
2066	op := &request.Operation{
2067		Name:       opDescribeStacks,
2068		HTTPMethod: "POST",
2069		HTTPPath:   "/",
2070		Paginator: &request.Paginator{
2071			InputTokens:     []string{"NextToken"},
2072			OutputTokens:    []string{"NextToken"},
2073			LimitToken:      "",
2074			TruncationToken: "",
2075		},
2076	}
2077
2078	if input == nil {
2079		input = &DescribeStacksInput{}
2080	}
2081
2082	output = &DescribeStacksOutput{}
2083	req = c.newRequest(op, input, output)
2084	return
2085}
2086
2087// DescribeStacks API operation for AWS CloudFormation.
2088//
2089// Returns the description for the specified stack; if no stack name was specified,
2090// then it returns the description for all the stacks created.
2091//
2092// If the stack does not exist, an AmazonCloudFormationException is returned.
2093//
2094// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
2095// with awserr.Error's Code and Message methods to get detailed information about
2096// the error.
2097//
2098// See the AWS API reference guide for AWS CloudFormation's
2099// API operation DescribeStacks for usage and error information.
2100// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/DescribeStacks
2101func (c *CloudFormation) DescribeStacks(input *DescribeStacksInput) (*DescribeStacksOutput, error) {
2102	req, out := c.DescribeStacksRequest(input)
2103	return out, req.Send()
2104}
2105
2106// DescribeStacksWithContext is the same as DescribeStacks with the addition of
2107// the ability to pass a context and additional request options.
2108//
2109// See DescribeStacks for details on how to use this API operation.
2110//
2111// The context must be non-nil and will be used for request cancellation. If
2112// the context is nil a panic will occur. In the future the SDK may create
2113// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2114// for more information on using Contexts.
2115func (c *CloudFormation) DescribeStacksWithContext(ctx aws.Context, input *DescribeStacksInput, opts ...request.Option) (*DescribeStacksOutput, error) {
2116	req, out := c.DescribeStacksRequest(input)
2117	req.SetContext(ctx)
2118	req.ApplyOptions(opts...)
2119	return out, req.Send()
2120}
2121
2122// DescribeStacksPages iterates over the pages of a DescribeStacks operation,
2123// calling the "fn" function with the response data for each page. To stop
2124// iterating, return false from the fn function.
2125//
2126// See DescribeStacks method for more information on how to use this operation.
2127//
2128// Note: This operation can generate multiple requests to a service.
2129//
2130//    // Example iterating over at most 3 pages of a DescribeStacks operation.
2131//    pageNum := 0
2132//    err := client.DescribeStacksPages(params,
2133//        func(page *cloudformation.DescribeStacksOutput, lastPage bool) bool {
2134//            pageNum++
2135//            fmt.Println(page)
2136//            return pageNum <= 3
2137//        })
2138//
2139func (c *CloudFormation) DescribeStacksPages(input *DescribeStacksInput, fn func(*DescribeStacksOutput, bool) bool) error {
2140	return c.DescribeStacksPagesWithContext(aws.BackgroundContext(), input, fn)
2141}
2142
2143// DescribeStacksPagesWithContext same as DescribeStacksPages except
2144// it takes a Context and allows setting request options on the pages.
2145//
2146// The context must be non-nil and will be used for request cancellation. If
2147// the context is nil a panic will occur. In the future the SDK may create
2148// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2149// for more information on using Contexts.
2150func (c *CloudFormation) DescribeStacksPagesWithContext(ctx aws.Context, input *DescribeStacksInput, fn func(*DescribeStacksOutput, bool) bool, opts ...request.Option) error {
2151	p := request.Pagination{
2152		NewRequest: func() (*request.Request, error) {
2153			var inCpy *DescribeStacksInput
2154			if input != nil {
2155				tmp := *input
2156				inCpy = &tmp
2157			}
2158			req, _ := c.DescribeStacksRequest(inCpy)
2159			req.SetContext(ctx)
2160			req.ApplyOptions(opts...)
2161			return req, nil
2162		},
2163	}
2164
2165	for p.Next() {
2166		if !fn(p.Page().(*DescribeStacksOutput), !p.HasNextPage()) {
2167			break
2168		}
2169	}
2170
2171	return p.Err()
2172}
2173
2174const opDescribeType = "DescribeType"
2175
2176// DescribeTypeRequest generates a "aws/request.Request" representing the
2177// client's request for the DescribeType operation. The "output" return
2178// value will be populated with the request's response once the request completes
2179// successfully.
2180//
2181// Use "Send" method on the returned Request to send the API call to the service.
2182// the "output" return value is not valid until after Send returns without error.
2183//
2184// See DescribeType for more information on using the DescribeType
2185// API call, and error handling.
2186//
2187// This method is useful when you want to inject custom logic or configuration
2188// into the SDK's request lifecycle. Such as custom headers, or retry logic.
2189//
2190//
2191//    // Example sending a request using the DescribeTypeRequest method.
2192//    req, resp := client.DescribeTypeRequest(params)
2193//
2194//    err := req.Send()
2195//    if err == nil { // resp is now filled
2196//        fmt.Println(resp)
2197//    }
2198//
2199// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/DescribeType
2200func (c *CloudFormation) DescribeTypeRequest(input *DescribeTypeInput) (req *request.Request, output *DescribeTypeOutput) {
2201	op := &request.Operation{
2202		Name:       opDescribeType,
2203		HTTPMethod: "POST",
2204		HTTPPath:   "/",
2205	}
2206
2207	if input == nil {
2208		input = &DescribeTypeInput{}
2209	}
2210
2211	output = &DescribeTypeOutput{}
2212	req = c.newRequest(op, input, output)
2213	return
2214}
2215
2216// DescribeType API operation for AWS CloudFormation.
2217//
2218// Returns detailed information about an extension that has been registered.
2219//
2220// If you specify a VersionId, DescribeType returns information about that specific
2221// extension version. Otherwise, it returns information about the default extension
2222// version.
2223//
2224// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
2225// with awserr.Error's Code and Message methods to get detailed information about
2226// the error.
2227//
2228// See the AWS API reference guide for AWS CloudFormation's
2229// API operation DescribeType for usage and error information.
2230//
2231// Returned Error Codes:
2232//   * ErrCodeCFNRegistryException "CFNRegistryException"
2233//   An error occurred during a CloudFormation registry operation.
2234//
2235//   * ErrCodeTypeNotFoundException "TypeNotFoundException"
2236//   The specified type does not exist in the CloudFormation registry.
2237//
2238// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/DescribeType
2239func (c *CloudFormation) DescribeType(input *DescribeTypeInput) (*DescribeTypeOutput, error) {
2240	req, out := c.DescribeTypeRequest(input)
2241	return out, req.Send()
2242}
2243
2244// DescribeTypeWithContext is the same as DescribeType with the addition of
2245// the ability to pass a context and additional request options.
2246//
2247// See DescribeType for details on how to use this API operation.
2248//
2249// The context must be non-nil and will be used for request cancellation. If
2250// the context is nil a panic will occur. In the future the SDK may create
2251// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2252// for more information on using Contexts.
2253func (c *CloudFormation) DescribeTypeWithContext(ctx aws.Context, input *DescribeTypeInput, opts ...request.Option) (*DescribeTypeOutput, error) {
2254	req, out := c.DescribeTypeRequest(input)
2255	req.SetContext(ctx)
2256	req.ApplyOptions(opts...)
2257	return out, req.Send()
2258}
2259
2260const opDescribeTypeRegistration = "DescribeTypeRegistration"
2261
2262// DescribeTypeRegistrationRequest generates a "aws/request.Request" representing the
2263// client's request for the DescribeTypeRegistration operation. The "output" return
2264// value will be populated with the request's response once the request completes
2265// successfully.
2266//
2267// Use "Send" method on the returned Request to send the API call to the service.
2268// the "output" return value is not valid until after Send returns without error.
2269//
2270// See DescribeTypeRegistration for more information on using the DescribeTypeRegistration
2271// API call, and error handling.
2272//
2273// This method is useful when you want to inject custom logic or configuration
2274// into the SDK's request lifecycle. Such as custom headers, or retry logic.
2275//
2276//
2277//    // Example sending a request using the DescribeTypeRegistrationRequest method.
2278//    req, resp := client.DescribeTypeRegistrationRequest(params)
2279//
2280//    err := req.Send()
2281//    if err == nil { // resp is now filled
2282//        fmt.Println(resp)
2283//    }
2284//
2285// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/DescribeTypeRegistration
2286func (c *CloudFormation) DescribeTypeRegistrationRequest(input *DescribeTypeRegistrationInput) (req *request.Request, output *DescribeTypeRegistrationOutput) {
2287	op := &request.Operation{
2288		Name:       opDescribeTypeRegistration,
2289		HTTPMethod: "POST",
2290		HTTPPath:   "/",
2291	}
2292
2293	if input == nil {
2294		input = &DescribeTypeRegistrationInput{}
2295	}
2296
2297	output = &DescribeTypeRegistrationOutput{}
2298	req = c.newRequest(op, input, output)
2299	return
2300}
2301
2302// DescribeTypeRegistration API operation for AWS CloudFormation.
2303//
2304// Returns information about an extension's registration, including its current
2305// status and type and version identifiers.
2306//
2307// When you initiate a registration request using RegisterType , you can then
2308// use DescribeTypeRegistration to monitor the progress of that registration
2309// request.
2310//
2311// Once the registration request has completed, use DescribeType to return detailed
2312// information about an extension.
2313//
2314// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
2315// with awserr.Error's Code and Message methods to get detailed information about
2316// the error.
2317//
2318// See the AWS API reference guide for AWS CloudFormation's
2319// API operation DescribeTypeRegistration for usage and error information.
2320//
2321// Returned Error Codes:
2322//   * ErrCodeCFNRegistryException "CFNRegistryException"
2323//   An error occurred during a CloudFormation registry operation.
2324//
2325// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/DescribeTypeRegistration
2326func (c *CloudFormation) DescribeTypeRegistration(input *DescribeTypeRegistrationInput) (*DescribeTypeRegistrationOutput, error) {
2327	req, out := c.DescribeTypeRegistrationRequest(input)
2328	return out, req.Send()
2329}
2330
2331// DescribeTypeRegistrationWithContext is the same as DescribeTypeRegistration with the addition of
2332// the ability to pass a context and additional request options.
2333//
2334// See DescribeTypeRegistration for details on how to use this API operation.
2335//
2336// The context must be non-nil and will be used for request cancellation. If
2337// the context is nil a panic will occur. In the future the SDK may create
2338// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2339// for more information on using Contexts.
2340func (c *CloudFormation) DescribeTypeRegistrationWithContext(ctx aws.Context, input *DescribeTypeRegistrationInput, opts ...request.Option) (*DescribeTypeRegistrationOutput, error) {
2341	req, out := c.DescribeTypeRegistrationRequest(input)
2342	req.SetContext(ctx)
2343	req.ApplyOptions(opts...)
2344	return out, req.Send()
2345}
2346
2347const opDetectStackDrift = "DetectStackDrift"
2348
2349// DetectStackDriftRequest generates a "aws/request.Request" representing the
2350// client's request for the DetectStackDrift operation. The "output" return
2351// value will be populated with the request's response once the request completes
2352// successfully.
2353//
2354// Use "Send" method on the returned Request to send the API call to the service.
2355// the "output" return value is not valid until after Send returns without error.
2356//
2357// See DetectStackDrift for more information on using the DetectStackDrift
2358// API call, and error handling.
2359//
2360// This method is useful when you want to inject custom logic or configuration
2361// into the SDK's request lifecycle. Such as custom headers, or retry logic.
2362//
2363//
2364//    // Example sending a request using the DetectStackDriftRequest method.
2365//    req, resp := client.DetectStackDriftRequest(params)
2366//
2367//    err := req.Send()
2368//    if err == nil { // resp is now filled
2369//        fmt.Println(resp)
2370//    }
2371//
2372// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/DetectStackDrift
2373func (c *CloudFormation) DetectStackDriftRequest(input *DetectStackDriftInput) (req *request.Request, output *DetectStackDriftOutput) {
2374	op := &request.Operation{
2375		Name:       opDetectStackDrift,
2376		HTTPMethod: "POST",
2377		HTTPPath:   "/",
2378	}
2379
2380	if input == nil {
2381		input = &DetectStackDriftInput{}
2382	}
2383
2384	output = &DetectStackDriftOutput{}
2385	req = c.newRequest(op, input, output)
2386	return
2387}
2388
2389// DetectStackDrift API operation for AWS CloudFormation.
2390//
2391// Detects whether a stack's actual configuration differs, or has drifted, from
2392// it's expected configuration, as defined in the stack template and any values
2393// specified as template parameters. For each resource in the stack that supports
2394// drift detection, AWS CloudFormation compares the actual configuration of
2395// the resource with its expected template configuration. Only resource properties
2396// explicitly defined in the stack template are checked for drift. A stack is
2397// considered to have drifted if one or more of its resources differ from their
2398// expected template configurations. For more information, see Detecting Unregulated
2399// Configuration Changes to Stacks and Resources (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-stack-drift.html).
2400//
2401// Use DetectStackDrift to detect drift on all supported resources for a given
2402// stack, or DetectStackResourceDrift to detect drift on individual resources.
2403//
2404// For a list of stack resources that currently support drift detection, see
2405// Resources that Support Drift Detection (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-stack-drift-resource-list.html).
2406//
2407// DetectStackDrift can take up to several minutes, depending on the number
2408// of resources contained within the stack. Use DescribeStackDriftDetectionStatus
2409// to monitor the progress of a detect stack drift operation. Once the drift
2410// detection operation has completed, use DescribeStackResourceDrifts to return
2411// drift information about the stack and its resources.
2412//
2413// When detecting drift on a stack, AWS CloudFormation does not detect drift
2414// on any nested stacks belonging to that stack. Perform DetectStackDrift directly
2415// on the nested stack itself.
2416//
2417// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
2418// with awserr.Error's Code and Message methods to get detailed information about
2419// the error.
2420//
2421// See the AWS API reference guide for AWS CloudFormation's
2422// API operation DetectStackDrift for usage and error information.
2423// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/DetectStackDrift
2424func (c *CloudFormation) DetectStackDrift(input *DetectStackDriftInput) (*DetectStackDriftOutput, error) {
2425	req, out := c.DetectStackDriftRequest(input)
2426	return out, req.Send()
2427}
2428
2429// DetectStackDriftWithContext is the same as DetectStackDrift with the addition of
2430// the ability to pass a context and additional request options.
2431//
2432// See DetectStackDrift for details on how to use this API operation.
2433//
2434// The context must be non-nil and will be used for request cancellation. If
2435// the context is nil a panic will occur. In the future the SDK may create
2436// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2437// for more information on using Contexts.
2438func (c *CloudFormation) DetectStackDriftWithContext(ctx aws.Context, input *DetectStackDriftInput, opts ...request.Option) (*DetectStackDriftOutput, error) {
2439	req, out := c.DetectStackDriftRequest(input)
2440	req.SetContext(ctx)
2441	req.ApplyOptions(opts...)
2442	return out, req.Send()
2443}
2444
2445const opDetectStackResourceDrift = "DetectStackResourceDrift"
2446
2447// DetectStackResourceDriftRequest generates a "aws/request.Request" representing the
2448// client's request for the DetectStackResourceDrift operation. The "output" return
2449// value will be populated with the request's response once the request completes
2450// successfully.
2451//
2452// Use "Send" method on the returned Request to send the API call to the service.
2453// the "output" return value is not valid until after Send returns without error.
2454//
2455// See DetectStackResourceDrift for more information on using the DetectStackResourceDrift
2456// API call, and error handling.
2457//
2458// This method is useful when you want to inject custom logic or configuration
2459// into the SDK's request lifecycle. Such as custom headers, or retry logic.
2460//
2461//
2462//    // Example sending a request using the DetectStackResourceDriftRequest method.
2463//    req, resp := client.DetectStackResourceDriftRequest(params)
2464//
2465//    err := req.Send()
2466//    if err == nil { // resp is now filled
2467//        fmt.Println(resp)
2468//    }
2469//
2470// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/DetectStackResourceDrift
2471func (c *CloudFormation) DetectStackResourceDriftRequest(input *DetectStackResourceDriftInput) (req *request.Request, output *DetectStackResourceDriftOutput) {
2472	op := &request.Operation{
2473		Name:       opDetectStackResourceDrift,
2474		HTTPMethod: "POST",
2475		HTTPPath:   "/",
2476	}
2477
2478	if input == nil {
2479		input = &DetectStackResourceDriftInput{}
2480	}
2481
2482	output = &DetectStackResourceDriftOutput{}
2483	req = c.newRequest(op, input, output)
2484	return
2485}
2486
2487// DetectStackResourceDrift API operation for AWS CloudFormation.
2488//
2489// Returns information about whether a resource's actual configuration differs,
2490// or has drifted, from it's expected configuration, as defined in the stack
2491// template and any values specified as template parameters. This information
2492// includes actual and expected property values for resources in which AWS CloudFormation
2493// detects drift. Only resource properties explicitly defined in the stack template
2494// are checked for drift. For more information about stack and resource drift,
2495// see Detecting Unregulated Configuration Changes to Stacks and Resources (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-stack-drift.html).
2496//
2497// Use DetectStackResourceDrift to detect drift on individual resources, or
2498// DetectStackDrift to detect drift on all resources in a given stack that support
2499// drift detection.
2500//
2501// Resources that do not currently support drift detection cannot be checked.
2502// For a list of resources that support drift detection, see Resources that
2503// Support Drift Detection (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-stack-drift-resource-list.html).
2504//
2505// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
2506// with awserr.Error's Code and Message methods to get detailed information about
2507// the error.
2508//
2509// See the AWS API reference guide for AWS CloudFormation's
2510// API operation DetectStackResourceDrift for usage and error information.
2511// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/DetectStackResourceDrift
2512func (c *CloudFormation) DetectStackResourceDrift(input *DetectStackResourceDriftInput) (*DetectStackResourceDriftOutput, error) {
2513	req, out := c.DetectStackResourceDriftRequest(input)
2514	return out, req.Send()
2515}
2516
2517// DetectStackResourceDriftWithContext is the same as DetectStackResourceDrift with the addition of
2518// the ability to pass a context and additional request options.
2519//
2520// See DetectStackResourceDrift for details on how to use this API operation.
2521//
2522// The context must be non-nil and will be used for request cancellation. If
2523// the context is nil a panic will occur. In the future the SDK may create
2524// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2525// for more information on using Contexts.
2526func (c *CloudFormation) DetectStackResourceDriftWithContext(ctx aws.Context, input *DetectStackResourceDriftInput, opts ...request.Option) (*DetectStackResourceDriftOutput, error) {
2527	req, out := c.DetectStackResourceDriftRequest(input)
2528	req.SetContext(ctx)
2529	req.ApplyOptions(opts...)
2530	return out, req.Send()
2531}
2532
2533const opDetectStackSetDrift = "DetectStackSetDrift"
2534
2535// DetectStackSetDriftRequest generates a "aws/request.Request" representing the
2536// client's request for the DetectStackSetDrift operation. The "output" return
2537// value will be populated with the request's response once the request completes
2538// successfully.
2539//
2540// Use "Send" method on the returned Request to send the API call to the service.
2541// the "output" return value is not valid until after Send returns without error.
2542//
2543// See DetectStackSetDrift for more information on using the DetectStackSetDrift
2544// API call, and error handling.
2545//
2546// This method is useful when you want to inject custom logic or configuration
2547// into the SDK's request lifecycle. Such as custom headers, or retry logic.
2548//
2549//
2550//    // Example sending a request using the DetectStackSetDriftRequest method.
2551//    req, resp := client.DetectStackSetDriftRequest(params)
2552//
2553//    err := req.Send()
2554//    if err == nil { // resp is now filled
2555//        fmt.Println(resp)
2556//    }
2557//
2558// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/DetectStackSetDrift
2559func (c *CloudFormation) DetectStackSetDriftRequest(input *DetectStackSetDriftInput) (req *request.Request, output *DetectStackSetDriftOutput) {
2560	op := &request.Operation{
2561		Name:       opDetectStackSetDrift,
2562		HTTPMethod: "POST",
2563		HTTPPath:   "/",
2564	}
2565
2566	if input == nil {
2567		input = &DetectStackSetDriftInput{}
2568	}
2569
2570	output = &DetectStackSetDriftOutput{}
2571	req = c.newRequest(op, input, output)
2572	return
2573}
2574
2575// DetectStackSetDrift API operation for AWS CloudFormation.
2576//
2577// Detect drift on a stack set. When CloudFormation performs drift detection
2578// on a stack set, it performs drift detection on the stack associated with
2579// each stack instance in the stack set. For more information, see How CloudFormation
2580// Performs Drift Detection on a Stack Set (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/stacksets-drift.html).
2581//
2582// DetectStackSetDrift returns the OperationId of the stack set drift detection
2583// operation. Use this operation id with DescribeStackSetOperation to monitor
2584// the progress of the drift detection operation. The drift detection operation
2585// may take some time, depending on the number of stack instances included in
2586// the stack set, as well as the number of resources included in each stack.
2587//
2588// Once the operation has completed, use the following actions to return drift
2589// information:
2590//
2591//    * Use DescribeStackSet to return detailed information about the stack
2592//    set, including detailed information about the last completed drift operation
2593//    performed on the stack set. (Information about drift operations that are
2594//    in progress is not included.)
2595//
2596//    * Use ListStackInstances to return a list of stack instances belonging
2597//    to the stack set, including the drift status and last drift time checked
2598//    of each instance.
2599//
2600//    * Use DescribeStackInstance to return detailed information about a specific
2601//    stack instance, including its drift status and last drift time checked.
2602//
2603// For more information on performing a drift detection operation on a stack
2604// set, see Detecting Unmanaged Changes in Stack Sets (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/stacksets-drift.html).
2605//
2606// You can only run a single drift detection operation on a given stack set
2607// at one time.
2608//
2609// To stop a drift detection stack set operation, use StopStackSetOperation .
2610//
2611// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
2612// with awserr.Error's Code and Message methods to get detailed information about
2613// the error.
2614//
2615// See the AWS API reference guide for AWS CloudFormation's
2616// API operation DetectStackSetDrift for usage and error information.
2617//
2618// Returned Error Codes:
2619//   * ErrCodeInvalidOperationException "InvalidOperationException"
2620//   The specified operation isn't valid.
2621//
2622//   * ErrCodeOperationInProgressException "OperationInProgressException"
2623//   Another operation is currently in progress for this stack set. Only one operation
2624//   can be performed for a stack set at a given time.
2625//
2626//   * ErrCodeStackSetNotFoundException "StackSetNotFoundException"
2627//   The specified stack set doesn't exist.
2628//
2629// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/DetectStackSetDrift
2630func (c *CloudFormation) DetectStackSetDrift(input *DetectStackSetDriftInput) (*DetectStackSetDriftOutput, error) {
2631	req, out := c.DetectStackSetDriftRequest(input)
2632	return out, req.Send()
2633}
2634
2635// DetectStackSetDriftWithContext is the same as DetectStackSetDrift with the addition of
2636// the ability to pass a context and additional request options.
2637//
2638// See DetectStackSetDrift for details on how to use this API operation.
2639//
2640// The context must be non-nil and will be used for request cancellation. If
2641// the context is nil a panic will occur. In the future the SDK may create
2642// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2643// for more information on using Contexts.
2644func (c *CloudFormation) DetectStackSetDriftWithContext(ctx aws.Context, input *DetectStackSetDriftInput, opts ...request.Option) (*DetectStackSetDriftOutput, error) {
2645	req, out := c.DetectStackSetDriftRequest(input)
2646	req.SetContext(ctx)
2647	req.ApplyOptions(opts...)
2648	return out, req.Send()
2649}
2650
2651const opEstimateTemplateCost = "EstimateTemplateCost"
2652
2653// EstimateTemplateCostRequest generates a "aws/request.Request" representing the
2654// client's request for the EstimateTemplateCost operation. The "output" return
2655// value will be populated with the request's response once the request completes
2656// successfully.
2657//
2658// Use "Send" method on the returned Request to send the API call to the service.
2659// the "output" return value is not valid until after Send returns without error.
2660//
2661// See EstimateTemplateCost for more information on using the EstimateTemplateCost
2662// API call, and error handling.
2663//
2664// This method is useful when you want to inject custom logic or configuration
2665// into the SDK's request lifecycle. Such as custom headers, or retry logic.
2666//
2667//
2668//    // Example sending a request using the EstimateTemplateCostRequest method.
2669//    req, resp := client.EstimateTemplateCostRequest(params)
2670//
2671//    err := req.Send()
2672//    if err == nil { // resp is now filled
2673//        fmt.Println(resp)
2674//    }
2675//
2676// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/EstimateTemplateCost
2677func (c *CloudFormation) EstimateTemplateCostRequest(input *EstimateTemplateCostInput) (req *request.Request, output *EstimateTemplateCostOutput) {
2678	op := &request.Operation{
2679		Name:       opEstimateTemplateCost,
2680		HTTPMethod: "POST",
2681		HTTPPath:   "/",
2682	}
2683
2684	if input == nil {
2685		input = &EstimateTemplateCostInput{}
2686	}
2687
2688	output = &EstimateTemplateCostOutput{}
2689	req = c.newRequest(op, input, output)
2690	return
2691}
2692
2693// EstimateTemplateCost API operation for AWS CloudFormation.
2694//
2695// Returns the estimated monthly cost of a template. The return value is an
2696// AWS Simple Monthly Calculator URL with a query string that describes the
2697// resources required to run the template.
2698//
2699// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
2700// with awserr.Error's Code and Message methods to get detailed information about
2701// the error.
2702//
2703// See the AWS API reference guide for AWS CloudFormation's
2704// API operation EstimateTemplateCost for usage and error information.
2705// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/EstimateTemplateCost
2706func (c *CloudFormation) EstimateTemplateCost(input *EstimateTemplateCostInput) (*EstimateTemplateCostOutput, error) {
2707	req, out := c.EstimateTemplateCostRequest(input)
2708	return out, req.Send()
2709}
2710
2711// EstimateTemplateCostWithContext is the same as EstimateTemplateCost with the addition of
2712// the ability to pass a context and additional request options.
2713//
2714// See EstimateTemplateCost for details on how to use this API operation.
2715//
2716// The context must be non-nil and will be used for request cancellation. If
2717// the context is nil a panic will occur. In the future the SDK may create
2718// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2719// for more information on using Contexts.
2720func (c *CloudFormation) EstimateTemplateCostWithContext(ctx aws.Context, input *EstimateTemplateCostInput, opts ...request.Option) (*EstimateTemplateCostOutput, error) {
2721	req, out := c.EstimateTemplateCostRequest(input)
2722	req.SetContext(ctx)
2723	req.ApplyOptions(opts...)
2724	return out, req.Send()
2725}
2726
2727const opExecuteChangeSet = "ExecuteChangeSet"
2728
2729// ExecuteChangeSetRequest generates a "aws/request.Request" representing the
2730// client's request for the ExecuteChangeSet operation. The "output" return
2731// value will be populated with the request's response once the request completes
2732// successfully.
2733//
2734// Use "Send" method on the returned Request to send the API call to the service.
2735// the "output" return value is not valid until after Send returns without error.
2736//
2737// See ExecuteChangeSet for more information on using the ExecuteChangeSet
2738// API call, and error handling.
2739//
2740// This method is useful when you want to inject custom logic or configuration
2741// into the SDK's request lifecycle. Such as custom headers, or retry logic.
2742//
2743//
2744//    // Example sending a request using the ExecuteChangeSetRequest method.
2745//    req, resp := client.ExecuteChangeSetRequest(params)
2746//
2747//    err := req.Send()
2748//    if err == nil { // resp is now filled
2749//        fmt.Println(resp)
2750//    }
2751//
2752// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/ExecuteChangeSet
2753func (c *CloudFormation) ExecuteChangeSetRequest(input *ExecuteChangeSetInput) (req *request.Request, output *ExecuteChangeSetOutput) {
2754	op := &request.Operation{
2755		Name:       opExecuteChangeSet,
2756		HTTPMethod: "POST",
2757		HTTPPath:   "/",
2758	}
2759
2760	if input == nil {
2761		input = &ExecuteChangeSetInput{}
2762	}
2763
2764	output = &ExecuteChangeSetOutput{}
2765	req = c.newRequest(op, input, output)
2766	req.Handlers.Unmarshal.Swap(query.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
2767	return
2768}
2769
2770// ExecuteChangeSet API operation for AWS CloudFormation.
2771//
2772// Updates a stack using the input information that was provided when the specified
2773// change set was created. After the call successfully completes, AWS CloudFormation
2774// starts updating the stack. Use the DescribeStacks action to view the status
2775// of the update.
2776//
2777// When you execute a change set, AWS CloudFormation deletes all other change
2778// sets associated with the stack because they aren't valid for the updated
2779// stack.
2780//
2781// If a stack policy is associated with the stack, AWS CloudFormation enforces
2782// the policy during the update. You can't specify a temporary stack policy
2783// that overrides the current policy.
2784//
2785// To create a change set for the entire stack hierachy, IncludeNestedStacks
2786// must have been set to True.
2787//
2788// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
2789// with awserr.Error's Code and Message methods to get detailed information about
2790// the error.
2791//
2792// See the AWS API reference guide for AWS CloudFormation's
2793// API operation ExecuteChangeSet for usage and error information.
2794//
2795// Returned Error Codes:
2796//   * ErrCodeInvalidChangeSetStatusException "InvalidChangeSetStatus"
2797//   The specified change set can't be used to update the stack. For example,
2798//   the change set status might be CREATE_IN_PROGRESS, or the stack status might
2799//   be UPDATE_IN_PROGRESS.
2800//
2801//   * ErrCodeChangeSetNotFoundException "ChangeSetNotFound"
2802//   The specified change set name or ID doesn't exit. To view valid change sets
2803//   for a stack, use the ListChangeSets action.
2804//
2805//   * ErrCodeInsufficientCapabilitiesException "InsufficientCapabilitiesException"
2806//   The template contains resources with capabilities that weren't specified
2807//   in the Capabilities parameter.
2808//
2809//   * ErrCodeTokenAlreadyExistsException "TokenAlreadyExistsException"
2810//   A client request token already exists.
2811//
2812// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/ExecuteChangeSet
2813func (c *CloudFormation) ExecuteChangeSet(input *ExecuteChangeSetInput) (*ExecuteChangeSetOutput, error) {
2814	req, out := c.ExecuteChangeSetRequest(input)
2815	return out, req.Send()
2816}
2817
2818// ExecuteChangeSetWithContext is the same as ExecuteChangeSet with the addition of
2819// the ability to pass a context and additional request options.
2820//
2821// See ExecuteChangeSet for details on how to use this API operation.
2822//
2823// The context must be non-nil and will be used for request cancellation. If
2824// the context is nil a panic will occur. In the future the SDK may create
2825// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2826// for more information on using Contexts.
2827func (c *CloudFormation) ExecuteChangeSetWithContext(ctx aws.Context, input *ExecuteChangeSetInput, opts ...request.Option) (*ExecuteChangeSetOutput, error) {
2828	req, out := c.ExecuteChangeSetRequest(input)
2829	req.SetContext(ctx)
2830	req.ApplyOptions(opts...)
2831	return out, req.Send()
2832}
2833
2834const opGetStackPolicy = "GetStackPolicy"
2835
2836// GetStackPolicyRequest generates a "aws/request.Request" representing the
2837// client's request for the GetStackPolicy operation. The "output" return
2838// value will be populated with the request's response once the request completes
2839// successfully.
2840//
2841// Use "Send" method on the returned Request to send the API call to the service.
2842// the "output" return value is not valid until after Send returns without error.
2843//
2844// See GetStackPolicy for more information on using the GetStackPolicy
2845// API call, and error handling.
2846//
2847// This method is useful when you want to inject custom logic or configuration
2848// into the SDK's request lifecycle. Such as custom headers, or retry logic.
2849//
2850//
2851//    // Example sending a request using the GetStackPolicyRequest method.
2852//    req, resp := client.GetStackPolicyRequest(params)
2853//
2854//    err := req.Send()
2855//    if err == nil { // resp is now filled
2856//        fmt.Println(resp)
2857//    }
2858//
2859// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/GetStackPolicy
2860func (c *CloudFormation) GetStackPolicyRequest(input *GetStackPolicyInput) (req *request.Request, output *GetStackPolicyOutput) {
2861	op := &request.Operation{
2862		Name:       opGetStackPolicy,
2863		HTTPMethod: "POST",
2864		HTTPPath:   "/",
2865	}
2866
2867	if input == nil {
2868		input = &GetStackPolicyInput{}
2869	}
2870
2871	output = &GetStackPolicyOutput{}
2872	req = c.newRequest(op, input, output)
2873	return
2874}
2875
2876// GetStackPolicy API operation for AWS CloudFormation.
2877//
2878// Returns the stack policy for a specified stack. If a stack doesn't have a
2879// policy, a null value is returned.
2880//
2881// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
2882// with awserr.Error's Code and Message methods to get detailed information about
2883// the error.
2884//
2885// See the AWS API reference guide for AWS CloudFormation's
2886// API operation GetStackPolicy for usage and error information.
2887// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/GetStackPolicy
2888func (c *CloudFormation) GetStackPolicy(input *GetStackPolicyInput) (*GetStackPolicyOutput, error) {
2889	req, out := c.GetStackPolicyRequest(input)
2890	return out, req.Send()
2891}
2892
2893// GetStackPolicyWithContext is the same as GetStackPolicy with the addition of
2894// the ability to pass a context and additional request options.
2895//
2896// See GetStackPolicy for details on how to use this API operation.
2897//
2898// The context must be non-nil and will be used for request cancellation. If
2899// the context is nil a panic will occur. In the future the SDK may create
2900// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2901// for more information on using Contexts.
2902func (c *CloudFormation) GetStackPolicyWithContext(ctx aws.Context, input *GetStackPolicyInput, opts ...request.Option) (*GetStackPolicyOutput, error) {
2903	req, out := c.GetStackPolicyRequest(input)
2904	req.SetContext(ctx)
2905	req.ApplyOptions(opts...)
2906	return out, req.Send()
2907}
2908
2909const opGetTemplate = "GetTemplate"
2910
2911// GetTemplateRequest generates a "aws/request.Request" representing the
2912// client's request for the GetTemplate operation. The "output" return
2913// value will be populated with the request's response once the request completes
2914// successfully.
2915//
2916// Use "Send" method on the returned Request to send the API call to the service.
2917// the "output" return value is not valid until after Send returns without error.
2918//
2919// See GetTemplate for more information on using the GetTemplate
2920// API call, and error handling.
2921//
2922// This method is useful when you want to inject custom logic or configuration
2923// into the SDK's request lifecycle. Such as custom headers, or retry logic.
2924//
2925//
2926//    // Example sending a request using the GetTemplateRequest method.
2927//    req, resp := client.GetTemplateRequest(params)
2928//
2929//    err := req.Send()
2930//    if err == nil { // resp is now filled
2931//        fmt.Println(resp)
2932//    }
2933//
2934// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/GetTemplate
2935func (c *CloudFormation) GetTemplateRequest(input *GetTemplateInput) (req *request.Request, output *GetTemplateOutput) {
2936	op := &request.Operation{
2937		Name:       opGetTemplate,
2938		HTTPMethod: "POST",
2939		HTTPPath:   "/",
2940	}
2941
2942	if input == nil {
2943		input = &GetTemplateInput{}
2944	}
2945
2946	output = &GetTemplateOutput{}
2947	req = c.newRequest(op, input, output)
2948	return
2949}
2950
2951// GetTemplate API operation for AWS CloudFormation.
2952//
2953// Returns the template body for a specified stack. You can get the template
2954// for running or deleted stacks.
2955//
2956// For deleted stacks, GetTemplate returns the template for up to 90 days after
2957// the stack has been deleted.
2958//
2959// If the template does not exist, a ValidationError is returned.
2960//
2961// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
2962// with awserr.Error's Code and Message methods to get detailed information about
2963// the error.
2964//
2965// See the AWS API reference guide for AWS CloudFormation's
2966// API operation GetTemplate for usage and error information.
2967//
2968// Returned Error Codes:
2969//   * ErrCodeChangeSetNotFoundException "ChangeSetNotFound"
2970//   The specified change set name or ID doesn't exit. To view valid change sets
2971//   for a stack, use the ListChangeSets action.
2972//
2973// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/GetTemplate
2974func (c *CloudFormation) GetTemplate(input *GetTemplateInput) (*GetTemplateOutput, error) {
2975	req, out := c.GetTemplateRequest(input)
2976	return out, req.Send()
2977}
2978
2979// GetTemplateWithContext is the same as GetTemplate with the addition of
2980// the ability to pass a context and additional request options.
2981//
2982// See GetTemplate for details on how to use this API operation.
2983//
2984// The context must be non-nil and will be used for request cancellation. If
2985// the context is nil a panic will occur. In the future the SDK may create
2986// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2987// for more information on using Contexts.
2988func (c *CloudFormation) GetTemplateWithContext(ctx aws.Context, input *GetTemplateInput, opts ...request.Option) (*GetTemplateOutput, error) {
2989	req, out := c.GetTemplateRequest(input)
2990	req.SetContext(ctx)
2991	req.ApplyOptions(opts...)
2992	return out, req.Send()
2993}
2994
2995const opGetTemplateSummary = "GetTemplateSummary"
2996
2997// GetTemplateSummaryRequest generates a "aws/request.Request" representing the
2998// client's request for the GetTemplateSummary operation. The "output" return
2999// value will be populated with the request's response once the request completes
3000// successfully.
3001//
3002// Use "Send" method on the returned Request to send the API call to the service.
3003// the "output" return value is not valid until after Send returns without error.
3004//
3005// See GetTemplateSummary for more information on using the GetTemplateSummary
3006// API call, and error handling.
3007//
3008// This method is useful when you want to inject custom logic or configuration
3009// into the SDK's request lifecycle. Such as custom headers, or retry logic.
3010//
3011//
3012//    // Example sending a request using the GetTemplateSummaryRequest method.
3013//    req, resp := client.GetTemplateSummaryRequest(params)
3014//
3015//    err := req.Send()
3016//    if err == nil { // resp is now filled
3017//        fmt.Println(resp)
3018//    }
3019//
3020// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/GetTemplateSummary
3021func (c *CloudFormation) GetTemplateSummaryRequest(input *GetTemplateSummaryInput) (req *request.Request, output *GetTemplateSummaryOutput) {
3022	op := &request.Operation{
3023		Name:       opGetTemplateSummary,
3024		HTTPMethod: "POST",
3025		HTTPPath:   "/",
3026	}
3027
3028	if input == nil {
3029		input = &GetTemplateSummaryInput{}
3030	}
3031
3032	output = &GetTemplateSummaryOutput{}
3033	req = c.newRequest(op, input, output)
3034	return
3035}
3036
3037// GetTemplateSummary API operation for AWS CloudFormation.
3038//
3039// Returns information about a new or existing template. The GetTemplateSummary
3040// action is useful for viewing parameter information, such as default parameter
3041// values and parameter types, before you create or update a stack or stack
3042// set.
3043//
3044// You can use the GetTemplateSummary action when you submit a template, or
3045// you can get template information for a stack set, or a running or deleted
3046// stack.
3047//
3048// For deleted stacks, GetTemplateSummary returns the template information for
3049// up to 90 days after the stack has been deleted. If the template does not
3050// exist, a ValidationError is returned.
3051//
3052// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
3053// with awserr.Error's Code and Message methods to get detailed information about
3054// the error.
3055//
3056// See the AWS API reference guide for AWS CloudFormation's
3057// API operation GetTemplateSummary for usage and error information.
3058//
3059// Returned Error Codes:
3060//   * ErrCodeStackSetNotFoundException "StackSetNotFoundException"
3061//   The specified stack set doesn't exist.
3062//
3063// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/GetTemplateSummary
3064func (c *CloudFormation) GetTemplateSummary(input *GetTemplateSummaryInput) (*GetTemplateSummaryOutput, error) {
3065	req, out := c.GetTemplateSummaryRequest(input)
3066	return out, req.Send()
3067}
3068
3069// GetTemplateSummaryWithContext is the same as GetTemplateSummary with the addition of
3070// the ability to pass a context and additional request options.
3071//
3072// See GetTemplateSummary for details on how to use this API operation.
3073//
3074// The context must be non-nil and will be used for request cancellation. If
3075// the context is nil a panic will occur. In the future the SDK may create
3076// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3077// for more information on using Contexts.
3078func (c *CloudFormation) GetTemplateSummaryWithContext(ctx aws.Context, input *GetTemplateSummaryInput, opts ...request.Option) (*GetTemplateSummaryOutput, error) {
3079	req, out := c.GetTemplateSummaryRequest(input)
3080	req.SetContext(ctx)
3081	req.ApplyOptions(opts...)
3082	return out, req.Send()
3083}
3084
3085const opListChangeSets = "ListChangeSets"
3086
3087// ListChangeSetsRequest generates a "aws/request.Request" representing the
3088// client's request for the ListChangeSets operation. The "output" return
3089// value will be populated with the request's response once the request completes
3090// successfully.
3091//
3092// Use "Send" method on the returned Request to send the API call to the service.
3093// the "output" return value is not valid until after Send returns without error.
3094//
3095// See ListChangeSets for more information on using the ListChangeSets
3096// API call, and error handling.
3097//
3098// This method is useful when you want to inject custom logic or configuration
3099// into the SDK's request lifecycle. Such as custom headers, or retry logic.
3100//
3101//
3102//    // Example sending a request using the ListChangeSetsRequest method.
3103//    req, resp := client.ListChangeSetsRequest(params)
3104//
3105//    err := req.Send()
3106//    if err == nil { // resp is now filled
3107//        fmt.Println(resp)
3108//    }
3109//
3110// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/ListChangeSets
3111func (c *CloudFormation) ListChangeSetsRequest(input *ListChangeSetsInput) (req *request.Request, output *ListChangeSetsOutput) {
3112	op := &request.Operation{
3113		Name:       opListChangeSets,
3114		HTTPMethod: "POST",
3115		HTTPPath:   "/",
3116		Paginator: &request.Paginator{
3117			InputTokens:     []string{"NextToken"},
3118			OutputTokens:    []string{"NextToken"},
3119			LimitToken:      "",
3120			TruncationToken: "",
3121		},
3122	}
3123
3124	if input == nil {
3125		input = &ListChangeSetsInput{}
3126	}
3127
3128	output = &ListChangeSetsOutput{}
3129	req = c.newRequest(op, input, output)
3130	return
3131}
3132
3133// ListChangeSets API operation for AWS CloudFormation.
3134//
3135// Returns the ID and status of each active change set for a stack. For example,
3136// AWS CloudFormation lists change sets that are in the CREATE_IN_PROGRESS or
3137// CREATE_PENDING state.
3138//
3139// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
3140// with awserr.Error's Code and Message methods to get detailed information about
3141// the error.
3142//
3143// See the AWS API reference guide for AWS CloudFormation's
3144// API operation ListChangeSets for usage and error information.
3145// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/ListChangeSets
3146func (c *CloudFormation) ListChangeSets(input *ListChangeSetsInput) (*ListChangeSetsOutput, error) {
3147	req, out := c.ListChangeSetsRequest(input)
3148	return out, req.Send()
3149}
3150
3151// ListChangeSetsWithContext is the same as ListChangeSets with the addition of
3152// the ability to pass a context and additional request options.
3153//
3154// See ListChangeSets for details on how to use this API operation.
3155//
3156// The context must be non-nil and will be used for request cancellation. If
3157// the context is nil a panic will occur. In the future the SDK may create
3158// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3159// for more information on using Contexts.
3160func (c *CloudFormation) ListChangeSetsWithContext(ctx aws.Context, input *ListChangeSetsInput, opts ...request.Option) (*ListChangeSetsOutput, error) {
3161	req, out := c.ListChangeSetsRequest(input)
3162	req.SetContext(ctx)
3163	req.ApplyOptions(opts...)
3164	return out, req.Send()
3165}
3166
3167// ListChangeSetsPages iterates over the pages of a ListChangeSets operation,
3168// calling the "fn" function with the response data for each page. To stop
3169// iterating, return false from the fn function.
3170//
3171// See ListChangeSets method for more information on how to use this operation.
3172//
3173// Note: This operation can generate multiple requests to a service.
3174//
3175//    // Example iterating over at most 3 pages of a ListChangeSets operation.
3176//    pageNum := 0
3177//    err := client.ListChangeSetsPages(params,
3178//        func(page *cloudformation.ListChangeSetsOutput, lastPage bool) bool {
3179//            pageNum++
3180//            fmt.Println(page)
3181//            return pageNum <= 3
3182//        })
3183//
3184func (c *CloudFormation) ListChangeSetsPages(input *ListChangeSetsInput, fn func(*ListChangeSetsOutput, bool) bool) error {
3185	return c.ListChangeSetsPagesWithContext(aws.BackgroundContext(), input, fn)
3186}
3187
3188// ListChangeSetsPagesWithContext same as ListChangeSetsPages except
3189// it takes a Context and allows setting request options on the pages.
3190//
3191// The context must be non-nil and will be used for request cancellation. If
3192// the context is nil a panic will occur. In the future the SDK may create
3193// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3194// for more information on using Contexts.
3195func (c *CloudFormation) ListChangeSetsPagesWithContext(ctx aws.Context, input *ListChangeSetsInput, fn func(*ListChangeSetsOutput, bool) bool, opts ...request.Option) error {
3196	p := request.Pagination{
3197		NewRequest: func() (*request.Request, error) {
3198			var inCpy *ListChangeSetsInput
3199			if input != nil {
3200				tmp := *input
3201				inCpy = &tmp
3202			}
3203			req, _ := c.ListChangeSetsRequest(inCpy)
3204			req.SetContext(ctx)
3205			req.ApplyOptions(opts...)
3206			return req, nil
3207		},
3208	}
3209
3210	for p.Next() {
3211		if !fn(p.Page().(*ListChangeSetsOutput), !p.HasNextPage()) {
3212			break
3213		}
3214	}
3215
3216	return p.Err()
3217}
3218
3219const opListExports = "ListExports"
3220
3221// ListExportsRequest generates a "aws/request.Request" representing the
3222// client's request for the ListExports operation. The "output" return
3223// value will be populated with the request's response once the request completes
3224// successfully.
3225//
3226// Use "Send" method on the returned Request to send the API call to the service.
3227// the "output" return value is not valid until after Send returns without error.
3228//
3229// See ListExports for more information on using the ListExports
3230// API call, and error handling.
3231//
3232// This method is useful when you want to inject custom logic or configuration
3233// into the SDK's request lifecycle. Such as custom headers, or retry logic.
3234//
3235//
3236//    // Example sending a request using the ListExportsRequest method.
3237//    req, resp := client.ListExportsRequest(params)
3238//
3239//    err := req.Send()
3240//    if err == nil { // resp is now filled
3241//        fmt.Println(resp)
3242//    }
3243//
3244// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/ListExports
3245func (c *CloudFormation) ListExportsRequest(input *ListExportsInput) (req *request.Request, output *ListExportsOutput) {
3246	op := &request.Operation{
3247		Name:       opListExports,
3248		HTTPMethod: "POST",
3249		HTTPPath:   "/",
3250		Paginator: &request.Paginator{
3251			InputTokens:     []string{"NextToken"},
3252			OutputTokens:    []string{"NextToken"},
3253			LimitToken:      "",
3254			TruncationToken: "",
3255		},
3256	}
3257
3258	if input == nil {
3259		input = &ListExportsInput{}
3260	}
3261
3262	output = &ListExportsOutput{}
3263	req = c.newRequest(op, input, output)
3264	return
3265}
3266
3267// ListExports API operation for AWS CloudFormation.
3268//
3269// Lists all exported output values in the account and Region in which you call
3270// this action. Use this action to see the exported output values that you can
3271// import into other stacks. To import values, use the Fn::ImportValue (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/intrinsic-function-reference-importvalue.html)
3272// function.
3273//
3274// For more information, see AWS CloudFormation Export Stack Output Values (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-stack-exports.html).
3275//
3276// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
3277// with awserr.Error's Code and Message methods to get detailed information about
3278// the error.
3279//
3280// See the AWS API reference guide for AWS CloudFormation's
3281// API operation ListExports for usage and error information.
3282// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/ListExports
3283func (c *CloudFormation) ListExports(input *ListExportsInput) (*ListExportsOutput, error) {
3284	req, out := c.ListExportsRequest(input)
3285	return out, req.Send()
3286}
3287
3288// ListExportsWithContext is the same as ListExports with the addition of
3289// the ability to pass a context and additional request options.
3290//
3291// See ListExports for details on how to use this API operation.
3292//
3293// The context must be non-nil and will be used for request cancellation. If
3294// the context is nil a panic will occur. In the future the SDK may create
3295// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3296// for more information on using Contexts.
3297func (c *CloudFormation) ListExportsWithContext(ctx aws.Context, input *ListExportsInput, opts ...request.Option) (*ListExportsOutput, error) {
3298	req, out := c.ListExportsRequest(input)
3299	req.SetContext(ctx)
3300	req.ApplyOptions(opts...)
3301	return out, req.Send()
3302}
3303
3304// ListExportsPages iterates over the pages of a ListExports operation,
3305// calling the "fn" function with the response data for each page. To stop
3306// iterating, return false from the fn function.
3307//
3308// See ListExports method for more information on how to use this operation.
3309//
3310// Note: This operation can generate multiple requests to a service.
3311//
3312//    // Example iterating over at most 3 pages of a ListExports operation.
3313//    pageNum := 0
3314//    err := client.ListExportsPages(params,
3315//        func(page *cloudformation.ListExportsOutput, lastPage bool) bool {
3316//            pageNum++
3317//            fmt.Println(page)
3318//            return pageNum <= 3
3319//        })
3320//
3321func (c *CloudFormation) ListExportsPages(input *ListExportsInput, fn func(*ListExportsOutput, bool) bool) error {
3322	return c.ListExportsPagesWithContext(aws.BackgroundContext(), input, fn)
3323}
3324
3325// ListExportsPagesWithContext same as ListExportsPages except
3326// it takes a Context and allows setting request options on the pages.
3327//
3328// The context must be non-nil and will be used for request cancellation. If
3329// the context is nil a panic will occur. In the future the SDK may create
3330// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3331// for more information on using Contexts.
3332func (c *CloudFormation) ListExportsPagesWithContext(ctx aws.Context, input *ListExportsInput, fn func(*ListExportsOutput, bool) bool, opts ...request.Option) error {
3333	p := request.Pagination{
3334		NewRequest: func() (*request.Request, error) {
3335			var inCpy *ListExportsInput
3336			if input != nil {
3337				tmp := *input
3338				inCpy = &tmp
3339			}
3340			req, _ := c.ListExportsRequest(inCpy)
3341			req.SetContext(ctx)
3342			req.ApplyOptions(opts...)
3343			return req, nil
3344		},
3345	}
3346
3347	for p.Next() {
3348		if !fn(p.Page().(*ListExportsOutput), !p.HasNextPage()) {
3349			break
3350		}
3351	}
3352
3353	return p.Err()
3354}
3355
3356const opListImports = "ListImports"
3357
3358// ListImportsRequest generates a "aws/request.Request" representing the
3359// client's request for the ListImports operation. The "output" return
3360// value will be populated with the request's response once the request completes
3361// successfully.
3362//
3363// Use "Send" method on the returned Request to send the API call to the service.
3364// the "output" return value is not valid until after Send returns without error.
3365//
3366// See ListImports for more information on using the ListImports
3367// API call, and error handling.
3368//
3369// This method is useful when you want to inject custom logic or configuration
3370// into the SDK's request lifecycle. Such as custom headers, or retry logic.
3371//
3372//
3373//    // Example sending a request using the ListImportsRequest method.
3374//    req, resp := client.ListImportsRequest(params)
3375//
3376//    err := req.Send()
3377//    if err == nil { // resp is now filled
3378//        fmt.Println(resp)
3379//    }
3380//
3381// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/ListImports
3382func (c *CloudFormation) ListImportsRequest(input *ListImportsInput) (req *request.Request, output *ListImportsOutput) {
3383	op := &request.Operation{
3384		Name:       opListImports,
3385		HTTPMethod: "POST",
3386		HTTPPath:   "/",
3387		Paginator: &request.Paginator{
3388			InputTokens:     []string{"NextToken"},
3389			OutputTokens:    []string{"NextToken"},
3390			LimitToken:      "",
3391			TruncationToken: "",
3392		},
3393	}
3394
3395	if input == nil {
3396		input = &ListImportsInput{}
3397	}
3398
3399	output = &ListImportsOutput{}
3400	req = c.newRequest(op, input, output)
3401	return
3402}
3403
3404// ListImports API operation for AWS CloudFormation.
3405//
3406// Lists all stacks that are importing an exported output value. To modify or
3407// remove an exported output value, first use this action to see which stacks
3408// are using it. To see the exported output values in your account, see ListExports.
3409//
3410// For more information about importing an exported output value, see the Fn::ImportValue
3411// (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/intrinsic-function-reference-importvalue.html)
3412// function.
3413//
3414// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
3415// with awserr.Error's Code and Message methods to get detailed information about
3416// the error.
3417//
3418// See the AWS API reference guide for AWS CloudFormation's
3419// API operation ListImports for usage and error information.
3420// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/ListImports
3421func (c *CloudFormation) ListImports(input *ListImportsInput) (*ListImportsOutput, error) {
3422	req, out := c.ListImportsRequest(input)
3423	return out, req.Send()
3424}
3425
3426// ListImportsWithContext is the same as ListImports with the addition of
3427// the ability to pass a context and additional request options.
3428//
3429// See ListImports for details on how to use this API operation.
3430//
3431// The context must be non-nil and will be used for request cancellation. If
3432// the context is nil a panic will occur. In the future the SDK may create
3433// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3434// for more information on using Contexts.
3435func (c *CloudFormation) ListImportsWithContext(ctx aws.Context, input *ListImportsInput, opts ...request.Option) (*ListImportsOutput, error) {
3436	req, out := c.ListImportsRequest(input)
3437	req.SetContext(ctx)
3438	req.ApplyOptions(opts...)
3439	return out, req.Send()
3440}
3441
3442// ListImportsPages iterates over the pages of a ListImports operation,
3443// calling the "fn" function with the response data for each page. To stop
3444// iterating, return false from the fn function.
3445//
3446// See ListImports method for more information on how to use this operation.
3447//
3448// Note: This operation can generate multiple requests to a service.
3449//
3450//    // Example iterating over at most 3 pages of a ListImports operation.
3451//    pageNum := 0
3452//    err := client.ListImportsPages(params,
3453//        func(page *cloudformation.ListImportsOutput, lastPage bool) bool {
3454//            pageNum++
3455//            fmt.Println(page)
3456//            return pageNum <= 3
3457//        })
3458//
3459func (c *CloudFormation) ListImportsPages(input *ListImportsInput, fn func(*ListImportsOutput, bool) bool) error {
3460	return c.ListImportsPagesWithContext(aws.BackgroundContext(), input, fn)
3461}
3462
3463// ListImportsPagesWithContext same as ListImportsPages except
3464// it takes a Context and allows setting request options on the pages.
3465//
3466// The context must be non-nil and will be used for request cancellation. If
3467// the context is nil a panic will occur. In the future the SDK may create
3468// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3469// for more information on using Contexts.
3470func (c *CloudFormation) ListImportsPagesWithContext(ctx aws.Context, input *ListImportsInput, fn func(*ListImportsOutput, bool) bool, opts ...request.Option) error {
3471	p := request.Pagination{
3472		NewRequest: func() (*request.Request, error) {
3473			var inCpy *ListImportsInput
3474			if input != nil {
3475				tmp := *input
3476				inCpy = &tmp
3477			}
3478			req, _ := c.ListImportsRequest(inCpy)
3479			req.SetContext(ctx)
3480			req.ApplyOptions(opts...)
3481			return req, nil
3482		},
3483	}
3484
3485	for p.Next() {
3486		if !fn(p.Page().(*ListImportsOutput), !p.HasNextPage()) {
3487			break
3488		}
3489	}
3490
3491	return p.Err()
3492}
3493
3494const opListStackInstances = "ListStackInstances"
3495
3496// ListStackInstancesRequest generates a "aws/request.Request" representing the
3497// client's request for the ListStackInstances operation. The "output" return
3498// value will be populated with the request's response once the request completes
3499// successfully.
3500//
3501// Use "Send" method on the returned Request to send the API call to the service.
3502// the "output" return value is not valid until after Send returns without error.
3503//
3504// See ListStackInstances for more information on using the ListStackInstances
3505// API call, and error handling.
3506//
3507// This method is useful when you want to inject custom logic or configuration
3508// into the SDK's request lifecycle. Such as custom headers, or retry logic.
3509//
3510//
3511//    // Example sending a request using the ListStackInstancesRequest method.
3512//    req, resp := client.ListStackInstancesRequest(params)
3513//
3514//    err := req.Send()
3515//    if err == nil { // resp is now filled
3516//        fmt.Println(resp)
3517//    }
3518//
3519// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/ListStackInstances
3520func (c *CloudFormation) ListStackInstancesRequest(input *ListStackInstancesInput) (req *request.Request, output *ListStackInstancesOutput) {
3521	op := &request.Operation{
3522		Name:       opListStackInstances,
3523		HTTPMethod: "POST",
3524		HTTPPath:   "/",
3525		Paginator: &request.Paginator{
3526			InputTokens:     []string{"NextToken"},
3527			OutputTokens:    []string{"NextToken"},
3528			LimitToken:      "MaxResults",
3529			TruncationToken: "",
3530		},
3531	}
3532
3533	if input == nil {
3534		input = &ListStackInstancesInput{}
3535	}
3536
3537	output = &ListStackInstancesOutput{}
3538	req = c.newRequest(op, input, output)
3539	return
3540}
3541
3542// ListStackInstances API operation for AWS CloudFormation.
3543//
3544// Returns summary information about stack instances that are associated with
3545// the specified stack set. You can filter for stack instances that are associated
3546// with a specific AWS account name or Region, or that have a specific status.
3547//
3548// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
3549// with awserr.Error's Code and Message methods to get detailed information about
3550// the error.
3551//
3552// See the AWS API reference guide for AWS CloudFormation's
3553// API operation ListStackInstances for usage and error information.
3554//
3555// Returned Error Codes:
3556//   * ErrCodeStackSetNotFoundException "StackSetNotFoundException"
3557//   The specified stack set doesn't exist.
3558//
3559// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/ListStackInstances
3560func (c *CloudFormation) ListStackInstances(input *ListStackInstancesInput) (*ListStackInstancesOutput, error) {
3561	req, out := c.ListStackInstancesRequest(input)
3562	return out, req.Send()
3563}
3564
3565// ListStackInstancesWithContext is the same as ListStackInstances with the addition of
3566// the ability to pass a context and additional request options.
3567//
3568// See ListStackInstances for details on how to use this API operation.
3569//
3570// The context must be non-nil and will be used for request cancellation. If
3571// the context is nil a panic will occur. In the future the SDK may create
3572// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3573// for more information on using Contexts.
3574func (c *CloudFormation) ListStackInstancesWithContext(ctx aws.Context, input *ListStackInstancesInput, opts ...request.Option) (*ListStackInstancesOutput, error) {
3575	req, out := c.ListStackInstancesRequest(input)
3576	req.SetContext(ctx)
3577	req.ApplyOptions(opts...)
3578	return out, req.Send()
3579}
3580
3581// ListStackInstancesPages iterates over the pages of a ListStackInstances operation,
3582// calling the "fn" function with the response data for each page. To stop
3583// iterating, return false from the fn function.
3584//
3585// See ListStackInstances method for more information on how to use this operation.
3586//
3587// Note: This operation can generate multiple requests to a service.
3588//
3589//    // Example iterating over at most 3 pages of a ListStackInstances operation.
3590//    pageNum := 0
3591//    err := client.ListStackInstancesPages(params,
3592//        func(page *cloudformation.ListStackInstancesOutput, lastPage bool) bool {
3593//            pageNum++
3594//            fmt.Println(page)
3595//            return pageNum <= 3
3596//        })
3597//
3598func (c *CloudFormation) ListStackInstancesPages(input *ListStackInstancesInput, fn func(*ListStackInstancesOutput, bool) bool) error {
3599	return c.ListStackInstancesPagesWithContext(aws.BackgroundContext(), input, fn)
3600}
3601
3602// ListStackInstancesPagesWithContext same as ListStackInstancesPages except
3603// it takes a Context and allows setting request options on the pages.
3604//
3605// The context must be non-nil and will be used for request cancellation. If
3606// the context is nil a panic will occur. In the future the SDK may create
3607// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3608// for more information on using Contexts.
3609func (c *CloudFormation) ListStackInstancesPagesWithContext(ctx aws.Context, input *ListStackInstancesInput, fn func(*ListStackInstancesOutput, bool) bool, opts ...request.Option) error {
3610	p := request.Pagination{
3611		NewRequest: func() (*request.Request, error) {
3612			var inCpy *ListStackInstancesInput
3613			if input != nil {
3614				tmp := *input
3615				inCpy = &tmp
3616			}
3617			req, _ := c.ListStackInstancesRequest(inCpy)
3618			req.SetContext(ctx)
3619			req.ApplyOptions(opts...)
3620			return req, nil
3621		},
3622	}
3623
3624	for p.Next() {
3625		if !fn(p.Page().(*ListStackInstancesOutput), !p.HasNextPage()) {
3626			break
3627		}
3628	}
3629
3630	return p.Err()
3631}
3632
3633const opListStackResources = "ListStackResources"
3634
3635// ListStackResourcesRequest generates a "aws/request.Request" representing the
3636// client's request for the ListStackResources operation. The "output" return
3637// value will be populated with the request's response once the request completes
3638// successfully.
3639//
3640// Use "Send" method on the returned Request to send the API call to the service.
3641// the "output" return value is not valid until after Send returns without error.
3642//
3643// See ListStackResources for more information on using the ListStackResources
3644// API call, and error handling.
3645//
3646// This method is useful when you want to inject custom logic or configuration
3647// into the SDK's request lifecycle. Such as custom headers, or retry logic.
3648//
3649//
3650//    // Example sending a request using the ListStackResourcesRequest method.
3651//    req, resp := client.ListStackResourcesRequest(params)
3652//
3653//    err := req.Send()
3654//    if err == nil { // resp is now filled
3655//        fmt.Println(resp)
3656//    }
3657//
3658// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/ListStackResources
3659func (c *CloudFormation) ListStackResourcesRequest(input *ListStackResourcesInput) (req *request.Request, output *ListStackResourcesOutput) {
3660	op := &request.Operation{
3661		Name:       opListStackResources,
3662		HTTPMethod: "POST",
3663		HTTPPath:   "/",
3664		Paginator: &request.Paginator{
3665			InputTokens:     []string{"NextToken"},
3666			OutputTokens:    []string{"NextToken"},
3667			LimitToken:      "",
3668			TruncationToken: "",
3669		},
3670	}
3671
3672	if input == nil {
3673		input = &ListStackResourcesInput{}
3674	}
3675
3676	output = &ListStackResourcesOutput{}
3677	req = c.newRequest(op, input, output)
3678	return
3679}
3680
3681// ListStackResources API operation for AWS CloudFormation.
3682//
3683// Returns descriptions of all resources of the specified stack.
3684//
3685// For deleted stacks, ListStackResources returns resource information for up
3686// to 90 days after the stack has been deleted.
3687//
3688// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
3689// with awserr.Error's Code and Message methods to get detailed information about
3690// the error.
3691//
3692// See the AWS API reference guide for AWS CloudFormation's
3693// API operation ListStackResources for usage and error information.
3694// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/ListStackResources
3695func (c *CloudFormation) ListStackResources(input *ListStackResourcesInput) (*ListStackResourcesOutput, error) {
3696	req, out := c.ListStackResourcesRequest(input)
3697	return out, req.Send()
3698}
3699
3700// ListStackResourcesWithContext is the same as ListStackResources with the addition of
3701// the ability to pass a context and additional request options.
3702//
3703// See ListStackResources for details on how to use this API operation.
3704//
3705// The context must be non-nil and will be used for request cancellation. If
3706// the context is nil a panic will occur. In the future the SDK may create
3707// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3708// for more information on using Contexts.
3709func (c *CloudFormation) ListStackResourcesWithContext(ctx aws.Context, input *ListStackResourcesInput, opts ...request.Option) (*ListStackResourcesOutput, error) {
3710	req, out := c.ListStackResourcesRequest(input)
3711	req.SetContext(ctx)
3712	req.ApplyOptions(opts...)
3713	return out, req.Send()
3714}
3715
3716// ListStackResourcesPages iterates over the pages of a ListStackResources operation,
3717// calling the "fn" function with the response data for each page. To stop
3718// iterating, return false from the fn function.
3719//
3720// See ListStackResources method for more information on how to use this operation.
3721//
3722// Note: This operation can generate multiple requests to a service.
3723//
3724//    // Example iterating over at most 3 pages of a ListStackResources operation.
3725//    pageNum := 0
3726//    err := client.ListStackResourcesPages(params,
3727//        func(page *cloudformation.ListStackResourcesOutput, lastPage bool) bool {
3728//            pageNum++
3729//            fmt.Println(page)
3730//            return pageNum <= 3
3731//        })
3732//
3733func (c *CloudFormation) ListStackResourcesPages(input *ListStackResourcesInput, fn func(*ListStackResourcesOutput, bool) bool) error {
3734	return c.ListStackResourcesPagesWithContext(aws.BackgroundContext(), input, fn)
3735}
3736
3737// ListStackResourcesPagesWithContext same as ListStackResourcesPages except
3738// it takes a Context and allows setting request options on the pages.
3739//
3740// The context must be non-nil and will be used for request cancellation. If
3741// the context is nil a panic will occur. In the future the SDK may create
3742// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3743// for more information on using Contexts.
3744func (c *CloudFormation) ListStackResourcesPagesWithContext(ctx aws.Context, input *ListStackResourcesInput, fn func(*ListStackResourcesOutput, bool) bool, opts ...request.Option) error {
3745	p := request.Pagination{
3746		NewRequest: func() (*request.Request, error) {
3747			var inCpy *ListStackResourcesInput
3748			if input != nil {
3749				tmp := *input
3750				inCpy = &tmp
3751			}
3752			req, _ := c.ListStackResourcesRequest(inCpy)
3753			req.SetContext(ctx)
3754			req.ApplyOptions(opts...)
3755			return req, nil
3756		},
3757	}
3758
3759	for p.Next() {
3760		if !fn(p.Page().(*ListStackResourcesOutput), !p.HasNextPage()) {
3761			break
3762		}
3763	}
3764
3765	return p.Err()
3766}
3767
3768const opListStackSetOperationResults = "ListStackSetOperationResults"
3769
3770// ListStackSetOperationResultsRequest generates a "aws/request.Request" representing the
3771// client's request for the ListStackSetOperationResults operation. The "output" return
3772// value will be populated with the request's response once the request completes
3773// successfully.
3774//
3775// Use "Send" method on the returned Request to send the API call to the service.
3776// the "output" return value is not valid until after Send returns without error.
3777//
3778// See ListStackSetOperationResults for more information on using the ListStackSetOperationResults
3779// API call, and error handling.
3780//
3781// This method is useful when you want to inject custom logic or configuration
3782// into the SDK's request lifecycle. Such as custom headers, or retry logic.
3783//
3784//
3785//    // Example sending a request using the ListStackSetOperationResultsRequest method.
3786//    req, resp := client.ListStackSetOperationResultsRequest(params)
3787//
3788//    err := req.Send()
3789//    if err == nil { // resp is now filled
3790//        fmt.Println(resp)
3791//    }
3792//
3793// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/ListStackSetOperationResults
3794func (c *CloudFormation) ListStackSetOperationResultsRequest(input *ListStackSetOperationResultsInput) (req *request.Request, output *ListStackSetOperationResultsOutput) {
3795	op := &request.Operation{
3796		Name:       opListStackSetOperationResults,
3797		HTTPMethod: "POST",
3798		HTTPPath:   "/",
3799		Paginator: &request.Paginator{
3800			InputTokens:     []string{"NextToken"},
3801			OutputTokens:    []string{"NextToken"},
3802			LimitToken:      "MaxResults",
3803			TruncationToken: "",
3804		},
3805	}
3806
3807	if input == nil {
3808		input = &ListStackSetOperationResultsInput{}
3809	}
3810
3811	output = &ListStackSetOperationResultsOutput{}
3812	req = c.newRequest(op, input, output)
3813	return
3814}
3815
3816// ListStackSetOperationResults API operation for AWS CloudFormation.
3817//
3818// Returns summary information about the results of a stack set operation.
3819//
3820// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
3821// with awserr.Error's Code and Message methods to get detailed information about
3822// the error.
3823//
3824// See the AWS API reference guide for AWS CloudFormation's
3825// API operation ListStackSetOperationResults for usage and error information.
3826//
3827// Returned Error Codes:
3828//   * ErrCodeStackSetNotFoundException "StackSetNotFoundException"
3829//   The specified stack set doesn't exist.
3830//
3831//   * ErrCodeOperationNotFoundException "OperationNotFoundException"
3832//   The specified ID refers to an operation that doesn't exist.
3833//
3834// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/ListStackSetOperationResults
3835func (c *CloudFormation) ListStackSetOperationResults(input *ListStackSetOperationResultsInput) (*ListStackSetOperationResultsOutput, error) {
3836	req, out := c.ListStackSetOperationResultsRequest(input)
3837	return out, req.Send()
3838}
3839
3840// ListStackSetOperationResultsWithContext is the same as ListStackSetOperationResults with the addition of
3841// the ability to pass a context and additional request options.
3842//
3843// See ListStackSetOperationResults for details on how to use this API operation.
3844//
3845// The context must be non-nil and will be used for request cancellation. If
3846// the context is nil a panic will occur. In the future the SDK may create
3847// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3848// for more information on using Contexts.
3849func (c *CloudFormation) ListStackSetOperationResultsWithContext(ctx aws.Context, input *ListStackSetOperationResultsInput, opts ...request.Option) (*ListStackSetOperationResultsOutput, error) {
3850	req, out := c.ListStackSetOperationResultsRequest(input)
3851	req.SetContext(ctx)
3852	req.ApplyOptions(opts...)
3853	return out, req.Send()
3854}
3855
3856// ListStackSetOperationResultsPages iterates over the pages of a ListStackSetOperationResults operation,
3857// calling the "fn" function with the response data for each page. To stop
3858// iterating, return false from the fn function.
3859//
3860// See ListStackSetOperationResults method for more information on how to use this operation.
3861//
3862// Note: This operation can generate multiple requests to a service.
3863//
3864//    // Example iterating over at most 3 pages of a ListStackSetOperationResults operation.
3865//    pageNum := 0
3866//    err := client.ListStackSetOperationResultsPages(params,
3867//        func(page *cloudformation.ListStackSetOperationResultsOutput, lastPage bool) bool {
3868//            pageNum++
3869//            fmt.Println(page)
3870//            return pageNum <= 3
3871//        })
3872//
3873func (c *CloudFormation) ListStackSetOperationResultsPages(input *ListStackSetOperationResultsInput, fn func(*ListStackSetOperationResultsOutput, bool) bool) error {
3874	return c.ListStackSetOperationResultsPagesWithContext(aws.BackgroundContext(), input, fn)
3875}
3876
3877// ListStackSetOperationResultsPagesWithContext same as ListStackSetOperationResultsPages except
3878// it takes a Context and allows setting request options on the pages.
3879//
3880// The context must be non-nil and will be used for request cancellation. If
3881// the context is nil a panic will occur. In the future the SDK may create
3882// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3883// for more information on using Contexts.
3884func (c *CloudFormation) ListStackSetOperationResultsPagesWithContext(ctx aws.Context, input *ListStackSetOperationResultsInput, fn func(*ListStackSetOperationResultsOutput, bool) bool, opts ...request.Option) error {
3885	p := request.Pagination{
3886		NewRequest: func() (*request.Request, error) {
3887			var inCpy *ListStackSetOperationResultsInput
3888			if input != nil {
3889				tmp := *input
3890				inCpy = &tmp
3891			}
3892			req, _ := c.ListStackSetOperationResultsRequest(inCpy)
3893			req.SetContext(ctx)
3894			req.ApplyOptions(opts...)
3895			return req, nil
3896		},
3897	}
3898
3899	for p.Next() {
3900		if !fn(p.Page().(*ListStackSetOperationResultsOutput), !p.HasNextPage()) {
3901			break
3902		}
3903	}
3904
3905	return p.Err()
3906}
3907
3908const opListStackSetOperations = "ListStackSetOperations"
3909
3910// ListStackSetOperationsRequest generates a "aws/request.Request" representing the
3911// client's request for the ListStackSetOperations operation. The "output" return
3912// value will be populated with the request's response once the request completes
3913// successfully.
3914//
3915// Use "Send" method on the returned Request to send the API call to the service.
3916// the "output" return value is not valid until after Send returns without error.
3917//
3918// See ListStackSetOperations for more information on using the ListStackSetOperations
3919// API call, and error handling.
3920//
3921// This method is useful when you want to inject custom logic or configuration
3922// into the SDK's request lifecycle. Such as custom headers, or retry logic.
3923//
3924//
3925//    // Example sending a request using the ListStackSetOperationsRequest method.
3926//    req, resp := client.ListStackSetOperationsRequest(params)
3927//
3928//    err := req.Send()
3929//    if err == nil { // resp is now filled
3930//        fmt.Println(resp)
3931//    }
3932//
3933// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/ListStackSetOperations
3934func (c *CloudFormation) ListStackSetOperationsRequest(input *ListStackSetOperationsInput) (req *request.Request, output *ListStackSetOperationsOutput) {
3935	op := &request.Operation{
3936		Name:       opListStackSetOperations,
3937		HTTPMethod: "POST",
3938		HTTPPath:   "/",
3939		Paginator: &request.Paginator{
3940			InputTokens:     []string{"NextToken"},
3941			OutputTokens:    []string{"NextToken"},
3942			LimitToken:      "MaxResults",
3943			TruncationToken: "",
3944		},
3945	}
3946
3947	if input == nil {
3948		input = &ListStackSetOperationsInput{}
3949	}
3950
3951	output = &ListStackSetOperationsOutput{}
3952	req = c.newRequest(op, input, output)
3953	return
3954}
3955
3956// ListStackSetOperations API operation for AWS CloudFormation.
3957//
3958// Returns summary information about operations performed on a stack set.
3959//
3960// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
3961// with awserr.Error's Code and Message methods to get detailed information about
3962// the error.
3963//
3964// See the AWS API reference guide for AWS CloudFormation's
3965// API operation ListStackSetOperations for usage and error information.
3966//
3967// Returned Error Codes:
3968//   * ErrCodeStackSetNotFoundException "StackSetNotFoundException"
3969//   The specified stack set doesn't exist.
3970//
3971// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/ListStackSetOperations
3972func (c *CloudFormation) ListStackSetOperations(input *ListStackSetOperationsInput) (*ListStackSetOperationsOutput, error) {
3973	req, out := c.ListStackSetOperationsRequest(input)
3974	return out, req.Send()
3975}
3976
3977// ListStackSetOperationsWithContext is the same as ListStackSetOperations with the addition of
3978// the ability to pass a context and additional request options.
3979//
3980// See ListStackSetOperations for details on how to use this API operation.
3981//
3982// The context must be non-nil and will be used for request cancellation. If
3983// the context is nil a panic will occur. In the future the SDK may create
3984// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3985// for more information on using Contexts.
3986func (c *CloudFormation) ListStackSetOperationsWithContext(ctx aws.Context, input *ListStackSetOperationsInput, opts ...request.Option) (*ListStackSetOperationsOutput, error) {
3987	req, out := c.ListStackSetOperationsRequest(input)
3988	req.SetContext(ctx)
3989	req.ApplyOptions(opts...)
3990	return out, req.Send()
3991}
3992
3993// ListStackSetOperationsPages iterates over the pages of a ListStackSetOperations operation,
3994// calling the "fn" function with the response data for each page. To stop
3995// iterating, return false from the fn function.
3996//
3997// See ListStackSetOperations method for more information on how to use this operation.
3998//
3999// Note: This operation can generate multiple requests to a service.
4000//
4001//    // Example iterating over at most 3 pages of a ListStackSetOperations operation.
4002//    pageNum := 0
4003//    err := client.ListStackSetOperationsPages(params,
4004//        func(page *cloudformation.ListStackSetOperationsOutput, lastPage bool) bool {
4005//            pageNum++
4006//            fmt.Println(page)
4007//            return pageNum <= 3
4008//        })
4009//
4010func (c *CloudFormation) ListStackSetOperationsPages(input *ListStackSetOperationsInput, fn func(*ListStackSetOperationsOutput, bool) bool) error {
4011	return c.ListStackSetOperationsPagesWithContext(aws.BackgroundContext(), input, fn)
4012}
4013
4014// ListStackSetOperationsPagesWithContext same as ListStackSetOperationsPages except
4015// it takes a Context and allows setting request options on the pages.
4016//
4017// The context must be non-nil and will be used for request cancellation. If
4018// the context is nil a panic will occur. In the future the SDK may create
4019// sub-contexts for http.Requests. See https://golang.org/pkg/context/
4020// for more information on using Contexts.
4021func (c *CloudFormation) ListStackSetOperationsPagesWithContext(ctx aws.Context, input *ListStackSetOperationsInput, fn func(*ListStackSetOperationsOutput, bool) bool, opts ...request.Option) error {
4022	p := request.Pagination{
4023		NewRequest: func() (*request.Request, error) {
4024			var inCpy *ListStackSetOperationsInput
4025			if input != nil {
4026				tmp := *input
4027				inCpy = &tmp
4028			}
4029			req, _ := c.ListStackSetOperationsRequest(inCpy)
4030			req.SetContext(ctx)
4031			req.ApplyOptions(opts...)
4032			return req, nil
4033		},
4034	}
4035
4036	for p.Next() {
4037		if !fn(p.Page().(*ListStackSetOperationsOutput), !p.HasNextPage()) {
4038			break
4039		}
4040	}
4041
4042	return p.Err()
4043}
4044
4045const opListStackSets = "ListStackSets"
4046
4047// ListStackSetsRequest generates a "aws/request.Request" representing the
4048// client's request for the ListStackSets operation. The "output" return
4049// value will be populated with the request's response once the request completes
4050// successfully.
4051//
4052// Use "Send" method on the returned Request to send the API call to the service.
4053// the "output" return value is not valid until after Send returns without error.
4054//
4055// See ListStackSets for more information on using the ListStackSets
4056// API call, and error handling.
4057//
4058// This method is useful when you want to inject custom logic or configuration
4059// into the SDK's request lifecycle. Such as custom headers, or retry logic.
4060//
4061//
4062//    // Example sending a request using the ListStackSetsRequest method.
4063//    req, resp := client.ListStackSetsRequest(params)
4064//
4065//    err := req.Send()
4066//    if err == nil { // resp is now filled
4067//        fmt.Println(resp)
4068//    }
4069//
4070// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/ListStackSets
4071func (c *CloudFormation) ListStackSetsRequest(input *ListStackSetsInput) (req *request.Request, output *ListStackSetsOutput) {
4072	op := &request.Operation{
4073		Name:       opListStackSets,
4074		HTTPMethod: "POST",
4075		HTTPPath:   "/",
4076		Paginator: &request.Paginator{
4077			InputTokens:     []string{"NextToken"},
4078			OutputTokens:    []string{"NextToken"},
4079			LimitToken:      "MaxResults",
4080			TruncationToken: "",
4081		},
4082	}
4083
4084	if input == nil {
4085		input = &ListStackSetsInput{}
4086	}
4087
4088	output = &ListStackSetsOutput{}
4089	req = c.newRequest(op, input, output)
4090	return
4091}
4092
4093// ListStackSets API operation for AWS CloudFormation.
4094//
4095// Returns summary information about stack sets that are associated with the
4096// user.
4097//
4098//    * [Self-managed permissions] If you set the CallAs parameter to SELF while
4099//    signed in to your AWS account, ListStackSets returns all self-managed
4100//    stack sets in your AWS account.
4101//
4102//    * [Service-managed permissions] If you set the CallAs parameter to SELF
4103//    while signed in to the organization's management account, ListStackSets
4104//    returns all stack sets in the management account.
4105//
4106//    * [Service-managed permissions] If you set the CallAs parameter to DELEGATED_ADMIN
4107//    while signed in to your member account, ListStackSets returns all stack
4108//    sets with service-managed permissions in the management account.
4109//
4110// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
4111// with awserr.Error's Code and Message methods to get detailed information about
4112// the error.
4113//
4114// See the AWS API reference guide for AWS CloudFormation's
4115// API operation ListStackSets for usage and error information.
4116// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/ListStackSets
4117func (c *CloudFormation) ListStackSets(input *ListStackSetsInput) (*ListStackSetsOutput, error) {
4118	req, out := c.ListStackSetsRequest(input)
4119	return out, req.Send()
4120}
4121
4122// ListStackSetsWithContext is the same as ListStackSets with the addition of
4123// the ability to pass a context and additional request options.
4124//
4125// See ListStackSets for details on how to use this API operation.
4126//
4127// The context must be non-nil and will be used for request cancellation. If
4128// the context is nil a panic will occur. In the future the SDK may create
4129// sub-contexts for http.Requests. See https://golang.org/pkg/context/
4130// for more information on using Contexts.
4131func (c *CloudFormation) ListStackSetsWithContext(ctx aws.Context, input *ListStackSetsInput, opts ...request.Option) (*ListStackSetsOutput, error) {
4132	req, out := c.ListStackSetsRequest(input)
4133	req.SetContext(ctx)
4134	req.ApplyOptions(opts...)
4135	return out, req.Send()
4136}
4137
4138// ListStackSetsPages iterates over the pages of a ListStackSets operation,
4139// calling the "fn" function with the response data for each page. To stop
4140// iterating, return false from the fn function.
4141//
4142// See ListStackSets method for more information on how to use this operation.
4143//
4144// Note: This operation can generate multiple requests to a service.
4145//
4146//    // Example iterating over at most 3 pages of a ListStackSets operation.
4147//    pageNum := 0
4148//    err := client.ListStackSetsPages(params,
4149//        func(page *cloudformation.ListStackSetsOutput, lastPage bool) bool {
4150//            pageNum++
4151//            fmt.Println(page)
4152//            return pageNum <= 3
4153//        })
4154//
4155func (c *CloudFormation) ListStackSetsPages(input *ListStackSetsInput, fn func(*ListStackSetsOutput, bool) bool) error {
4156	return c.ListStackSetsPagesWithContext(aws.BackgroundContext(), input, fn)
4157}
4158
4159// ListStackSetsPagesWithContext same as ListStackSetsPages except
4160// it takes a Context and allows setting request options on the pages.
4161//
4162// The context must be non-nil and will be used for request cancellation. If
4163// the context is nil a panic will occur. In the future the SDK may create
4164// sub-contexts for http.Requests. See https://golang.org/pkg/context/
4165// for more information on using Contexts.
4166func (c *CloudFormation) ListStackSetsPagesWithContext(ctx aws.Context, input *ListStackSetsInput, fn func(*ListStackSetsOutput, bool) bool, opts ...request.Option) error {
4167	p := request.Pagination{
4168		NewRequest: func() (*request.Request, error) {
4169			var inCpy *ListStackSetsInput
4170			if input != nil {
4171				tmp := *input
4172				inCpy = &tmp
4173			}
4174			req, _ := c.ListStackSetsRequest(inCpy)
4175			req.SetContext(ctx)
4176			req.ApplyOptions(opts...)
4177			return req, nil
4178		},
4179	}
4180
4181	for p.Next() {
4182		if !fn(p.Page().(*ListStackSetsOutput), !p.HasNextPage()) {
4183			break
4184		}
4185	}
4186
4187	return p.Err()
4188}
4189
4190const opListStacks = "ListStacks"
4191
4192// ListStacksRequest generates a "aws/request.Request" representing the
4193// client's request for the ListStacks operation. The "output" return
4194// value will be populated with the request's response once the request completes
4195// successfully.
4196//
4197// Use "Send" method on the returned Request to send the API call to the service.
4198// the "output" return value is not valid until after Send returns without error.
4199//
4200// See ListStacks for more information on using the ListStacks
4201// API call, and error handling.
4202//
4203// This method is useful when you want to inject custom logic or configuration
4204// into the SDK's request lifecycle. Such as custom headers, or retry logic.
4205//
4206//
4207//    // Example sending a request using the ListStacksRequest method.
4208//    req, resp := client.ListStacksRequest(params)
4209//
4210//    err := req.Send()
4211//    if err == nil { // resp is now filled
4212//        fmt.Println(resp)
4213//    }
4214//
4215// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/ListStacks
4216func (c *CloudFormation) ListStacksRequest(input *ListStacksInput) (req *request.Request, output *ListStacksOutput) {
4217	op := &request.Operation{
4218		Name:       opListStacks,
4219		HTTPMethod: "POST",
4220		HTTPPath:   "/",
4221		Paginator: &request.Paginator{
4222			InputTokens:     []string{"NextToken"},
4223			OutputTokens:    []string{"NextToken"},
4224			LimitToken:      "",
4225			TruncationToken: "",
4226		},
4227	}
4228
4229	if input == nil {
4230		input = &ListStacksInput{}
4231	}
4232
4233	output = &ListStacksOutput{}
4234	req = c.newRequest(op, input, output)
4235	return
4236}
4237
4238// ListStacks API operation for AWS CloudFormation.
4239//
4240// Returns the summary information for stacks whose status matches the specified
4241// StackStatusFilter. Summary information for stacks that have been deleted
4242// is kept for 90 days after the stack is deleted. If no StackStatusFilter is
4243// specified, summary information for all stacks is returned (including existing
4244// stacks and stacks that have been deleted).
4245//
4246// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
4247// with awserr.Error's Code and Message methods to get detailed information about
4248// the error.
4249//
4250// See the AWS API reference guide for AWS CloudFormation's
4251// API operation ListStacks for usage and error information.
4252// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/ListStacks
4253func (c *CloudFormation) ListStacks(input *ListStacksInput) (*ListStacksOutput, error) {
4254	req, out := c.ListStacksRequest(input)
4255	return out, req.Send()
4256}
4257
4258// ListStacksWithContext is the same as ListStacks with the addition of
4259// the ability to pass a context and additional request options.
4260//
4261// See ListStacks for details on how to use this API operation.
4262//
4263// The context must be non-nil and will be used for request cancellation. If
4264// the context is nil a panic will occur. In the future the SDK may create
4265// sub-contexts for http.Requests. See https://golang.org/pkg/context/
4266// for more information on using Contexts.
4267func (c *CloudFormation) ListStacksWithContext(ctx aws.Context, input *ListStacksInput, opts ...request.Option) (*ListStacksOutput, error) {
4268	req, out := c.ListStacksRequest(input)
4269	req.SetContext(ctx)
4270	req.ApplyOptions(opts...)
4271	return out, req.Send()
4272}
4273
4274// ListStacksPages iterates over the pages of a ListStacks operation,
4275// calling the "fn" function with the response data for each page. To stop
4276// iterating, return false from the fn function.
4277//
4278// See ListStacks method for more information on how to use this operation.
4279//
4280// Note: This operation can generate multiple requests to a service.
4281//
4282//    // Example iterating over at most 3 pages of a ListStacks operation.
4283//    pageNum := 0
4284//    err := client.ListStacksPages(params,
4285//        func(page *cloudformation.ListStacksOutput, lastPage bool) bool {
4286//            pageNum++
4287//            fmt.Println(page)
4288//            return pageNum <= 3
4289//        })
4290//
4291func (c *CloudFormation) ListStacksPages(input *ListStacksInput, fn func(*ListStacksOutput, bool) bool) error {
4292	return c.ListStacksPagesWithContext(aws.BackgroundContext(), input, fn)
4293}
4294
4295// ListStacksPagesWithContext same as ListStacksPages except
4296// it takes a Context and allows setting request options on the pages.
4297//
4298// The context must be non-nil and will be used for request cancellation. If
4299// the context is nil a panic will occur. In the future the SDK may create
4300// sub-contexts for http.Requests. See https://golang.org/pkg/context/
4301// for more information on using Contexts.
4302func (c *CloudFormation) ListStacksPagesWithContext(ctx aws.Context, input *ListStacksInput, fn func(*ListStacksOutput, bool) bool, opts ...request.Option) error {
4303	p := request.Pagination{
4304		NewRequest: func() (*request.Request, error) {
4305			var inCpy *ListStacksInput
4306			if input != nil {
4307				tmp := *input
4308				inCpy = &tmp
4309			}
4310			req, _ := c.ListStacksRequest(inCpy)
4311			req.SetContext(ctx)
4312			req.ApplyOptions(opts...)
4313			return req, nil
4314		},
4315	}
4316
4317	for p.Next() {
4318		if !fn(p.Page().(*ListStacksOutput), !p.HasNextPage()) {
4319			break
4320		}
4321	}
4322
4323	return p.Err()
4324}
4325
4326const opListTypeRegistrations = "ListTypeRegistrations"
4327
4328// ListTypeRegistrationsRequest generates a "aws/request.Request" representing the
4329// client's request for the ListTypeRegistrations operation. The "output" return
4330// value will be populated with the request's response once the request completes
4331// successfully.
4332//
4333// Use "Send" method on the returned Request to send the API call to the service.
4334// the "output" return value is not valid until after Send returns without error.
4335//
4336// See ListTypeRegistrations for more information on using the ListTypeRegistrations
4337// API call, and error handling.
4338//
4339// This method is useful when you want to inject custom logic or configuration
4340// into the SDK's request lifecycle. Such as custom headers, or retry logic.
4341//
4342//
4343//    // Example sending a request using the ListTypeRegistrationsRequest method.
4344//    req, resp := client.ListTypeRegistrationsRequest(params)
4345//
4346//    err := req.Send()
4347//    if err == nil { // resp is now filled
4348//        fmt.Println(resp)
4349//    }
4350//
4351// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/ListTypeRegistrations
4352func (c *CloudFormation) ListTypeRegistrationsRequest(input *ListTypeRegistrationsInput) (req *request.Request, output *ListTypeRegistrationsOutput) {
4353	op := &request.Operation{
4354		Name:       opListTypeRegistrations,
4355		HTTPMethod: "POST",
4356		HTTPPath:   "/",
4357		Paginator: &request.Paginator{
4358			InputTokens:     []string{"NextToken"},
4359			OutputTokens:    []string{"NextToken"},
4360			LimitToken:      "MaxResults",
4361			TruncationToken: "",
4362		},
4363	}
4364
4365	if input == nil {
4366		input = &ListTypeRegistrationsInput{}
4367	}
4368
4369	output = &ListTypeRegistrationsOutput{}
4370	req = c.newRequest(op, input, output)
4371	return
4372}
4373
4374// ListTypeRegistrations API operation for AWS CloudFormation.
4375//
4376// Returns a list of registration tokens for the specified extension(s).
4377//
4378// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
4379// with awserr.Error's Code and Message methods to get detailed information about
4380// the error.
4381//
4382// See the AWS API reference guide for AWS CloudFormation's
4383// API operation ListTypeRegistrations for usage and error information.
4384//
4385// Returned Error Codes:
4386//   * ErrCodeCFNRegistryException "CFNRegistryException"
4387//   An error occurred during a CloudFormation registry operation.
4388//
4389// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/ListTypeRegistrations
4390func (c *CloudFormation) ListTypeRegistrations(input *ListTypeRegistrationsInput) (*ListTypeRegistrationsOutput, error) {
4391	req, out := c.ListTypeRegistrationsRequest(input)
4392	return out, req.Send()
4393}
4394
4395// ListTypeRegistrationsWithContext is the same as ListTypeRegistrations with the addition of
4396// the ability to pass a context and additional request options.
4397//
4398// See ListTypeRegistrations for details on how to use this API operation.
4399//
4400// The context must be non-nil and will be used for request cancellation. If
4401// the context is nil a panic will occur. In the future the SDK may create
4402// sub-contexts for http.Requests. See https://golang.org/pkg/context/
4403// for more information on using Contexts.
4404func (c *CloudFormation) ListTypeRegistrationsWithContext(ctx aws.Context, input *ListTypeRegistrationsInput, opts ...request.Option) (*ListTypeRegistrationsOutput, error) {
4405	req, out := c.ListTypeRegistrationsRequest(input)
4406	req.SetContext(ctx)
4407	req.ApplyOptions(opts...)
4408	return out, req.Send()
4409}
4410
4411// ListTypeRegistrationsPages iterates over the pages of a ListTypeRegistrations operation,
4412// calling the "fn" function with the response data for each page. To stop
4413// iterating, return false from the fn function.
4414//
4415// See ListTypeRegistrations method for more information on how to use this operation.
4416//
4417// Note: This operation can generate multiple requests to a service.
4418//
4419//    // Example iterating over at most 3 pages of a ListTypeRegistrations operation.
4420//    pageNum := 0
4421//    err := client.ListTypeRegistrationsPages(params,
4422//        func(page *cloudformation.ListTypeRegistrationsOutput, lastPage bool) bool {
4423//            pageNum++
4424//            fmt.Println(page)
4425//            return pageNum <= 3
4426//        })
4427//
4428func (c *CloudFormation) ListTypeRegistrationsPages(input *ListTypeRegistrationsInput, fn func(*ListTypeRegistrationsOutput, bool) bool) error {
4429	return c.ListTypeRegistrationsPagesWithContext(aws.BackgroundContext(), input, fn)
4430}
4431
4432// ListTypeRegistrationsPagesWithContext same as ListTypeRegistrationsPages except
4433// it takes a Context and allows setting request options on the pages.
4434//
4435// The context must be non-nil and will be used for request cancellation. If
4436// the context is nil a panic will occur. In the future the SDK may create
4437// sub-contexts for http.Requests. See https://golang.org/pkg/context/
4438// for more information on using Contexts.
4439func (c *CloudFormation) ListTypeRegistrationsPagesWithContext(ctx aws.Context, input *ListTypeRegistrationsInput, fn func(*ListTypeRegistrationsOutput, bool) bool, opts ...request.Option) error {
4440	p := request.Pagination{
4441		NewRequest: func() (*request.Request, error) {
4442			var inCpy *ListTypeRegistrationsInput
4443			if input != nil {
4444				tmp := *input
4445				inCpy = &tmp
4446			}
4447			req, _ := c.ListTypeRegistrationsRequest(inCpy)
4448			req.SetContext(ctx)
4449			req.ApplyOptions(opts...)
4450			return req, nil
4451		},
4452	}
4453
4454	for p.Next() {
4455		if !fn(p.Page().(*ListTypeRegistrationsOutput), !p.HasNextPage()) {
4456			break
4457		}
4458	}
4459
4460	return p.Err()
4461}
4462
4463const opListTypeVersions = "ListTypeVersions"
4464
4465// ListTypeVersionsRequest generates a "aws/request.Request" representing the
4466// client's request for the ListTypeVersions operation. The "output" return
4467// value will be populated with the request's response once the request completes
4468// successfully.
4469//
4470// Use "Send" method on the returned Request to send the API call to the service.
4471// the "output" return value is not valid until after Send returns without error.
4472//
4473// See ListTypeVersions for more information on using the ListTypeVersions
4474// API call, and error handling.
4475//
4476// This method is useful when you want to inject custom logic or configuration
4477// into the SDK's request lifecycle. Such as custom headers, or retry logic.
4478//
4479//
4480//    // Example sending a request using the ListTypeVersionsRequest method.
4481//    req, resp := client.ListTypeVersionsRequest(params)
4482//
4483//    err := req.Send()
4484//    if err == nil { // resp is now filled
4485//        fmt.Println(resp)
4486//    }
4487//
4488// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/ListTypeVersions
4489func (c *CloudFormation) ListTypeVersionsRequest(input *ListTypeVersionsInput) (req *request.Request, output *ListTypeVersionsOutput) {
4490	op := &request.Operation{
4491		Name:       opListTypeVersions,
4492		HTTPMethod: "POST",
4493		HTTPPath:   "/",
4494		Paginator: &request.Paginator{
4495			InputTokens:     []string{"NextToken"},
4496			OutputTokens:    []string{"NextToken"},
4497			LimitToken:      "MaxResults",
4498			TruncationToken: "",
4499		},
4500	}
4501
4502	if input == nil {
4503		input = &ListTypeVersionsInput{}
4504	}
4505
4506	output = &ListTypeVersionsOutput{}
4507	req = c.newRequest(op, input, output)
4508	return
4509}
4510
4511// ListTypeVersions API operation for AWS CloudFormation.
4512//
4513// Returns summary information about the versions of an extension.
4514//
4515// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
4516// with awserr.Error's Code and Message methods to get detailed information about
4517// the error.
4518//
4519// See the AWS API reference guide for AWS CloudFormation's
4520// API operation ListTypeVersions for usage and error information.
4521//
4522// Returned Error Codes:
4523//   * ErrCodeCFNRegistryException "CFNRegistryException"
4524//   An error occurred during a CloudFormation registry operation.
4525//
4526// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/ListTypeVersions
4527func (c *CloudFormation) ListTypeVersions(input *ListTypeVersionsInput) (*ListTypeVersionsOutput, error) {
4528	req, out := c.ListTypeVersionsRequest(input)
4529	return out, req.Send()
4530}
4531
4532// ListTypeVersionsWithContext is the same as ListTypeVersions with the addition of
4533// the ability to pass a context and additional request options.
4534//
4535// See ListTypeVersions for details on how to use this API operation.
4536//
4537// The context must be non-nil and will be used for request cancellation. If
4538// the context is nil a panic will occur. In the future the SDK may create
4539// sub-contexts for http.Requests. See https://golang.org/pkg/context/
4540// for more information on using Contexts.
4541func (c *CloudFormation) ListTypeVersionsWithContext(ctx aws.Context, input *ListTypeVersionsInput, opts ...request.Option) (*ListTypeVersionsOutput, error) {
4542	req, out := c.ListTypeVersionsRequest(input)
4543	req.SetContext(ctx)
4544	req.ApplyOptions(opts...)
4545	return out, req.Send()
4546}
4547
4548// ListTypeVersionsPages iterates over the pages of a ListTypeVersions operation,
4549// calling the "fn" function with the response data for each page. To stop
4550// iterating, return false from the fn function.
4551//
4552// See ListTypeVersions method for more information on how to use this operation.
4553//
4554// Note: This operation can generate multiple requests to a service.
4555//
4556//    // Example iterating over at most 3 pages of a ListTypeVersions operation.
4557//    pageNum := 0
4558//    err := client.ListTypeVersionsPages(params,
4559//        func(page *cloudformation.ListTypeVersionsOutput, lastPage bool) bool {
4560//            pageNum++
4561//            fmt.Println(page)
4562//            return pageNum <= 3
4563//        })
4564//
4565func (c *CloudFormation) ListTypeVersionsPages(input *ListTypeVersionsInput, fn func(*ListTypeVersionsOutput, bool) bool) error {
4566	return c.ListTypeVersionsPagesWithContext(aws.BackgroundContext(), input, fn)
4567}
4568
4569// ListTypeVersionsPagesWithContext same as ListTypeVersionsPages except
4570// it takes a Context and allows setting request options on the pages.
4571//
4572// The context must be non-nil and will be used for request cancellation. If
4573// the context is nil a panic will occur. In the future the SDK may create
4574// sub-contexts for http.Requests. See https://golang.org/pkg/context/
4575// for more information on using Contexts.
4576func (c *CloudFormation) ListTypeVersionsPagesWithContext(ctx aws.Context, input *ListTypeVersionsInput, fn func(*ListTypeVersionsOutput, bool) bool, opts ...request.Option) error {
4577	p := request.Pagination{
4578		NewRequest: func() (*request.Request, error) {
4579			var inCpy *ListTypeVersionsInput
4580			if input != nil {
4581				tmp := *input
4582				inCpy = &tmp
4583			}
4584			req, _ := c.ListTypeVersionsRequest(inCpy)
4585			req.SetContext(ctx)
4586			req.ApplyOptions(opts...)
4587			return req, nil
4588		},
4589	}
4590
4591	for p.Next() {
4592		if !fn(p.Page().(*ListTypeVersionsOutput), !p.HasNextPage()) {
4593			break
4594		}
4595	}
4596
4597	return p.Err()
4598}
4599
4600const opListTypes = "ListTypes"
4601
4602// ListTypesRequest generates a "aws/request.Request" representing the
4603// client's request for the ListTypes operation. The "output" return
4604// value will be populated with the request's response once the request completes
4605// successfully.
4606//
4607// Use "Send" method on the returned Request to send the API call to the service.
4608// the "output" return value is not valid until after Send returns without error.
4609//
4610// See ListTypes for more information on using the ListTypes
4611// API call, and error handling.
4612//
4613// This method is useful when you want to inject custom logic or configuration
4614// into the SDK's request lifecycle. Such as custom headers, or retry logic.
4615//
4616//
4617//    // Example sending a request using the ListTypesRequest method.
4618//    req, resp := client.ListTypesRequest(params)
4619//
4620//    err := req.Send()
4621//    if err == nil { // resp is now filled
4622//        fmt.Println(resp)
4623//    }
4624//
4625// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/ListTypes
4626func (c *CloudFormation) ListTypesRequest(input *ListTypesInput) (req *request.Request, output *ListTypesOutput) {
4627	op := &request.Operation{
4628		Name:       opListTypes,
4629		HTTPMethod: "POST",
4630		HTTPPath:   "/",
4631		Paginator: &request.Paginator{
4632			InputTokens:     []string{"NextToken"},
4633			OutputTokens:    []string{"NextToken"},
4634			LimitToken:      "MaxResults",
4635			TruncationToken: "",
4636		},
4637	}
4638
4639	if input == nil {
4640		input = &ListTypesInput{}
4641	}
4642
4643	output = &ListTypesOutput{}
4644	req = c.newRequest(op, input, output)
4645	return
4646}
4647
4648// ListTypes API operation for AWS CloudFormation.
4649//
4650// Returns summary information about extension that have been registered with
4651// CloudFormation.
4652//
4653// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
4654// with awserr.Error's Code and Message methods to get detailed information about
4655// the error.
4656//
4657// See the AWS API reference guide for AWS CloudFormation's
4658// API operation ListTypes for usage and error information.
4659//
4660// Returned Error Codes:
4661//   * ErrCodeCFNRegistryException "CFNRegistryException"
4662//   An error occurred during a CloudFormation registry operation.
4663//
4664// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/ListTypes
4665func (c *CloudFormation) ListTypes(input *ListTypesInput) (*ListTypesOutput, error) {
4666	req, out := c.ListTypesRequest(input)
4667	return out, req.Send()
4668}
4669
4670// ListTypesWithContext is the same as ListTypes with the addition of
4671// the ability to pass a context and additional request options.
4672//
4673// See ListTypes for details on how to use this API operation.
4674//
4675// The context must be non-nil and will be used for request cancellation. If
4676// the context is nil a panic will occur. In the future the SDK may create
4677// sub-contexts for http.Requests. See https://golang.org/pkg/context/
4678// for more information on using Contexts.
4679func (c *CloudFormation) ListTypesWithContext(ctx aws.Context, input *ListTypesInput, opts ...request.Option) (*ListTypesOutput, error) {
4680	req, out := c.ListTypesRequest(input)
4681	req.SetContext(ctx)
4682	req.ApplyOptions(opts...)
4683	return out, req.Send()
4684}
4685
4686// ListTypesPages iterates over the pages of a ListTypes operation,
4687// calling the "fn" function with the response data for each page. To stop
4688// iterating, return false from the fn function.
4689//
4690// See ListTypes method for more information on how to use this operation.
4691//
4692// Note: This operation can generate multiple requests to a service.
4693//
4694//    // Example iterating over at most 3 pages of a ListTypes operation.
4695//    pageNum := 0
4696//    err := client.ListTypesPages(params,
4697//        func(page *cloudformation.ListTypesOutput, lastPage bool) bool {
4698//            pageNum++
4699//            fmt.Println(page)
4700//            return pageNum <= 3
4701//        })
4702//
4703func (c *CloudFormation) ListTypesPages(input *ListTypesInput, fn func(*ListTypesOutput, bool) bool) error {
4704	return c.ListTypesPagesWithContext(aws.BackgroundContext(), input, fn)
4705}
4706
4707// ListTypesPagesWithContext same as ListTypesPages except
4708// it takes a Context and allows setting request options on the pages.
4709//
4710// The context must be non-nil and will be used for request cancellation. If
4711// the context is nil a panic will occur. In the future the SDK may create
4712// sub-contexts for http.Requests. See https://golang.org/pkg/context/
4713// for more information on using Contexts.
4714func (c *CloudFormation) ListTypesPagesWithContext(ctx aws.Context, input *ListTypesInput, fn func(*ListTypesOutput, bool) bool, opts ...request.Option) error {
4715	p := request.Pagination{
4716		NewRequest: func() (*request.Request, error) {
4717			var inCpy *ListTypesInput
4718			if input != nil {
4719				tmp := *input
4720				inCpy = &tmp
4721			}
4722			req, _ := c.ListTypesRequest(inCpy)
4723			req.SetContext(ctx)
4724			req.ApplyOptions(opts...)
4725			return req, nil
4726		},
4727	}
4728
4729	for p.Next() {
4730		if !fn(p.Page().(*ListTypesOutput), !p.HasNextPage()) {
4731			break
4732		}
4733	}
4734
4735	return p.Err()
4736}
4737
4738const opRecordHandlerProgress = "RecordHandlerProgress"
4739
4740// RecordHandlerProgressRequest generates a "aws/request.Request" representing the
4741// client's request for the RecordHandlerProgress operation. The "output" return
4742// value will be populated with the request's response once the request completes
4743// successfully.
4744//
4745// Use "Send" method on the returned Request to send the API call to the service.
4746// the "output" return value is not valid until after Send returns without error.
4747//
4748// See RecordHandlerProgress for more information on using the RecordHandlerProgress
4749// API call, and error handling.
4750//
4751// This method is useful when you want to inject custom logic or configuration
4752// into the SDK's request lifecycle. Such as custom headers, or retry logic.
4753//
4754//
4755//    // Example sending a request using the RecordHandlerProgressRequest method.
4756//    req, resp := client.RecordHandlerProgressRequest(params)
4757//
4758//    err := req.Send()
4759//    if err == nil { // resp is now filled
4760//        fmt.Println(resp)
4761//    }
4762//
4763// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/RecordHandlerProgress
4764func (c *CloudFormation) RecordHandlerProgressRequest(input *RecordHandlerProgressInput) (req *request.Request, output *RecordHandlerProgressOutput) {
4765	op := &request.Operation{
4766		Name:       opRecordHandlerProgress,
4767		HTTPMethod: "POST",
4768		HTTPPath:   "/",
4769	}
4770
4771	if input == nil {
4772		input = &RecordHandlerProgressInput{}
4773	}
4774
4775	output = &RecordHandlerProgressOutput{}
4776	req = c.newRequest(op, input, output)
4777	req.Handlers.Unmarshal.Swap(query.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
4778	return
4779}
4780
4781// RecordHandlerProgress API operation for AWS CloudFormation.
4782//
4783// Reports progress of a resource handler to CloudFormation.
4784//
4785// Reserved for use by the CloudFormation CLI (https://docs.aws.amazon.com/cloudformation-cli/latest/userguide/what-is-cloudformation-cli.html).
4786// Do not use this API in your code.
4787//
4788// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
4789// with awserr.Error's Code and Message methods to get detailed information about
4790// the error.
4791//
4792// See the AWS API reference guide for AWS CloudFormation's
4793// API operation RecordHandlerProgress for usage and error information.
4794//
4795// Returned Error Codes:
4796//   * ErrCodeInvalidStateTransitionException "InvalidStateTransition"
4797//   Error reserved for use by the CloudFormation CLI (https://docs.aws.amazon.com/cloudformation-cli/latest/userguide/what-is-cloudformation-cli.html).
4798//   CloudFormation does not return this error to users.
4799//
4800//   * ErrCodeOperationStatusCheckFailedException "ConditionalCheckFailed"
4801//   Error reserved for use by the CloudFormation CLI (https://docs.aws.amazon.com/cloudformation-cli/latest/userguide/what-is-cloudformation-cli.html).
4802//   CloudFormation does not return this error to users.
4803//
4804// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/RecordHandlerProgress
4805func (c *CloudFormation) RecordHandlerProgress(input *RecordHandlerProgressInput) (*RecordHandlerProgressOutput, error) {
4806	req, out := c.RecordHandlerProgressRequest(input)
4807	return out, req.Send()
4808}
4809
4810// RecordHandlerProgressWithContext is the same as RecordHandlerProgress with the addition of
4811// the ability to pass a context and additional request options.
4812//
4813// See RecordHandlerProgress for details on how to use this API operation.
4814//
4815// The context must be non-nil and will be used for request cancellation. If
4816// the context is nil a panic will occur. In the future the SDK may create
4817// sub-contexts for http.Requests. See https://golang.org/pkg/context/
4818// for more information on using Contexts.
4819func (c *CloudFormation) RecordHandlerProgressWithContext(ctx aws.Context, input *RecordHandlerProgressInput, opts ...request.Option) (*RecordHandlerProgressOutput, error) {
4820	req, out := c.RecordHandlerProgressRequest(input)
4821	req.SetContext(ctx)
4822	req.ApplyOptions(opts...)
4823	return out, req.Send()
4824}
4825
4826const opRegisterType = "RegisterType"
4827
4828// RegisterTypeRequest generates a "aws/request.Request" representing the
4829// client's request for the RegisterType operation. The "output" return
4830// value will be populated with the request's response once the request completes
4831// successfully.
4832//
4833// Use "Send" method on the returned Request to send the API call to the service.
4834// the "output" return value is not valid until after Send returns without error.
4835//
4836// See RegisterType for more information on using the RegisterType
4837// API call, and error handling.
4838//
4839// This method is useful when you want to inject custom logic or configuration
4840// into the SDK's request lifecycle. Such as custom headers, or retry logic.
4841//
4842//
4843//    // Example sending a request using the RegisterTypeRequest method.
4844//    req, resp := client.RegisterTypeRequest(params)
4845//
4846//    err := req.Send()
4847//    if err == nil { // resp is now filled
4848//        fmt.Println(resp)
4849//    }
4850//
4851// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/RegisterType
4852func (c *CloudFormation) RegisterTypeRequest(input *RegisterTypeInput) (req *request.Request, output *RegisterTypeOutput) {
4853	op := &request.Operation{
4854		Name:       opRegisterType,
4855		HTTPMethod: "POST",
4856		HTTPPath:   "/",
4857	}
4858
4859	if input == nil {
4860		input = &RegisterTypeInput{}
4861	}
4862
4863	output = &RegisterTypeOutput{}
4864	req = c.newRequest(op, input, output)
4865	return
4866}
4867
4868// RegisterType API operation for AWS CloudFormation.
4869//
4870// Registers an extension with the CloudFormation service. Registering an extension
4871// makes it available for use in CloudFormation templates in your AWS account,
4872// and includes:
4873//
4874//    * Validating the extension schema
4875//
4876//    * Determining which handlers, if any, have been specified for the extension
4877//
4878//    * Making the extension available for use in your account
4879//
4880// For more information on how to develop extensions and ready them for registeration,
4881// see Creating Resource Providers (https://docs.aws.amazon.com/cloudformation-cli/latest/userguide/resource-types.html)
4882// in the CloudFormation CLI User Guide.
4883//
4884// You can have a maximum of 50 resource extension versions registered at a
4885// time. This maximum is per account and per region. Use DeregisterType (AWSCloudFormation/latest/APIReference/API_DeregisterType.html)
4886// to deregister specific extension versions if necessary.
4887//
4888// Once you have initiated a registration request using RegisterType , you can
4889// use DescribeTypeRegistration to monitor the progress of the registration
4890// request.
4891//
4892// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
4893// with awserr.Error's Code and Message methods to get detailed information about
4894// the error.
4895//
4896// See the AWS API reference guide for AWS CloudFormation's
4897// API operation RegisterType for usage and error information.
4898//
4899// Returned Error Codes:
4900//   * ErrCodeCFNRegistryException "CFNRegistryException"
4901//   An error occurred during a CloudFormation registry operation.
4902//
4903// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/RegisterType
4904func (c *CloudFormation) RegisterType(input *RegisterTypeInput) (*RegisterTypeOutput, error) {
4905	req, out := c.RegisterTypeRequest(input)
4906	return out, req.Send()
4907}
4908
4909// RegisterTypeWithContext is the same as RegisterType with the addition of
4910// the ability to pass a context and additional request options.
4911//
4912// See RegisterType for details on how to use this API operation.
4913//
4914// The context must be non-nil and will be used for request cancellation. If
4915// the context is nil a panic will occur. In the future the SDK may create
4916// sub-contexts for http.Requests. See https://golang.org/pkg/context/
4917// for more information on using Contexts.
4918func (c *CloudFormation) RegisterTypeWithContext(ctx aws.Context, input *RegisterTypeInput, opts ...request.Option) (*RegisterTypeOutput, error) {
4919	req, out := c.RegisterTypeRequest(input)
4920	req.SetContext(ctx)
4921	req.ApplyOptions(opts...)
4922	return out, req.Send()
4923}
4924
4925const opSetStackPolicy = "SetStackPolicy"
4926
4927// SetStackPolicyRequest generates a "aws/request.Request" representing the
4928// client's request for the SetStackPolicy operation. The "output" return
4929// value will be populated with the request's response once the request completes
4930// successfully.
4931//
4932// Use "Send" method on the returned Request to send the API call to the service.
4933// the "output" return value is not valid until after Send returns without error.
4934//
4935// See SetStackPolicy for more information on using the SetStackPolicy
4936// API call, and error handling.
4937//
4938// This method is useful when you want to inject custom logic or configuration
4939// into the SDK's request lifecycle. Such as custom headers, or retry logic.
4940//
4941//
4942//    // Example sending a request using the SetStackPolicyRequest method.
4943//    req, resp := client.SetStackPolicyRequest(params)
4944//
4945//    err := req.Send()
4946//    if err == nil { // resp is now filled
4947//        fmt.Println(resp)
4948//    }
4949//
4950// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/SetStackPolicy
4951func (c *CloudFormation) SetStackPolicyRequest(input *SetStackPolicyInput) (req *request.Request, output *SetStackPolicyOutput) {
4952	op := &request.Operation{
4953		Name:       opSetStackPolicy,
4954		HTTPMethod: "POST",
4955		HTTPPath:   "/",
4956	}
4957
4958	if input == nil {
4959		input = &SetStackPolicyInput{}
4960	}
4961
4962	output = &SetStackPolicyOutput{}
4963	req = c.newRequest(op, input, output)
4964	req.Handlers.Unmarshal.Swap(query.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
4965	return
4966}
4967
4968// SetStackPolicy API operation for AWS CloudFormation.
4969//
4970// Sets a stack policy for a specified stack.
4971//
4972// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
4973// with awserr.Error's Code and Message methods to get detailed information about
4974// the error.
4975//
4976// See the AWS API reference guide for AWS CloudFormation's
4977// API operation SetStackPolicy for usage and error information.
4978// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/SetStackPolicy
4979func (c *CloudFormation) SetStackPolicy(input *SetStackPolicyInput) (*SetStackPolicyOutput, error) {
4980	req, out := c.SetStackPolicyRequest(input)
4981	return out, req.Send()
4982}
4983
4984// SetStackPolicyWithContext is the same as SetStackPolicy with the addition of
4985// the ability to pass a context and additional request options.
4986//
4987// See SetStackPolicy for details on how to use this API operation.
4988//
4989// The context must be non-nil and will be used for request cancellation. If
4990// the context is nil a panic will occur. In the future the SDK may create
4991// sub-contexts for http.Requests. See https://golang.org/pkg/context/
4992// for more information on using Contexts.
4993func (c *CloudFormation) SetStackPolicyWithContext(ctx aws.Context, input *SetStackPolicyInput, opts ...request.Option) (*SetStackPolicyOutput, error) {
4994	req, out := c.SetStackPolicyRequest(input)
4995	req.SetContext(ctx)
4996	req.ApplyOptions(opts...)
4997	return out, req.Send()
4998}
4999
5000const opSetTypeDefaultVersion = "SetTypeDefaultVersion"
5001
5002// SetTypeDefaultVersionRequest generates a "aws/request.Request" representing the
5003// client's request for the SetTypeDefaultVersion operation. The "output" return
5004// value will be populated with the request's response once the request completes
5005// successfully.
5006//
5007// Use "Send" method on the returned Request to send the API call to the service.
5008// the "output" return value is not valid until after Send returns without error.
5009//
5010// See SetTypeDefaultVersion for more information on using the SetTypeDefaultVersion
5011// API call, and error handling.
5012//
5013// This method is useful when you want to inject custom logic or configuration
5014// into the SDK's request lifecycle. Such as custom headers, or retry logic.
5015//
5016//
5017//    // Example sending a request using the SetTypeDefaultVersionRequest method.
5018//    req, resp := client.SetTypeDefaultVersionRequest(params)
5019//
5020//    err := req.Send()
5021//    if err == nil { // resp is now filled
5022//        fmt.Println(resp)
5023//    }
5024//
5025// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/SetTypeDefaultVersion
5026func (c *CloudFormation) SetTypeDefaultVersionRequest(input *SetTypeDefaultVersionInput) (req *request.Request, output *SetTypeDefaultVersionOutput) {
5027	op := &request.Operation{
5028		Name:       opSetTypeDefaultVersion,
5029		HTTPMethod: "POST",
5030		HTTPPath:   "/",
5031	}
5032
5033	if input == nil {
5034		input = &SetTypeDefaultVersionInput{}
5035	}
5036
5037	output = &SetTypeDefaultVersionOutput{}
5038	req = c.newRequest(op, input, output)
5039	req.Handlers.Unmarshal.Swap(query.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
5040	return
5041}
5042
5043// SetTypeDefaultVersion API operation for AWS CloudFormation.
5044//
5045// Specify the default version of an extension. The default version of an extension
5046// will be used in CloudFormation operations.
5047//
5048// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
5049// with awserr.Error's Code and Message methods to get detailed information about
5050// the error.
5051//
5052// See the AWS API reference guide for AWS CloudFormation's
5053// API operation SetTypeDefaultVersion for usage and error information.
5054//
5055// Returned Error Codes:
5056//   * ErrCodeCFNRegistryException "CFNRegistryException"
5057//   An error occurred during a CloudFormation registry operation.
5058//
5059//   * ErrCodeTypeNotFoundException "TypeNotFoundException"
5060//   The specified type does not exist in the CloudFormation registry.
5061//
5062// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/SetTypeDefaultVersion
5063func (c *CloudFormation) SetTypeDefaultVersion(input *SetTypeDefaultVersionInput) (*SetTypeDefaultVersionOutput, error) {
5064	req, out := c.SetTypeDefaultVersionRequest(input)
5065	return out, req.Send()
5066}
5067
5068// SetTypeDefaultVersionWithContext is the same as SetTypeDefaultVersion with the addition of
5069// the ability to pass a context and additional request options.
5070//
5071// See SetTypeDefaultVersion for details on how to use this API operation.
5072//
5073// The context must be non-nil and will be used for request cancellation. If
5074// the context is nil a panic will occur. In the future the SDK may create
5075// sub-contexts for http.Requests. See https://golang.org/pkg/context/
5076// for more information on using Contexts.
5077func (c *CloudFormation) SetTypeDefaultVersionWithContext(ctx aws.Context, input *SetTypeDefaultVersionInput, opts ...request.Option) (*SetTypeDefaultVersionOutput, error) {
5078	req, out := c.SetTypeDefaultVersionRequest(input)
5079	req.SetContext(ctx)
5080	req.ApplyOptions(opts...)
5081	return out, req.Send()
5082}
5083
5084const opSignalResource = "SignalResource"
5085
5086// SignalResourceRequest generates a "aws/request.Request" representing the
5087// client's request for the SignalResource operation. The "output" return
5088// value will be populated with the request's response once the request completes
5089// successfully.
5090//
5091// Use "Send" method on the returned Request to send the API call to the service.
5092// the "output" return value is not valid until after Send returns without error.
5093//
5094// See SignalResource for more information on using the SignalResource
5095// API call, and error handling.
5096//
5097// This method is useful when you want to inject custom logic or configuration
5098// into the SDK's request lifecycle. Such as custom headers, or retry logic.
5099//
5100//
5101//    // Example sending a request using the SignalResourceRequest method.
5102//    req, resp := client.SignalResourceRequest(params)
5103//
5104//    err := req.Send()
5105//    if err == nil { // resp is now filled
5106//        fmt.Println(resp)
5107//    }
5108//
5109// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/SignalResource
5110func (c *CloudFormation) SignalResourceRequest(input *SignalResourceInput) (req *request.Request, output *SignalResourceOutput) {
5111	op := &request.Operation{
5112		Name:       opSignalResource,
5113		HTTPMethod: "POST",
5114		HTTPPath:   "/",
5115	}
5116
5117	if input == nil {
5118		input = &SignalResourceInput{}
5119	}
5120
5121	output = &SignalResourceOutput{}
5122	req = c.newRequest(op, input, output)
5123	req.Handlers.Unmarshal.Swap(query.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
5124	return
5125}
5126
5127// SignalResource API operation for AWS CloudFormation.
5128//
5129// Sends a signal to the specified resource with a success or failure status.
5130// You can use the SignalResource API in conjunction with a creation policy
5131// or update policy. AWS CloudFormation doesn't proceed with a stack creation
5132// or update until resources receive the required number of signals or the timeout
5133// period is exceeded. The SignalResource API is useful in cases where you want
5134// to send signals from anywhere other than an Amazon EC2 instance.
5135//
5136// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
5137// with awserr.Error's Code and Message methods to get detailed information about
5138// the error.
5139//
5140// See the AWS API reference guide for AWS CloudFormation's
5141// API operation SignalResource for usage and error information.
5142// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/SignalResource
5143func (c *CloudFormation) SignalResource(input *SignalResourceInput) (*SignalResourceOutput, error) {
5144	req, out := c.SignalResourceRequest(input)
5145	return out, req.Send()
5146}
5147
5148// SignalResourceWithContext is the same as SignalResource with the addition of
5149// the ability to pass a context and additional request options.
5150//
5151// See SignalResource for details on how to use this API operation.
5152//
5153// The context must be non-nil and will be used for request cancellation. If
5154// the context is nil a panic will occur. In the future the SDK may create
5155// sub-contexts for http.Requests. See https://golang.org/pkg/context/
5156// for more information on using Contexts.
5157func (c *CloudFormation) SignalResourceWithContext(ctx aws.Context, input *SignalResourceInput, opts ...request.Option) (*SignalResourceOutput, error) {
5158	req, out := c.SignalResourceRequest(input)
5159	req.SetContext(ctx)
5160	req.ApplyOptions(opts...)
5161	return out, req.Send()
5162}
5163
5164const opStopStackSetOperation = "StopStackSetOperation"
5165
5166// StopStackSetOperationRequest generates a "aws/request.Request" representing the
5167// client's request for the StopStackSetOperation operation. The "output" return
5168// value will be populated with the request's response once the request completes
5169// successfully.
5170//
5171// Use "Send" method on the returned Request to send the API call to the service.
5172// the "output" return value is not valid until after Send returns without error.
5173//
5174// See StopStackSetOperation for more information on using the StopStackSetOperation
5175// API call, and error handling.
5176//
5177// This method is useful when you want to inject custom logic or configuration
5178// into the SDK's request lifecycle. Such as custom headers, or retry logic.
5179//
5180//
5181//    // Example sending a request using the StopStackSetOperationRequest method.
5182//    req, resp := client.StopStackSetOperationRequest(params)
5183//
5184//    err := req.Send()
5185//    if err == nil { // resp is now filled
5186//        fmt.Println(resp)
5187//    }
5188//
5189// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/StopStackSetOperation
5190func (c *CloudFormation) StopStackSetOperationRequest(input *StopStackSetOperationInput) (req *request.Request, output *StopStackSetOperationOutput) {
5191	op := &request.Operation{
5192		Name:       opStopStackSetOperation,
5193		HTTPMethod: "POST",
5194		HTTPPath:   "/",
5195	}
5196
5197	if input == nil {
5198		input = &StopStackSetOperationInput{}
5199	}
5200
5201	output = &StopStackSetOperationOutput{}
5202	req = c.newRequest(op, input, output)
5203	req.Handlers.Unmarshal.Swap(query.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
5204	return
5205}
5206
5207// StopStackSetOperation API operation for AWS CloudFormation.
5208//
5209// Stops an in-progress operation on a stack set and its associated stack instances.
5210//
5211// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
5212// with awserr.Error's Code and Message methods to get detailed information about
5213// the error.
5214//
5215// See the AWS API reference guide for AWS CloudFormation's
5216// API operation StopStackSetOperation for usage and error information.
5217//
5218// Returned Error Codes:
5219//   * ErrCodeStackSetNotFoundException "StackSetNotFoundException"
5220//   The specified stack set doesn't exist.
5221//
5222//   * ErrCodeOperationNotFoundException "OperationNotFoundException"
5223//   The specified ID refers to an operation that doesn't exist.
5224//
5225//   * ErrCodeInvalidOperationException "InvalidOperationException"
5226//   The specified operation isn't valid.
5227//
5228// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/StopStackSetOperation
5229func (c *CloudFormation) StopStackSetOperation(input *StopStackSetOperationInput) (*StopStackSetOperationOutput, error) {
5230	req, out := c.StopStackSetOperationRequest(input)
5231	return out, req.Send()
5232}
5233
5234// StopStackSetOperationWithContext is the same as StopStackSetOperation with the addition of
5235// the ability to pass a context and additional request options.
5236//
5237// See StopStackSetOperation for details on how to use this API operation.
5238//
5239// The context must be non-nil and will be used for request cancellation. If
5240// the context is nil a panic will occur. In the future the SDK may create
5241// sub-contexts for http.Requests. See https://golang.org/pkg/context/
5242// for more information on using Contexts.
5243func (c *CloudFormation) StopStackSetOperationWithContext(ctx aws.Context, input *StopStackSetOperationInput, opts ...request.Option) (*StopStackSetOperationOutput, error) {
5244	req, out := c.StopStackSetOperationRequest(input)
5245	req.SetContext(ctx)
5246	req.ApplyOptions(opts...)
5247	return out, req.Send()
5248}
5249
5250const opUpdateStack = "UpdateStack"
5251
5252// UpdateStackRequest generates a "aws/request.Request" representing the
5253// client's request for the UpdateStack operation. The "output" return
5254// value will be populated with the request's response once the request completes
5255// successfully.
5256//
5257// Use "Send" method on the returned Request to send the API call to the service.
5258// the "output" return value is not valid until after Send returns without error.
5259//
5260// See UpdateStack for more information on using the UpdateStack
5261// API call, and error handling.
5262//
5263// This method is useful when you want to inject custom logic or configuration
5264// into the SDK's request lifecycle. Such as custom headers, or retry logic.
5265//
5266//
5267//    // Example sending a request using the UpdateStackRequest method.
5268//    req, resp := client.UpdateStackRequest(params)
5269//
5270//    err := req.Send()
5271//    if err == nil { // resp is now filled
5272//        fmt.Println(resp)
5273//    }
5274//
5275// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/UpdateStack
5276func (c *CloudFormation) UpdateStackRequest(input *UpdateStackInput) (req *request.Request, output *UpdateStackOutput) {
5277	op := &request.Operation{
5278		Name:       opUpdateStack,
5279		HTTPMethod: "POST",
5280		HTTPPath:   "/",
5281	}
5282
5283	if input == nil {
5284		input = &UpdateStackInput{}
5285	}
5286
5287	output = &UpdateStackOutput{}
5288	req = c.newRequest(op, input, output)
5289	return
5290}
5291
5292// UpdateStack API operation for AWS CloudFormation.
5293//
5294// Updates a stack as specified in the template. After the call completes successfully,
5295// the stack update starts. You can check the status of the stack via the DescribeStacks
5296// action.
5297//
5298// To get a copy of the template for an existing stack, you can use the GetTemplate
5299// action.
5300//
5301// For more information about creating an update template, updating a stack,
5302// and monitoring the progress of the update, see Updating a Stack (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks.html).
5303//
5304// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
5305// with awserr.Error's Code and Message methods to get detailed information about
5306// the error.
5307//
5308// See the AWS API reference guide for AWS CloudFormation's
5309// API operation UpdateStack for usage and error information.
5310//
5311// Returned Error Codes:
5312//   * ErrCodeInsufficientCapabilitiesException "InsufficientCapabilitiesException"
5313//   The template contains resources with capabilities that weren't specified
5314//   in the Capabilities parameter.
5315//
5316//   * ErrCodeTokenAlreadyExistsException "TokenAlreadyExistsException"
5317//   A client request token already exists.
5318//
5319// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/UpdateStack
5320func (c *CloudFormation) UpdateStack(input *UpdateStackInput) (*UpdateStackOutput, error) {
5321	req, out := c.UpdateStackRequest(input)
5322	return out, req.Send()
5323}
5324
5325// UpdateStackWithContext is the same as UpdateStack with the addition of
5326// the ability to pass a context and additional request options.
5327//
5328// See UpdateStack for details on how to use this API operation.
5329//
5330// The context must be non-nil and will be used for request cancellation. If
5331// the context is nil a panic will occur. In the future the SDK may create
5332// sub-contexts for http.Requests. See https://golang.org/pkg/context/
5333// for more information on using Contexts.
5334func (c *CloudFormation) UpdateStackWithContext(ctx aws.Context, input *UpdateStackInput, opts ...request.Option) (*UpdateStackOutput, error) {
5335	req, out := c.UpdateStackRequest(input)
5336	req.SetContext(ctx)
5337	req.ApplyOptions(opts...)
5338	return out, req.Send()
5339}
5340
5341const opUpdateStackInstances = "UpdateStackInstances"
5342
5343// UpdateStackInstancesRequest generates a "aws/request.Request" representing the
5344// client's request for the UpdateStackInstances operation. The "output" return
5345// value will be populated with the request's response once the request completes
5346// successfully.
5347//
5348// Use "Send" method on the returned Request to send the API call to the service.
5349// the "output" return value is not valid until after Send returns without error.
5350//
5351// See UpdateStackInstances for more information on using the UpdateStackInstances
5352// API call, and error handling.
5353//
5354// This method is useful when you want to inject custom logic or configuration
5355// into the SDK's request lifecycle. Such as custom headers, or retry logic.
5356//
5357//
5358//    // Example sending a request using the UpdateStackInstancesRequest method.
5359//    req, resp := client.UpdateStackInstancesRequest(params)
5360//
5361//    err := req.Send()
5362//    if err == nil { // resp is now filled
5363//        fmt.Println(resp)
5364//    }
5365//
5366// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/UpdateStackInstances
5367func (c *CloudFormation) UpdateStackInstancesRequest(input *UpdateStackInstancesInput) (req *request.Request, output *UpdateStackInstancesOutput) {
5368	op := &request.Operation{
5369		Name:       opUpdateStackInstances,
5370		HTTPMethod: "POST",
5371		HTTPPath:   "/",
5372	}
5373
5374	if input == nil {
5375		input = &UpdateStackInstancesInput{}
5376	}
5377
5378	output = &UpdateStackInstancesOutput{}
5379	req = c.newRequest(op, input, output)
5380	return
5381}
5382
5383// UpdateStackInstances API operation for AWS CloudFormation.
5384//
5385// Updates the parameter values for stack instances for the specified accounts,
5386// within the specified Regions. A stack instance refers to a stack in a specific
5387// account and Region.
5388//
5389// You can only update stack instances in Regions and accounts where they already
5390// exist; to create additional stack instances, use CreateStackInstances (https://docs.aws.amazon.com/AWSCloudFormation/latest/APIReference/API_CreateStackInstances.html).
5391//
5392// During stack set updates, any parameters overridden for a stack instance
5393// are not updated, but retain their overridden value.
5394//
5395// You can only update the parameter values that are specified in the stack
5396// set; to add or delete a parameter itself, use UpdateStackSet (https://docs.aws.amazon.com/AWSCloudFormation/latest/APIReference/API_UpdateStackSet.html)
5397// to update the stack set template. If you add a parameter to a template, before
5398// you can override the parameter value specified in the stack set you must
5399// first use UpdateStackSet (https://docs.aws.amazon.com/AWSCloudFormation/latest/APIReference/API_UpdateStackSet.html)
5400// to update all stack instances with the updated template and parameter value
5401// specified in the stack set. Once a stack instance has been updated with the
5402// new parameter, you can then override the parameter value using UpdateStackInstances.
5403//
5404// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
5405// with awserr.Error's Code and Message methods to get detailed information about
5406// the error.
5407//
5408// See the AWS API reference guide for AWS CloudFormation's
5409// API operation UpdateStackInstances for usage and error information.
5410//
5411// Returned Error Codes:
5412//   * ErrCodeStackSetNotFoundException "StackSetNotFoundException"
5413//   The specified stack set doesn't exist.
5414//
5415//   * ErrCodeStackInstanceNotFoundException "StackInstanceNotFoundException"
5416//   The specified stack instance doesn't exist.
5417//
5418//   * ErrCodeOperationInProgressException "OperationInProgressException"
5419//   Another operation is currently in progress for this stack set. Only one operation
5420//   can be performed for a stack set at a given time.
5421//
5422//   * ErrCodeOperationIdAlreadyExistsException "OperationIdAlreadyExistsException"
5423//   The specified operation ID already exists.
5424//
5425//   * ErrCodeStaleRequestException "StaleRequestException"
5426//   Another operation has been performed on this stack set since the specified
5427//   operation was performed.
5428//
5429//   * ErrCodeInvalidOperationException "InvalidOperationException"
5430//   The specified operation isn't valid.
5431//
5432// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/UpdateStackInstances
5433func (c *CloudFormation) UpdateStackInstances(input *UpdateStackInstancesInput) (*UpdateStackInstancesOutput, error) {
5434	req, out := c.UpdateStackInstancesRequest(input)
5435	return out, req.Send()
5436}
5437
5438// UpdateStackInstancesWithContext is the same as UpdateStackInstances with the addition of
5439// the ability to pass a context and additional request options.
5440//
5441// See UpdateStackInstances for details on how to use this API operation.
5442//
5443// The context must be non-nil and will be used for request cancellation. If
5444// the context is nil a panic will occur. In the future the SDK may create
5445// sub-contexts for http.Requests. See https://golang.org/pkg/context/
5446// for more information on using Contexts.
5447func (c *CloudFormation) UpdateStackInstancesWithContext(ctx aws.Context, input *UpdateStackInstancesInput, opts ...request.Option) (*UpdateStackInstancesOutput, error) {
5448	req, out := c.UpdateStackInstancesRequest(input)
5449	req.SetContext(ctx)
5450	req.ApplyOptions(opts...)
5451	return out, req.Send()
5452}
5453
5454const opUpdateStackSet = "UpdateStackSet"
5455
5456// UpdateStackSetRequest generates a "aws/request.Request" representing the
5457// client's request for the UpdateStackSet operation. The "output" return
5458// value will be populated with the request's response once the request completes
5459// successfully.
5460//
5461// Use "Send" method on the returned Request to send the API call to the service.
5462// the "output" return value is not valid until after Send returns without error.
5463//
5464// See UpdateStackSet for more information on using the UpdateStackSet
5465// API call, and error handling.
5466//
5467// This method is useful when you want to inject custom logic or configuration
5468// into the SDK's request lifecycle. Such as custom headers, or retry logic.
5469//
5470//
5471//    // Example sending a request using the UpdateStackSetRequest method.
5472//    req, resp := client.UpdateStackSetRequest(params)
5473//
5474//    err := req.Send()
5475//    if err == nil { // resp is now filled
5476//        fmt.Println(resp)
5477//    }
5478//
5479// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/UpdateStackSet
5480func (c *CloudFormation) UpdateStackSetRequest(input *UpdateStackSetInput) (req *request.Request, output *UpdateStackSetOutput) {
5481	op := &request.Operation{
5482		Name:       opUpdateStackSet,
5483		HTTPMethod: "POST",
5484		HTTPPath:   "/",
5485	}
5486
5487	if input == nil {
5488		input = &UpdateStackSetInput{}
5489	}
5490
5491	output = &UpdateStackSetOutput{}
5492	req = c.newRequest(op, input, output)
5493	return
5494}
5495
5496// UpdateStackSet API operation for AWS CloudFormation.
5497//
5498// Updates the stack set, and associated stack instances in the specified accounts
5499// and Regions.
5500//
5501// Even if the stack set operation created by updating the stack set fails (completely
5502// or partially, below or above a specified failure tolerance), the stack set
5503// is updated with your changes. Subsequent CreateStackInstances calls on the
5504// specified stack set use the updated stack set.
5505//
5506// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
5507// with awserr.Error's Code and Message methods to get detailed information about
5508// the error.
5509//
5510// See the AWS API reference guide for AWS CloudFormation's
5511// API operation UpdateStackSet for usage and error information.
5512//
5513// Returned Error Codes:
5514//   * ErrCodeStackSetNotFoundException "StackSetNotFoundException"
5515//   The specified stack set doesn't exist.
5516//
5517//   * ErrCodeOperationInProgressException "OperationInProgressException"
5518//   Another operation is currently in progress for this stack set. Only one operation
5519//   can be performed for a stack set at a given time.
5520//
5521//   * ErrCodeOperationIdAlreadyExistsException "OperationIdAlreadyExistsException"
5522//   The specified operation ID already exists.
5523//
5524//   * ErrCodeStaleRequestException "StaleRequestException"
5525//   Another operation has been performed on this stack set since the specified
5526//   operation was performed.
5527//
5528//   * ErrCodeInvalidOperationException "InvalidOperationException"
5529//   The specified operation isn't valid.
5530//
5531//   * ErrCodeStackInstanceNotFoundException "StackInstanceNotFoundException"
5532//   The specified stack instance doesn't exist.
5533//
5534// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/UpdateStackSet
5535func (c *CloudFormation) UpdateStackSet(input *UpdateStackSetInput) (*UpdateStackSetOutput, error) {
5536	req, out := c.UpdateStackSetRequest(input)
5537	return out, req.Send()
5538}
5539
5540// UpdateStackSetWithContext is the same as UpdateStackSet with the addition of
5541// the ability to pass a context and additional request options.
5542//
5543// See UpdateStackSet for details on how to use this API operation.
5544//
5545// The context must be non-nil and will be used for request cancellation. If
5546// the context is nil a panic will occur. In the future the SDK may create
5547// sub-contexts for http.Requests. See https://golang.org/pkg/context/
5548// for more information on using Contexts.
5549func (c *CloudFormation) UpdateStackSetWithContext(ctx aws.Context, input *UpdateStackSetInput, opts ...request.Option) (*UpdateStackSetOutput, error) {
5550	req, out := c.UpdateStackSetRequest(input)
5551	req.SetContext(ctx)
5552	req.ApplyOptions(opts...)
5553	return out, req.Send()
5554}
5555
5556const opUpdateTerminationProtection = "UpdateTerminationProtection"
5557
5558// UpdateTerminationProtectionRequest generates a "aws/request.Request" representing the
5559// client's request for the UpdateTerminationProtection operation. The "output" return
5560// value will be populated with the request's response once the request completes
5561// successfully.
5562//
5563// Use "Send" method on the returned Request to send the API call to the service.
5564// the "output" return value is not valid until after Send returns without error.
5565//
5566// See UpdateTerminationProtection for more information on using the UpdateTerminationProtection
5567// API call, and error handling.
5568//
5569// This method is useful when you want to inject custom logic or configuration
5570// into the SDK's request lifecycle. Such as custom headers, or retry logic.
5571//
5572//
5573//    // Example sending a request using the UpdateTerminationProtectionRequest method.
5574//    req, resp := client.UpdateTerminationProtectionRequest(params)
5575//
5576//    err := req.Send()
5577//    if err == nil { // resp is now filled
5578//        fmt.Println(resp)
5579//    }
5580//
5581// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/UpdateTerminationProtection
5582func (c *CloudFormation) UpdateTerminationProtectionRequest(input *UpdateTerminationProtectionInput) (req *request.Request, output *UpdateTerminationProtectionOutput) {
5583	op := &request.Operation{
5584		Name:       opUpdateTerminationProtection,
5585		HTTPMethod: "POST",
5586		HTTPPath:   "/",
5587	}
5588
5589	if input == nil {
5590		input = &UpdateTerminationProtectionInput{}
5591	}
5592
5593	output = &UpdateTerminationProtectionOutput{}
5594	req = c.newRequest(op, input, output)
5595	return
5596}
5597
5598// UpdateTerminationProtection API operation for AWS CloudFormation.
5599//
5600// Updates termination protection for the specified stack. If a user attempts
5601// to delete a stack with termination protection enabled, the operation fails
5602// and the stack remains unchanged. For more information, see Protecting a Stack
5603// From Being Deleted (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-protect-stacks.html)
5604// in the AWS CloudFormation User Guide.
5605//
5606// For nested stacks (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-nested-stacks.html),
5607// termination protection is set on the root stack and cannot be changed directly
5608// on the nested stack.
5609//
5610// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
5611// with awserr.Error's Code and Message methods to get detailed information about
5612// the error.
5613//
5614// See the AWS API reference guide for AWS CloudFormation's
5615// API operation UpdateTerminationProtection for usage and error information.
5616// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/UpdateTerminationProtection
5617func (c *CloudFormation) UpdateTerminationProtection(input *UpdateTerminationProtectionInput) (*UpdateTerminationProtectionOutput, error) {
5618	req, out := c.UpdateTerminationProtectionRequest(input)
5619	return out, req.Send()
5620}
5621
5622// UpdateTerminationProtectionWithContext is the same as UpdateTerminationProtection with the addition of
5623// the ability to pass a context and additional request options.
5624//
5625// See UpdateTerminationProtection for details on how to use this API operation.
5626//
5627// The context must be non-nil and will be used for request cancellation. If
5628// the context is nil a panic will occur. In the future the SDK may create
5629// sub-contexts for http.Requests. See https://golang.org/pkg/context/
5630// for more information on using Contexts.
5631func (c *CloudFormation) UpdateTerminationProtectionWithContext(ctx aws.Context, input *UpdateTerminationProtectionInput, opts ...request.Option) (*UpdateTerminationProtectionOutput, error) {
5632	req, out := c.UpdateTerminationProtectionRequest(input)
5633	req.SetContext(ctx)
5634	req.ApplyOptions(opts...)
5635	return out, req.Send()
5636}
5637
5638const opValidateTemplate = "ValidateTemplate"
5639
5640// ValidateTemplateRequest generates a "aws/request.Request" representing the
5641// client's request for the ValidateTemplate operation. The "output" return
5642// value will be populated with the request's response once the request completes
5643// successfully.
5644//
5645// Use "Send" method on the returned Request to send the API call to the service.
5646// the "output" return value is not valid until after Send returns without error.
5647//
5648// See ValidateTemplate for more information on using the ValidateTemplate
5649// API call, and error handling.
5650//
5651// This method is useful when you want to inject custom logic or configuration
5652// into the SDK's request lifecycle. Such as custom headers, or retry logic.
5653//
5654//
5655//    // Example sending a request using the ValidateTemplateRequest method.
5656//    req, resp := client.ValidateTemplateRequest(params)
5657//
5658//    err := req.Send()
5659//    if err == nil { // resp is now filled
5660//        fmt.Println(resp)
5661//    }
5662//
5663// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/ValidateTemplate
5664func (c *CloudFormation) ValidateTemplateRequest(input *ValidateTemplateInput) (req *request.Request, output *ValidateTemplateOutput) {
5665	op := &request.Operation{
5666		Name:       opValidateTemplate,
5667		HTTPMethod: "POST",
5668		HTTPPath:   "/",
5669	}
5670
5671	if input == nil {
5672		input = &ValidateTemplateInput{}
5673	}
5674
5675	output = &ValidateTemplateOutput{}
5676	req = c.newRequest(op, input, output)
5677	return
5678}
5679
5680// ValidateTemplate API operation for AWS CloudFormation.
5681//
5682// Validates a specified template. AWS CloudFormation first checks if the template
5683// is valid JSON. If it isn't, AWS CloudFormation checks if the template is
5684// valid YAML. If both these checks fail, AWS CloudFormation returns a template
5685// validation error.
5686//
5687// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
5688// with awserr.Error's Code and Message methods to get detailed information about
5689// the error.
5690//
5691// See the AWS API reference guide for AWS CloudFormation's
5692// API operation ValidateTemplate for usage and error information.
5693// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/ValidateTemplate
5694func (c *CloudFormation) ValidateTemplate(input *ValidateTemplateInput) (*ValidateTemplateOutput, error) {
5695	req, out := c.ValidateTemplateRequest(input)
5696	return out, req.Send()
5697}
5698
5699// ValidateTemplateWithContext is the same as ValidateTemplate with the addition of
5700// the ability to pass a context and additional request options.
5701//
5702// See ValidateTemplate for details on how to use this API operation.
5703//
5704// The context must be non-nil and will be used for request cancellation. If
5705// the context is nil a panic will occur. In the future the SDK may create
5706// sub-contexts for http.Requests. See https://golang.org/pkg/context/
5707// for more information on using Contexts.
5708func (c *CloudFormation) ValidateTemplateWithContext(ctx aws.Context, input *ValidateTemplateInput, opts ...request.Option) (*ValidateTemplateOutput, error) {
5709	req, out := c.ValidateTemplateRequest(input)
5710	req.SetContext(ctx)
5711	req.ApplyOptions(opts...)
5712	return out, req.Send()
5713}
5714
5715// Structure that contains the results of the account gate function which AWS
5716// CloudFormation invokes, if present, before proceeding with a stack set operation
5717// in an account and Region.
5718//
5719// For each account and Region, AWS CloudFormation lets you specify a Lamdba
5720// function that encapsulates any requirements that must be met before CloudFormation
5721// can proceed with a stack set operation in that account and Region. CloudFormation
5722// invokes the function each time a stack set operation is requested for that
5723// account and Region; if the function returns FAILED, CloudFormation cancels
5724// the operation in that account and Region, and sets the stack set operation
5725// result status for that account and Region to FAILED.
5726//
5727// For more information, see Configuring a target account gate (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/stacksets-account-gating.html).
5728type AccountGateResult struct {
5729	_ struct{} `type:"structure"`
5730
5731	// The status of the account gate function.
5732	//
5733	//    * SUCCEEDED: The account gate function has determined that the account
5734	//    and Region passes any requirements for a stack set operation to occur.
5735	//    AWS CloudFormation proceeds with the stack operation in that account and
5736	//    Region.
5737	//
5738	//    * FAILED: The account gate function has determined that the account and
5739	//    Region does not meet the requirements for a stack set operation to occur.
5740	//    AWS CloudFormation cancels the stack set operation in that account and
5741	//    Region, and sets the stack set operation result status for that account
5742	//    and Region to FAILED.
5743	//
5744	//    * SKIPPED: AWS CloudFormation has skipped calling the account gate function
5745	//    for this account and Region, for one of the following reasons: An account
5746	//    gate function has not been specified for the account and Region. AWS CloudFormation
5747	//    proceeds with the stack set operation in this account and Region. The
5748	//    AWSCloudFormationStackSetExecutionRole of the stack set adminstration
5749	//    account lacks permissions to invoke the function. AWS CloudFormation proceeds
5750	//    with the stack set operation in this account and Region. Either no action
5751	//    is necessary, or no action is possible, on the stack. AWS CloudFormation
5752	//    skips the stack set operation in this account and Region.
5753	Status *string `type:"string" enum:"AccountGateStatus"`
5754
5755	// The reason for the account gate status assigned to this account and Region
5756	// for the stack set operation.
5757	StatusReason *string `type:"string"`
5758}
5759
5760// String returns the string representation
5761func (s AccountGateResult) String() string {
5762	return awsutil.Prettify(s)
5763}
5764
5765// GoString returns the string representation
5766func (s AccountGateResult) GoString() string {
5767	return s.String()
5768}
5769
5770// SetStatus sets the Status field's value.
5771func (s *AccountGateResult) SetStatus(v string) *AccountGateResult {
5772	s.Status = &v
5773	return s
5774}
5775
5776// SetStatusReason sets the StatusReason field's value.
5777func (s *AccountGateResult) SetStatusReason(v string) *AccountGateResult {
5778	s.StatusReason = &v
5779	return s
5780}
5781
5782// The AccountLimit data type.
5783//
5784// CloudFormation has the following limits per account:
5785//
5786//    * Number of concurrent resources
5787//
5788//    * Number of stacks
5789//
5790//    * Number of stack outputs
5791//
5792// For more information about these account limits, and other CloudFormation
5793// limits, see AWS CloudFormation Limits (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/cloudformation-limits.html)
5794// in the AWS CloudFormation User Guide.
5795type AccountLimit struct {
5796	_ struct{} `type:"structure"`
5797
5798	// The name of the account limit.
5799	//
5800	// Values: ConcurrentResourcesLimit | StackLimit | StackOutputsLimit
5801	Name *string `type:"string"`
5802
5803	// The value that is associated with the account limit name.
5804	Value *int64 `type:"integer"`
5805}
5806
5807// String returns the string representation
5808func (s AccountLimit) String() string {
5809	return awsutil.Prettify(s)
5810}
5811
5812// GoString returns the string representation
5813func (s AccountLimit) GoString() string {
5814	return s.String()
5815}
5816
5817// SetName sets the Name field's value.
5818func (s *AccountLimit) SetName(v string) *AccountLimit {
5819	s.Name = &v
5820	return s
5821}
5822
5823// SetValue sets the Value field's value.
5824func (s *AccountLimit) SetValue(v int64) *AccountLimit {
5825	s.Value = &v
5826	return s
5827}
5828
5829// [Service-managed permissions] Describes whether StackSets automatically deploys
5830// to AWS Organizations accounts that are added to a target organization or
5831// organizational unit (OU).
5832type AutoDeployment struct {
5833	_ struct{} `type:"structure"`
5834
5835	// If set to true, StackSets automatically deploys additional stack instances
5836	// to AWS Organizations accounts that are added to a target organization or
5837	// organizational unit (OU) in the specified Regions. If an account is removed
5838	// from a target organization or OU, StackSets deletes stack instances from
5839	// the account in the specified Regions.
5840	Enabled *bool `type:"boolean"`
5841
5842	// If set to true, stack resources are retained when an account is removed from
5843	// a target organization or OU. If set to false, stack resources are deleted.
5844	// Specify only if Enabled is set to True.
5845	RetainStacksOnAccountRemoval *bool `type:"boolean"`
5846}
5847
5848// String returns the string representation
5849func (s AutoDeployment) String() string {
5850	return awsutil.Prettify(s)
5851}
5852
5853// GoString returns the string representation
5854func (s AutoDeployment) GoString() string {
5855	return s.String()
5856}
5857
5858// SetEnabled sets the Enabled field's value.
5859func (s *AutoDeployment) SetEnabled(v bool) *AutoDeployment {
5860	s.Enabled = &v
5861	return s
5862}
5863
5864// SetRetainStacksOnAccountRemoval sets the RetainStacksOnAccountRemoval field's value.
5865func (s *AutoDeployment) SetRetainStacksOnAccountRemoval(v bool) *AutoDeployment {
5866	s.RetainStacksOnAccountRemoval = &v
5867	return s
5868}
5869
5870// The input for the CancelUpdateStack action.
5871type CancelUpdateStackInput struct {
5872	_ struct{} `type:"structure"`
5873
5874	// A unique identifier for this CancelUpdateStack request. Specify this token
5875	// if you plan to retry requests so that AWS CloudFormation knows that you're
5876	// not attempting to cancel an update on a stack with the same name. You might
5877	// retry CancelUpdateStack requests to ensure that AWS CloudFormation successfully
5878	// received them.
5879	ClientRequestToken *string `min:"1" type:"string"`
5880
5881	// The name or the unique stack ID that is associated with the stack.
5882	//
5883	// StackName is a required field
5884	StackName *string `type:"string" required:"true"`
5885}
5886
5887// String returns the string representation
5888func (s CancelUpdateStackInput) String() string {
5889	return awsutil.Prettify(s)
5890}
5891
5892// GoString returns the string representation
5893func (s CancelUpdateStackInput) GoString() string {
5894	return s.String()
5895}
5896
5897// Validate inspects the fields of the type to determine if they are valid.
5898func (s *CancelUpdateStackInput) Validate() error {
5899	invalidParams := request.ErrInvalidParams{Context: "CancelUpdateStackInput"}
5900	if s.ClientRequestToken != nil && len(*s.ClientRequestToken) < 1 {
5901		invalidParams.Add(request.NewErrParamMinLen("ClientRequestToken", 1))
5902	}
5903	if s.StackName == nil {
5904		invalidParams.Add(request.NewErrParamRequired("StackName"))
5905	}
5906
5907	if invalidParams.Len() > 0 {
5908		return invalidParams
5909	}
5910	return nil
5911}
5912
5913// SetClientRequestToken sets the ClientRequestToken field's value.
5914func (s *CancelUpdateStackInput) SetClientRequestToken(v string) *CancelUpdateStackInput {
5915	s.ClientRequestToken = &v
5916	return s
5917}
5918
5919// SetStackName sets the StackName field's value.
5920func (s *CancelUpdateStackInput) SetStackName(v string) *CancelUpdateStackInput {
5921	s.StackName = &v
5922	return s
5923}
5924
5925type CancelUpdateStackOutput struct {
5926	_ struct{} `type:"structure"`
5927}
5928
5929// String returns the string representation
5930func (s CancelUpdateStackOutput) String() string {
5931	return awsutil.Prettify(s)
5932}
5933
5934// GoString returns the string representation
5935func (s CancelUpdateStackOutput) GoString() string {
5936	return s.String()
5937}
5938
5939// The Change structure describes the changes AWS CloudFormation will perform
5940// if you execute the change set.
5941type Change struct {
5942	_ struct{} `type:"structure"`
5943
5944	// A ResourceChange structure that describes the resource and action that AWS
5945	// CloudFormation will perform.
5946	ResourceChange *ResourceChange `type:"structure"`
5947
5948	// The type of entity that AWS CloudFormation changes. Currently, the only entity
5949	// type is Resource.
5950	Type *string `type:"string" enum:"ChangeType"`
5951}
5952
5953// String returns the string representation
5954func (s Change) String() string {
5955	return awsutil.Prettify(s)
5956}
5957
5958// GoString returns the string representation
5959func (s Change) GoString() string {
5960	return s.String()
5961}
5962
5963// SetResourceChange sets the ResourceChange field's value.
5964func (s *Change) SetResourceChange(v *ResourceChange) *Change {
5965	s.ResourceChange = v
5966	return s
5967}
5968
5969// SetType sets the Type field's value.
5970func (s *Change) SetType(v string) *Change {
5971	s.Type = &v
5972	return s
5973}
5974
5975// The ChangeSetSummary structure describes a change set, its status, and the
5976// stack with which it's associated.
5977type ChangeSetSummary struct {
5978	_ struct{} `type:"structure"`
5979
5980	// The ID of the change set.
5981	ChangeSetId *string `min:"1" type:"string"`
5982
5983	// The name of the change set.
5984	ChangeSetName *string `min:"1" type:"string"`
5985
5986	// The start time when the change set was created, in UTC.
5987	CreationTime *time.Time `type:"timestamp"`
5988
5989	// Descriptive information about the change set.
5990	Description *string `min:"1" type:"string"`
5991
5992	// If the change set execution status is AVAILABLE, you can execute the change
5993	// set. If you can’t execute the change set, the status indicates why. For
5994	// example, a change set might be in an UNAVAILABLE state because AWS CloudFormation
5995	// is still creating it or in an OBSOLETE state because the stack was already
5996	// updated.
5997	ExecutionStatus *string `type:"string" enum:"ExecutionStatus"`
5998
5999	// Specifies the current setting of IncludeNestedStacks for the change set.
6000	IncludeNestedStacks *bool `type:"boolean"`
6001
6002	// The parent change set ID.
6003	ParentChangeSetId *string `min:"1" type:"string"`
6004
6005	// The root change set ID.
6006	RootChangeSetId *string `min:"1" type:"string"`
6007
6008	// The ID of the stack with which the change set is associated.
6009	StackId *string `type:"string"`
6010
6011	// The name of the stack with which the change set is associated.
6012	StackName *string `type:"string"`
6013
6014	// The state of the change set, such as CREATE_IN_PROGRESS, CREATE_COMPLETE,
6015	// or FAILED.
6016	Status *string `type:"string" enum:"ChangeSetStatus"`
6017
6018	// A description of the change set's status. For example, if your change set
6019	// is in the FAILED state, AWS CloudFormation shows the error message.
6020	StatusReason *string `type:"string"`
6021}
6022
6023// String returns the string representation
6024func (s ChangeSetSummary) String() string {
6025	return awsutil.Prettify(s)
6026}
6027
6028// GoString returns the string representation
6029func (s ChangeSetSummary) GoString() string {
6030	return s.String()
6031}
6032
6033// SetChangeSetId sets the ChangeSetId field's value.
6034func (s *ChangeSetSummary) SetChangeSetId(v string) *ChangeSetSummary {
6035	s.ChangeSetId = &v
6036	return s
6037}
6038
6039// SetChangeSetName sets the ChangeSetName field's value.
6040func (s *ChangeSetSummary) SetChangeSetName(v string) *ChangeSetSummary {
6041	s.ChangeSetName = &v
6042	return s
6043}
6044
6045// SetCreationTime sets the CreationTime field's value.
6046func (s *ChangeSetSummary) SetCreationTime(v time.Time) *ChangeSetSummary {
6047	s.CreationTime = &v
6048	return s
6049}
6050
6051// SetDescription sets the Description field's value.
6052func (s *ChangeSetSummary) SetDescription(v string) *ChangeSetSummary {
6053	s.Description = &v
6054	return s
6055}
6056
6057// SetExecutionStatus sets the ExecutionStatus field's value.
6058func (s *ChangeSetSummary) SetExecutionStatus(v string) *ChangeSetSummary {
6059	s.ExecutionStatus = &v
6060	return s
6061}
6062
6063// SetIncludeNestedStacks sets the IncludeNestedStacks field's value.
6064func (s *ChangeSetSummary) SetIncludeNestedStacks(v bool) *ChangeSetSummary {
6065	s.IncludeNestedStacks = &v
6066	return s
6067}
6068
6069// SetParentChangeSetId sets the ParentChangeSetId field's value.
6070func (s *ChangeSetSummary) SetParentChangeSetId(v string) *ChangeSetSummary {
6071	s.ParentChangeSetId = &v
6072	return s
6073}
6074
6075// SetRootChangeSetId sets the RootChangeSetId field's value.
6076func (s *ChangeSetSummary) SetRootChangeSetId(v string) *ChangeSetSummary {
6077	s.RootChangeSetId = &v
6078	return s
6079}
6080
6081// SetStackId sets the StackId field's value.
6082func (s *ChangeSetSummary) SetStackId(v string) *ChangeSetSummary {
6083	s.StackId = &v
6084	return s
6085}
6086
6087// SetStackName sets the StackName field's value.
6088func (s *ChangeSetSummary) SetStackName(v string) *ChangeSetSummary {
6089	s.StackName = &v
6090	return s
6091}
6092
6093// SetStatus sets the Status field's value.
6094func (s *ChangeSetSummary) SetStatus(v string) *ChangeSetSummary {
6095	s.Status = &v
6096	return s
6097}
6098
6099// SetStatusReason sets the StatusReason field's value.
6100func (s *ChangeSetSummary) SetStatusReason(v string) *ChangeSetSummary {
6101	s.StatusReason = &v
6102	return s
6103}
6104
6105// The input for the ContinueUpdateRollback action.
6106type ContinueUpdateRollbackInput struct {
6107	_ struct{} `type:"structure"`
6108
6109	// A unique identifier for this ContinueUpdateRollback request. Specify this
6110	// token if you plan to retry requests so that AWS CloudFormation knows that
6111	// you're not attempting to continue the rollback to a stack with the same name.
6112	// You might retry ContinueUpdateRollback requests to ensure that AWS CloudFormation
6113	// successfully received them.
6114	ClientRequestToken *string `min:"1" type:"string"`
6115
6116	// A list of the logical IDs of the resources that AWS CloudFormation skips
6117	// during the continue update rollback operation. You can specify only resources
6118	// that are in the UPDATE_FAILED state because a rollback failed. You can't
6119	// specify resources that are in the UPDATE_FAILED state for other reasons,
6120	// for example, because an update was cancelled. To check why a resource update
6121	// failed, use the DescribeStackResources action, and view the resource status
6122	// reason.
6123	//
6124	// Specify this property to skip rolling back resources that AWS CloudFormation
6125	// can't successfully roll back. We recommend that you troubleshoot (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/troubleshooting.html#troubleshooting-errors-update-rollback-failed)
6126	// resources before skipping them. AWS CloudFormation sets the status of the
6127	// specified resources to UPDATE_COMPLETE and continues to roll back the stack.
6128	// After the rollback is complete, the state of the skipped resources will be
6129	// inconsistent with the state of the resources in the stack template. Before
6130	// performing another stack update, you must update the stack or resources to
6131	// be consistent with each other. If you don't, subsequent stack updates might
6132	// fail, and the stack will become unrecoverable.
6133	//
6134	// Specify the minimum number of resources required to successfully roll back
6135	// your stack. For example, a failed resource update might cause dependent resources
6136	// to fail. In this case, it might not be necessary to skip the dependent resources.
6137	//
6138	// To skip resources that are part of nested stacks, use the following format:
6139	// NestedStackName.ResourceLogicalID. If you want to specify the logical ID
6140	// of a stack resource (Type: AWS::CloudFormation::Stack) in the ResourcesToSkip
6141	// list, then its corresponding embedded stack must be in one of the following
6142	// states: DELETE_IN_PROGRESS, DELETE_COMPLETE, or DELETE_FAILED.
6143	//
6144	// Don't confuse a child stack's name with its corresponding logical ID defined
6145	// in the parent stack. For an example of a continue update rollback operation
6146	// with nested stacks, see Using ResourcesToSkip to recover a nested stacks
6147	// hierarchy (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-continueupdaterollback.html#nested-stacks).
6148	ResourcesToSkip []*string `type:"list"`
6149
6150	// The Amazon Resource Name (ARN) of an AWS Identity and Access Management (IAM)
6151	// role that AWS CloudFormation assumes to roll back the stack. AWS CloudFormation
6152	// uses the role's credentials to make calls on your behalf. AWS CloudFormation
6153	// always uses this role for all future operations on the stack. As long as
6154	// users have permission to operate on the stack, AWS CloudFormation uses this
6155	// role even if the users don't have permission to pass it. Ensure that the
6156	// role grants least privilege.
6157	//
6158	// If you don't specify a value, AWS CloudFormation uses the role that was previously
6159	// associated with the stack. If no role is available, AWS CloudFormation uses
6160	// a temporary session that is generated from your user credentials.
6161	RoleARN *string `min:"20" type:"string"`
6162
6163	// The name or the unique ID of the stack that you want to continue rolling
6164	// back.
6165	//
6166	// Don't specify the name of a nested stack (a stack that was created by using
6167	// the AWS::CloudFormation::Stack resource). Instead, use this operation on
6168	// the parent stack (the stack that contains the AWS::CloudFormation::Stack
6169	// resource).
6170	//
6171	// StackName is a required field
6172	StackName *string `min:"1" type:"string" required:"true"`
6173}
6174
6175// String returns the string representation
6176func (s ContinueUpdateRollbackInput) String() string {
6177	return awsutil.Prettify(s)
6178}
6179
6180// GoString returns the string representation
6181func (s ContinueUpdateRollbackInput) GoString() string {
6182	return s.String()
6183}
6184
6185// Validate inspects the fields of the type to determine if they are valid.
6186func (s *ContinueUpdateRollbackInput) Validate() error {
6187	invalidParams := request.ErrInvalidParams{Context: "ContinueUpdateRollbackInput"}
6188	if s.ClientRequestToken != nil && len(*s.ClientRequestToken) < 1 {
6189		invalidParams.Add(request.NewErrParamMinLen("ClientRequestToken", 1))
6190	}
6191	if s.RoleARN != nil && len(*s.RoleARN) < 20 {
6192		invalidParams.Add(request.NewErrParamMinLen("RoleARN", 20))
6193	}
6194	if s.StackName == nil {
6195		invalidParams.Add(request.NewErrParamRequired("StackName"))
6196	}
6197	if s.StackName != nil && len(*s.StackName) < 1 {
6198		invalidParams.Add(request.NewErrParamMinLen("StackName", 1))
6199	}
6200
6201	if invalidParams.Len() > 0 {
6202		return invalidParams
6203	}
6204	return nil
6205}
6206
6207// SetClientRequestToken sets the ClientRequestToken field's value.
6208func (s *ContinueUpdateRollbackInput) SetClientRequestToken(v string) *ContinueUpdateRollbackInput {
6209	s.ClientRequestToken = &v
6210	return s
6211}
6212
6213// SetResourcesToSkip sets the ResourcesToSkip field's value.
6214func (s *ContinueUpdateRollbackInput) SetResourcesToSkip(v []*string) *ContinueUpdateRollbackInput {
6215	s.ResourcesToSkip = v
6216	return s
6217}
6218
6219// SetRoleARN sets the RoleARN field's value.
6220func (s *ContinueUpdateRollbackInput) SetRoleARN(v string) *ContinueUpdateRollbackInput {
6221	s.RoleARN = &v
6222	return s
6223}
6224
6225// SetStackName sets the StackName field's value.
6226func (s *ContinueUpdateRollbackInput) SetStackName(v string) *ContinueUpdateRollbackInput {
6227	s.StackName = &v
6228	return s
6229}
6230
6231// The output for a ContinueUpdateRollback action.
6232type ContinueUpdateRollbackOutput struct {
6233	_ struct{} `type:"structure"`
6234}
6235
6236// String returns the string representation
6237func (s ContinueUpdateRollbackOutput) String() string {
6238	return awsutil.Prettify(s)
6239}
6240
6241// GoString returns the string representation
6242func (s ContinueUpdateRollbackOutput) GoString() string {
6243	return s.String()
6244}
6245
6246// The input for the CreateChangeSet action.
6247type CreateChangeSetInput struct {
6248	_ struct{} `type:"structure"`
6249
6250	// In some cases, you must explicitly acknowledge that your stack template contains
6251	// certain capabilities in order for AWS CloudFormation to create the stack.
6252	//
6253	//    * CAPABILITY_IAM and CAPABILITY_NAMED_IAM Some stack templates might include
6254	//    resources that can affect permissions in your AWS account; for example,
6255	//    by creating new AWS Identity and Access Management (IAM) users. For those
6256	//    stacks, you must explicitly acknowledge this by specifying one of these
6257	//    capabilities. The following IAM resources require you to specify either
6258	//    the CAPABILITY_IAM or CAPABILITY_NAMED_IAM capability. If you have IAM
6259	//    resources, you can specify either capability. If you have IAM resources
6260	//    with custom names, you must specify CAPABILITY_NAMED_IAM. If you don't
6261	//    specify either of these capabilities, AWS CloudFormation returns an InsufficientCapabilities
6262	//    error. If your stack template contains these resources, we recommend that
6263	//    you review all permissions associated with them and edit their permissions
6264	//    if necessary. AWS::IAM::AccessKey (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iam-accesskey.html)
6265	//    AWS::IAM::Group (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iam-group.html)
6266	//    AWS::IAM::InstanceProfile (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iam-instanceprofile.html)
6267	//    AWS::IAM::Policy (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iam-policy.html)
6268	//    AWS::IAM::Role (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iam-role.html)
6269	//    AWS::IAM::User (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iam-user.html)
6270	//    AWS::IAM::UserToGroupAddition (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iam-addusertogroup.html)
6271	//    For more information, see Acknowledging IAM Resources in AWS CloudFormation
6272	//    Templates (http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-iam-template.html#capabilities).
6273	//
6274	//    * CAPABILITY_AUTO_EXPAND Some template contain macros. Macros perform
6275	//    custom processing on templates; this can include simple actions like find-and-replace
6276	//    operations, all the way to extensive transformations of entire templates.
6277	//    Because of this, users typically create a change set from the processed
6278	//    template, so that they can review the changes resulting from the macros
6279	//    before actually creating the stack. If your stack template contains one
6280	//    or more macros, and you choose to create a stack directly from the processed
6281	//    template, without first reviewing the resulting changes in a change set,
6282	//    you must acknowledge this capability. This includes the AWS::Include (http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/create-reusable-transform-function-snippets-and-add-to-your-template-with-aws-include-transform.html)
6283	//    and AWS::Serverless (http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/transform-aws-serverless.html)
6284	//    transforms, which are macros hosted by AWS CloudFormation. This capacity
6285	//    does not apply to creating change sets, and specifying it when creating
6286	//    change sets has no effect. If you want to create a stack from a stack
6287	//    template that contains macros and nested stacks, you must create or update
6288	//    the stack directly from the template using the CreateStack or UpdateStack
6289	//    action, and specifying this capability. For more information on macros,
6290	//    see Using AWS CloudFormation Macros to Perform Custom Processing on Templates
6291	//    (http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/template-macros.html).
6292	Capabilities []*string `type:"list"`
6293
6294	// The name of the change set. The name must be unique among all change sets
6295	// that are associated with the specified stack.
6296	//
6297	// A change set name can contain only alphanumeric, case sensitive characters
6298	// and hyphens. It must start with an alphabetic character and cannot exceed
6299	// 128 characters.
6300	//
6301	// ChangeSetName is a required field
6302	ChangeSetName *string `min:"1" type:"string" required:"true"`
6303
6304	// The type of change set operation. To create a change set for a new stack,
6305	// specify CREATE. To create a change set for an existing stack, specify UPDATE.
6306	// To create a change set for an import operation, specify IMPORT.
6307	//
6308	// If you create a change set for a new stack, AWS Cloudformation creates a
6309	// stack with a unique stack ID, but no template or resources. The stack will
6310	// be in the REVIEW_IN_PROGRESS (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-describing-stacks.html#d0e11995)
6311	// state until you execute the change set.
6312	//
6313	// By default, AWS CloudFormation specifies UPDATE. You can't use the UPDATE
6314	// type to create a change set for a new stack or the CREATE type to create
6315	// a change set for an existing stack.
6316	ChangeSetType *string `type:"string" enum:"ChangeSetType"`
6317
6318	// A unique identifier for this CreateChangeSet request. Specify this token
6319	// if you plan to retry requests so that AWS CloudFormation knows that you're
6320	// not attempting to create another change set with the same name. You might
6321	// retry CreateChangeSet requests to ensure that AWS CloudFormation successfully
6322	// received them.
6323	ClientToken *string `min:"1" type:"string"`
6324
6325	// A description to help you identify this change set.
6326	Description *string `min:"1" type:"string"`
6327
6328	// Creates a change set for the all nested stacks specified in the template.
6329	// The default behavior of this action is set to False. To include nested sets
6330	// in a change set, specify True.
6331	IncludeNestedStacks *bool `type:"boolean"`
6332
6333	// The Amazon Resource Names (ARNs) of Amazon Simple Notification Service (Amazon
6334	// SNS) topics that AWS CloudFormation associates with the stack. To remove
6335	// all associated notification topics, specify an empty list.
6336	NotificationARNs []*string `type:"list"`
6337
6338	// A list of Parameter structures that specify input parameters for the change
6339	// set. For more information, see the Parameter data type.
6340	Parameters []*Parameter `type:"list"`
6341
6342	// The template resource types that you have permissions to work with if you
6343	// execute this change set, such as AWS::EC2::Instance, AWS::EC2::*, or Custom::MyCustomInstance.
6344	//
6345	// If the list of resource types doesn't include a resource type that you're
6346	// updating, the stack update fails. By default, AWS CloudFormation grants permissions
6347	// to all resource types. AWS Identity and Access Management (IAM) uses this
6348	// parameter for condition keys in IAM policies for AWS CloudFormation. For
6349	// more information, see Controlling Access with AWS Identity and Access Management
6350	// (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-iam-template.html)
6351	// in the AWS CloudFormation User Guide.
6352	ResourceTypes []*string `type:"list"`
6353
6354	// The resources to import into your stack.
6355	ResourcesToImport []*ResourceToImport `type:"list"`
6356
6357	// The Amazon Resource Name (ARN) of an AWS Identity and Access Management (IAM)
6358	// role that AWS CloudFormation assumes when executing the change set. AWS CloudFormation
6359	// uses the role's credentials to make calls on your behalf. AWS CloudFormation
6360	// uses this role for all future operations on the stack. As long as users have
6361	// permission to operate on the stack, AWS CloudFormation uses this role even
6362	// if the users don't have permission to pass it. Ensure that the role grants
6363	// least privilege.
6364	//
6365	// If you don't specify a value, AWS CloudFormation uses the role that was previously
6366	// associated with the stack. If no role is available, AWS CloudFormation uses
6367	// a temporary session that is generated from your user credentials.
6368	RoleARN *string `min:"20" type:"string"`
6369
6370	// The rollback triggers for AWS CloudFormation to monitor during stack creation
6371	// and updating operations, and for the specified monitoring period afterwards.
6372	RollbackConfiguration *RollbackConfiguration `type:"structure"`
6373
6374	// The name or the unique ID of the stack for which you are creating a change
6375	// set. AWS CloudFormation generates the change set by comparing this stack's
6376	// information with the information that you submit, such as a modified template
6377	// or different parameter input values.
6378	//
6379	// StackName is a required field
6380	StackName *string `min:"1" type:"string" required:"true"`
6381
6382	// Key-value pairs to associate with this stack. AWS CloudFormation also propagates
6383	// these tags to resources in the stack. You can specify a maximum of 50 tags.
6384	Tags []*Tag `type:"list"`
6385
6386	// A structure that contains the body of the revised template, with a minimum
6387	// length of 1 byte and a maximum length of 51,200 bytes. AWS CloudFormation
6388	// generates the change set by comparing this template with the template of
6389	// the stack that you specified.
6390	//
6391	// Conditional: You must specify only TemplateBody or TemplateURL.
6392	TemplateBody *string `min:"1" type:"string"`
6393
6394	// The location of the file that contains the revised template. The URL must
6395	// point to a template (max size: 460,800 bytes) that is located in an S3 bucket
6396	// or a Systems Manager document. AWS CloudFormation generates the change set
6397	// by comparing this template with the stack that you specified.
6398	//
6399	// Conditional: You must specify only TemplateBody or TemplateURL.
6400	TemplateURL *string `min:"1" type:"string"`
6401
6402	// Whether to reuse the template that is associated with the stack to create
6403	// the change set.
6404	UsePreviousTemplate *bool `type:"boolean"`
6405}
6406
6407// String returns the string representation
6408func (s CreateChangeSetInput) String() string {
6409	return awsutil.Prettify(s)
6410}
6411
6412// GoString returns the string representation
6413func (s CreateChangeSetInput) GoString() string {
6414	return s.String()
6415}
6416
6417// Validate inspects the fields of the type to determine if they are valid.
6418func (s *CreateChangeSetInput) Validate() error {
6419	invalidParams := request.ErrInvalidParams{Context: "CreateChangeSetInput"}
6420	if s.ChangeSetName == nil {
6421		invalidParams.Add(request.NewErrParamRequired("ChangeSetName"))
6422	}
6423	if s.ChangeSetName != nil && len(*s.ChangeSetName) < 1 {
6424		invalidParams.Add(request.NewErrParamMinLen("ChangeSetName", 1))
6425	}
6426	if s.ClientToken != nil && len(*s.ClientToken) < 1 {
6427		invalidParams.Add(request.NewErrParamMinLen("ClientToken", 1))
6428	}
6429	if s.Description != nil && len(*s.Description) < 1 {
6430		invalidParams.Add(request.NewErrParamMinLen("Description", 1))
6431	}
6432	if s.RoleARN != nil && len(*s.RoleARN) < 20 {
6433		invalidParams.Add(request.NewErrParamMinLen("RoleARN", 20))
6434	}
6435	if s.StackName == nil {
6436		invalidParams.Add(request.NewErrParamRequired("StackName"))
6437	}
6438	if s.StackName != nil && len(*s.StackName) < 1 {
6439		invalidParams.Add(request.NewErrParamMinLen("StackName", 1))
6440	}
6441	if s.TemplateBody != nil && len(*s.TemplateBody) < 1 {
6442		invalidParams.Add(request.NewErrParamMinLen("TemplateBody", 1))
6443	}
6444	if s.TemplateURL != nil && len(*s.TemplateURL) < 1 {
6445		invalidParams.Add(request.NewErrParamMinLen("TemplateURL", 1))
6446	}
6447	if s.ResourcesToImport != nil {
6448		for i, v := range s.ResourcesToImport {
6449			if v == nil {
6450				continue
6451			}
6452			if err := v.Validate(); err != nil {
6453				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "ResourcesToImport", i), err.(request.ErrInvalidParams))
6454			}
6455		}
6456	}
6457	if s.RollbackConfiguration != nil {
6458		if err := s.RollbackConfiguration.Validate(); err != nil {
6459			invalidParams.AddNested("RollbackConfiguration", err.(request.ErrInvalidParams))
6460		}
6461	}
6462	if s.Tags != nil {
6463		for i, v := range s.Tags {
6464			if v == nil {
6465				continue
6466			}
6467			if err := v.Validate(); err != nil {
6468				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Tags", i), err.(request.ErrInvalidParams))
6469			}
6470		}
6471	}
6472
6473	if invalidParams.Len() > 0 {
6474		return invalidParams
6475	}
6476	return nil
6477}
6478
6479// SetCapabilities sets the Capabilities field's value.
6480func (s *CreateChangeSetInput) SetCapabilities(v []*string) *CreateChangeSetInput {
6481	s.Capabilities = v
6482	return s
6483}
6484
6485// SetChangeSetName sets the ChangeSetName field's value.
6486func (s *CreateChangeSetInput) SetChangeSetName(v string) *CreateChangeSetInput {
6487	s.ChangeSetName = &v
6488	return s
6489}
6490
6491// SetChangeSetType sets the ChangeSetType field's value.
6492func (s *CreateChangeSetInput) SetChangeSetType(v string) *CreateChangeSetInput {
6493	s.ChangeSetType = &v
6494	return s
6495}
6496
6497// SetClientToken sets the ClientToken field's value.
6498func (s *CreateChangeSetInput) SetClientToken(v string) *CreateChangeSetInput {
6499	s.ClientToken = &v
6500	return s
6501}
6502
6503// SetDescription sets the Description field's value.
6504func (s *CreateChangeSetInput) SetDescription(v string) *CreateChangeSetInput {
6505	s.Description = &v
6506	return s
6507}
6508
6509// SetIncludeNestedStacks sets the IncludeNestedStacks field's value.
6510func (s *CreateChangeSetInput) SetIncludeNestedStacks(v bool) *CreateChangeSetInput {
6511	s.IncludeNestedStacks = &v
6512	return s
6513}
6514
6515// SetNotificationARNs sets the NotificationARNs field's value.
6516func (s *CreateChangeSetInput) SetNotificationARNs(v []*string) *CreateChangeSetInput {
6517	s.NotificationARNs = v
6518	return s
6519}
6520
6521// SetParameters sets the Parameters field's value.
6522func (s *CreateChangeSetInput) SetParameters(v []*Parameter) *CreateChangeSetInput {
6523	s.Parameters = v
6524	return s
6525}
6526
6527// SetResourceTypes sets the ResourceTypes field's value.
6528func (s *CreateChangeSetInput) SetResourceTypes(v []*string) *CreateChangeSetInput {
6529	s.ResourceTypes = v
6530	return s
6531}
6532
6533// SetResourcesToImport sets the ResourcesToImport field's value.
6534func (s *CreateChangeSetInput) SetResourcesToImport(v []*ResourceToImport) *CreateChangeSetInput {
6535	s.ResourcesToImport = v
6536	return s
6537}
6538
6539// SetRoleARN sets the RoleARN field's value.
6540func (s *CreateChangeSetInput) SetRoleARN(v string) *CreateChangeSetInput {
6541	s.RoleARN = &v
6542	return s
6543}
6544
6545// SetRollbackConfiguration sets the RollbackConfiguration field's value.
6546func (s *CreateChangeSetInput) SetRollbackConfiguration(v *RollbackConfiguration) *CreateChangeSetInput {
6547	s.RollbackConfiguration = v
6548	return s
6549}
6550
6551// SetStackName sets the StackName field's value.
6552func (s *CreateChangeSetInput) SetStackName(v string) *CreateChangeSetInput {
6553	s.StackName = &v
6554	return s
6555}
6556
6557// SetTags sets the Tags field's value.
6558func (s *CreateChangeSetInput) SetTags(v []*Tag) *CreateChangeSetInput {
6559	s.Tags = v
6560	return s
6561}
6562
6563// SetTemplateBody sets the TemplateBody field's value.
6564func (s *CreateChangeSetInput) SetTemplateBody(v string) *CreateChangeSetInput {
6565	s.TemplateBody = &v
6566	return s
6567}
6568
6569// SetTemplateURL sets the TemplateURL field's value.
6570func (s *CreateChangeSetInput) SetTemplateURL(v string) *CreateChangeSetInput {
6571	s.TemplateURL = &v
6572	return s
6573}
6574
6575// SetUsePreviousTemplate sets the UsePreviousTemplate field's value.
6576func (s *CreateChangeSetInput) SetUsePreviousTemplate(v bool) *CreateChangeSetInput {
6577	s.UsePreviousTemplate = &v
6578	return s
6579}
6580
6581// The output for the CreateChangeSet action.
6582type CreateChangeSetOutput struct {
6583	_ struct{} `type:"structure"`
6584
6585	// The Amazon Resource Name (ARN) of the change set.
6586	Id *string `min:"1" type:"string"`
6587
6588	// The unique ID of the stack.
6589	StackId *string `type:"string"`
6590}
6591
6592// String returns the string representation
6593func (s CreateChangeSetOutput) String() string {
6594	return awsutil.Prettify(s)
6595}
6596
6597// GoString returns the string representation
6598func (s CreateChangeSetOutput) GoString() string {
6599	return s.String()
6600}
6601
6602// SetId sets the Id field's value.
6603func (s *CreateChangeSetOutput) SetId(v string) *CreateChangeSetOutput {
6604	s.Id = &v
6605	return s
6606}
6607
6608// SetStackId sets the StackId field's value.
6609func (s *CreateChangeSetOutput) SetStackId(v string) *CreateChangeSetOutput {
6610	s.StackId = &v
6611	return s
6612}
6613
6614// The input for CreateStack action.
6615type CreateStackInput struct {
6616	_ struct{} `type:"structure"`
6617
6618	// In some cases, you must explicitly acknowledge that your stack template contains
6619	// certain capabilities in order for AWS CloudFormation to create the stack.
6620	//
6621	//    * CAPABILITY_IAM and CAPABILITY_NAMED_IAM Some stack templates might include
6622	//    resources that can affect permissions in your AWS account; for example,
6623	//    by creating new AWS Identity and Access Management (IAM) users. For those
6624	//    stacks, you must explicitly acknowledge this by specifying one of these
6625	//    capabilities. The following IAM resources require you to specify either
6626	//    the CAPABILITY_IAM or CAPABILITY_NAMED_IAM capability. If you have IAM
6627	//    resources, you can specify either capability. If you have IAM resources
6628	//    with custom names, you must specify CAPABILITY_NAMED_IAM. If you don't
6629	//    specify either of these capabilities, AWS CloudFormation returns an InsufficientCapabilities
6630	//    error. If your stack template contains these resources, we recommend that
6631	//    you review all permissions associated with them and edit their permissions
6632	//    if necessary. AWS::IAM::AccessKey (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iam-accesskey.html)
6633	//    AWS::IAM::Group (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iam-group.html)
6634	//    AWS::IAM::InstanceProfile (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iam-instanceprofile.html)
6635	//    AWS::IAM::Policy (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iam-policy.html)
6636	//    AWS::IAM::Role (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iam-role.html)
6637	//    AWS::IAM::User (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iam-user.html)
6638	//    AWS::IAM::UserToGroupAddition (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iam-addusertogroup.html)
6639	//    For more information, see Acknowledging IAM Resources in AWS CloudFormation
6640	//    Templates (http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-iam-template.html#capabilities).
6641	//
6642	//    * CAPABILITY_AUTO_EXPAND Some template contain macros. Macros perform
6643	//    custom processing on templates; this can include simple actions like find-and-replace
6644	//    operations, all the way to extensive transformations of entire templates.
6645	//    Because of this, users typically create a change set from the processed
6646	//    template, so that they can review the changes resulting from the macros
6647	//    before actually creating the stack. If your stack template contains one
6648	//    or more macros, and you choose to create a stack directly from the processed
6649	//    template, without first reviewing the resulting changes in a change set,
6650	//    you must acknowledge this capability. This includes the AWS::Include (http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/create-reusable-transform-function-snippets-and-add-to-your-template-with-aws-include-transform.html)
6651	//    and AWS::Serverless (http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/transform-aws-serverless.html)
6652	//    transforms, which are macros hosted by AWS CloudFormation. If you want
6653	//    to create a stack from a stack template that contains macros and nested
6654	//    stacks, you must create the stack directly from the template using this
6655	//    capability. You should only create stacks directly from a stack template
6656	//    that contains macros if you know what processing the macro performs. Each
6657	//    macro relies on an underlying Lambda service function for processing stack
6658	//    templates. Be aware that the Lambda function owner can update the function
6659	//    operation without AWS CloudFormation being notified. For more information,
6660	//    see Using AWS CloudFormation Macros to Perform Custom Processing on Templates
6661	//    (http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/template-macros.html).
6662	Capabilities []*string `type:"list"`
6663
6664	// A unique identifier for this CreateStack request. Specify this token if you
6665	// plan to retry requests so that AWS CloudFormation knows that you're not attempting
6666	// to create a stack with the same name. You might retry CreateStack requests
6667	// to ensure that AWS CloudFormation successfully received them.
6668	//
6669	// All events triggered by a given stack operation are assigned the same client
6670	// request token, which you can use to track operations. For example, if you
6671	// execute a CreateStack operation with the token token1, then all the StackEvents
6672	// generated by that operation will have ClientRequestToken set as token1.
6673	//
6674	// In the console, stack operations display the client request token on the
6675	// Events tab. Stack operations that are initiated from the console use the
6676	// token format Console-StackOperation-ID, which helps you easily identify the
6677	// stack operation . For example, if you create a stack using the console, each
6678	// stack event would be assigned the same token in the following format: Console-CreateStack-7f59c3cf-00d2-40c7-b2ff-e75db0987002.
6679	ClientRequestToken *string `min:"1" type:"string"`
6680
6681	// Set to true to disable rollback of the stack if stack creation failed. You
6682	// can specify either DisableRollback or OnFailure, but not both.
6683	//
6684	// Default: false
6685	DisableRollback *bool `type:"boolean"`
6686
6687	// Whether to enable termination protection on the specified stack. If a user
6688	// attempts to delete a stack with termination protection enabled, the operation
6689	// fails and the stack remains unchanged. For more information, see Protecting
6690	// a Stack From Being Deleted (http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-protect-stacks.html)
6691	// in the AWS CloudFormation User Guide. Termination protection is disabled
6692	// on stacks by default.
6693	//
6694	// For nested stacks (http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-nested-stacks.html),
6695	// termination protection is set on the root stack and cannot be changed directly
6696	// on the nested stack.
6697	EnableTerminationProtection *bool `type:"boolean"`
6698
6699	// The Simple Notification Service (SNS) topic ARNs to publish stack related
6700	// events. You can find your SNS topic ARNs using the SNS console or your Command
6701	// Line Interface (CLI).
6702	NotificationARNs []*string `type:"list"`
6703
6704	// Determines what action will be taken if stack creation fails. This must be
6705	// one of: DO_NOTHING, ROLLBACK, or DELETE. You can specify either OnFailure
6706	// or DisableRollback, but not both.
6707	//
6708	// Default: ROLLBACK
6709	OnFailure *string `type:"string" enum:"OnFailure"`
6710
6711	// A list of Parameter structures that specify input parameters for the stack.
6712	// For more information, see the Parameter (https://docs.aws.amazon.com/AWSCloudFormation/latest/APIReference/API_Parameter.html)
6713	// data type.
6714	Parameters []*Parameter `type:"list"`
6715
6716	// The template resource types that you have permissions to work with for this
6717	// create stack action, such as AWS::EC2::Instance, AWS::EC2::*, or Custom::MyCustomInstance.
6718	// Use the following syntax to describe template resource types: AWS::* (for
6719	// all AWS resource), Custom::* (for all custom resources), Custom::logical_ID
6720	// (for a specific custom resource), AWS::service_name::* (for all resources
6721	// of a particular AWS service), and AWS::service_name::resource_logical_ID
6722	// (for a specific AWS resource).
6723	//
6724	// If the list of resource types doesn't include a resource that you're creating,
6725	// the stack creation fails. By default, AWS CloudFormation grants permissions
6726	// to all resource types. AWS Identity and Access Management (IAM) uses this
6727	// parameter for AWS CloudFormation-specific condition keys in IAM policies.
6728	// For more information, see Controlling Access with AWS Identity and Access
6729	// Management (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-iam-template.html).
6730	ResourceTypes []*string `type:"list"`
6731
6732	// The Amazon Resource Name (ARN) of an AWS Identity and Access Management (IAM)
6733	// role that AWS CloudFormation assumes to create the stack. AWS CloudFormation
6734	// uses the role's credentials to make calls on your behalf. AWS CloudFormation
6735	// always uses this role for all future operations on the stack. As long as
6736	// users have permission to operate on the stack, AWS CloudFormation uses this
6737	// role even if the users don't have permission to pass it. Ensure that the
6738	// role grants least privilege.
6739	//
6740	// If you don't specify a value, AWS CloudFormation uses the role that was previously
6741	// associated with the stack. If no role is available, AWS CloudFormation uses
6742	// a temporary session that is generated from your user credentials.
6743	RoleARN *string `min:"20" type:"string"`
6744
6745	// The rollback triggers for AWS CloudFormation to monitor during stack creation
6746	// and updating operations, and for the specified monitoring period afterwards.
6747	RollbackConfiguration *RollbackConfiguration `type:"structure"`
6748
6749	// The name that is associated with the stack. The name must be unique in the
6750	// Region in which you are creating the stack.
6751	//
6752	// A stack name can contain only alphanumeric characters (case sensitive) and
6753	// hyphens. It must start with an alphabetic character and cannot be longer
6754	// than 128 characters.
6755	//
6756	// StackName is a required field
6757	StackName *string `type:"string" required:"true"`
6758
6759	// Structure containing the stack policy body. For more information, go to Prevent
6760	// Updates to Stack Resources (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/protect-stack-resources.html)
6761	// in the AWS CloudFormation User Guide. You can specify either the StackPolicyBody
6762	// or the StackPolicyURL parameter, but not both.
6763	StackPolicyBody *string `min:"1" type:"string"`
6764
6765	// Location of a file containing the stack policy. The URL must point to a policy
6766	// (maximum size: 16 KB) located in an S3 bucket in the same Region as the stack.
6767	// You can specify either the StackPolicyBody or the StackPolicyURL parameter,
6768	// but not both.
6769	StackPolicyURL *string `min:"1" type:"string"`
6770
6771	// Key-value pairs to associate with this stack. AWS CloudFormation also propagates
6772	// these tags to the resources created in the stack. A maximum number of 50
6773	// tags can be specified.
6774	Tags []*Tag `type:"list"`
6775
6776	// Structure containing the template body with a minimum length of 1 byte and
6777	// a maximum length of 51,200 bytes. For more information, go to Template Anatomy
6778	// (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/template-anatomy.html)
6779	// in the AWS CloudFormation User Guide.
6780	//
6781	// Conditional: You must specify either the TemplateBody or the TemplateURL
6782	// parameter, but not both.
6783	TemplateBody *string `min:"1" type:"string"`
6784
6785	// Location of file containing the template body. The URL must point to a template
6786	// (max size: 460,800 bytes) that is located in an Amazon S3 bucket or a Systems
6787	// Manager document. For more information, go to the Template Anatomy (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/template-anatomy.html)
6788	// in the AWS CloudFormation User Guide.
6789	//
6790	// Conditional: You must specify either the TemplateBody or the TemplateURL
6791	// parameter, but not both.
6792	TemplateURL *string `min:"1" type:"string"`
6793
6794	// The amount of time that can pass before the stack status becomes CREATE_FAILED;
6795	// if DisableRollback is not set or is set to false, the stack will be rolled
6796	// back.
6797	TimeoutInMinutes *int64 `min:"1" type:"integer"`
6798}
6799
6800// String returns the string representation
6801func (s CreateStackInput) String() string {
6802	return awsutil.Prettify(s)
6803}
6804
6805// GoString returns the string representation
6806func (s CreateStackInput) GoString() string {
6807	return s.String()
6808}
6809
6810// Validate inspects the fields of the type to determine if they are valid.
6811func (s *CreateStackInput) Validate() error {
6812	invalidParams := request.ErrInvalidParams{Context: "CreateStackInput"}
6813	if s.ClientRequestToken != nil && len(*s.ClientRequestToken) < 1 {
6814		invalidParams.Add(request.NewErrParamMinLen("ClientRequestToken", 1))
6815	}
6816	if s.RoleARN != nil && len(*s.RoleARN) < 20 {
6817		invalidParams.Add(request.NewErrParamMinLen("RoleARN", 20))
6818	}
6819	if s.StackName == nil {
6820		invalidParams.Add(request.NewErrParamRequired("StackName"))
6821	}
6822	if s.StackPolicyBody != nil && len(*s.StackPolicyBody) < 1 {
6823		invalidParams.Add(request.NewErrParamMinLen("StackPolicyBody", 1))
6824	}
6825	if s.StackPolicyURL != nil && len(*s.StackPolicyURL) < 1 {
6826		invalidParams.Add(request.NewErrParamMinLen("StackPolicyURL", 1))
6827	}
6828	if s.TemplateBody != nil && len(*s.TemplateBody) < 1 {
6829		invalidParams.Add(request.NewErrParamMinLen("TemplateBody", 1))
6830	}
6831	if s.TemplateURL != nil && len(*s.TemplateURL) < 1 {
6832		invalidParams.Add(request.NewErrParamMinLen("TemplateURL", 1))
6833	}
6834	if s.TimeoutInMinutes != nil && *s.TimeoutInMinutes < 1 {
6835		invalidParams.Add(request.NewErrParamMinValue("TimeoutInMinutes", 1))
6836	}
6837	if s.RollbackConfiguration != nil {
6838		if err := s.RollbackConfiguration.Validate(); err != nil {
6839			invalidParams.AddNested("RollbackConfiguration", err.(request.ErrInvalidParams))
6840		}
6841	}
6842	if s.Tags != nil {
6843		for i, v := range s.Tags {
6844			if v == nil {
6845				continue
6846			}
6847			if err := v.Validate(); err != nil {
6848				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Tags", i), err.(request.ErrInvalidParams))
6849			}
6850		}
6851	}
6852
6853	if invalidParams.Len() > 0 {
6854		return invalidParams
6855	}
6856	return nil
6857}
6858
6859// SetCapabilities sets the Capabilities field's value.
6860func (s *CreateStackInput) SetCapabilities(v []*string) *CreateStackInput {
6861	s.Capabilities = v
6862	return s
6863}
6864
6865// SetClientRequestToken sets the ClientRequestToken field's value.
6866func (s *CreateStackInput) SetClientRequestToken(v string) *CreateStackInput {
6867	s.ClientRequestToken = &v
6868	return s
6869}
6870
6871// SetDisableRollback sets the DisableRollback field's value.
6872func (s *CreateStackInput) SetDisableRollback(v bool) *CreateStackInput {
6873	s.DisableRollback = &v
6874	return s
6875}
6876
6877// SetEnableTerminationProtection sets the EnableTerminationProtection field's value.
6878func (s *CreateStackInput) SetEnableTerminationProtection(v bool) *CreateStackInput {
6879	s.EnableTerminationProtection = &v
6880	return s
6881}
6882
6883// SetNotificationARNs sets the NotificationARNs field's value.
6884func (s *CreateStackInput) SetNotificationARNs(v []*string) *CreateStackInput {
6885	s.NotificationARNs = v
6886	return s
6887}
6888
6889// SetOnFailure sets the OnFailure field's value.
6890func (s *CreateStackInput) SetOnFailure(v string) *CreateStackInput {
6891	s.OnFailure = &v
6892	return s
6893}
6894
6895// SetParameters sets the Parameters field's value.
6896func (s *CreateStackInput) SetParameters(v []*Parameter) *CreateStackInput {
6897	s.Parameters = v
6898	return s
6899}
6900
6901// SetResourceTypes sets the ResourceTypes field's value.
6902func (s *CreateStackInput) SetResourceTypes(v []*string) *CreateStackInput {
6903	s.ResourceTypes = v
6904	return s
6905}
6906
6907// SetRoleARN sets the RoleARN field's value.
6908func (s *CreateStackInput) SetRoleARN(v string) *CreateStackInput {
6909	s.RoleARN = &v
6910	return s
6911}
6912
6913// SetRollbackConfiguration sets the RollbackConfiguration field's value.
6914func (s *CreateStackInput) SetRollbackConfiguration(v *RollbackConfiguration) *CreateStackInput {
6915	s.RollbackConfiguration = v
6916	return s
6917}
6918
6919// SetStackName sets the StackName field's value.
6920func (s *CreateStackInput) SetStackName(v string) *CreateStackInput {
6921	s.StackName = &v
6922	return s
6923}
6924
6925// SetStackPolicyBody sets the StackPolicyBody field's value.
6926func (s *CreateStackInput) SetStackPolicyBody(v string) *CreateStackInput {
6927	s.StackPolicyBody = &v
6928	return s
6929}
6930
6931// SetStackPolicyURL sets the StackPolicyURL field's value.
6932func (s *CreateStackInput) SetStackPolicyURL(v string) *CreateStackInput {
6933	s.StackPolicyURL = &v
6934	return s
6935}
6936
6937// SetTags sets the Tags field's value.
6938func (s *CreateStackInput) SetTags(v []*Tag) *CreateStackInput {
6939	s.Tags = v
6940	return s
6941}
6942
6943// SetTemplateBody sets the TemplateBody field's value.
6944func (s *CreateStackInput) SetTemplateBody(v string) *CreateStackInput {
6945	s.TemplateBody = &v
6946	return s
6947}
6948
6949// SetTemplateURL sets the TemplateURL field's value.
6950func (s *CreateStackInput) SetTemplateURL(v string) *CreateStackInput {
6951	s.TemplateURL = &v
6952	return s
6953}
6954
6955// SetTimeoutInMinutes sets the TimeoutInMinutes field's value.
6956func (s *CreateStackInput) SetTimeoutInMinutes(v int64) *CreateStackInput {
6957	s.TimeoutInMinutes = &v
6958	return s
6959}
6960
6961type CreateStackInstancesInput struct {
6962	_ struct{} `type:"structure"`
6963
6964	// [Self-managed permissions] The names of one or more AWS accounts that you
6965	// want to create stack instances in the specified Region(s) for.
6966	//
6967	// You can specify Accounts or DeploymentTargets, but not both.
6968	Accounts []*string `type:"list"`
6969
6970	// [Service-managed permissions] Specifies whether you are acting as an account
6971	// administrator in the organization's management account or as a delegated
6972	// administrator in a member account.
6973	//
6974	// By default, SELF is specified. Use SELF for stack sets with self-managed
6975	// permissions.
6976	//
6977	//    * If you are signed in to the management account, specify SELF.
6978	//
6979	//    * If you are signed in to a delegated administrator account, specify DELEGATED_ADMIN.
6980	//    Your AWS account must be registered as a delegated administrator in the
6981	//    management account. For more information, see Register a delegated administrator
6982	//    (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/stacksets-orgs-delegated-admin.html)
6983	//    in the AWS CloudFormation User Guide.
6984	CallAs *string `type:"string" enum:"CallAs"`
6985
6986	// [Service-managed permissions] The AWS Organizations accounts for which to
6987	// create stack instances in the specified Regions.
6988	//
6989	// You can specify Accounts or DeploymentTargets, but not both.
6990	DeploymentTargets *DeploymentTargets `type:"structure"`
6991
6992	// The unique identifier for this stack set operation.
6993	//
6994	// The operation ID also functions as an idempotency token, to ensure that AWS
6995	// CloudFormation performs the stack set operation only once, even if you retry
6996	// the request multiple times. You might retry stack set operation requests
6997	// to ensure that AWS CloudFormation successfully received them.
6998	//
6999	// If you don't specify an operation ID, the SDK generates one automatically.
7000	//
7001	// Repeating this stack set operation with a new operation ID retries all stack
7002	// instances whose status is OUTDATED.
7003	OperationId *string `min:"1" type:"string" idempotencyToken:"true"`
7004
7005	// Preferences for how AWS CloudFormation performs this stack set operation.
7006	OperationPreferences *StackSetOperationPreferences `type:"structure"`
7007
7008	// A list of stack set parameters whose values you want to override in the selected
7009	// stack instances.
7010	//
7011	// Any overridden parameter values will be applied to all stack instances in
7012	// the specified accounts and Regions. When specifying parameters and their
7013	// values, be aware of how AWS CloudFormation sets parameter values during stack
7014	// instance operations:
7015	//
7016	//    * To override the current value for a parameter, include the parameter
7017	//    and specify its value.
7018	//
7019	//    * To leave a parameter set to its present value, you can do one of the
7020	//    following: Do not include the parameter in the list. Include the parameter
7021	//    and specify UsePreviousValue as true. (You cannot specify both a value
7022	//    and set UsePreviousValue to true.)
7023	//
7024	//    * To set all overridden parameter back to the values specified in the
7025	//    stack set, specify a parameter list but do not include any parameters.
7026	//
7027	//    * To leave all parameters set to their present values, do not specify
7028	//    this property at all.
7029	//
7030	// During stack set updates, any parameter values overridden for a stack instance
7031	// are not updated, but retain their overridden value.
7032	//
7033	// You can only override the parameter values that are specified in the stack
7034	// set; to add or delete a parameter itself, use UpdateStackSet (https://docs.aws.amazon.com/AWSCloudFormation/latest/APIReference/API_UpdateStackSet.html)
7035	// to update the stack set template.
7036	ParameterOverrides []*Parameter `type:"list"`
7037
7038	// The names of one or more Regions where you want to create stack instances
7039	// using the specified AWS account(s).
7040	//
7041	// Regions is a required field
7042	Regions []*string `type:"list" required:"true"`
7043
7044	// The name or unique ID of the stack set that you want to create stack instances
7045	// from.
7046	//
7047	// StackSetName is a required field
7048	StackSetName *string `type:"string" required:"true"`
7049}
7050
7051// String returns the string representation
7052func (s CreateStackInstancesInput) String() string {
7053	return awsutil.Prettify(s)
7054}
7055
7056// GoString returns the string representation
7057func (s CreateStackInstancesInput) GoString() string {
7058	return s.String()
7059}
7060
7061// Validate inspects the fields of the type to determine if they are valid.
7062func (s *CreateStackInstancesInput) Validate() error {
7063	invalidParams := request.ErrInvalidParams{Context: "CreateStackInstancesInput"}
7064	if s.OperationId != nil && len(*s.OperationId) < 1 {
7065		invalidParams.Add(request.NewErrParamMinLen("OperationId", 1))
7066	}
7067	if s.Regions == nil {
7068		invalidParams.Add(request.NewErrParamRequired("Regions"))
7069	}
7070	if s.StackSetName == nil {
7071		invalidParams.Add(request.NewErrParamRequired("StackSetName"))
7072	}
7073	if s.DeploymentTargets != nil {
7074		if err := s.DeploymentTargets.Validate(); err != nil {
7075			invalidParams.AddNested("DeploymentTargets", err.(request.ErrInvalidParams))
7076		}
7077	}
7078	if s.OperationPreferences != nil {
7079		if err := s.OperationPreferences.Validate(); err != nil {
7080			invalidParams.AddNested("OperationPreferences", err.(request.ErrInvalidParams))
7081		}
7082	}
7083
7084	if invalidParams.Len() > 0 {
7085		return invalidParams
7086	}
7087	return nil
7088}
7089
7090// SetAccounts sets the Accounts field's value.
7091func (s *CreateStackInstancesInput) SetAccounts(v []*string) *CreateStackInstancesInput {
7092	s.Accounts = v
7093	return s
7094}
7095
7096// SetCallAs sets the CallAs field's value.
7097func (s *CreateStackInstancesInput) SetCallAs(v string) *CreateStackInstancesInput {
7098	s.CallAs = &v
7099	return s
7100}
7101
7102// SetDeploymentTargets sets the DeploymentTargets field's value.
7103func (s *CreateStackInstancesInput) SetDeploymentTargets(v *DeploymentTargets) *CreateStackInstancesInput {
7104	s.DeploymentTargets = v
7105	return s
7106}
7107
7108// SetOperationId sets the OperationId field's value.
7109func (s *CreateStackInstancesInput) SetOperationId(v string) *CreateStackInstancesInput {
7110	s.OperationId = &v
7111	return s
7112}
7113
7114// SetOperationPreferences sets the OperationPreferences field's value.
7115func (s *CreateStackInstancesInput) SetOperationPreferences(v *StackSetOperationPreferences) *CreateStackInstancesInput {
7116	s.OperationPreferences = v
7117	return s
7118}
7119
7120// SetParameterOverrides sets the ParameterOverrides field's value.
7121func (s *CreateStackInstancesInput) SetParameterOverrides(v []*Parameter) *CreateStackInstancesInput {
7122	s.ParameterOverrides = v
7123	return s
7124}
7125
7126// SetRegions sets the Regions field's value.
7127func (s *CreateStackInstancesInput) SetRegions(v []*string) *CreateStackInstancesInput {
7128	s.Regions = v
7129	return s
7130}
7131
7132// SetStackSetName sets the StackSetName field's value.
7133func (s *CreateStackInstancesInput) SetStackSetName(v string) *CreateStackInstancesInput {
7134	s.StackSetName = &v
7135	return s
7136}
7137
7138type CreateStackInstancesOutput struct {
7139	_ struct{} `type:"structure"`
7140
7141	// The unique identifier for this stack set operation.
7142	OperationId *string `min:"1" type:"string"`
7143}
7144
7145// String returns the string representation
7146func (s CreateStackInstancesOutput) String() string {
7147	return awsutil.Prettify(s)
7148}
7149
7150// GoString returns the string representation
7151func (s CreateStackInstancesOutput) GoString() string {
7152	return s.String()
7153}
7154
7155// SetOperationId sets the OperationId field's value.
7156func (s *CreateStackInstancesOutput) SetOperationId(v string) *CreateStackInstancesOutput {
7157	s.OperationId = &v
7158	return s
7159}
7160
7161// The output for a CreateStack action.
7162type CreateStackOutput struct {
7163	_ struct{} `type:"structure"`
7164
7165	// Unique identifier of the stack.
7166	StackId *string `type:"string"`
7167}
7168
7169// String returns the string representation
7170func (s CreateStackOutput) String() string {
7171	return awsutil.Prettify(s)
7172}
7173
7174// GoString returns the string representation
7175func (s CreateStackOutput) GoString() string {
7176	return s.String()
7177}
7178
7179// SetStackId sets the StackId field's value.
7180func (s *CreateStackOutput) SetStackId(v string) *CreateStackOutput {
7181	s.StackId = &v
7182	return s
7183}
7184
7185type CreateStackSetInput struct {
7186	_ struct{} `type:"structure"`
7187
7188	// The Amazon Resource Number (ARN) of the IAM role to use to create this stack
7189	// set.
7190	//
7191	// Specify an IAM role only if you are using customized administrator roles
7192	// to control which users or groups can manage specific stack sets within the
7193	// same administrator account. For more information, see Prerequisites: Granting
7194	// Permissions for Stack Set Operations (http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/stacksets-prereqs.html)
7195	// in the AWS CloudFormation User Guide.
7196	AdministrationRoleARN *string `min:"20" type:"string"`
7197
7198	// Describes whether StackSets automatically deploys to AWS Organizations accounts
7199	// that are added to the target organization or organizational unit (OU). Specify
7200	// only if PermissionModel is SERVICE_MANAGED.
7201	AutoDeployment *AutoDeployment `type:"structure"`
7202
7203	// [Service-managed permissions] Specifies whether you are acting as an account
7204	// administrator in the organization's management account or as a delegated
7205	// administrator in a member account.
7206	//
7207	// By default, SELF is specified. Use SELF for stack sets with self-managed
7208	// permissions.
7209	//
7210	//    * To create a stack set with service-managed permissions while signed
7211	//    in to the management account, specify SELF.
7212	//
7213	//    * To create a stack set with service-managed permissions while signed
7214	//    in to a delegated administrator account, specify DELEGATED_ADMIN. Your
7215	//    AWS account must be registered as a delegated admin in the management
7216	//    account. For more information, see Register a delegated administrator
7217	//    (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/stacksets-orgs-delegated-admin.html)
7218	//    in the AWS CloudFormation User Guide.
7219	//
7220	// Stack sets with service-managed permissions are created in the management
7221	// account, including stack sets that are created by delegated administrators.
7222	CallAs *string `type:"string" enum:"CallAs"`
7223
7224	// In some cases, you must explicitly acknowledge that your stack set template
7225	// contains certain capabilities in order for AWS CloudFormation to create the
7226	// stack set and related stack instances.
7227	//
7228	//    * CAPABILITY_IAM and CAPABILITY_NAMED_IAM Some stack templates might include
7229	//    resources that can affect permissions in your AWS account; for example,
7230	//    by creating new AWS Identity and Access Management (IAM) users. For those
7231	//    stack sets, you must explicitly acknowledge this by specifying one of
7232	//    these capabilities. The following IAM resources require you to specify
7233	//    either the CAPABILITY_IAM or CAPABILITY_NAMED_IAM capability. If you have
7234	//    IAM resources, you can specify either capability. If you have IAM resources
7235	//    with custom names, you must specify CAPABILITY_NAMED_IAM. If you don't
7236	//    specify either of these capabilities, AWS CloudFormation returns an InsufficientCapabilities
7237	//    error. If your stack template contains these resources, we recommend that
7238	//    you review all permissions associated with them and edit their permissions
7239	//    if necessary. AWS::IAM::AccessKey (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iam-accesskey.html)
7240	//    AWS::IAM::Group (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iam-group.html)
7241	//    AWS::IAM::InstanceProfile (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iam-instanceprofile.html)
7242	//    AWS::IAM::Policy (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iam-policy.html)
7243	//    AWS::IAM::Role (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iam-role.html)
7244	//    AWS::IAM::User (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iam-user.html)
7245	//    AWS::IAM::UserToGroupAddition (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iam-addusertogroup.html)
7246	//    For more information, see Acknowledging IAM Resources in AWS CloudFormation
7247	//    Templates (http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-iam-template.html#capabilities).
7248	//
7249	//    * CAPABILITY_AUTO_EXPAND Some templates reference macros. If your stack
7250	//    set template references one or more macros, you must create the stack
7251	//    set directly from the processed template, without first reviewing the
7252	//    resulting changes in a change set. To create the stack set directly, you
7253	//    must acknowledge this capability. For more information, see Using AWS
7254	//    CloudFormation Macros to Perform Custom Processing on Templates (http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/template-macros.html).
7255	//    Stack sets with service-managed permissions do not currently support the
7256	//    use of macros in templates. (This includes the AWS::Include (http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/create-reusable-transform-function-snippets-and-add-to-your-template-with-aws-include-transform.html)
7257	//    and AWS::Serverless (http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/transform-aws-serverless.html)
7258	//    transforms, which are macros hosted by AWS CloudFormation.) Even if you
7259	//    specify this capability for a stack set with service-managed permissions,
7260	//    if you reference a macro in your template the stack set operation will
7261	//    fail.
7262	Capabilities []*string `type:"list"`
7263
7264	// A unique identifier for this CreateStackSet request. Specify this token if
7265	// you plan to retry requests so that AWS CloudFormation knows that you're not
7266	// attempting to create another stack set with the same name. You might retry
7267	// CreateStackSet requests to ensure that AWS CloudFormation successfully received
7268	// them.
7269	//
7270	// If you don't specify an operation ID, the SDK generates one automatically.
7271	ClientRequestToken *string `min:"1" type:"string" idempotencyToken:"true"`
7272
7273	// A description of the stack set. You can use the description to identify the
7274	// stack set's purpose or other important information.
7275	Description *string `min:"1" type:"string"`
7276
7277	// The name of the IAM execution role to use to create the stack set. If you
7278	// do not specify an execution role, AWS CloudFormation uses the AWSCloudFormationStackSetExecutionRole
7279	// role for the stack set operation.
7280	//
7281	// Specify an IAM role only if you are using customized execution roles to control
7282	// which stack resources users and groups can include in their stack sets.
7283	ExecutionRoleName *string `min:"1" type:"string"`
7284
7285	// The input parameters for the stack set template.
7286	Parameters []*Parameter `type:"list"`
7287
7288	// Describes how the IAM roles required for stack set operations are created.
7289	// By default, SELF-MANAGED is specified.
7290	//
7291	//    * With self-managed permissions, you must create the administrator and
7292	//    execution roles required to deploy to target accounts. For more information,
7293	//    see Grant Self-Managed Stack Set Permissions (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/stacksets-prereqs-self-managed.html).
7294	//
7295	//    * With service-managed permissions, StackSets automatically creates the
7296	//    IAM roles required to deploy to accounts managed by AWS Organizations.
7297	//    For more information, see Grant Service-Managed Stack Set Permissions
7298	//    (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/stacksets-prereqs-service-managed.html).
7299	PermissionModel *string `type:"string" enum:"PermissionModels"`
7300
7301	// The name to associate with the stack set. The name must be unique in the
7302	// Region where you create your stack set.
7303	//
7304	// A stack name can contain only alphanumeric characters (case-sensitive) and
7305	// hyphens. It must start with an alphabetic character and can't be longer than
7306	// 128 characters.
7307	//
7308	// StackSetName is a required field
7309	StackSetName *string `type:"string" required:"true"`
7310
7311	// The key-value pairs to associate with this stack set and the stacks created
7312	// from it. AWS CloudFormation also propagates these tags to supported resources
7313	// that are created in the stacks. A maximum number of 50 tags can be specified.
7314	//
7315	// If you specify tags as part of a CreateStackSet action, AWS CloudFormation
7316	// checks to see if you have the required IAM permission to tag resources. If
7317	// you don't, the entire CreateStackSet action fails with an access denied error,
7318	// and the stack set is not created.
7319	Tags []*Tag `type:"list"`
7320
7321	// The structure that contains the template body, with a minimum length of 1
7322	// byte and a maximum length of 51,200 bytes. For more information, see Template
7323	// Anatomy (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/template-anatomy.html)
7324	// in the AWS CloudFormation User Guide.
7325	//
7326	// Conditional: You must specify either the TemplateBody or the TemplateURL
7327	// parameter, but not both.
7328	TemplateBody *string `min:"1" type:"string"`
7329
7330	// The location of the file that contains the template body. The URL must point
7331	// to a template (maximum size: 460,800 bytes) that's located in an Amazon S3
7332	// bucket or a Systems Manager document. For more information, see Template
7333	// Anatomy (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/template-anatomy.html)
7334	// in the AWS CloudFormation User Guide.
7335	//
7336	// Conditional: You must specify either the TemplateBody or the TemplateURL
7337	// parameter, but not both.
7338	TemplateURL *string `min:"1" type:"string"`
7339}
7340
7341// String returns the string representation
7342func (s CreateStackSetInput) String() string {
7343	return awsutil.Prettify(s)
7344}
7345
7346// GoString returns the string representation
7347func (s CreateStackSetInput) GoString() string {
7348	return s.String()
7349}
7350
7351// Validate inspects the fields of the type to determine if they are valid.
7352func (s *CreateStackSetInput) Validate() error {
7353	invalidParams := request.ErrInvalidParams{Context: "CreateStackSetInput"}
7354	if s.AdministrationRoleARN != nil && len(*s.AdministrationRoleARN) < 20 {
7355		invalidParams.Add(request.NewErrParamMinLen("AdministrationRoleARN", 20))
7356	}
7357	if s.ClientRequestToken != nil && len(*s.ClientRequestToken) < 1 {
7358		invalidParams.Add(request.NewErrParamMinLen("ClientRequestToken", 1))
7359	}
7360	if s.Description != nil && len(*s.Description) < 1 {
7361		invalidParams.Add(request.NewErrParamMinLen("Description", 1))
7362	}
7363	if s.ExecutionRoleName != nil && len(*s.ExecutionRoleName) < 1 {
7364		invalidParams.Add(request.NewErrParamMinLen("ExecutionRoleName", 1))
7365	}
7366	if s.StackSetName == nil {
7367		invalidParams.Add(request.NewErrParamRequired("StackSetName"))
7368	}
7369	if s.TemplateBody != nil && len(*s.TemplateBody) < 1 {
7370		invalidParams.Add(request.NewErrParamMinLen("TemplateBody", 1))
7371	}
7372	if s.TemplateURL != nil && len(*s.TemplateURL) < 1 {
7373		invalidParams.Add(request.NewErrParamMinLen("TemplateURL", 1))
7374	}
7375	if s.Tags != nil {
7376		for i, v := range s.Tags {
7377			if v == nil {
7378				continue
7379			}
7380			if err := v.Validate(); err != nil {
7381				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Tags", i), err.(request.ErrInvalidParams))
7382			}
7383		}
7384	}
7385
7386	if invalidParams.Len() > 0 {
7387		return invalidParams
7388	}
7389	return nil
7390}
7391
7392// SetAdministrationRoleARN sets the AdministrationRoleARN field's value.
7393func (s *CreateStackSetInput) SetAdministrationRoleARN(v string) *CreateStackSetInput {
7394	s.AdministrationRoleARN = &v
7395	return s
7396}
7397
7398// SetAutoDeployment sets the AutoDeployment field's value.
7399func (s *CreateStackSetInput) SetAutoDeployment(v *AutoDeployment) *CreateStackSetInput {
7400	s.AutoDeployment = v
7401	return s
7402}
7403
7404// SetCallAs sets the CallAs field's value.
7405func (s *CreateStackSetInput) SetCallAs(v string) *CreateStackSetInput {
7406	s.CallAs = &v
7407	return s
7408}
7409
7410// SetCapabilities sets the Capabilities field's value.
7411func (s *CreateStackSetInput) SetCapabilities(v []*string) *CreateStackSetInput {
7412	s.Capabilities = v
7413	return s
7414}
7415
7416// SetClientRequestToken sets the ClientRequestToken field's value.
7417func (s *CreateStackSetInput) SetClientRequestToken(v string) *CreateStackSetInput {
7418	s.ClientRequestToken = &v
7419	return s
7420}
7421
7422// SetDescription sets the Description field's value.
7423func (s *CreateStackSetInput) SetDescription(v string) *CreateStackSetInput {
7424	s.Description = &v
7425	return s
7426}
7427
7428// SetExecutionRoleName sets the ExecutionRoleName field's value.
7429func (s *CreateStackSetInput) SetExecutionRoleName(v string) *CreateStackSetInput {
7430	s.ExecutionRoleName = &v
7431	return s
7432}
7433
7434// SetParameters sets the Parameters field's value.
7435func (s *CreateStackSetInput) SetParameters(v []*Parameter) *CreateStackSetInput {
7436	s.Parameters = v
7437	return s
7438}
7439
7440// SetPermissionModel sets the PermissionModel field's value.
7441func (s *CreateStackSetInput) SetPermissionModel(v string) *CreateStackSetInput {
7442	s.PermissionModel = &v
7443	return s
7444}
7445
7446// SetStackSetName sets the StackSetName field's value.
7447func (s *CreateStackSetInput) SetStackSetName(v string) *CreateStackSetInput {
7448	s.StackSetName = &v
7449	return s
7450}
7451
7452// SetTags sets the Tags field's value.
7453func (s *CreateStackSetInput) SetTags(v []*Tag) *CreateStackSetInput {
7454	s.Tags = v
7455	return s
7456}
7457
7458// SetTemplateBody sets the TemplateBody field's value.
7459func (s *CreateStackSetInput) SetTemplateBody(v string) *CreateStackSetInput {
7460	s.TemplateBody = &v
7461	return s
7462}
7463
7464// SetTemplateURL sets the TemplateURL field's value.
7465func (s *CreateStackSetInput) SetTemplateURL(v string) *CreateStackSetInput {
7466	s.TemplateURL = &v
7467	return s
7468}
7469
7470type CreateStackSetOutput struct {
7471	_ struct{} `type:"structure"`
7472
7473	// The ID of the stack set that you're creating.
7474	StackSetId *string `type:"string"`
7475}
7476
7477// String returns the string representation
7478func (s CreateStackSetOutput) String() string {
7479	return awsutil.Prettify(s)
7480}
7481
7482// GoString returns the string representation
7483func (s CreateStackSetOutput) GoString() string {
7484	return s.String()
7485}
7486
7487// SetStackSetId sets the StackSetId field's value.
7488func (s *CreateStackSetOutput) SetStackSetId(v string) *CreateStackSetOutput {
7489	s.StackSetId = &v
7490	return s
7491}
7492
7493// The input for the DeleteChangeSet action.
7494type DeleteChangeSetInput struct {
7495	_ struct{} `type:"structure"`
7496
7497	// The name or Amazon Resource Name (ARN) of the change set that you want to
7498	// delete.
7499	//
7500	// ChangeSetName is a required field
7501	ChangeSetName *string `min:"1" type:"string" required:"true"`
7502
7503	// If you specified the name of a change set to delete, specify the stack name
7504	// or ID (ARN) that is associated with it.
7505	StackName *string `min:"1" type:"string"`
7506}
7507
7508// String returns the string representation
7509func (s DeleteChangeSetInput) String() string {
7510	return awsutil.Prettify(s)
7511}
7512
7513// GoString returns the string representation
7514func (s DeleteChangeSetInput) GoString() string {
7515	return s.String()
7516}
7517
7518// Validate inspects the fields of the type to determine if they are valid.
7519func (s *DeleteChangeSetInput) Validate() error {
7520	invalidParams := request.ErrInvalidParams{Context: "DeleteChangeSetInput"}
7521	if s.ChangeSetName == nil {
7522		invalidParams.Add(request.NewErrParamRequired("ChangeSetName"))
7523	}
7524	if s.ChangeSetName != nil && len(*s.ChangeSetName) < 1 {
7525		invalidParams.Add(request.NewErrParamMinLen("ChangeSetName", 1))
7526	}
7527	if s.StackName != nil && len(*s.StackName) < 1 {
7528		invalidParams.Add(request.NewErrParamMinLen("StackName", 1))
7529	}
7530
7531	if invalidParams.Len() > 0 {
7532		return invalidParams
7533	}
7534	return nil
7535}
7536
7537// SetChangeSetName sets the ChangeSetName field's value.
7538func (s *DeleteChangeSetInput) SetChangeSetName(v string) *DeleteChangeSetInput {
7539	s.ChangeSetName = &v
7540	return s
7541}
7542
7543// SetStackName sets the StackName field's value.
7544func (s *DeleteChangeSetInput) SetStackName(v string) *DeleteChangeSetInput {
7545	s.StackName = &v
7546	return s
7547}
7548
7549// The output for the DeleteChangeSet action.
7550type DeleteChangeSetOutput struct {
7551	_ struct{} `type:"structure"`
7552}
7553
7554// String returns the string representation
7555func (s DeleteChangeSetOutput) String() string {
7556	return awsutil.Prettify(s)
7557}
7558
7559// GoString returns the string representation
7560func (s DeleteChangeSetOutput) GoString() string {
7561	return s.String()
7562}
7563
7564// The input for DeleteStack action.
7565type DeleteStackInput struct {
7566	_ struct{} `type:"structure"`
7567
7568	// A unique identifier for this DeleteStack request. Specify this token if you
7569	// plan to retry requests so that AWS CloudFormation knows that you're not attempting
7570	// to delete a stack with the same name. You might retry DeleteStack requests
7571	// to ensure that AWS CloudFormation successfully received them.
7572	//
7573	// All events triggered by a given stack operation are assigned the same client
7574	// request token, which you can use to track operations. For example, if you
7575	// execute a CreateStack operation with the token token1, then all the StackEvents
7576	// generated by that operation will have ClientRequestToken set as token1.
7577	//
7578	// In the console, stack operations display the client request token on the
7579	// Events tab. Stack operations that are initiated from the console use the
7580	// token format Console-StackOperation-ID, which helps you easily identify the
7581	// stack operation . For example, if you create a stack using the console, each
7582	// stack event would be assigned the same token in the following format: Console-CreateStack-7f59c3cf-00d2-40c7-b2ff-e75db0987002.
7583	ClientRequestToken *string `min:"1" type:"string"`
7584
7585	// For stacks in the DELETE_FAILED state, a list of resource logical IDs that
7586	// are associated with the resources you want to retain. During deletion, AWS
7587	// CloudFormation deletes the stack but does not delete the retained resources.
7588	//
7589	// Retaining resources is useful when you cannot delete a resource, such as
7590	// a non-empty S3 bucket, but you want to delete the stack.
7591	RetainResources []*string `type:"list"`
7592
7593	// The Amazon Resource Name (ARN) of an AWS Identity and Access Management (IAM)
7594	// role that AWS CloudFormation assumes to delete the stack. AWS CloudFormation
7595	// uses the role's credentials to make calls on your behalf.
7596	//
7597	// If you don't specify a value, AWS CloudFormation uses the role that was previously
7598	// associated with the stack. If no role is available, AWS CloudFormation uses
7599	// a temporary session that is generated from your user credentials.
7600	RoleARN *string `min:"20" type:"string"`
7601
7602	// The name or the unique stack ID that is associated with the stack.
7603	//
7604	// StackName is a required field
7605	StackName *string `type:"string" required:"true"`
7606}
7607
7608// String returns the string representation
7609func (s DeleteStackInput) String() string {
7610	return awsutil.Prettify(s)
7611}
7612
7613// GoString returns the string representation
7614func (s DeleteStackInput) GoString() string {
7615	return s.String()
7616}
7617
7618// Validate inspects the fields of the type to determine if they are valid.
7619func (s *DeleteStackInput) Validate() error {
7620	invalidParams := request.ErrInvalidParams{Context: "DeleteStackInput"}
7621	if s.ClientRequestToken != nil && len(*s.ClientRequestToken) < 1 {
7622		invalidParams.Add(request.NewErrParamMinLen("ClientRequestToken", 1))
7623	}
7624	if s.RoleARN != nil && len(*s.RoleARN) < 20 {
7625		invalidParams.Add(request.NewErrParamMinLen("RoleARN", 20))
7626	}
7627	if s.StackName == nil {
7628		invalidParams.Add(request.NewErrParamRequired("StackName"))
7629	}
7630
7631	if invalidParams.Len() > 0 {
7632		return invalidParams
7633	}
7634	return nil
7635}
7636
7637// SetClientRequestToken sets the ClientRequestToken field's value.
7638func (s *DeleteStackInput) SetClientRequestToken(v string) *DeleteStackInput {
7639	s.ClientRequestToken = &v
7640	return s
7641}
7642
7643// SetRetainResources sets the RetainResources field's value.
7644func (s *DeleteStackInput) SetRetainResources(v []*string) *DeleteStackInput {
7645	s.RetainResources = v
7646	return s
7647}
7648
7649// SetRoleARN sets the RoleARN field's value.
7650func (s *DeleteStackInput) SetRoleARN(v string) *DeleteStackInput {
7651	s.RoleARN = &v
7652	return s
7653}
7654
7655// SetStackName sets the StackName field's value.
7656func (s *DeleteStackInput) SetStackName(v string) *DeleteStackInput {
7657	s.StackName = &v
7658	return s
7659}
7660
7661type DeleteStackInstancesInput struct {
7662	_ struct{} `type:"structure"`
7663
7664	// [Self-managed permissions] The names of the AWS accounts that you want to
7665	// delete stack instances for.
7666	//
7667	// You can specify Accounts or DeploymentTargets, but not both.
7668	Accounts []*string `type:"list"`
7669
7670	// [Service-managed permissions] Specifies whether you are acting as an account
7671	// administrator in the organization's management account or as a delegated
7672	// administrator in a member account.
7673	//
7674	// By default, SELF is specified. Use SELF for stack sets with self-managed
7675	// permissions.
7676	//
7677	//    * If you are signed in to the management account, specify SELF.
7678	//
7679	//    * If you are signed in to a delegated administrator account, specify DELEGATED_ADMIN.
7680	//    Your AWS account must be registered as a delegated administrator in the
7681	//    management account. For more information, see Register a delegated administrator
7682	//    (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/stacksets-orgs-delegated-admin.html)
7683	//    in the AWS CloudFormation User Guide.
7684	CallAs *string `type:"string" enum:"CallAs"`
7685
7686	// [Service-managed permissions] The AWS Organizations accounts from which to
7687	// delete stack instances.
7688	//
7689	// You can specify Accounts or DeploymentTargets, but not both.
7690	DeploymentTargets *DeploymentTargets `type:"structure"`
7691
7692	// The unique identifier for this stack set operation.
7693	//
7694	// If you don't specify an operation ID, the SDK generates one automatically.
7695	//
7696	// The operation ID also functions as an idempotency token, to ensure that AWS
7697	// CloudFormation performs the stack set operation only once, even if you retry
7698	// the request multiple times. You can retry stack set operation requests to
7699	// ensure that AWS CloudFormation successfully received them.
7700	//
7701	// Repeating this stack set operation with a new operation ID retries all stack
7702	// instances whose status is OUTDATED.
7703	OperationId *string `min:"1" type:"string" idempotencyToken:"true"`
7704
7705	// Preferences for how AWS CloudFormation performs this stack set operation.
7706	OperationPreferences *StackSetOperationPreferences `type:"structure"`
7707
7708	// The Regions where you want to delete stack set instances.
7709	//
7710	// Regions is a required field
7711	Regions []*string `type:"list" required:"true"`
7712
7713	// Removes the stack instances from the specified stack set, but doesn't delete
7714	// the stacks. You can't reassociate a retained stack or add an existing, saved
7715	// stack to a new stack set.
7716	//
7717	// For more information, see Stack set operation options (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/stacksets-concepts.html#stackset-ops-options).
7718	//
7719	// RetainStacks is a required field
7720	RetainStacks *bool `type:"boolean" required:"true"`
7721
7722	// The name or unique ID of the stack set that you want to delete stack instances
7723	// for.
7724	//
7725	// StackSetName is a required field
7726	StackSetName *string `type:"string" required:"true"`
7727}
7728
7729// String returns the string representation
7730func (s DeleteStackInstancesInput) String() string {
7731	return awsutil.Prettify(s)
7732}
7733
7734// GoString returns the string representation
7735func (s DeleteStackInstancesInput) GoString() string {
7736	return s.String()
7737}
7738
7739// Validate inspects the fields of the type to determine if they are valid.
7740func (s *DeleteStackInstancesInput) Validate() error {
7741	invalidParams := request.ErrInvalidParams{Context: "DeleteStackInstancesInput"}
7742	if s.OperationId != nil && len(*s.OperationId) < 1 {
7743		invalidParams.Add(request.NewErrParamMinLen("OperationId", 1))
7744	}
7745	if s.Regions == nil {
7746		invalidParams.Add(request.NewErrParamRequired("Regions"))
7747	}
7748	if s.RetainStacks == nil {
7749		invalidParams.Add(request.NewErrParamRequired("RetainStacks"))
7750	}
7751	if s.StackSetName == nil {
7752		invalidParams.Add(request.NewErrParamRequired("StackSetName"))
7753	}
7754	if s.DeploymentTargets != nil {
7755		if err := s.DeploymentTargets.Validate(); err != nil {
7756			invalidParams.AddNested("DeploymentTargets", err.(request.ErrInvalidParams))
7757		}
7758	}
7759	if s.OperationPreferences != nil {
7760		if err := s.OperationPreferences.Validate(); err != nil {
7761			invalidParams.AddNested("OperationPreferences", err.(request.ErrInvalidParams))
7762		}
7763	}
7764
7765	if invalidParams.Len() > 0 {
7766		return invalidParams
7767	}
7768	return nil
7769}
7770
7771// SetAccounts sets the Accounts field's value.
7772func (s *DeleteStackInstancesInput) SetAccounts(v []*string) *DeleteStackInstancesInput {
7773	s.Accounts = v
7774	return s
7775}
7776
7777// SetCallAs sets the CallAs field's value.
7778func (s *DeleteStackInstancesInput) SetCallAs(v string) *DeleteStackInstancesInput {
7779	s.CallAs = &v
7780	return s
7781}
7782
7783// SetDeploymentTargets sets the DeploymentTargets field's value.
7784func (s *DeleteStackInstancesInput) SetDeploymentTargets(v *DeploymentTargets) *DeleteStackInstancesInput {
7785	s.DeploymentTargets = v
7786	return s
7787}
7788
7789// SetOperationId sets the OperationId field's value.
7790func (s *DeleteStackInstancesInput) SetOperationId(v string) *DeleteStackInstancesInput {
7791	s.OperationId = &v
7792	return s
7793}
7794
7795// SetOperationPreferences sets the OperationPreferences field's value.
7796func (s *DeleteStackInstancesInput) SetOperationPreferences(v *StackSetOperationPreferences) *DeleteStackInstancesInput {
7797	s.OperationPreferences = v
7798	return s
7799}
7800
7801// SetRegions sets the Regions field's value.
7802func (s *DeleteStackInstancesInput) SetRegions(v []*string) *DeleteStackInstancesInput {
7803	s.Regions = v
7804	return s
7805}
7806
7807// SetRetainStacks sets the RetainStacks field's value.
7808func (s *DeleteStackInstancesInput) SetRetainStacks(v bool) *DeleteStackInstancesInput {
7809	s.RetainStacks = &v
7810	return s
7811}
7812
7813// SetStackSetName sets the StackSetName field's value.
7814func (s *DeleteStackInstancesInput) SetStackSetName(v string) *DeleteStackInstancesInput {
7815	s.StackSetName = &v
7816	return s
7817}
7818
7819type DeleteStackInstancesOutput struct {
7820	_ struct{} `type:"structure"`
7821
7822	// The unique identifier for this stack set operation.
7823	OperationId *string `min:"1" type:"string"`
7824}
7825
7826// String returns the string representation
7827func (s DeleteStackInstancesOutput) String() string {
7828	return awsutil.Prettify(s)
7829}
7830
7831// GoString returns the string representation
7832func (s DeleteStackInstancesOutput) GoString() string {
7833	return s.String()
7834}
7835
7836// SetOperationId sets the OperationId field's value.
7837func (s *DeleteStackInstancesOutput) SetOperationId(v string) *DeleteStackInstancesOutput {
7838	s.OperationId = &v
7839	return s
7840}
7841
7842type DeleteStackOutput struct {
7843	_ struct{} `type:"structure"`
7844}
7845
7846// String returns the string representation
7847func (s DeleteStackOutput) String() string {
7848	return awsutil.Prettify(s)
7849}
7850
7851// GoString returns the string representation
7852func (s DeleteStackOutput) GoString() string {
7853	return s.String()
7854}
7855
7856type DeleteStackSetInput struct {
7857	_ struct{} `type:"structure"`
7858
7859	// [Service-managed permissions] Specifies whether you are acting as an account
7860	// administrator in the organization's management account or as a delegated
7861	// administrator in a member account.
7862	//
7863	// By default, SELF is specified. Use SELF for stack sets with self-managed
7864	// permissions.
7865	//
7866	//    * If you are signed in to the management account, specify SELF.
7867	//
7868	//    * If you are signed in to a delegated administrator account, specify DELEGATED_ADMIN.
7869	//    Your AWS account must be registered as a delegated administrator in the
7870	//    management account. For more information, see Register a delegated administrator
7871	//    (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/stacksets-orgs-delegated-admin.html)
7872	//    in the AWS CloudFormation User Guide.
7873	CallAs *string `type:"string" enum:"CallAs"`
7874
7875	// The name or unique ID of the stack set that you're deleting. You can obtain
7876	// this value by running ListStackSets.
7877	//
7878	// StackSetName is a required field
7879	StackSetName *string `type:"string" required:"true"`
7880}
7881
7882// String returns the string representation
7883func (s DeleteStackSetInput) String() string {
7884	return awsutil.Prettify(s)
7885}
7886
7887// GoString returns the string representation
7888func (s DeleteStackSetInput) GoString() string {
7889	return s.String()
7890}
7891
7892// Validate inspects the fields of the type to determine if they are valid.
7893func (s *DeleteStackSetInput) Validate() error {
7894	invalidParams := request.ErrInvalidParams{Context: "DeleteStackSetInput"}
7895	if s.StackSetName == nil {
7896		invalidParams.Add(request.NewErrParamRequired("StackSetName"))
7897	}
7898
7899	if invalidParams.Len() > 0 {
7900		return invalidParams
7901	}
7902	return nil
7903}
7904
7905// SetCallAs sets the CallAs field's value.
7906func (s *DeleteStackSetInput) SetCallAs(v string) *DeleteStackSetInput {
7907	s.CallAs = &v
7908	return s
7909}
7910
7911// SetStackSetName sets the StackSetName field's value.
7912func (s *DeleteStackSetInput) SetStackSetName(v string) *DeleteStackSetInput {
7913	s.StackSetName = &v
7914	return s
7915}
7916
7917type DeleteStackSetOutput struct {
7918	_ struct{} `type:"structure"`
7919}
7920
7921// String returns the string representation
7922func (s DeleteStackSetOutput) String() string {
7923	return awsutil.Prettify(s)
7924}
7925
7926// GoString returns the string representation
7927func (s DeleteStackSetOutput) GoString() string {
7928	return s.String()
7929}
7930
7931// [Service-managed permissions] The AWS Organizations accounts to which StackSets
7932// deploys. StackSets does not deploy stack instances to the organization management
7933// account, even if the organization management account is in your organization
7934// or in an OU in your organization.
7935//
7936// For update operations, you can specify either Accounts or OrganizationalUnitIds.
7937// For create and delete operations, specify OrganizationalUnitIds.
7938type DeploymentTargets struct {
7939	_ struct{} `type:"structure"`
7940
7941	// The names of one or more AWS accounts for which you want to deploy stack
7942	// set updates.
7943	Accounts []*string `type:"list"`
7944
7945	// Returns the value of the AccountsUrl property.
7946	AccountsUrl *string `min:"1" type:"string"`
7947
7948	// The organization root ID or organizational unit (OU) IDs to which StackSets
7949	// deploys.
7950	OrganizationalUnitIds []*string `type:"list"`
7951}
7952
7953// String returns the string representation
7954func (s DeploymentTargets) String() string {
7955	return awsutil.Prettify(s)
7956}
7957
7958// GoString returns the string representation
7959func (s DeploymentTargets) GoString() string {
7960	return s.String()
7961}
7962
7963// Validate inspects the fields of the type to determine if they are valid.
7964func (s *DeploymentTargets) Validate() error {
7965	invalidParams := request.ErrInvalidParams{Context: "DeploymentTargets"}
7966	if s.AccountsUrl != nil && len(*s.AccountsUrl) < 1 {
7967		invalidParams.Add(request.NewErrParamMinLen("AccountsUrl", 1))
7968	}
7969
7970	if invalidParams.Len() > 0 {
7971		return invalidParams
7972	}
7973	return nil
7974}
7975
7976// SetAccounts sets the Accounts field's value.
7977func (s *DeploymentTargets) SetAccounts(v []*string) *DeploymentTargets {
7978	s.Accounts = v
7979	return s
7980}
7981
7982// SetAccountsUrl sets the AccountsUrl field's value.
7983func (s *DeploymentTargets) SetAccountsUrl(v string) *DeploymentTargets {
7984	s.AccountsUrl = &v
7985	return s
7986}
7987
7988// SetOrganizationalUnitIds sets the OrganizationalUnitIds field's value.
7989func (s *DeploymentTargets) SetOrganizationalUnitIds(v []*string) *DeploymentTargets {
7990	s.OrganizationalUnitIds = v
7991	return s
7992}
7993
7994type DeregisterTypeInput struct {
7995	_ struct{} `type:"structure"`
7996
7997	// The Amazon Resource Name (ARN) of the extension.
7998	//
7999	// Conditional: You must specify either TypeName and Type, or Arn.
8000	Arn *string `type:"string"`
8001
8002	// The kind of extension.
8003	//
8004	// Conditional: You must specify either TypeName and Type, or Arn.
8005	Type *string `type:"string" enum:"RegistryType"`
8006
8007	// The name of the extension.
8008	//
8009	// Conditional: You must specify either TypeName and Type, or Arn.
8010	TypeName *string `min:"10" type:"string"`
8011
8012	// The ID of a specific version of the extension. The version ID is the value
8013	// at the end of the Amazon Resource Name (ARN) assigned to the extension version
8014	// when it is registered.
8015	VersionId *string `min:"1" type:"string"`
8016}
8017
8018// String returns the string representation
8019func (s DeregisterTypeInput) String() string {
8020	return awsutil.Prettify(s)
8021}
8022
8023// GoString returns the string representation
8024func (s DeregisterTypeInput) GoString() string {
8025	return s.String()
8026}
8027
8028// Validate inspects the fields of the type to determine if they are valid.
8029func (s *DeregisterTypeInput) Validate() error {
8030	invalidParams := request.ErrInvalidParams{Context: "DeregisterTypeInput"}
8031	if s.TypeName != nil && len(*s.TypeName) < 10 {
8032		invalidParams.Add(request.NewErrParamMinLen("TypeName", 10))
8033	}
8034	if s.VersionId != nil && len(*s.VersionId) < 1 {
8035		invalidParams.Add(request.NewErrParamMinLen("VersionId", 1))
8036	}
8037
8038	if invalidParams.Len() > 0 {
8039		return invalidParams
8040	}
8041	return nil
8042}
8043
8044// SetArn sets the Arn field's value.
8045func (s *DeregisterTypeInput) SetArn(v string) *DeregisterTypeInput {
8046	s.Arn = &v
8047	return s
8048}
8049
8050// SetType sets the Type field's value.
8051func (s *DeregisterTypeInput) SetType(v string) *DeregisterTypeInput {
8052	s.Type = &v
8053	return s
8054}
8055
8056// SetTypeName sets the TypeName field's value.
8057func (s *DeregisterTypeInput) SetTypeName(v string) *DeregisterTypeInput {
8058	s.TypeName = &v
8059	return s
8060}
8061
8062// SetVersionId sets the VersionId field's value.
8063func (s *DeregisterTypeInput) SetVersionId(v string) *DeregisterTypeInput {
8064	s.VersionId = &v
8065	return s
8066}
8067
8068type DeregisterTypeOutput struct {
8069	_ struct{} `type:"structure"`
8070}
8071
8072// String returns the string representation
8073func (s DeregisterTypeOutput) String() string {
8074	return awsutil.Prettify(s)
8075}
8076
8077// GoString returns the string representation
8078func (s DeregisterTypeOutput) GoString() string {
8079	return s.String()
8080}
8081
8082// The input for the DescribeAccountLimits action.
8083type DescribeAccountLimitsInput struct {
8084	_ struct{} `type:"structure"`
8085
8086	// A string that identifies the next page of limits that you want to retrieve.
8087	NextToken *string `min:"1" type:"string"`
8088}
8089
8090// String returns the string representation
8091func (s DescribeAccountLimitsInput) String() string {
8092	return awsutil.Prettify(s)
8093}
8094
8095// GoString returns the string representation
8096func (s DescribeAccountLimitsInput) GoString() string {
8097	return s.String()
8098}
8099
8100// Validate inspects the fields of the type to determine if they are valid.
8101func (s *DescribeAccountLimitsInput) Validate() error {
8102	invalidParams := request.ErrInvalidParams{Context: "DescribeAccountLimitsInput"}
8103	if s.NextToken != nil && len(*s.NextToken) < 1 {
8104		invalidParams.Add(request.NewErrParamMinLen("NextToken", 1))
8105	}
8106
8107	if invalidParams.Len() > 0 {
8108		return invalidParams
8109	}
8110	return nil
8111}
8112
8113// SetNextToken sets the NextToken field's value.
8114func (s *DescribeAccountLimitsInput) SetNextToken(v string) *DescribeAccountLimitsInput {
8115	s.NextToken = &v
8116	return s
8117}
8118
8119// The output for the DescribeAccountLimits action.
8120type DescribeAccountLimitsOutput struct {
8121	_ struct{} `type:"structure"`
8122
8123	// An account limit structure that contain a list of AWS CloudFormation account
8124	// limits and their values.
8125	AccountLimits []*AccountLimit `type:"list"`
8126
8127	// If the output exceeds 1 MB in size, a string that identifies the next page
8128	// of limits. If no additional page exists, this value is null.
8129	NextToken *string `min:"1" type:"string"`
8130}
8131
8132// String returns the string representation
8133func (s DescribeAccountLimitsOutput) String() string {
8134	return awsutil.Prettify(s)
8135}
8136
8137// GoString returns the string representation
8138func (s DescribeAccountLimitsOutput) GoString() string {
8139	return s.String()
8140}
8141
8142// SetAccountLimits sets the AccountLimits field's value.
8143func (s *DescribeAccountLimitsOutput) SetAccountLimits(v []*AccountLimit) *DescribeAccountLimitsOutput {
8144	s.AccountLimits = v
8145	return s
8146}
8147
8148// SetNextToken sets the NextToken field's value.
8149func (s *DescribeAccountLimitsOutput) SetNextToken(v string) *DescribeAccountLimitsOutput {
8150	s.NextToken = &v
8151	return s
8152}
8153
8154// The input for the DescribeChangeSet action.
8155type DescribeChangeSetInput struct {
8156	_ struct{} `type:"structure"`
8157
8158	// The name or Amazon Resource Name (ARN) of the change set that you want to
8159	// describe.
8160	//
8161	// ChangeSetName is a required field
8162	ChangeSetName *string `min:"1" type:"string" required:"true"`
8163
8164	// A string (provided by the DescribeChangeSet response output) that identifies
8165	// the next page of information that you want to retrieve.
8166	NextToken *string `min:"1" type:"string"`
8167
8168	// If you specified the name of a change set, specify the stack name or ID (ARN)
8169	// of the change set you want to describe.
8170	StackName *string `min:"1" type:"string"`
8171}
8172
8173// String returns the string representation
8174func (s DescribeChangeSetInput) String() string {
8175	return awsutil.Prettify(s)
8176}
8177
8178// GoString returns the string representation
8179func (s DescribeChangeSetInput) GoString() string {
8180	return s.String()
8181}
8182
8183// Validate inspects the fields of the type to determine if they are valid.
8184func (s *DescribeChangeSetInput) Validate() error {
8185	invalidParams := request.ErrInvalidParams{Context: "DescribeChangeSetInput"}
8186	if s.ChangeSetName == nil {
8187		invalidParams.Add(request.NewErrParamRequired("ChangeSetName"))
8188	}
8189	if s.ChangeSetName != nil && len(*s.ChangeSetName) < 1 {
8190		invalidParams.Add(request.NewErrParamMinLen("ChangeSetName", 1))
8191	}
8192	if s.NextToken != nil && len(*s.NextToken) < 1 {
8193		invalidParams.Add(request.NewErrParamMinLen("NextToken", 1))
8194	}
8195	if s.StackName != nil && len(*s.StackName) < 1 {
8196		invalidParams.Add(request.NewErrParamMinLen("StackName", 1))
8197	}
8198
8199	if invalidParams.Len() > 0 {
8200		return invalidParams
8201	}
8202	return nil
8203}
8204
8205// SetChangeSetName sets the ChangeSetName field's value.
8206func (s *DescribeChangeSetInput) SetChangeSetName(v string) *DescribeChangeSetInput {
8207	s.ChangeSetName = &v
8208	return s
8209}
8210
8211// SetNextToken sets the NextToken field's value.
8212func (s *DescribeChangeSetInput) SetNextToken(v string) *DescribeChangeSetInput {
8213	s.NextToken = &v
8214	return s
8215}
8216
8217// SetStackName sets the StackName field's value.
8218func (s *DescribeChangeSetInput) SetStackName(v string) *DescribeChangeSetInput {
8219	s.StackName = &v
8220	return s
8221}
8222
8223// The output for the DescribeChangeSet action.
8224type DescribeChangeSetOutput struct {
8225	_ struct{} `type:"structure"`
8226
8227	// If you execute the change set, the list of capabilities that were explicitly
8228	// acknowledged when the change set was created.
8229	Capabilities []*string `type:"list"`
8230
8231	// The ARN of the change set.
8232	ChangeSetId *string `min:"1" type:"string"`
8233
8234	// The name of the change set.
8235	ChangeSetName *string `min:"1" type:"string"`
8236
8237	// A list of Change structures that describes the resources AWS CloudFormation
8238	// changes if you execute the change set.
8239	Changes []*Change `type:"list"`
8240
8241	// The start time when the change set was created, in UTC.
8242	CreationTime *time.Time `type:"timestamp"`
8243
8244	// Information about the change set.
8245	Description *string `min:"1" type:"string"`
8246
8247	// If the change set execution status is AVAILABLE, you can execute the change
8248	// set. If you can’t execute the change set, the status indicates why. For
8249	// example, a change set might be in an UNAVAILABLE state because AWS CloudFormation
8250	// is still creating it or in an OBSOLETE state because the stack was already
8251	// updated.
8252	ExecutionStatus *string `type:"string" enum:"ExecutionStatus"`
8253
8254	// Verifies if IncludeNestedStacks is set to True.
8255	IncludeNestedStacks *bool `type:"boolean"`
8256
8257	// If the output exceeds 1 MB, a string that identifies the next page of changes.
8258	// If there is no additional page, this value is null.
8259	NextToken *string `min:"1" type:"string"`
8260
8261	// The ARNs of the Amazon Simple Notification Service (Amazon SNS) topics that
8262	// will be associated with the stack if you execute the change set.
8263	NotificationARNs []*string `type:"list"`
8264
8265	// A list of Parameter structures that describes the input parameters and their
8266	// values used to create the change set. For more information, see the Parameter
8267	// (https://docs.aws.amazon.com/AWSCloudFormation/latest/APIReference/API_Parameter.html)
8268	// data type.
8269	Parameters []*Parameter `type:"list"`
8270
8271	// Specifies the change set ID of the parent change set in the current nested
8272	// change set hierarchy.
8273	ParentChangeSetId *string `min:"1" type:"string"`
8274
8275	// The rollback triggers for AWS CloudFormation to monitor during stack creation
8276	// and updating operations, and for the specified monitoring period afterwards.
8277	RollbackConfiguration *RollbackConfiguration `type:"structure"`
8278
8279	// Specifies the change set ID of the root change set in the current nested
8280	// change set hierarchy.
8281	RootChangeSetId *string `min:"1" type:"string"`
8282
8283	// The ARN of the stack that is associated with the change set.
8284	StackId *string `type:"string"`
8285
8286	// The name of the stack that is associated with the change set.
8287	StackName *string `type:"string"`
8288
8289	// The current status of the change set, such as CREATE_IN_PROGRESS, CREATE_COMPLETE,
8290	// or FAILED.
8291	Status *string `type:"string" enum:"ChangeSetStatus"`
8292
8293	// A description of the change set's status. For example, if your attempt to
8294	// create a change set failed, AWS CloudFormation shows the error message.
8295	StatusReason *string `type:"string"`
8296
8297	// If you execute the change set, the tags that will be associated with the
8298	// stack.
8299	Tags []*Tag `type:"list"`
8300}
8301
8302// String returns the string representation
8303func (s DescribeChangeSetOutput) String() string {
8304	return awsutil.Prettify(s)
8305}
8306
8307// GoString returns the string representation
8308func (s DescribeChangeSetOutput) GoString() string {
8309	return s.String()
8310}
8311
8312// SetCapabilities sets the Capabilities field's value.
8313func (s *DescribeChangeSetOutput) SetCapabilities(v []*string) *DescribeChangeSetOutput {
8314	s.Capabilities = v
8315	return s
8316}
8317
8318// SetChangeSetId sets the ChangeSetId field's value.
8319func (s *DescribeChangeSetOutput) SetChangeSetId(v string) *DescribeChangeSetOutput {
8320	s.ChangeSetId = &v
8321	return s
8322}
8323
8324// SetChangeSetName sets the ChangeSetName field's value.
8325func (s *DescribeChangeSetOutput) SetChangeSetName(v string) *DescribeChangeSetOutput {
8326	s.ChangeSetName = &v
8327	return s
8328}
8329
8330// SetChanges sets the Changes field's value.
8331func (s *DescribeChangeSetOutput) SetChanges(v []*Change) *DescribeChangeSetOutput {
8332	s.Changes = v
8333	return s
8334}
8335
8336// SetCreationTime sets the CreationTime field's value.
8337func (s *DescribeChangeSetOutput) SetCreationTime(v time.Time) *DescribeChangeSetOutput {
8338	s.CreationTime = &v
8339	return s
8340}
8341
8342// SetDescription sets the Description field's value.
8343func (s *DescribeChangeSetOutput) SetDescription(v string) *DescribeChangeSetOutput {
8344	s.Description = &v
8345	return s
8346}
8347
8348// SetExecutionStatus sets the ExecutionStatus field's value.
8349func (s *DescribeChangeSetOutput) SetExecutionStatus(v string) *DescribeChangeSetOutput {
8350	s.ExecutionStatus = &v
8351	return s
8352}
8353
8354// SetIncludeNestedStacks sets the IncludeNestedStacks field's value.
8355func (s *DescribeChangeSetOutput) SetIncludeNestedStacks(v bool) *DescribeChangeSetOutput {
8356	s.IncludeNestedStacks = &v
8357	return s
8358}
8359
8360// SetNextToken sets the NextToken field's value.
8361func (s *DescribeChangeSetOutput) SetNextToken(v string) *DescribeChangeSetOutput {
8362	s.NextToken = &v
8363	return s
8364}
8365
8366// SetNotificationARNs sets the NotificationARNs field's value.
8367func (s *DescribeChangeSetOutput) SetNotificationARNs(v []*string) *DescribeChangeSetOutput {
8368	s.NotificationARNs = v
8369	return s
8370}
8371
8372// SetParameters sets the Parameters field's value.
8373func (s *DescribeChangeSetOutput) SetParameters(v []*Parameter) *DescribeChangeSetOutput {
8374	s.Parameters = v
8375	return s
8376}
8377
8378// SetParentChangeSetId sets the ParentChangeSetId field's value.
8379func (s *DescribeChangeSetOutput) SetParentChangeSetId(v string) *DescribeChangeSetOutput {
8380	s.ParentChangeSetId = &v
8381	return s
8382}
8383
8384// SetRollbackConfiguration sets the RollbackConfiguration field's value.
8385func (s *DescribeChangeSetOutput) SetRollbackConfiguration(v *RollbackConfiguration) *DescribeChangeSetOutput {
8386	s.RollbackConfiguration = v
8387	return s
8388}
8389
8390// SetRootChangeSetId sets the RootChangeSetId field's value.
8391func (s *DescribeChangeSetOutput) SetRootChangeSetId(v string) *DescribeChangeSetOutput {
8392	s.RootChangeSetId = &v
8393	return s
8394}
8395
8396// SetStackId sets the StackId field's value.
8397func (s *DescribeChangeSetOutput) SetStackId(v string) *DescribeChangeSetOutput {
8398	s.StackId = &v
8399	return s
8400}
8401
8402// SetStackName sets the StackName field's value.
8403func (s *DescribeChangeSetOutput) SetStackName(v string) *DescribeChangeSetOutput {
8404	s.StackName = &v
8405	return s
8406}
8407
8408// SetStatus sets the Status field's value.
8409func (s *DescribeChangeSetOutput) SetStatus(v string) *DescribeChangeSetOutput {
8410	s.Status = &v
8411	return s
8412}
8413
8414// SetStatusReason sets the StatusReason field's value.
8415func (s *DescribeChangeSetOutput) SetStatusReason(v string) *DescribeChangeSetOutput {
8416	s.StatusReason = &v
8417	return s
8418}
8419
8420// SetTags sets the Tags field's value.
8421func (s *DescribeChangeSetOutput) SetTags(v []*Tag) *DescribeChangeSetOutput {
8422	s.Tags = v
8423	return s
8424}
8425
8426type DescribeStackDriftDetectionStatusInput struct {
8427	_ struct{} `type:"structure"`
8428
8429	// The ID of the drift detection results of this operation.
8430	//
8431	// AWS CloudFormation generates new results, with a new drift detection ID,
8432	// each time this operation is run. However, the number of drift results AWS
8433	// CloudFormation retains for any given stack, and for how long, may vary.
8434	//
8435	// StackDriftDetectionId is a required field
8436	StackDriftDetectionId *string `min:"1" type:"string" required:"true"`
8437}
8438
8439// String returns the string representation
8440func (s DescribeStackDriftDetectionStatusInput) String() string {
8441	return awsutil.Prettify(s)
8442}
8443
8444// GoString returns the string representation
8445func (s DescribeStackDriftDetectionStatusInput) GoString() string {
8446	return s.String()
8447}
8448
8449// Validate inspects the fields of the type to determine if they are valid.
8450func (s *DescribeStackDriftDetectionStatusInput) Validate() error {
8451	invalidParams := request.ErrInvalidParams{Context: "DescribeStackDriftDetectionStatusInput"}
8452	if s.StackDriftDetectionId == nil {
8453		invalidParams.Add(request.NewErrParamRequired("StackDriftDetectionId"))
8454	}
8455	if s.StackDriftDetectionId != nil && len(*s.StackDriftDetectionId) < 1 {
8456		invalidParams.Add(request.NewErrParamMinLen("StackDriftDetectionId", 1))
8457	}
8458
8459	if invalidParams.Len() > 0 {
8460		return invalidParams
8461	}
8462	return nil
8463}
8464
8465// SetStackDriftDetectionId sets the StackDriftDetectionId field's value.
8466func (s *DescribeStackDriftDetectionStatusInput) SetStackDriftDetectionId(v string) *DescribeStackDriftDetectionStatusInput {
8467	s.StackDriftDetectionId = &v
8468	return s
8469}
8470
8471type DescribeStackDriftDetectionStatusOutput struct {
8472	_ struct{} `type:"structure"`
8473
8474	// The status of the stack drift detection operation.
8475	//
8476	//    * DETECTION_COMPLETE: The stack drift detection operation has successfully
8477	//    completed for all resources in the stack that support drift detection.
8478	//    (Resources that do not currently support stack detection remain unchecked.)
8479	//    If you specified logical resource IDs for AWS CloudFormation to use as
8480	//    a filter for the stack drift detection operation, only the resources with
8481	//    those logical IDs are checked for drift.
8482	//
8483	//    * DETECTION_FAILED: The stack drift detection operation has failed for
8484	//    at least one resource in the stack. Results will be available for resources
8485	//    on which AWS CloudFormation successfully completed drift detection.
8486	//
8487	//    * DETECTION_IN_PROGRESS: The stack drift detection operation is currently
8488	//    in progress.
8489	//
8490	// DetectionStatus is a required field
8491	DetectionStatus *string `type:"string" required:"true" enum:"StackDriftDetectionStatus"`
8492
8493	// The reason the stack drift detection operation has its current status.
8494	DetectionStatusReason *string `type:"string"`
8495
8496	// Total number of stack resources that have drifted. This is NULL until the
8497	// drift detection operation reaches a status of DETECTION_COMPLETE. This value
8498	// will be 0 for stacks whose drift status is IN_SYNC.
8499	DriftedStackResourceCount *int64 `type:"integer"`
8500
8501	// The ID of the drift detection results of this operation.
8502	//
8503	// AWS CloudFormation generates new results, with a new drift detection ID,
8504	// each time this operation is run. However, the number of reports AWS CloudFormation
8505	// retains for any given stack, and for how long, may vary.
8506	//
8507	// StackDriftDetectionId is a required field
8508	StackDriftDetectionId *string `min:"1" type:"string" required:"true"`
8509
8510	// Status of the stack's actual configuration compared to its expected configuration.
8511	//
8512	//    * DRIFTED: The stack differs from its expected template configuration.
8513	//    A stack is considered to have drifted if one or more of its resources
8514	//    have drifted.
8515	//
8516	//    * NOT_CHECKED: AWS CloudFormation has not checked if the stack differs
8517	//    from its expected template configuration.
8518	//
8519	//    * IN_SYNC: The stack's actual configuration matches its expected template
8520	//    configuration.
8521	//
8522	//    * UNKNOWN: This value is reserved for future use.
8523	StackDriftStatus *string `type:"string" enum:"StackDriftStatus"`
8524
8525	// The ID of the stack.
8526	//
8527	// StackId is a required field
8528	StackId *string `type:"string" required:"true"`
8529
8530	// Time at which the stack drift detection operation was initiated.
8531	//
8532	// Timestamp is a required field
8533	Timestamp *time.Time `type:"timestamp" required:"true"`
8534}
8535
8536// String returns the string representation
8537func (s DescribeStackDriftDetectionStatusOutput) String() string {
8538	return awsutil.Prettify(s)
8539}
8540
8541// GoString returns the string representation
8542func (s DescribeStackDriftDetectionStatusOutput) GoString() string {
8543	return s.String()
8544}
8545
8546// SetDetectionStatus sets the DetectionStatus field's value.
8547func (s *DescribeStackDriftDetectionStatusOutput) SetDetectionStatus(v string) *DescribeStackDriftDetectionStatusOutput {
8548	s.DetectionStatus = &v
8549	return s
8550}
8551
8552// SetDetectionStatusReason sets the DetectionStatusReason field's value.
8553func (s *DescribeStackDriftDetectionStatusOutput) SetDetectionStatusReason(v string) *DescribeStackDriftDetectionStatusOutput {
8554	s.DetectionStatusReason = &v
8555	return s
8556}
8557
8558// SetDriftedStackResourceCount sets the DriftedStackResourceCount field's value.
8559func (s *DescribeStackDriftDetectionStatusOutput) SetDriftedStackResourceCount(v int64) *DescribeStackDriftDetectionStatusOutput {
8560	s.DriftedStackResourceCount = &v
8561	return s
8562}
8563
8564// SetStackDriftDetectionId sets the StackDriftDetectionId field's value.
8565func (s *DescribeStackDriftDetectionStatusOutput) SetStackDriftDetectionId(v string) *DescribeStackDriftDetectionStatusOutput {
8566	s.StackDriftDetectionId = &v
8567	return s
8568}
8569
8570// SetStackDriftStatus sets the StackDriftStatus field's value.
8571func (s *DescribeStackDriftDetectionStatusOutput) SetStackDriftStatus(v string) *DescribeStackDriftDetectionStatusOutput {
8572	s.StackDriftStatus = &v
8573	return s
8574}
8575
8576// SetStackId sets the StackId field's value.
8577func (s *DescribeStackDriftDetectionStatusOutput) SetStackId(v string) *DescribeStackDriftDetectionStatusOutput {
8578	s.StackId = &v
8579	return s
8580}
8581
8582// SetTimestamp sets the Timestamp field's value.
8583func (s *DescribeStackDriftDetectionStatusOutput) SetTimestamp(v time.Time) *DescribeStackDriftDetectionStatusOutput {
8584	s.Timestamp = &v
8585	return s
8586}
8587
8588// The input for DescribeStackEvents action.
8589type DescribeStackEventsInput struct {
8590	_ struct{} `type:"structure"`
8591
8592	// A string that identifies the next page of events that you want to retrieve.
8593	NextToken *string `min:"1" type:"string"`
8594
8595	// The name or the unique stack ID that is associated with the stack, which
8596	// are not always interchangeable:
8597	//
8598	//    * Running stacks: You can specify either the stack's name or its unique
8599	//    stack ID.
8600	//
8601	//    * Deleted stacks: You must specify the unique stack ID.
8602	//
8603	// Default: There is no default value.
8604	StackName *string `type:"string"`
8605}
8606
8607// String returns the string representation
8608func (s DescribeStackEventsInput) String() string {
8609	return awsutil.Prettify(s)
8610}
8611
8612// GoString returns the string representation
8613func (s DescribeStackEventsInput) GoString() string {
8614	return s.String()
8615}
8616
8617// Validate inspects the fields of the type to determine if they are valid.
8618func (s *DescribeStackEventsInput) Validate() error {
8619	invalidParams := request.ErrInvalidParams{Context: "DescribeStackEventsInput"}
8620	if s.NextToken != nil && len(*s.NextToken) < 1 {
8621		invalidParams.Add(request.NewErrParamMinLen("NextToken", 1))
8622	}
8623
8624	if invalidParams.Len() > 0 {
8625		return invalidParams
8626	}
8627	return nil
8628}
8629
8630// SetNextToken sets the NextToken field's value.
8631func (s *DescribeStackEventsInput) SetNextToken(v string) *DescribeStackEventsInput {
8632	s.NextToken = &v
8633	return s
8634}
8635
8636// SetStackName sets the StackName field's value.
8637func (s *DescribeStackEventsInput) SetStackName(v string) *DescribeStackEventsInput {
8638	s.StackName = &v
8639	return s
8640}
8641
8642// The output for a DescribeStackEvents action.
8643type DescribeStackEventsOutput struct {
8644	_ struct{} `type:"structure"`
8645
8646	// If the output exceeds 1 MB in size, a string that identifies the next page
8647	// of events. If no additional page exists, this value is null.
8648	NextToken *string `min:"1" type:"string"`
8649
8650	// A list of StackEvents structures.
8651	StackEvents []*StackEvent `type:"list"`
8652}
8653
8654// String returns the string representation
8655func (s DescribeStackEventsOutput) String() string {
8656	return awsutil.Prettify(s)
8657}
8658
8659// GoString returns the string representation
8660func (s DescribeStackEventsOutput) GoString() string {
8661	return s.String()
8662}
8663
8664// SetNextToken sets the NextToken field's value.
8665func (s *DescribeStackEventsOutput) SetNextToken(v string) *DescribeStackEventsOutput {
8666	s.NextToken = &v
8667	return s
8668}
8669
8670// SetStackEvents sets the StackEvents field's value.
8671func (s *DescribeStackEventsOutput) SetStackEvents(v []*StackEvent) *DescribeStackEventsOutput {
8672	s.StackEvents = v
8673	return s
8674}
8675
8676type DescribeStackInstanceInput struct {
8677	_ struct{} `type:"structure"`
8678
8679	// [Service-managed permissions] Specifies whether you are acting as an account
8680	// administrator in the organization's management account or as a delegated
8681	// administrator in a member account.
8682	//
8683	// By default, SELF is specified. Use SELF for stack sets with self-managed
8684	// permissions.
8685	//
8686	//    * If you are signed in to the management account, specify SELF.
8687	//
8688	//    * If you are signed in to a delegated administrator account, specify DELEGATED_ADMIN.
8689	//    Your AWS account must be registered as a delegated administrator in the
8690	//    management account. For more information, see Register a delegated administrator
8691	//    (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/stacksets-orgs-delegated-admin.html)
8692	//    in the AWS CloudFormation User Guide.
8693	CallAs *string `type:"string" enum:"CallAs"`
8694
8695	// The ID of an AWS account that's associated with this stack instance.
8696	//
8697	// StackInstanceAccount is a required field
8698	StackInstanceAccount *string `type:"string" required:"true"`
8699
8700	// The name of a Region that's associated with this stack instance.
8701	//
8702	// StackInstanceRegion is a required field
8703	StackInstanceRegion *string `type:"string" required:"true"`
8704
8705	// The name or the unique stack ID of the stack set that you want to get stack
8706	// instance information for.
8707	//
8708	// StackSetName is a required field
8709	StackSetName *string `type:"string" required:"true"`
8710}
8711
8712// String returns the string representation
8713func (s DescribeStackInstanceInput) String() string {
8714	return awsutil.Prettify(s)
8715}
8716
8717// GoString returns the string representation
8718func (s DescribeStackInstanceInput) GoString() string {
8719	return s.String()
8720}
8721
8722// Validate inspects the fields of the type to determine if they are valid.
8723func (s *DescribeStackInstanceInput) Validate() error {
8724	invalidParams := request.ErrInvalidParams{Context: "DescribeStackInstanceInput"}
8725	if s.StackInstanceAccount == nil {
8726		invalidParams.Add(request.NewErrParamRequired("StackInstanceAccount"))
8727	}
8728	if s.StackInstanceRegion == nil {
8729		invalidParams.Add(request.NewErrParamRequired("StackInstanceRegion"))
8730	}
8731	if s.StackSetName == nil {
8732		invalidParams.Add(request.NewErrParamRequired("StackSetName"))
8733	}
8734
8735	if invalidParams.Len() > 0 {
8736		return invalidParams
8737	}
8738	return nil
8739}
8740
8741// SetCallAs sets the CallAs field's value.
8742func (s *DescribeStackInstanceInput) SetCallAs(v string) *DescribeStackInstanceInput {
8743	s.CallAs = &v
8744	return s
8745}
8746
8747// SetStackInstanceAccount sets the StackInstanceAccount field's value.
8748func (s *DescribeStackInstanceInput) SetStackInstanceAccount(v string) *DescribeStackInstanceInput {
8749	s.StackInstanceAccount = &v
8750	return s
8751}
8752
8753// SetStackInstanceRegion sets the StackInstanceRegion field's value.
8754func (s *DescribeStackInstanceInput) SetStackInstanceRegion(v string) *DescribeStackInstanceInput {
8755	s.StackInstanceRegion = &v
8756	return s
8757}
8758
8759// SetStackSetName sets the StackSetName field's value.
8760func (s *DescribeStackInstanceInput) SetStackSetName(v string) *DescribeStackInstanceInput {
8761	s.StackSetName = &v
8762	return s
8763}
8764
8765type DescribeStackInstanceOutput struct {
8766	_ struct{} `type:"structure"`
8767
8768	// The stack instance that matches the specified request parameters.
8769	StackInstance *StackInstance `type:"structure"`
8770}
8771
8772// String returns the string representation
8773func (s DescribeStackInstanceOutput) String() string {
8774	return awsutil.Prettify(s)
8775}
8776
8777// GoString returns the string representation
8778func (s DescribeStackInstanceOutput) GoString() string {
8779	return s.String()
8780}
8781
8782// SetStackInstance sets the StackInstance field's value.
8783func (s *DescribeStackInstanceOutput) SetStackInstance(v *StackInstance) *DescribeStackInstanceOutput {
8784	s.StackInstance = v
8785	return s
8786}
8787
8788type DescribeStackResourceDriftsInput struct {
8789	_ struct{} `type:"structure"`
8790
8791	// The maximum number of results to be returned with a single call. If the number
8792	// of available results exceeds this maximum, the response includes a NextToken
8793	// value that you can assign to the NextToken request parameter to get the next
8794	// set of results.
8795	MaxResults *int64 `min:"1" type:"integer"`
8796
8797	// A string that identifies the next page of stack resource drift results.
8798	NextToken *string `min:"1" type:"string"`
8799
8800	// The name of the stack for which you want drift information.
8801	//
8802	// StackName is a required field
8803	StackName *string `min:"1" type:"string" required:"true"`
8804
8805	// The resource drift status values to use as filters for the resource drift
8806	// results returned.
8807	//
8808	//    * DELETED: The resource differs from its expected template configuration
8809	//    in that the resource has been deleted.
8810	//
8811	//    * MODIFIED: One or more resource properties differ from their expected
8812	//    template values.
8813	//
8814	//    * IN_SYNC: The resources's actual configuration matches its expected template
8815	//    configuration.
8816	//
8817	//    * NOT_CHECKED: AWS CloudFormation does not currently return this value.
8818	StackResourceDriftStatusFilters []*string `min:"1" type:"list"`
8819}
8820
8821// String returns the string representation
8822func (s DescribeStackResourceDriftsInput) String() string {
8823	return awsutil.Prettify(s)
8824}
8825
8826// GoString returns the string representation
8827func (s DescribeStackResourceDriftsInput) GoString() string {
8828	return s.String()
8829}
8830
8831// Validate inspects the fields of the type to determine if they are valid.
8832func (s *DescribeStackResourceDriftsInput) Validate() error {
8833	invalidParams := request.ErrInvalidParams{Context: "DescribeStackResourceDriftsInput"}
8834	if s.MaxResults != nil && *s.MaxResults < 1 {
8835		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
8836	}
8837	if s.NextToken != nil && len(*s.NextToken) < 1 {
8838		invalidParams.Add(request.NewErrParamMinLen("NextToken", 1))
8839	}
8840	if s.StackName == nil {
8841		invalidParams.Add(request.NewErrParamRequired("StackName"))
8842	}
8843	if s.StackName != nil && len(*s.StackName) < 1 {
8844		invalidParams.Add(request.NewErrParamMinLen("StackName", 1))
8845	}
8846	if s.StackResourceDriftStatusFilters != nil && len(s.StackResourceDriftStatusFilters) < 1 {
8847		invalidParams.Add(request.NewErrParamMinLen("StackResourceDriftStatusFilters", 1))
8848	}
8849
8850	if invalidParams.Len() > 0 {
8851		return invalidParams
8852	}
8853	return nil
8854}
8855
8856// SetMaxResults sets the MaxResults field's value.
8857func (s *DescribeStackResourceDriftsInput) SetMaxResults(v int64) *DescribeStackResourceDriftsInput {
8858	s.MaxResults = &v
8859	return s
8860}
8861
8862// SetNextToken sets the NextToken field's value.
8863func (s *DescribeStackResourceDriftsInput) SetNextToken(v string) *DescribeStackResourceDriftsInput {
8864	s.NextToken = &v
8865	return s
8866}
8867
8868// SetStackName sets the StackName field's value.
8869func (s *DescribeStackResourceDriftsInput) SetStackName(v string) *DescribeStackResourceDriftsInput {
8870	s.StackName = &v
8871	return s
8872}
8873
8874// SetStackResourceDriftStatusFilters sets the StackResourceDriftStatusFilters field's value.
8875func (s *DescribeStackResourceDriftsInput) SetStackResourceDriftStatusFilters(v []*string) *DescribeStackResourceDriftsInput {
8876	s.StackResourceDriftStatusFilters = v
8877	return s
8878}
8879
8880type DescribeStackResourceDriftsOutput struct {
8881	_ struct{} `type:"structure"`
8882
8883	// If the request doesn't return all of the remaining results, NextToken is
8884	// set to a token. To retrieve the next set of results, call DescribeStackResourceDrifts
8885	// again and assign that token to the request object's NextToken parameter.
8886	// If the request returns all results, NextToken is set to null.
8887	NextToken *string `min:"1" type:"string"`
8888
8889	// Drift information for the resources that have been checked for drift in the
8890	// specified stack. This includes actual and expected configuration values for
8891	// resources where AWS CloudFormation detects drift.
8892	//
8893	// For a given stack, there will be one StackResourceDrift for each stack resource
8894	// that has been checked for drift. Resources that have not yet been checked
8895	// for drift are not included. Resources that do not currently support drift
8896	// detection are not checked, and so not included. For a list of resources that
8897	// support drift detection, see Resources that Support Drift Detection (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-stack-drift-resource-list.html).
8898	//
8899	// StackResourceDrifts is a required field
8900	StackResourceDrifts []*StackResourceDrift `type:"list" required:"true"`
8901}
8902
8903// String returns the string representation
8904func (s DescribeStackResourceDriftsOutput) String() string {
8905	return awsutil.Prettify(s)
8906}
8907
8908// GoString returns the string representation
8909func (s DescribeStackResourceDriftsOutput) GoString() string {
8910	return s.String()
8911}
8912
8913// SetNextToken sets the NextToken field's value.
8914func (s *DescribeStackResourceDriftsOutput) SetNextToken(v string) *DescribeStackResourceDriftsOutput {
8915	s.NextToken = &v
8916	return s
8917}
8918
8919// SetStackResourceDrifts sets the StackResourceDrifts field's value.
8920func (s *DescribeStackResourceDriftsOutput) SetStackResourceDrifts(v []*StackResourceDrift) *DescribeStackResourceDriftsOutput {
8921	s.StackResourceDrifts = v
8922	return s
8923}
8924
8925// The input for DescribeStackResource action.
8926type DescribeStackResourceInput struct {
8927	_ struct{} `type:"structure"`
8928
8929	// The logical name of the resource as specified in the template.
8930	//
8931	// Default: There is no default value.
8932	//
8933	// LogicalResourceId is a required field
8934	LogicalResourceId *string `type:"string" required:"true"`
8935
8936	// The name or the unique stack ID that is associated with the stack, which
8937	// are not always interchangeable:
8938	//
8939	//    * Running stacks: You can specify either the stack's name or its unique
8940	//    stack ID.
8941	//
8942	//    * Deleted stacks: You must specify the unique stack ID.
8943	//
8944	// Default: There is no default value.
8945	//
8946	// StackName is a required field
8947	StackName *string `type:"string" required:"true"`
8948}
8949
8950// String returns the string representation
8951func (s DescribeStackResourceInput) String() string {
8952	return awsutil.Prettify(s)
8953}
8954
8955// GoString returns the string representation
8956func (s DescribeStackResourceInput) GoString() string {
8957	return s.String()
8958}
8959
8960// Validate inspects the fields of the type to determine if they are valid.
8961func (s *DescribeStackResourceInput) Validate() error {
8962	invalidParams := request.ErrInvalidParams{Context: "DescribeStackResourceInput"}
8963	if s.LogicalResourceId == nil {
8964		invalidParams.Add(request.NewErrParamRequired("LogicalResourceId"))
8965	}
8966	if s.StackName == nil {
8967		invalidParams.Add(request.NewErrParamRequired("StackName"))
8968	}
8969
8970	if invalidParams.Len() > 0 {
8971		return invalidParams
8972	}
8973	return nil
8974}
8975
8976// SetLogicalResourceId sets the LogicalResourceId field's value.
8977func (s *DescribeStackResourceInput) SetLogicalResourceId(v string) *DescribeStackResourceInput {
8978	s.LogicalResourceId = &v
8979	return s
8980}
8981
8982// SetStackName sets the StackName field's value.
8983func (s *DescribeStackResourceInput) SetStackName(v string) *DescribeStackResourceInput {
8984	s.StackName = &v
8985	return s
8986}
8987
8988// The output for a DescribeStackResource action.
8989type DescribeStackResourceOutput struct {
8990	_ struct{} `type:"structure"`
8991
8992	// A StackResourceDetail structure containing the description of the specified
8993	// resource in the specified stack.
8994	StackResourceDetail *StackResourceDetail `type:"structure"`
8995}
8996
8997// String returns the string representation
8998func (s DescribeStackResourceOutput) String() string {
8999	return awsutil.Prettify(s)
9000}
9001
9002// GoString returns the string representation
9003func (s DescribeStackResourceOutput) GoString() string {
9004	return s.String()
9005}
9006
9007// SetStackResourceDetail sets the StackResourceDetail field's value.
9008func (s *DescribeStackResourceOutput) SetStackResourceDetail(v *StackResourceDetail) *DescribeStackResourceOutput {
9009	s.StackResourceDetail = v
9010	return s
9011}
9012
9013// The input for DescribeStackResources action.
9014type DescribeStackResourcesInput struct {
9015	_ struct{} `type:"structure"`
9016
9017	// The logical name of the resource as specified in the template.
9018	//
9019	// Default: There is no default value.
9020	LogicalResourceId *string `type:"string"`
9021
9022	// The name or unique identifier that corresponds to a physical instance ID
9023	// of a resource supported by AWS CloudFormation.
9024	//
9025	// For example, for an Amazon Elastic Compute Cloud (EC2) instance, PhysicalResourceId
9026	// corresponds to the InstanceId. You can pass the EC2 InstanceId to DescribeStackResources
9027	// to find which stack the instance belongs to and what other resources are
9028	// part of the stack.
9029	//
9030	// Required: Conditional. If you do not specify PhysicalResourceId, you must
9031	// specify StackName.
9032	//
9033	// Default: There is no default value.
9034	PhysicalResourceId *string `type:"string"`
9035
9036	// The name or the unique stack ID that is associated with the stack, which
9037	// are not always interchangeable:
9038	//
9039	//    * Running stacks: You can specify either the stack's name or its unique
9040	//    stack ID.
9041	//
9042	//    * Deleted stacks: You must specify the unique stack ID.
9043	//
9044	// Default: There is no default value.
9045	//
9046	// Required: Conditional. If you do not specify StackName, you must specify
9047	// PhysicalResourceId.
9048	StackName *string `type:"string"`
9049}
9050
9051// String returns the string representation
9052func (s DescribeStackResourcesInput) String() string {
9053	return awsutil.Prettify(s)
9054}
9055
9056// GoString returns the string representation
9057func (s DescribeStackResourcesInput) GoString() string {
9058	return s.String()
9059}
9060
9061// SetLogicalResourceId sets the LogicalResourceId field's value.
9062func (s *DescribeStackResourcesInput) SetLogicalResourceId(v string) *DescribeStackResourcesInput {
9063	s.LogicalResourceId = &v
9064	return s
9065}
9066
9067// SetPhysicalResourceId sets the PhysicalResourceId field's value.
9068func (s *DescribeStackResourcesInput) SetPhysicalResourceId(v string) *DescribeStackResourcesInput {
9069	s.PhysicalResourceId = &v
9070	return s
9071}
9072
9073// SetStackName sets the StackName field's value.
9074func (s *DescribeStackResourcesInput) SetStackName(v string) *DescribeStackResourcesInput {
9075	s.StackName = &v
9076	return s
9077}
9078
9079// The output for a DescribeStackResources action.
9080type DescribeStackResourcesOutput struct {
9081	_ struct{} `type:"structure"`
9082
9083	// A list of StackResource structures.
9084	StackResources []*StackResource `type:"list"`
9085}
9086
9087// String returns the string representation
9088func (s DescribeStackResourcesOutput) String() string {
9089	return awsutil.Prettify(s)
9090}
9091
9092// GoString returns the string representation
9093func (s DescribeStackResourcesOutput) GoString() string {
9094	return s.String()
9095}
9096
9097// SetStackResources sets the StackResources field's value.
9098func (s *DescribeStackResourcesOutput) SetStackResources(v []*StackResource) *DescribeStackResourcesOutput {
9099	s.StackResources = v
9100	return s
9101}
9102
9103type DescribeStackSetInput struct {
9104	_ struct{} `type:"structure"`
9105
9106	// [Service-managed permissions] Specifies whether you are acting as an account
9107	// administrator in the organization's management account or as a delegated
9108	// administrator in a member account.
9109	//
9110	// By default, SELF is specified. Use SELF for stack sets with self-managed
9111	// permissions.
9112	//
9113	//    * If you are signed in to the management account, specify SELF.
9114	//
9115	//    * If you are signed in to a delegated administrator account, specify DELEGATED_ADMIN.
9116	//    Your AWS account must be registered as a delegated administrator in the
9117	//    management account. For more information, see Register a delegated administrator
9118	//    (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/stacksets-orgs-delegated-admin.html)
9119	//    in the AWS CloudFormation User Guide.
9120	CallAs *string `type:"string" enum:"CallAs"`
9121
9122	// The name or unique ID of the stack set whose description you want.
9123	//
9124	// StackSetName is a required field
9125	StackSetName *string `type:"string" required:"true"`
9126}
9127
9128// String returns the string representation
9129func (s DescribeStackSetInput) String() string {
9130	return awsutil.Prettify(s)
9131}
9132
9133// GoString returns the string representation
9134func (s DescribeStackSetInput) GoString() string {
9135	return s.String()
9136}
9137
9138// Validate inspects the fields of the type to determine if they are valid.
9139func (s *DescribeStackSetInput) Validate() error {
9140	invalidParams := request.ErrInvalidParams{Context: "DescribeStackSetInput"}
9141	if s.StackSetName == nil {
9142		invalidParams.Add(request.NewErrParamRequired("StackSetName"))
9143	}
9144
9145	if invalidParams.Len() > 0 {
9146		return invalidParams
9147	}
9148	return nil
9149}
9150
9151// SetCallAs sets the CallAs field's value.
9152func (s *DescribeStackSetInput) SetCallAs(v string) *DescribeStackSetInput {
9153	s.CallAs = &v
9154	return s
9155}
9156
9157// SetStackSetName sets the StackSetName field's value.
9158func (s *DescribeStackSetInput) SetStackSetName(v string) *DescribeStackSetInput {
9159	s.StackSetName = &v
9160	return s
9161}
9162
9163type DescribeStackSetOperationInput struct {
9164	_ struct{} `type:"structure"`
9165
9166	// [Service-managed permissions] Specifies whether you are acting as an account
9167	// administrator in the organization's management account or as a delegated
9168	// administrator in a member account.
9169	//
9170	// By default, SELF is specified. Use SELF for stack sets with self-managed
9171	// permissions.
9172	//
9173	//    * If you are signed in to the management account, specify SELF.
9174	//
9175	//    * If you are signed in to a delegated administrator account, specify DELEGATED_ADMIN.
9176	//    Your AWS account must be registered as a delegated administrator in the
9177	//    management account. For more information, see Register a delegated administrator
9178	//    (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/stacksets-orgs-delegated-admin.html)
9179	//    in the AWS CloudFormation User Guide.
9180	CallAs *string `type:"string" enum:"CallAs"`
9181
9182	// The unique ID of the stack set operation.
9183	//
9184	// OperationId is a required field
9185	OperationId *string `min:"1" type:"string" required:"true"`
9186
9187	// The name or the unique stack ID of the stack set for the stack operation.
9188	//
9189	// StackSetName is a required field
9190	StackSetName *string `type:"string" required:"true"`
9191}
9192
9193// String returns the string representation
9194func (s DescribeStackSetOperationInput) String() string {
9195	return awsutil.Prettify(s)
9196}
9197
9198// GoString returns the string representation
9199func (s DescribeStackSetOperationInput) GoString() string {
9200	return s.String()
9201}
9202
9203// Validate inspects the fields of the type to determine if they are valid.
9204func (s *DescribeStackSetOperationInput) Validate() error {
9205	invalidParams := request.ErrInvalidParams{Context: "DescribeStackSetOperationInput"}
9206	if s.OperationId == nil {
9207		invalidParams.Add(request.NewErrParamRequired("OperationId"))
9208	}
9209	if s.OperationId != nil && len(*s.OperationId) < 1 {
9210		invalidParams.Add(request.NewErrParamMinLen("OperationId", 1))
9211	}
9212	if s.StackSetName == nil {
9213		invalidParams.Add(request.NewErrParamRequired("StackSetName"))
9214	}
9215
9216	if invalidParams.Len() > 0 {
9217		return invalidParams
9218	}
9219	return nil
9220}
9221
9222// SetCallAs sets the CallAs field's value.
9223func (s *DescribeStackSetOperationInput) SetCallAs(v string) *DescribeStackSetOperationInput {
9224	s.CallAs = &v
9225	return s
9226}
9227
9228// SetOperationId sets the OperationId field's value.
9229func (s *DescribeStackSetOperationInput) SetOperationId(v string) *DescribeStackSetOperationInput {
9230	s.OperationId = &v
9231	return s
9232}
9233
9234// SetStackSetName sets the StackSetName field's value.
9235func (s *DescribeStackSetOperationInput) SetStackSetName(v string) *DescribeStackSetOperationInput {
9236	s.StackSetName = &v
9237	return s
9238}
9239
9240type DescribeStackSetOperationOutput struct {
9241	_ struct{} `type:"structure"`
9242
9243	// The specified stack set operation.
9244	StackSetOperation *StackSetOperation `type:"structure"`
9245}
9246
9247// String returns the string representation
9248func (s DescribeStackSetOperationOutput) String() string {
9249	return awsutil.Prettify(s)
9250}
9251
9252// GoString returns the string representation
9253func (s DescribeStackSetOperationOutput) GoString() string {
9254	return s.String()
9255}
9256
9257// SetStackSetOperation sets the StackSetOperation field's value.
9258func (s *DescribeStackSetOperationOutput) SetStackSetOperation(v *StackSetOperation) *DescribeStackSetOperationOutput {
9259	s.StackSetOperation = v
9260	return s
9261}
9262
9263type DescribeStackSetOutput struct {
9264	_ struct{} `type:"structure"`
9265
9266	// The specified stack set.
9267	StackSet *StackSet `type:"structure"`
9268}
9269
9270// String returns the string representation
9271func (s DescribeStackSetOutput) String() string {
9272	return awsutil.Prettify(s)
9273}
9274
9275// GoString returns the string representation
9276func (s DescribeStackSetOutput) GoString() string {
9277	return s.String()
9278}
9279
9280// SetStackSet sets the StackSet field's value.
9281func (s *DescribeStackSetOutput) SetStackSet(v *StackSet) *DescribeStackSetOutput {
9282	s.StackSet = v
9283	return s
9284}
9285
9286// The input for DescribeStacks action.
9287type DescribeStacksInput struct {
9288	_ struct{} `type:"structure"`
9289
9290	// A string that identifies the next page of stacks that you want to retrieve.
9291	NextToken *string `min:"1" type:"string"`
9292
9293	// The name or the unique stack ID that is associated with the stack, which
9294	// are not always interchangeable:
9295	//
9296	//    * Running stacks: You can specify either the stack's name or its unique
9297	//    stack ID.
9298	//
9299	//    * Deleted stacks: You must specify the unique stack ID.
9300	//
9301	// Default: There is no default value.
9302	StackName *string `type:"string"`
9303}
9304
9305// String returns the string representation
9306func (s DescribeStacksInput) String() string {
9307	return awsutil.Prettify(s)
9308}
9309
9310// GoString returns the string representation
9311func (s DescribeStacksInput) GoString() string {
9312	return s.String()
9313}
9314
9315// Validate inspects the fields of the type to determine if they are valid.
9316func (s *DescribeStacksInput) Validate() error {
9317	invalidParams := request.ErrInvalidParams{Context: "DescribeStacksInput"}
9318	if s.NextToken != nil && len(*s.NextToken) < 1 {
9319		invalidParams.Add(request.NewErrParamMinLen("NextToken", 1))
9320	}
9321
9322	if invalidParams.Len() > 0 {
9323		return invalidParams
9324	}
9325	return nil
9326}
9327
9328// SetNextToken sets the NextToken field's value.
9329func (s *DescribeStacksInput) SetNextToken(v string) *DescribeStacksInput {
9330	s.NextToken = &v
9331	return s
9332}
9333
9334// SetStackName sets the StackName field's value.
9335func (s *DescribeStacksInput) SetStackName(v string) *DescribeStacksInput {
9336	s.StackName = &v
9337	return s
9338}
9339
9340// The output for a DescribeStacks action.
9341type DescribeStacksOutput struct {
9342	_ struct{} `type:"structure"`
9343
9344	// If the output exceeds 1 MB in size, a string that identifies the next page
9345	// of stacks. If no additional page exists, this value is null.
9346	NextToken *string `min:"1" type:"string"`
9347
9348	// A list of stack structures.
9349	Stacks []*Stack `type:"list"`
9350}
9351
9352// String returns the string representation
9353func (s DescribeStacksOutput) String() string {
9354	return awsutil.Prettify(s)
9355}
9356
9357// GoString returns the string representation
9358func (s DescribeStacksOutput) GoString() string {
9359	return s.String()
9360}
9361
9362// SetNextToken sets the NextToken field's value.
9363func (s *DescribeStacksOutput) SetNextToken(v string) *DescribeStacksOutput {
9364	s.NextToken = &v
9365	return s
9366}
9367
9368// SetStacks sets the Stacks field's value.
9369func (s *DescribeStacksOutput) SetStacks(v []*Stack) *DescribeStacksOutput {
9370	s.Stacks = v
9371	return s
9372}
9373
9374type DescribeTypeInput struct {
9375	_ struct{} `type:"structure"`
9376
9377	// The Amazon Resource Name (ARN) of the extension.
9378	//
9379	// Conditional: You must specify either TypeName and Type, or Arn.
9380	Arn *string `type:"string"`
9381
9382	// The kind of extension.
9383	//
9384	// Conditional: You must specify either TypeName and Type, or Arn.
9385	Type *string `type:"string" enum:"RegistryType"`
9386
9387	// The name of the extension.
9388	//
9389	// Conditional: You must specify either TypeName and Type, or Arn.
9390	TypeName *string `min:"10" type:"string"`
9391
9392	// The ID of a specific version of the extension. The version ID is the value
9393	// at the end of the Amazon Resource Name (ARN) assigned to the extension version
9394	// when it is registered.
9395	//
9396	// If you specify a VersionId, DescribeType returns information about that specific
9397	// extension version. Otherwise, it returns information about the default extension
9398	// version.
9399	VersionId *string `min:"1" type:"string"`
9400}
9401
9402// String returns the string representation
9403func (s DescribeTypeInput) String() string {
9404	return awsutil.Prettify(s)
9405}
9406
9407// GoString returns the string representation
9408func (s DescribeTypeInput) GoString() string {
9409	return s.String()
9410}
9411
9412// Validate inspects the fields of the type to determine if they are valid.
9413func (s *DescribeTypeInput) Validate() error {
9414	invalidParams := request.ErrInvalidParams{Context: "DescribeTypeInput"}
9415	if s.TypeName != nil && len(*s.TypeName) < 10 {
9416		invalidParams.Add(request.NewErrParamMinLen("TypeName", 10))
9417	}
9418	if s.VersionId != nil && len(*s.VersionId) < 1 {
9419		invalidParams.Add(request.NewErrParamMinLen("VersionId", 1))
9420	}
9421
9422	if invalidParams.Len() > 0 {
9423		return invalidParams
9424	}
9425	return nil
9426}
9427
9428// SetArn sets the Arn field's value.
9429func (s *DescribeTypeInput) SetArn(v string) *DescribeTypeInput {
9430	s.Arn = &v
9431	return s
9432}
9433
9434// SetType sets the Type field's value.
9435func (s *DescribeTypeInput) SetType(v string) *DescribeTypeInput {
9436	s.Type = &v
9437	return s
9438}
9439
9440// SetTypeName sets the TypeName field's value.
9441func (s *DescribeTypeInput) SetTypeName(v string) *DescribeTypeInput {
9442	s.TypeName = &v
9443	return s
9444}
9445
9446// SetVersionId sets the VersionId field's value.
9447func (s *DescribeTypeInput) SetVersionId(v string) *DescribeTypeInput {
9448	s.VersionId = &v
9449	return s
9450}
9451
9452type DescribeTypeOutput struct {
9453	_ struct{} `type:"structure"`
9454
9455	// The Amazon Resource Name (ARN) of the extension.
9456	Arn *string `type:"string"`
9457
9458	// The ID of the default version of the extension. The default version is used
9459	// when the extension version is not specified.
9460	//
9461	// To set the default version of an extension, use SetTypeDefaultVersion .
9462	DefaultVersionId *string `min:"1" type:"string"`
9463
9464	// The deprecation status of the extension version.
9465	//
9466	// Valid values include:
9467	//
9468	//    * LIVE: The extension is registered and can be used in CloudFormation
9469	//    operations, dependent on its provisioning behavior and visibility scope.
9470	//
9471	//    * DEPRECATED: The extension has been deregistered and can no longer be
9472	//    used in CloudFormation operations.
9473	DeprecatedStatus *string `type:"string" enum:"DeprecatedStatus"`
9474
9475	// The description of the registered extension.
9476	Description *string `min:"1" type:"string"`
9477
9478	// The URL of a page providing detailed documentation for this extension.
9479	DocumentationUrl *string `type:"string"`
9480
9481	// The Amazon Resource Name (ARN) of the IAM execution role used to register
9482	// the extension. If your resource type calls AWS APIs in any of its handlers,
9483	// you must create an IAM execution role (https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles.html)
9484	// that includes the necessary permissions to call those AWS APIs, and provision
9485	// that execution role in your account. CloudFormation then assumes that execution
9486	// role to provide your extension with the appropriate credentials.
9487	ExecutionRoleArn *string `min:"1" type:"string"`
9488
9489	// Whether the specified extension version is set as the default version.
9490	IsDefaultVersion *bool `type:"boolean"`
9491
9492	// When the specified extension version was registered.
9493	LastUpdated *time.Time `type:"timestamp"`
9494
9495	// Contains logging configuration information for an extension.
9496	LoggingConfig *LoggingConfig `type:"structure"`
9497
9498	// The provisioning behavior of the extension. AWS CloudFormation determines
9499	// the provisioning type during registration, based on the types of handlers
9500	// in the schema handler package submitted.
9501	//
9502	// Valid values include:
9503	//
9504	//    * FULLY_MUTABLE: The extension includes an update handler to process updates
9505	//    to the extension during stack update operations.
9506	//
9507	//    * IMMUTABLE: The extension does not include an update handler, so the
9508	//    extension cannot be updated and must instead be replaced during stack
9509	//    update operations.
9510	//
9511	//    * NON_PROVISIONABLE: The extension does not include all of the following
9512	//    handlers, and therefore cannot actually be provisioned. create read delete
9513	ProvisioningType *string `type:"string" enum:"ProvisioningType"`
9514
9515	// The schema that defines the extension.
9516	//
9517	// For more information on extension schemas, see Resource Provider Schema (https://docs.aws.amazon.com/cloudformation-cli/latest/userguide/resource-type-schema.html)
9518	// in the CloudFormation CLI User Guide.
9519	Schema *string `min:"1" type:"string"`
9520
9521	// The URL of the source code for the extension.
9522	SourceUrl *string `type:"string"`
9523
9524	// When the specified extension version was registered.
9525	TimeCreated *time.Time `type:"timestamp"`
9526
9527	// The kind of extension.
9528	Type *string `type:"string" enum:"RegistryType"`
9529
9530	// The name of the registered extension.
9531	TypeName *string `min:"10" type:"string"`
9532
9533	// The scope at which the extension is visible and usable in CloudFormation
9534	// operations.
9535	//
9536	// Valid values include:
9537	//
9538	//    * PRIVATE: The extension is only visible and usable within the account
9539	//    in which it is registered. Currently, AWS CloudFormation marks any types
9540	//    you register as PRIVATE.
9541	//
9542	//    * PUBLIC: The extension is publically visible and usable within any Amazon
9543	//    account.
9544	Visibility *string `type:"string" enum:"Visibility"`
9545}
9546
9547// String returns the string representation
9548func (s DescribeTypeOutput) String() string {
9549	return awsutil.Prettify(s)
9550}
9551
9552// GoString returns the string representation
9553func (s DescribeTypeOutput) GoString() string {
9554	return s.String()
9555}
9556
9557// SetArn sets the Arn field's value.
9558func (s *DescribeTypeOutput) SetArn(v string) *DescribeTypeOutput {
9559	s.Arn = &v
9560	return s
9561}
9562
9563// SetDefaultVersionId sets the DefaultVersionId field's value.
9564func (s *DescribeTypeOutput) SetDefaultVersionId(v string) *DescribeTypeOutput {
9565	s.DefaultVersionId = &v
9566	return s
9567}
9568
9569// SetDeprecatedStatus sets the DeprecatedStatus field's value.
9570func (s *DescribeTypeOutput) SetDeprecatedStatus(v string) *DescribeTypeOutput {
9571	s.DeprecatedStatus = &v
9572	return s
9573}
9574
9575// SetDescription sets the Description field's value.
9576func (s *DescribeTypeOutput) SetDescription(v string) *DescribeTypeOutput {
9577	s.Description = &v
9578	return s
9579}
9580
9581// SetDocumentationUrl sets the DocumentationUrl field's value.
9582func (s *DescribeTypeOutput) SetDocumentationUrl(v string) *DescribeTypeOutput {
9583	s.DocumentationUrl = &v
9584	return s
9585}
9586
9587// SetExecutionRoleArn sets the ExecutionRoleArn field's value.
9588func (s *DescribeTypeOutput) SetExecutionRoleArn(v string) *DescribeTypeOutput {
9589	s.ExecutionRoleArn = &v
9590	return s
9591}
9592
9593// SetIsDefaultVersion sets the IsDefaultVersion field's value.
9594func (s *DescribeTypeOutput) SetIsDefaultVersion(v bool) *DescribeTypeOutput {
9595	s.IsDefaultVersion = &v
9596	return s
9597}
9598
9599// SetLastUpdated sets the LastUpdated field's value.
9600func (s *DescribeTypeOutput) SetLastUpdated(v time.Time) *DescribeTypeOutput {
9601	s.LastUpdated = &v
9602	return s
9603}
9604
9605// SetLoggingConfig sets the LoggingConfig field's value.
9606func (s *DescribeTypeOutput) SetLoggingConfig(v *LoggingConfig) *DescribeTypeOutput {
9607	s.LoggingConfig = v
9608	return s
9609}
9610
9611// SetProvisioningType sets the ProvisioningType field's value.
9612func (s *DescribeTypeOutput) SetProvisioningType(v string) *DescribeTypeOutput {
9613	s.ProvisioningType = &v
9614	return s
9615}
9616
9617// SetSchema sets the Schema field's value.
9618func (s *DescribeTypeOutput) SetSchema(v string) *DescribeTypeOutput {
9619	s.Schema = &v
9620	return s
9621}
9622
9623// SetSourceUrl sets the SourceUrl field's value.
9624func (s *DescribeTypeOutput) SetSourceUrl(v string) *DescribeTypeOutput {
9625	s.SourceUrl = &v
9626	return s
9627}
9628
9629// SetTimeCreated sets the TimeCreated field's value.
9630func (s *DescribeTypeOutput) SetTimeCreated(v time.Time) *DescribeTypeOutput {
9631	s.TimeCreated = &v
9632	return s
9633}
9634
9635// SetType sets the Type field's value.
9636func (s *DescribeTypeOutput) SetType(v string) *DescribeTypeOutput {
9637	s.Type = &v
9638	return s
9639}
9640
9641// SetTypeName sets the TypeName field's value.
9642func (s *DescribeTypeOutput) SetTypeName(v string) *DescribeTypeOutput {
9643	s.TypeName = &v
9644	return s
9645}
9646
9647// SetVisibility sets the Visibility field's value.
9648func (s *DescribeTypeOutput) SetVisibility(v string) *DescribeTypeOutput {
9649	s.Visibility = &v
9650	return s
9651}
9652
9653type DescribeTypeRegistrationInput struct {
9654	_ struct{} `type:"structure"`
9655
9656	// The identifier for this registration request.
9657	//
9658	// This registration token is generated by CloudFormation when you initiate
9659	// a registration request using RegisterType .
9660	//
9661	// RegistrationToken is a required field
9662	RegistrationToken *string `min:"1" type:"string" required:"true"`
9663}
9664
9665// String returns the string representation
9666func (s DescribeTypeRegistrationInput) String() string {
9667	return awsutil.Prettify(s)
9668}
9669
9670// GoString returns the string representation
9671func (s DescribeTypeRegistrationInput) GoString() string {
9672	return s.String()
9673}
9674
9675// Validate inspects the fields of the type to determine if they are valid.
9676func (s *DescribeTypeRegistrationInput) Validate() error {
9677	invalidParams := request.ErrInvalidParams{Context: "DescribeTypeRegistrationInput"}
9678	if s.RegistrationToken == nil {
9679		invalidParams.Add(request.NewErrParamRequired("RegistrationToken"))
9680	}
9681	if s.RegistrationToken != nil && len(*s.RegistrationToken) < 1 {
9682		invalidParams.Add(request.NewErrParamMinLen("RegistrationToken", 1))
9683	}
9684
9685	if invalidParams.Len() > 0 {
9686		return invalidParams
9687	}
9688	return nil
9689}
9690
9691// SetRegistrationToken sets the RegistrationToken field's value.
9692func (s *DescribeTypeRegistrationInput) SetRegistrationToken(v string) *DescribeTypeRegistrationInput {
9693	s.RegistrationToken = &v
9694	return s
9695}
9696
9697type DescribeTypeRegistrationOutput struct {
9698	_ struct{} `type:"structure"`
9699
9700	// The description of the extension registration request.
9701	Description *string `min:"1" type:"string"`
9702
9703	// The current status of the extension registration request.
9704	ProgressStatus *string `type:"string" enum:"RegistrationStatus"`
9705
9706	// The Amazon Resource Name (ARN) of the extension being registered.
9707	//
9708	// For registration requests with a ProgressStatus of other than COMPLETE, this
9709	// will be null.
9710	TypeArn *string `type:"string"`
9711
9712	// The Amazon Resource Name (ARN) of this specific version of the extension
9713	// being registered.
9714	//
9715	// For registration requests with a ProgressStatus of other than COMPLETE, this
9716	// will be null.
9717	TypeVersionArn *string `type:"string"`
9718}
9719
9720// String returns the string representation
9721func (s DescribeTypeRegistrationOutput) String() string {
9722	return awsutil.Prettify(s)
9723}
9724
9725// GoString returns the string representation
9726func (s DescribeTypeRegistrationOutput) GoString() string {
9727	return s.String()
9728}
9729
9730// SetDescription sets the Description field's value.
9731func (s *DescribeTypeRegistrationOutput) SetDescription(v string) *DescribeTypeRegistrationOutput {
9732	s.Description = &v
9733	return s
9734}
9735
9736// SetProgressStatus sets the ProgressStatus field's value.
9737func (s *DescribeTypeRegistrationOutput) SetProgressStatus(v string) *DescribeTypeRegistrationOutput {
9738	s.ProgressStatus = &v
9739	return s
9740}
9741
9742// SetTypeArn sets the TypeArn field's value.
9743func (s *DescribeTypeRegistrationOutput) SetTypeArn(v string) *DescribeTypeRegistrationOutput {
9744	s.TypeArn = &v
9745	return s
9746}
9747
9748// SetTypeVersionArn sets the TypeVersionArn field's value.
9749func (s *DescribeTypeRegistrationOutput) SetTypeVersionArn(v string) *DescribeTypeRegistrationOutput {
9750	s.TypeVersionArn = &v
9751	return s
9752}
9753
9754type DetectStackDriftInput struct {
9755	_ struct{} `type:"structure"`
9756
9757	// The logical names of any resources you want to use as filters.
9758	LogicalResourceIds []*string `min:"1" type:"list"`
9759
9760	// The name of the stack for which you want to detect drift.
9761	//
9762	// StackName is a required field
9763	StackName *string `min:"1" type:"string" required:"true"`
9764}
9765
9766// String returns the string representation
9767func (s DetectStackDriftInput) String() string {
9768	return awsutil.Prettify(s)
9769}
9770
9771// GoString returns the string representation
9772func (s DetectStackDriftInput) GoString() string {
9773	return s.String()
9774}
9775
9776// Validate inspects the fields of the type to determine if they are valid.
9777func (s *DetectStackDriftInput) Validate() error {
9778	invalidParams := request.ErrInvalidParams{Context: "DetectStackDriftInput"}
9779	if s.LogicalResourceIds != nil && len(s.LogicalResourceIds) < 1 {
9780		invalidParams.Add(request.NewErrParamMinLen("LogicalResourceIds", 1))
9781	}
9782	if s.StackName == nil {
9783		invalidParams.Add(request.NewErrParamRequired("StackName"))
9784	}
9785	if s.StackName != nil && len(*s.StackName) < 1 {
9786		invalidParams.Add(request.NewErrParamMinLen("StackName", 1))
9787	}
9788
9789	if invalidParams.Len() > 0 {
9790		return invalidParams
9791	}
9792	return nil
9793}
9794
9795// SetLogicalResourceIds sets the LogicalResourceIds field's value.
9796func (s *DetectStackDriftInput) SetLogicalResourceIds(v []*string) *DetectStackDriftInput {
9797	s.LogicalResourceIds = v
9798	return s
9799}
9800
9801// SetStackName sets the StackName field's value.
9802func (s *DetectStackDriftInput) SetStackName(v string) *DetectStackDriftInput {
9803	s.StackName = &v
9804	return s
9805}
9806
9807type DetectStackDriftOutput struct {
9808	_ struct{} `type:"structure"`
9809
9810	// The ID of the drift detection results of this operation.
9811	//
9812	// AWS CloudFormation generates new results, with a new drift detection ID,
9813	// each time this operation is run. However, the number of drift results AWS
9814	// CloudFormation retains for any given stack, and for how long, may vary.
9815	//
9816	// StackDriftDetectionId is a required field
9817	StackDriftDetectionId *string `min:"1" type:"string" required:"true"`
9818}
9819
9820// String returns the string representation
9821func (s DetectStackDriftOutput) String() string {
9822	return awsutil.Prettify(s)
9823}
9824
9825// GoString returns the string representation
9826func (s DetectStackDriftOutput) GoString() string {
9827	return s.String()
9828}
9829
9830// SetStackDriftDetectionId sets the StackDriftDetectionId field's value.
9831func (s *DetectStackDriftOutput) SetStackDriftDetectionId(v string) *DetectStackDriftOutput {
9832	s.StackDriftDetectionId = &v
9833	return s
9834}
9835
9836type DetectStackResourceDriftInput struct {
9837	_ struct{} `type:"structure"`
9838
9839	// The logical name of the resource for which to return drift information.
9840	//
9841	// LogicalResourceId is a required field
9842	LogicalResourceId *string `type:"string" required:"true"`
9843
9844	// The name of the stack to which the resource belongs.
9845	//
9846	// StackName is a required field
9847	StackName *string `min:"1" type:"string" required:"true"`
9848}
9849
9850// String returns the string representation
9851func (s DetectStackResourceDriftInput) String() string {
9852	return awsutil.Prettify(s)
9853}
9854
9855// GoString returns the string representation
9856func (s DetectStackResourceDriftInput) GoString() string {
9857	return s.String()
9858}
9859
9860// Validate inspects the fields of the type to determine if they are valid.
9861func (s *DetectStackResourceDriftInput) Validate() error {
9862	invalidParams := request.ErrInvalidParams{Context: "DetectStackResourceDriftInput"}
9863	if s.LogicalResourceId == nil {
9864		invalidParams.Add(request.NewErrParamRequired("LogicalResourceId"))
9865	}
9866	if s.StackName == nil {
9867		invalidParams.Add(request.NewErrParamRequired("StackName"))
9868	}
9869	if s.StackName != nil && len(*s.StackName) < 1 {
9870		invalidParams.Add(request.NewErrParamMinLen("StackName", 1))
9871	}
9872
9873	if invalidParams.Len() > 0 {
9874		return invalidParams
9875	}
9876	return nil
9877}
9878
9879// SetLogicalResourceId sets the LogicalResourceId field's value.
9880func (s *DetectStackResourceDriftInput) SetLogicalResourceId(v string) *DetectStackResourceDriftInput {
9881	s.LogicalResourceId = &v
9882	return s
9883}
9884
9885// SetStackName sets the StackName field's value.
9886func (s *DetectStackResourceDriftInput) SetStackName(v string) *DetectStackResourceDriftInput {
9887	s.StackName = &v
9888	return s
9889}
9890
9891type DetectStackResourceDriftOutput struct {
9892	_ struct{} `type:"structure"`
9893
9894	// Information about whether the resource's actual configuration has drifted
9895	// from its expected template configuration, including actual and expected property
9896	// values and any differences detected.
9897	//
9898	// StackResourceDrift is a required field
9899	StackResourceDrift *StackResourceDrift `type:"structure" required:"true"`
9900}
9901
9902// String returns the string representation
9903func (s DetectStackResourceDriftOutput) String() string {
9904	return awsutil.Prettify(s)
9905}
9906
9907// GoString returns the string representation
9908func (s DetectStackResourceDriftOutput) GoString() string {
9909	return s.String()
9910}
9911
9912// SetStackResourceDrift sets the StackResourceDrift field's value.
9913func (s *DetectStackResourceDriftOutput) SetStackResourceDrift(v *StackResourceDrift) *DetectStackResourceDriftOutput {
9914	s.StackResourceDrift = v
9915	return s
9916}
9917
9918type DetectStackSetDriftInput struct {
9919	_ struct{} `type:"structure"`
9920
9921	// [Service-managed permissions] Specifies whether you are acting as an account
9922	// administrator in the organization's management account or as a delegated
9923	// administrator in a member account.
9924	//
9925	// By default, SELF is specified. Use SELF for stack sets with self-managed
9926	// permissions.
9927	//
9928	//    * If you are signed in to the management account, specify SELF.
9929	//
9930	//    * If you are signed in to a delegated administrator account, specify DELEGATED_ADMIN.
9931	//    Your AWS account must be registered as a delegated administrator in the
9932	//    management account. For more information, see Register a delegated administrator
9933	//    (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/stacksets-orgs-delegated-admin.html)
9934	//    in the AWS CloudFormation User Guide.
9935	CallAs *string `type:"string" enum:"CallAs"`
9936
9937	// The ID of the stack set operation.
9938	OperationId *string `min:"1" type:"string" idempotencyToken:"true"`
9939
9940	// The user-specified preferences for how AWS CloudFormation performs a stack
9941	// set operation.
9942	//
9943	// For more information on maximum concurrent accounts and failure tolerance,
9944	// see Stack set operation options (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/stacksets-concepts.html#stackset-ops-options).
9945	OperationPreferences *StackSetOperationPreferences `type:"structure"`
9946
9947	// The name of the stack set on which to perform the drift detection operation.
9948	//
9949	// StackSetName is a required field
9950	StackSetName *string `type:"string" required:"true"`
9951}
9952
9953// String returns the string representation
9954func (s DetectStackSetDriftInput) String() string {
9955	return awsutil.Prettify(s)
9956}
9957
9958// GoString returns the string representation
9959func (s DetectStackSetDriftInput) GoString() string {
9960	return s.String()
9961}
9962
9963// Validate inspects the fields of the type to determine if they are valid.
9964func (s *DetectStackSetDriftInput) Validate() error {
9965	invalidParams := request.ErrInvalidParams{Context: "DetectStackSetDriftInput"}
9966	if s.OperationId != nil && len(*s.OperationId) < 1 {
9967		invalidParams.Add(request.NewErrParamMinLen("OperationId", 1))
9968	}
9969	if s.StackSetName == nil {
9970		invalidParams.Add(request.NewErrParamRequired("StackSetName"))
9971	}
9972	if s.OperationPreferences != nil {
9973		if err := s.OperationPreferences.Validate(); err != nil {
9974			invalidParams.AddNested("OperationPreferences", err.(request.ErrInvalidParams))
9975		}
9976	}
9977
9978	if invalidParams.Len() > 0 {
9979		return invalidParams
9980	}
9981	return nil
9982}
9983
9984// SetCallAs sets the CallAs field's value.
9985func (s *DetectStackSetDriftInput) SetCallAs(v string) *DetectStackSetDriftInput {
9986	s.CallAs = &v
9987	return s
9988}
9989
9990// SetOperationId sets the OperationId field's value.
9991func (s *DetectStackSetDriftInput) SetOperationId(v string) *DetectStackSetDriftInput {
9992	s.OperationId = &v
9993	return s
9994}
9995
9996// SetOperationPreferences sets the OperationPreferences field's value.
9997func (s *DetectStackSetDriftInput) SetOperationPreferences(v *StackSetOperationPreferences) *DetectStackSetDriftInput {
9998	s.OperationPreferences = v
9999	return s
10000}
10001
10002// SetStackSetName sets the StackSetName field's value.
10003func (s *DetectStackSetDriftInput) SetStackSetName(v string) *DetectStackSetDriftInput {
10004	s.StackSetName = &v
10005	return s
10006}
10007
10008type DetectStackSetDriftOutput struct {
10009	_ struct{} `type:"structure"`
10010
10011	// The ID of the drift detection stack set operation.
10012	//
10013	// you can use this operation id with DescribeStackSetOperation to monitor the
10014	// progress of the drift detection operation.
10015	OperationId *string `min:"1" type:"string"`
10016}
10017
10018// String returns the string representation
10019func (s DetectStackSetDriftOutput) String() string {
10020	return awsutil.Prettify(s)
10021}
10022
10023// GoString returns the string representation
10024func (s DetectStackSetDriftOutput) GoString() string {
10025	return s.String()
10026}
10027
10028// SetOperationId sets the OperationId field's value.
10029func (s *DetectStackSetDriftOutput) SetOperationId(v string) *DetectStackSetDriftOutput {
10030	s.OperationId = &v
10031	return s
10032}
10033
10034// The input for an EstimateTemplateCost action.
10035type EstimateTemplateCostInput struct {
10036	_ struct{} `type:"structure"`
10037
10038	// A list of Parameter structures that specify input parameters.
10039	Parameters []*Parameter `type:"list"`
10040
10041	// Structure containing the template body with a minimum length of 1 byte and
10042	// a maximum length of 51,200 bytes. (For more information, go to Template Anatomy
10043	// (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/template-anatomy.html)
10044	// in the AWS CloudFormation User Guide.)
10045	//
10046	// Conditional: You must pass TemplateBody or TemplateURL. If both are passed,
10047	// only TemplateBody is used.
10048	TemplateBody *string `min:"1" type:"string"`
10049
10050	// Location of file containing the template body. The URL must point to a template
10051	// that is located in an Amazon S3 bucket or a Systems Manager document. For
10052	// more information, go to Template Anatomy (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/template-anatomy.html)
10053	// in the AWS CloudFormation User Guide.
10054	//
10055	// Conditional: You must pass TemplateURL or TemplateBody. If both are passed,
10056	// only TemplateBody is used.
10057	TemplateURL *string `min:"1" type:"string"`
10058}
10059
10060// String returns the string representation
10061func (s EstimateTemplateCostInput) String() string {
10062	return awsutil.Prettify(s)
10063}
10064
10065// GoString returns the string representation
10066func (s EstimateTemplateCostInput) GoString() string {
10067	return s.String()
10068}
10069
10070// Validate inspects the fields of the type to determine if they are valid.
10071func (s *EstimateTemplateCostInput) Validate() error {
10072	invalidParams := request.ErrInvalidParams{Context: "EstimateTemplateCostInput"}
10073	if s.TemplateBody != nil && len(*s.TemplateBody) < 1 {
10074		invalidParams.Add(request.NewErrParamMinLen("TemplateBody", 1))
10075	}
10076	if s.TemplateURL != nil && len(*s.TemplateURL) < 1 {
10077		invalidParams.Add(request.NewErrParamMinLen("TemplateURL", 1))
10078	}
10079
10080	if invalidParams.Len() > 0 {
10081		return invalidParams
10082	}
10083	return nil
10084}
10085
10086// SetParameters sets the Parameters field's value.
10087func (s *EstimateTemplateCostInput) SetParameters(v []*Parameter) *EstimateTemplateCostInput {
10088	s.Parameters = v
10089	return s
10090}
10091
10092// SetTemplateBody sets the TemplateBody field's value.
10093func (s *EstimateTemplateCostInput) SetTemplateBody(v string) *EstimateTemplateCostInput {
10094	s.TemplateBody = &v
10095	return s
10096}
10097
10098// SetTemplateURL sets the TemplateURL field's value.
10099func (s *EstimateTemplateCostInput) SetTemplateURL(v string) *EstimateTemplateCostInput {
10100	s.TemplateURL = &v
10101	return s
10102}
10103
10104// The output for a EstimateTemplateCost action.
10105type EstimateTemplateCostOutput struct {
10106	_ struct{} `type:"structure"`
10107
10108	// An AWS Simple Monthly Calculator URL with a query string that describes the
10109	// resources required to run the template.
10110	Url *string `type:"string"`
10111}
10112
10113// String returns the string representation
10114func (s EstimateTemplateCostOutput) String() string {
10115	return awsutil.Prettify(s)
10116}
10117
10118// GoString returns the string representation
10119func (s EstimateTemplateCostOutput) GoString() string {
10120	return s.String()
10121}
10122
10123// SetUrl sets the Url field's value.
10124func (s *EstimateTemplateCostOutput) SetUrl(v string) *EstimateTemplateCostOutput {
10125	s.Url = &v
10126	return s
10127}
10128
10129// The input for the ExecuteChangeSet action.
10130type ExecuteChangeSetInput struct {
10131	_ struct{} `type:"structure"`
10132
10133	// The name or ARN of the change set that you want use to update the specified
10134	// stack.
10135	//
10136	// ChangeSetName is a required field
10137	ChangeSetName *string `min:"1" type:"string" required:"true"`
10138
10139	// A unique identifier for this ExecuteChangeSet request. Specify this token
10140	// if you plan to retry requests so that AWS CloudFormation knows that you're
10141	// not attempting to execute a change set to update a stack with the same name.
10142	// You might retry ExecuteChangeSet requests to ensure that AWS CloudFormation
10143	// successfully received them.
10144	ClientRequestToken *string `min:"1" type:"string"`
10145
10146	// If you specified the name of a change set, specify the stack name or ID (ARN)
10147	// that is associated with the change set you want to execute.
10148	StackName *string `min:"1" type:"string"`
10149}
10150
10151// String returns the string representation
10152func (s ExecuteChangeSetInput) String() string {
10153	return awsutil.Prettify(s)
10154}
10155
10156// GoString returns the string representation
10157func (s ExecuteChangeSetInput) GoString() string {
10158	return s.String()
10159}
10160
10161// Validate inspects the fields of the type to determine if they are valid.
10162func (s *ExecuteChangeSetInput) Validate() error {
10163	invalidParams := request.ErrInvalidParams{Context: "ExecuteChangeSetInput"}
10164	if s.ChangeSetName == nil {
10165		invalidParams.Add(request.NewErrParamRequired("ChangeSetName"))
10166	}
10167	if s.ChangeSetName != nil && len(*s.ChangeSetName) < 1 {
10168		invalidParams.Add(request.NewErrParamMinLen("ChangeSetName", 1))
10169	}
10170	if s.ClientRequestToken != nil && len(*s.ClientRequestToken) < 1 {
10171		invalidParams.Add(request.NewErrParamMinLen("ClientRequestToken", 1))
10172	}
10173	if s.StackName != nil && len(*s.StackName) < 1 {
10174		invalidParams.Add(request.NewErrParamMinLen("StackName", 1))
10175	}
10176
10177	if invalidParams.Len() > 0 {
10178		return invalidParams
10179	}
10180	return nil
10181}
10182
10183// SetChangeSetName sets the ChangeSetName field's value.
10184func (s *ExecuteChangeSetInput) SetChangeSetName(v string) *ExecuteChangeSetInput {
10185	s.ChangeSetName = &v
10186	return s
10187}
10188
10189// SetClientRequestToken sets the ClientRequestToken field's value.
10190func (s *ExecuteChangeSetInput) SetClientRequestToken(v string) *ExecuteChangeSetInput {
10191	s.ClientRequestToken = &v
10192	return s
10193}
10194
10195// SetStackName sets the StackName field's value.
10196func (s *ExecuteChangeSetInput) SetStackName(v string) *ExecuteChangeSetInput {
10197	s.StackName = &v
10198	return s
10199}
10200
10201// The output for the ExecuteChangeSet action.
10202type ExecuteChangeSetOutput struct {
10203	_ struct{} `type:"structure"`
10204}
10205
10206// String returns the string representation
10207func (s ExecuteChangeSetOutput) String() string {
10208	return awsutil.Prettify(s)
10209}
10210
10211// GoString returns the string representation
10212func (s ExecuteChangeSetOutput) GoString() string {
10213	return s.String()
10214}
10215
10216// The Export structure describes the exported output values for a stack.
10217type Export struct {
10218	_ struct{} `type:"structure"`
10219
10220	// The stack that contains the exported output name and value.
10221	ExportingStackId *string `type:"string"`
10222
10223	// The name of exported output value. Use this name and the Fn::ImportValue
10224	// function to import the associated value into other stacks. The name is defined
10225	// in the Export field in the associated stack's Outputs section.
10226	Name *string `type:"string"`
10227
10228	// The value of the exported output, such as a resource physical ID. This value
10229	// is defined in the Export field in the associated stack's Outputs section.
10230	Value *string `type:"string"`
10231}
10232
10233// String returns the string representation
10234func (s Export) String() string {
10235	return awsutil.Prettify(s)
10236}
10237
10238// GoString returns the string representation
10239func (s Export) GoString() string {
10240	return s.String()
10241}
10242
10243// SetExportingStackId sets the ExportingStackId field's value.
10244func (s *Export) SetExportingStackId(v string) *Export {
10245	s.ExportingStackId = &v
10246	return s
10247}
10248
10249// SetName sets the Name field's value.
10250func (s *Export) SetName(v string) *Export {
10251	s.Name = &v
10252	return s
10253}
10254
10255// SetValue sets the Value field's value.
10256func (s *Export) SetValue(v string) *Export {
10257	s.Value = &v
10258	return s
10259}
10260
10261// The input for the GetStackPolicy action.
10262type GetStackPolicyInput struct {
10263	_ struct{} `type:"structure"`
10264
10265	// The name or unique stack ID that is associated with the stack whose policy
10266	// you want to get.
10267	//
10268	// StackName is a required field
10269	StackName *string `type:"string" required:"true"`
10270}
10271
10272// String returns the string representation
10273func (s GetStackPolicyInput) String() string {
10274	return awsutil.Prettify(s)
10275}
10276
10277// GoString returns the string representation
10278func (s GetStackPolicyInput) GoString() string {
10279	return s.String()
10280}
10281
10282// Validate inspects the fields of the type to determine if they are valid.
10283func (s *GetStackPolicyInput) Validate() error {
10284	invalidParams := request.ErrInvalidParams{Context: "GetStackPolicyInput"}
10285	if s.StackName == nil {
10286		invalidParams.Add(request.NewErrParamRequired("StackName"))
10287	}
10288
10289	if invalidParams.Len() > 0 {
10290		return invalidParams
10291	}
10292	return nil
10293}
10294
10295// SetStackName sets the StackName field's value.
10296func (s *GetStackPolicyInput) SetStackName(v string) *GetStackPolicyInput {
10297	s.StackName = &v
10298	return s
10299}
10300
10301// The output for the GetStackPolicy action.
10302type GetStackPolicyOutput struct {
10303	_ struct{} `type:"structure"`
10304
10305	// Structure containing the stack policy body. (For more information, go to
10306	// Prevent Updates to Stack Resources (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/protect-stack-resources.html)
10307	// in the AWS CloudFormation User Guide.)
10308	StackPolicyBody *string `min:"1" type:"string"`
10309}
10310
10311// String returns the string representation
10312func (s GetStackPolicyOutput) String() string {
10313	return awsutil.Prettify(s)
10314}
10315
10316// GoString returns the string representation
10317func (s GetStackPolicyOutput) GoString() string {
10318	return s.String()
10319}
10320
10321// SetStackPolicyBody sets the StackPolicyBody field's value.
10322func (s *GetStackPolicyOutput) SetStackPolicyBody(v string) *GetStackPolicyOutput {
10323	s.StackPolicyBody = &v
10324	return s
10325}
10326
10327// The input for a GetTemplate action.
10328type GetTemplateInput struct {
10329	_ struct{} `type:"structure"`
10330
10331	// The name or Amazon Resource Name (ARN) of a change set for which AWS CloudFormation
10332	// returns the associated template. If you specify a name, you must also specify
10333	// the StackName.
10334	ChangeSetName *string `min:"1" type:"string"`
10335
10336	// The name or the unique stack ID that is associated with the stack, which
10337	// are not always interchangeable:
10338	//
10339	//    * Running stacks: You can specify either the stack's name or its unique
10340	//    stack ID.
10341	//
10342	//    * Deleted stacks: You must specify the unique stack ID.
10343	//
10344	// Default: There is no default value.
10345	StackName *string `type:"string"`
10346
10347	// For templates that include transforms, the stage of the template that AWS
10348	// CloudFormation returns. To get the user-submitted template, specify Original.
10349	// To get the template after AWS CloudFormation has processed all transforms,
10350	// specify Processed.
10351	//
10352	// If the template doesn't include transforms, Original and Processed return
10353	// the same template. By default, AWS CloudFormation specifies Original.
10354	TemplateStage *string `type:"string" enum:"TemplateStage"`
10355}
10356
10357// String returns the string representation
10358func (s GetTemplateInput) String() string {
10359	return awsutil.Prettify(s)
10360}
10361
10362// GoString returns the string representation
10363func (s GetTemplateInput) GoString() string {
10364	return s.String()
10365}
10366
10367// Validate inspects the fields of the type to determine if they are valid.
10368func (s *GetTemplateInput) Validate() error {
10369	invalidParams := request.ErrInvalidParams{Context: "GetTemplateInput"}
10370	if s.ChangeSetName != nil && len(*s.ChangeSetName) < 1 {
10371		invalidParams.Add(request.NewErrParamMinLen("ChangeSetName", 1))
10372	}
10373
10374	if invalidParams.Len() > 0 {
10375		return invalidParams
10376	}
10377	return nil
10378}
10379
10380// SetChangeSetName sets the ChangeSetName field's value.
10381func (s *GetTemplateInput) SetChangeSetName(v string) *GetTemplateInput {
10382	s.ChangeSetName = &v
10383	return s
10384}
10385
10386// SetStackName sets the StackName field's value.
10387func (s *GetTemplateInput) SetStackName(v string) *GetTemplateInput {
10388	s.StackName = &v
10389	return s
10390}
10391
10392// SetTemplateStage sets the TemplateStage field's value.
10393func (s *GetTemplateInput) SetTemplateStage(v string) *GetTemplateInput {
10394	s.TemplateStage = &v
10395	return s
10396}
10397
10398// The output for GetTemplate action.
10399type GetTemplateOutput struct {
10400	_ struct{} `type:"structure"`
10401
10402	// The stage of the template that you can retrieve. For stacks, the Original
10403	// and Processed templates are always available. For change sets, the Original
10404	// template is always available. After AWS CloudFormation finishes creating
10405	// the change set, the Processed template becomes available.
10406	StagesAvailable []*string `type:"list"`
10407
10408	// Structure containing the template body. (For more information, go to Template
10409	// Anatomy (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/template-anatomy.html)
10410	// in the AWS CloudFormation User Guide.)
10411	//
10412	// AWS CloudFormation returns the same template that was used when the stack
10413	// was created.
10414	TemplateBody *string `min:"1" type:"string"`
10415}
10416
10417// String returns the string representation
10418func (s GetTemplateOutput) String() string {
10419	return awsutil.Prettify(s)
10420}
10421
10422// GoString returns the string representation
10423func (s GetTemplateOutput) GoString() string {
10424	return s.String()
10425}
10426
10427// SetStagesAvailable sets the StagesAvailable field's value.
10428func (s *GetTemplateOutput) SetStagesAvailable(v []*string) *GetTemplateOutput {
10429	s.StagesAvailable = v
10430	return s
10431}
10432
10433// SetTemplateBody sets the TemplateBody field's value.
10434func (s *GetTemplateOutput) SetTemplateBody(v string) *GetTemplateOutput {
10435	s.TemplateBody = &v
10436	return s
10437}
10438
10439// The input for the GetTemplateSummary action.
10440type GetTemplateSummaryInput struct {
10441	_ struct{} `type:"structure"`
10442
10443	// [Service-managed permissions] Specifies whether you are acting as an account
10444	// administrator in the organization's management account or as a delegated
10445	// administrator in a member account.
10446	//
10447	// By default, SELF is specified. Use SELF for stack sets with self-managed
10448	// permissions.
10449	//
10450	//    * If you are signed in to the management account, specify SELF.
10451	//
10452	//    * If you are signed in to a delegated administrator account, specify DELEGATED_ADMIN.
10453	//    Your AWS account must be registered as a delegated administrator in the
10454	//    management account. For more information, see Register a delegated administrator
10455	//    (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/stacksets-orgs-delegated-admin.html)
10456	//    in the AWS CloudFormation User Guide.
10457	CallAs *string `type:"string" enum:"CallAs"`
10458
10459	// The name or the stack ID that is associated with the stack, which are not
10460	// always interchangeable. For running stacks, you can specify either the stack's
10461	// name or its unique stack ID. For deleted stack, you must specify the unique
10462	// stack ID.
10463	//
10464	// Conditional: You must specify only one of the following parameters: StackName,
10465	// StackSetName, TemplateBody, or TemplateURL.
10466	StackName *string `min:"1" type:"string"`
10467
10468	// The name or unique ID of the stack set from which the stack was created.
10469	//
10470	// Conditional: You must specify only one of the following parameters: StackName,
10471	// StackSetName, TemplateBody, or TemplateURL.
10472	StackSetName *string `type:"string"`
10473
10474	// Structure containing the template body with a minimum length of 1 byte and
10475	// a maximum length of 51,200 bytes. For more information about templates, see
10476	// Template Anatomy (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/template-anatomy.html)
10477	// in the AWS CloudFormation User Guide.
10478	//
10479	// Conditional: You must specify only one of the following parameters: StackName,
10480	// StackSetName, TemplateBody, or TemplateURL.
10481	TemplateBody *string `min:"1" type:"string"`
10482
10483	// Location of file containing the template body. The URL must point to a template
10484	// (max size: 460,800 bytes) that is located in an Amazon S3 bucket or a Systems
10485	// Manager document. For more information about templates, see Template Anatomy
10486	// (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/template-anatomy.html)
10487	// in the AWS CloudFormation User Guide.
10488	//
10489	// Conditional: You must specify only one of the following parameters: StackName,
10490	// StackSetName, TemplateBody, or TemplateURL.
10491	TemplateURL *string `min:"1" type:"string"`
10492}
10493
10494// String returns the string representation
10495func (s GetTemplateSummaryInput) String() string {
10496	return awsutil.Prettify(s)
10497}
10498
10499// GoString returns the string representation
10500func (s GetTemplateSummaryInput) GoString() string {
10501	return s.String()
10502}
10503
10504// Validate inspects the fields of the type to determine if they are valid.
10505func (s *GetTemplateSummaryInput) Validate() error {
10506	invalidParams := request.ErrInvalidParams{Context: "GetTemplateSummaryInput"}
10507	if s.StackName != nil && len(*s.StackName) < 1 {
10508		invalidParams.Add(request.NewErrParamMinLen("StackName", 1))
10509	}
10510	if s.TemplateBody != nil && len(*s.TemplateBody) < 1 {
10511		invalidParams.Add(request.NewErrParamMinLen("TemplateBody", 1))
10512	}
10513	if s.TemplateURL != nil && len(*s.TemplateURL) < 1 {
10514		invalidParams.Add(request.NewErrParamMinLen("TemplateURL", 1))
10515	}
10516
10517	if invalidParams.Len() > 0 {
10518		return invalidParams
10519	}
10520	return nil
10521}
10522
10523// SetCallAs sets the CallAs field's value.
10524func (s *GetTemplateSummaryInput) SetCallAs(v string) *GetTemplateSummaryInput {
10525	s.CallAs = &v
10526	return s
10527}
10528
10529// SetStackName sets the StackName field's value.
10530func (s *GetTemplateSummaryInput) SetStackName(v string) *GetTemplateSummaryInput {
10531	s.StackName = &v
10532	return s
10533}
10534
10535// SetStackSetName sets the StackSetName field's value.
10536func (s *GetTemplateSummaryInput) SetStackSetName(v string) *GetTemplateSummaryInput {
10537	s.StackSetName = &v
10538	return s
10539}
10540
10541// SetTemplateBody sets the TemplateBody field's value.
10542func (s *GetTemplateSummaryInput) SetTemplateBody(v string) *GetTemplateSummaryInput {
10543	s.TemplateBody = &v
10544	return s
10545}
10546
10547// SetTemplateURL sets the TemplateURL field's value.
10548func (s *GetTemplateSummaryInput) SetTemplateURL(v string) *GetTemplateSummaryInput {
10549	s.TemplateURL = &v
10550	return s
10551}
10552
10553// The output for the GetTemplateSummary action.
10554type GetTemplateSummaryOutput struct {
10555	_ struct{} `type:"structure"`
10556
10557	// The capabilities found within the template. If your template contains IAM
10558	// resources, you must specify the CAPABILITY_IAM or CAPABILITY_NAMED_IAM value
10559	// for this parameter when you use the CreateStack or UpdateStack actions with
10560	// your template; otherwise, those actions return an InsufficientCapabilities
10561	// error.
10562	//
10563	// For more information, see Acknowledging IAM Resources in AWS CloudFormation
10564	// Templates (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-iam-template.html#capabilities).
10565	Capabilities []*string `type:"list"`
10566
10567	// The list of resources that generated the values in the Capabilities response
10568	// element.
10569	CapabilitiesReason *string `type:"string"`
10570
10571	// A list of the transforms that are declared in the template.
10572	DeclaredTransforms []*string `type:"list"`
10573
10574	// The value that is defined in the Description property of the template.
10575	Description *string `min:"1" type:"string"`
10576
10577	// The value that is defined for the Metadata property of the template.
10578	Metadata *string `type:"string"`
10579
10580	// A list of parameter declarations that describe various properties for each
10581	// parameter.
10582	Parameters []*ParameterDeclaration `type:"list"`
10583
10584	// A list of resource identifier summaries that describe the target resources
10585	// of an import operation and the properties you can provide during the import
10586	// to identify the target resources. For example, BucketName is a possible identifier
10587	// property for an AWS::S3::Bucket resource.
10588	ResourceIdentifierSummaries []*ResourceIdentifierSummary `type:"list"`
10589
10590	// A list of all the template resource types that are defined in the template,
10591	// such as AWS::EC2::Instance, AWS::Dynamo::Table, and Custom::MyCustomInstance.
10592	ResourceTypes []*string `type:"list"`
10593
10594	// The AWS template format version, which identifies the capabilities of the
10595	// template.
10596	Version *string `type:"string"`
10597}
10598
10599// String returns the string representation
10600func (s GetTemplateSummaryOutput) String() string {
10601	return awsutil.Prettify(s)
10602}
10603
10604// GoString returns the string representation
10605func (s GetTemplateSummaryOutput) GoString() string {
10606	return s.String()
10607}
10608
10609// SetCapabilities sets the Capabilities field's value.
10610func (s *GetTemplateSummaryOutput) SetCapabilities(v []*string) *GetTemplateSummaryOutput {
10611	s.Capabilities = v
10612	return s
10613}
10614
10615// SetCapabilitiesReason sets the CapabilitiesReason field's value.
10616func (s *GetTemplateSummaryOutput) SetCapabilitiesReason(v string) *GetTemplateSummaryOutput {
10617	s.CapabilitiesReason = &v
10618	return s
10619}
10620
10621// SetDeclaredTransforms sets the DeclaredTransforms field's value.
10622func (s *GetTemplateSummaryOutput) SetDeclaredTransforms(v []*string) *GetTemplateSummaryOutput {
10623	s.DeclaredTransforms = v
10624	return s
10625}
10626
10627// SetDescription sets the Description field's value.
10628func (s *GetTemplateSummaryOutput) SetDescription(v string) *GetTemplateSummaryOutput {
10629	s.Description = &v
10630	return s
10631}
10632
10633// SetMetadata sets the Metadata field's value.
10634func (s *GetTemplateSummaryOutput) SetMetadata(v string) *GetTemplateSummaryOutput {
10635	s.Metadata = &v
10636	return s
10637}
10638
10639// SetParameters sets the Parameters field's value.
10640func (s *GetTemplateSummaryOutput) SetParameters(v []*ParameterDeclaration) *GetTemplateSummaryOutput {
10641	s.Parameters = v
10642	return s
10643}
10644
10645// SetResourceIdentifierSummaries sets the ResourceIdentifierSummaries field's value.
10646func (s *GetTemplateSummaryOutput) SetResourceIdentifierSummaries(v []*ResourceIdentifierSummary) *GetTemplateSummaryOutput {
10647	s.ResourceIdentifierSummaries = v
10648	return s
10649}
10650
10651// SetResourceTypes sets the ResourceTypes field's value.
10652func (s *GetTemplateSummaryOutput) SetResourceTypes(v []*string) *GetTemplateSummaryOutput {
10653	s.ResourceTypes = v
10654	return s
10655}
10656
10657// SetVersion sets the Version field's value.
10658func (s *GetTemplateSummaryOutput) SetVersion(v string) *GetTemplateSummaryOutput {
10659	s.Version = &v
10660	return s
10661}
10662
10663// The input for the ListChangeSets action.
10664type ListChangeSetsInput struct {
10665	_ struct{} `type:"structure"`
10666
10667	// A string (provided by the ListChangeSets response output) that identifies
10668	// the next page of change sets that you want to retrieve.
10669	NextToken *string `min:"1" type:"string"`
10670
10671	// The name or the Amazon Resource Name (ARN) of the stack for which you want
10672	// to list change sets.
10673	//
10674	// StackName is a required field
10675	StackName *string `min:"1" type:"string" required:"true"`
10676}
10677
10678// String returns the string representation
10679func (s ListChangeSetsInput) String() string {
10680	return awsutil.Prettify(s)
10681}
10682
10683// GoString returns the string representation
10684func (s ListChangeSetsInput) GoString() string {
10685	return s.String()
10686}
10687
10688// Validate inspects the fields of the type to determine if they are valid.
10689func (s *ListChangeSetsInput) Validate() error {
10690	invalidParams := request.ErrInvalidParams{Context: "ListChangeSetsInput"}
10691	if s.NextToken != nil && len(*s.NextToken) < 1 {
10692		invalidParams.Add(request.NewErrParamMinLen("NextToken", 1))
10693	}
10694	if s.StackName == nil {
10695		invalidParams.Add(request.NewErrParamRequired("StackName"))
10696	}
10697	if s.StackName != nil && len(*s.StackName) < 1 {
10698		invalidParams.Add(request.NewErrParamMinLen("StackName", 1))
10699	}
10700
10701	if invalidParams.Len() > 0 {
10702		return invalidParams
10703	}
10704	return nil
10705}
10706
10707// SetNextToken sets the NextToken field's value.
10708func (s *ListChangeSetsInput) SetNextToken(v string) *ListChangeSetsInput {
10709	s.NextToken = &v
10710	return s
10711}
10712
10713// SetStackName sets the StackName field's value.
10714func (s *ListChangeSetsInput) SetStackName(v string) *ListChangeSetsInput {
10715	s.StackName = &v
10716	return s
10717}
10718
10719// The output for the ListChangeSets action.
10720type ListChangeSetsOutput struct {
10721	_ struct{} `type:"structure"`
10722
10723	// If the output exceeds 1 MB, a string that identifies the next page of change
10724	// sets. If there is no additional page, this value is null.
10725	NextToken *string `min:"1" type:"string"`
10726
10727	// A list of ChangeSetSummary structures that provides the ID and status of
10728	// each change set for the specified stack.
10729	Summaries []*ChangeSetSummary `type:"list"`
10730}
10731
10732// String returns the string representation
10733func (s ListChangeSetsOutput) String() string {
10734	return awsutil.Prettify(s)
10735}
10736
10737// GoString returns the string representation
10738func (s ListChangeSetsOutput) GoString() string {
10739	return s.String()
10740}
10741
10742// SetNextToken sets the NextToken field's value.
10743func (s *ListChangeSetsOutput) SetNextToken(v string) *ListChangeSetsOutput {
10744	s.NextToken = &v
10745	return s
10746}
10747
10748// SetSummaries sets the Summaries field's value.
10749func (s *ListChangeSetsOutput) SetSummaries(v []*ChangeSetSummary) *ListChangeSetsOutput {
10750	s.Summaries = v
10751	return s
10752}
10753
10754type ListExportsInput struct {
10755	_ struct{} `type:"structure"`
10756
10757	// A string (provided by the ListExports response output) that identifies the
10758	// next page of exported output values that you asked to retrieve.
10759	NextToken *string `min:"1" type:"string"`
10760}
10761
10762// String returns the string representation
10763func (s ListExportsInput) String() string {
10764	return awsutil.Prettify(s)
10765}
10766
10767// GoString returns the string representation
10768func (s ListExportsInput) GoString() string {
10769	return s.String()
10770}
10771
10772// Validate inspects the fields of the type to determine if they are valid.
10773func (s *ListExportsInput) Validate() error {
10774	invalidParams := request.ErrInvalidParams{Context: "ListExportsInput"}
10775	if s.NextToken != nil && len(*s.NextToken) < 1 {
10776		invalidParams.Add(request.NewErrParamMinLen("NextToken", 1))
10777	}
10778
10779	if invalidParams.Len() > 0 {
10780		return invalidParams
10781	}
10782	return nil
10783}
10784
10785// SetNextToken sets the NextToken field's value.
10786func (s *ListExportsInput) SetNextToken(v string) *ListExportsInput {
10787	s.NextToken = &v
10788	return s
10789}
10790
10791type ListExportsOutput struct {
10792	_ struct{} `type:"structure"`
10793
10794	// The output for the ListExports action.
10795	Exports []*Export `type:"list"`
10796
10797	// If the output exceeds 100 exported output values, a string that identifies
10798	// the next page of exports. If there is no additional page, this value is null.
10799	NextToken *string `min:"1" type:"string"`
10800}
10801
10802// String returns the string representation
10803func (s ListExportsOutput) String() string {
10804	return awsutil.Prettify(s)
10805}
10806
10807// GoString returns the string representation
10808func (s ListExportsOutput) GoString() string {
10809	return s.String()
10810}
10811
10812// SetExports sets the Exports field's value.
10813func (s *ListExportsOutput) SetExports(v []*Export) *ListExportsOutput {
10814	s.Exports = v
10815	return s
10816}
10817
10818// SetNextToken sets the NextToken field's value.
10819func (s *ListExportsOutput) SetNextToken(v string) *ListExportsOutput {
10820	s.NextToken = &v
10821	return s
10822}
10823
10824type ListImportsInput struct {
10825	_ struct{} `type:"structure"`
10826
10827	// The name of the exported output value. AWS CloudFormation returns the stack
10828	// names that are importing this value.
10829	//
10830	// ExportName is a required field
10831	ExportName *string `type:"string" required:"true"`
10832
10833	// A string (provided by the ListImports response output) that identifies the
10834	// next page of stacks that are importing the specified exported output value.
10835	NextToken *string `min:"1" type:"string"`
10836}
10837
10838// String returns the string representation
10839func (s ListImportsInput) String() string {
10840	return awsutil.Prettify(s)
10841}
10842
10843// GoString returns the string representation
10844func (s ListImportsInput) GoString() string {
10845	return s.String()
10846}
10847
10848// Validate inspects the fields of the type to determine if they are valid.
10849func (s *ListImportsInput) Validate() error {
10850	invalidParams := request.ErrInvalidParams{Context: "ListImportsInput"}
10851	if s.ExportName == nil {
10852		invalidParams.Add(request.NewErrParamRequired("ExportName"))
10853	}
10854	if s.NextToken != nil && len(*s.NextToken) < 1 {
10855		invalidParams.Add(request.NewErrParamMinLen("NextToken", 1))
10856	}
10857
10858	if invalidParams.Len() > 0 {
10859		return invalidParams
10860	}
10861	return nil
10862}
10863
10864// SetExportName sets the ExportName field's value.
10865func (s *ListImportsInput) SetExportName(v string) *ListImportsInput {
10866	s.ExportName = &v
10867	return s
10868}
10869
10870// SetNextToken sets the NextToken field's value.
10871func (s *ListImportsInput) SetNextToken(v string) *ListImportsInput {
10872	s.NextToken = &v
10873	return s
10874}
10875
10876type ListImportsOutput struct {
10877	_ struct{} `type:"structure"`
10878
10879	// A list of stack names that are importing the specified exported output value.
10880	Imports []*string `type:"list"`
10881
10882	// A string that identifies the next page of exports. If there is no additional
10883	// page, this value is null.
10884	NextToken *string `min:"1" type:"string"`
10885}
10886
10887// String returns the string representation
10888func (s ListImportsOutput) String() string {
10889	return awsutil.Prettify(s)
10890}
10891
10892// GoString returns the string representation
10893func (s ListImportsOutput) GoString() string {
10894	return s.String()
10895}
10896
10897// SetImports sets the Imports field's value.
10898func (s *ListImportsOutput) SetImports(v []*string) *ListImportsOutput {
10899	s.Imports = v
10900	return s
10901}
10902
10903// SetNextToken sets the NextToken field's value.
10904func (s *ListImportsOutput) SetNextToken(v string) *ListImportsOutput {
10905	s.NextToken = &v
10906	return s
10907}
10908
10909type ListStackInstancesInput struct {
10910	_ struct{} `type:"structure"`
10911
10912	// [Service-managed permissions] Specifies whether you are acting as an account
10913	// administrator in the organization's management account or as a delegated
10914	// administrator in a member account.
10915	//
10916	// By default, SELF is specified. Use SELF for stack sets with self-managed
10917	// permissions.
10918	//
10919	//    * If you are signed in to the management account, specify SELF.
10920	//
10921	//    * If you are signed in to a delegated administrator account, specify DELEGATED_ADMIN.
10922	//    Your AWS account must be registered as a delegated administrator in the
10923	//    management account. For more information, see Register a delegated administrator
10924	//    (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/stacksets-orgs-delegated-admin.html)
10925	//    in the AWS CloudFormation User Guide.
10926	CallAs *string `type:"string" enum:"CallAs"`
10927
10928	// The status that stack instances are filtered by.
10929	Filters []*StackInstanceFilter `type:"list"`
10930
10931	// The maximum number of results to be returned with a single call. If the number
10932	// of available results exceeds this maximum, the response includes a NextToken
10933	// value that you can assign to the NextToken request parameter to get the next
10934	// set of results.
10935	MaxResults *int64 `min:"1" type:"integer"`
10936
10937	// If the previous request didn't return all of the remaining results, the response's
10938	// NextToken parameter value is set to a token. To retrieve the next set of
10939	// results, call ListStackInstances again and assign that token to the request
10940	// object's NextToken parameter. If there are no remaining results, the previous
10941	// response object's NextToken parameter is set to null.
10942	NextToken *string `min:"1" type:"string"`
10943
10944	// The name of the AWS account that you want to list stack instances for.
10945	StackInstanceAccount *string `type:"string"`
10946
10947	// The name of the Region where you want to list stack instances.
10948	StackInstanceRegion *string `type:"string"`
10949
10950	// The name or unique ID of the stack set that you want to list stack instances
10951	// for.
10952	//
10953	// StackSetName is a required field
10954	StackSetName *string `type:"string" required:"true"`
10955}
10956
10957// String returns the string representation
10958func (s ListStackInstancesInput) String() string {
10959	return awsutil.Prettify(s)
10960}
10961
10962// GoString returns the string representation
10963func (s ListStackInstancesInput) GoString() string {
10964	return s.String()
10965}
10966
10967// Validate inspects the fields of the type to determine if they are valid.
10968func (s *ListStackInstancesInput) Validate() error {
10969	invalidParams := request.ErrInvalidParams{Context: "ListStackInstancesInput"}
10970	if s.MaxResults != nil && *s.MaxResults < 1 {
10971		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
10972	}
10973	if s.NextToken != nil && len(*s.NextToken) < 1 {
10974		invalidParams.Add(request.NewErrParamMinLen("NextToken", 1))
10975	}
10976	if s.StackSetName == nil {
10977		invalidParams.Add(request.NewErrParamRequired("StackSetName"))
10978	}
10979	if s.Filters != nil {
10980		for i, v := range s.Filters {
10981			if v == nil {
10982				continue
10983			}
10984			if err := v.Validate(); err != nil {
10985				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Filters", i), err.(request.ErrInvalidParams))
10986			}
10987		}
10988	}
10989
10990	if invalidParams.Len() > 0 {
10991		return invalidParams
10992	}
10993	return nil
10994}
10995
10996// SetCallAs sets the CallAs field's value.
10997func (s *ListStackInstancesInput) SetCallAs(v string) *ListStackInstancesInput {
10998	s.CallAs = &v
10999	return s
11000}
11001
11002// SetFilters sets the Filters field's value.
11003func (s *ListStackInstancesInput) SetFilters(v []*StackInstanceFilter) *ListStackInstancesInput {
11004	s.Filters = v
11005	return s
11006}
11007
11008// SetMaxResults sets the MaxResults field's value.
11009func (s *ListStackInstancesInput) SetMaxResults(v int64) *ListStackInstancesInput {
11010	s.MaxResults = &v
11011	return s
11012}
11013
11014// SetNextToken sets the NextToken field's value.
11015func (s *ListStackInstancesInput) SetNextToken(v string) *ListStackInstancesInput {
11016	s.NextToken = &v
11017	return s
11018}
11019
11020// SetStackInstanceAccount sets the StackInstanceAccount field's value.
11021func (s *ListStackInstancesInput) SetStackInstanceAccount(v string) *ListStackInstancesInput {
11022	s.StackInstanceAccount = &v
11023	return s
11024}
11025
11026// SetStackInstanceRegion sets the StackInstanceRegion field's value.
11027func (s *ListStackInstancesInput) SetStackInstanceRegion(v string) *ListStackInstancesInput {
11028	s.StackInstanceRegion = &v
11029	return s
11030}
11031
11032// SetStackSetName sets the StackSetName field's value.
11033func (s *ListStackInstancesInput) SetStackSetName(v string) *ListStackInstancesInput {
11034	s.StackSetName = &v
11035	return s
11036}
11037
11038type ListStackInstancesOutput struct {
11039	_ struct{} `type:"structure"`
11040
11041	// If the request doesn't return all of the remaining results, NextToken is
11042	// set to a token. To retrieve the next set of results, call ListStackInstances
11043	// again and assign that token to the request object's NextToken parameter.
11044	// If the request returns all results, NextToken is set to null.
11045	NextToken *string `min:"1" type:"string"`
11046
11047	// A list of StackInstanceSummary structures that contain information about
11048	// the specified stack instances.
11049	Summaries []*StackInstanceSummary `type:"list"`
11050}
11051
11052// String returns the string representation
11053func (s ListStackInstancesOutput) String() string {
11054	return awsutil.Prettify(s)
11055}
11056
11057// GoString returns the string representation
11058func (s ListStackInstancesOutput) GoString() string {
11059	return s.String()
11060}
11061
11062// SetNextToken sets the NextToken field's value.
11063func (s *ListStackInstancesOutput) SetNextToken(v string) *ListStackInstancesOutput {
11064	s.NextToken = &v
11065	return s
11066}
11067
11068// SetSummaries sets the Summaries field's value.
11069func (s *ListStackInstancesOutput) SetSummaries(v []*StackInstanceSummary) *ListStackInstancesOutput {
11070	s.Summaries = v
11071	return s
11072}
11073
11074// The input for the ListStackResource action.
11075type ListStackResourcesInput struct {
11076	_ struct{} `type:"structure"`
11077
11078	// A string that identifies the next page of stack resources that you want to
11079	// retrieve.
11080	NextToken *string `min:"1" type:"string"`
11081
11082	// The name or the unique stack ID that is associated with the stack, which
11083	// are not always interchangeable:
11084	//
11085	//    * Running stacks: You can specify either the stack's name or its unique
11086	//    stack ID.
11087	//
11088	//    * Deleted stacks: You must specify the unique stack ID.
11089	//
11090	// Default: There is no default value.
11091	//
11092	// StackName is a required field
11093	StackName *string `type:"string" required:"true"`
11094}
11095
11096// String returns the string representation
11097func (s ListStackResourcesInput) String() string {
11098	return awsutil.Prettify(s)
11099}
11100
11101// GoString returns the string representation
11102func (s ListStackResourcesInput) GoString() string {
11103	return s.String()
11104}
11105
11106// Validate inspects the fields of the type to determine if they are valid.
11107func (s *ListStackResourcesInput) Validate() error {
11108	invalidParams := request.ErrInvalidParams{Context: "ListStackResourcesInput"}
11109	if s.NextToken != nil && len(*s.NextToken) < 1 {
11110		invalidParams.Add(request.NewErrParamMinLen("NextToken", 1))
11111	}
11112	if s.StackName == nil {
11113		invalidParams.Add(request.NewErrParamRequired("StackName"))
11114	}
11115
11116	if invalidParams.Len() > 0 {
11117		return invalidParams
11118	}
11119	return nil
11120}
11121
11122// SetNextToken sets the NextToken field's value.
11123func (s *ListStackResourcesInput) SetNextToken(v string) *ListStackResourcesInput {
11124	s.NextToken = &v
11125	return s
11126}
11127
11128// SetStackName sets the StackName field's value.
11129func (s *ListStackResourcesInput) SetStackName(v string) *ListStackResourcesInput {
11130	s.StackName = &v
11131	return s
11132}
11133
11134// The output for a ListStackResources action.
11135type ListStackResourcesOutput struct {
11136	_ struct{} `type:"structure"`
11137
11138	// If the output exceeds 1 MB, a string that identifies the next page of stack
11139	// resources. If no additional page exists, this value is null.
11140	NextToken *string `min:"1" type:"string"`
11141
11142	// A list of StackResourceSummary structures.
11143	StackResourceSummaries []*StackResourceSummary `type:"list"`
11144}
11145
11146// String returns the string representation
11147func (s ListStackResourcesOutput) String() string {
11148	return awsutil.Prettify(s)
11149}
11150
11151// GoString returns the string representation
11152func (s ListStackResourcesOutput) GoString() string {
11153	return s.String()
11154}
11155
11156// SetNextToken sets the NextToken field's value.
11157func (s *ListStackResourcesOutput) SetNextToken(v string) *ListStackResourcesOutput {
11158	s.NextToken = &v
11159	return s
11160}
11161
11162// SetStackResourceSummaries sets the StackResourceSummaries field's value.
11163func (s *ListStackResourcesOutput) SetStackResourceSummaries(v []*StackResourceSummary) *ListStackResourcesOutput {
11164	s.StackResourceSummaries = v
11165	return s
11166}
11167
11168type ListStackSetOperationResultsInput struct {
11169	_ struct{} `type:"structure"`
11170
11171	// [Service-managed permissions] Specifies whether you are acting as an account
11172	// administrator in the organization's management account or as a delegated
11173	// administrator in a member account.
11174	//
11175	// By default, SELF is specified. Use SELF for stack sets with self-managed
11176	// permissions.
11177	//
11178	//    * If you are signed in to the management account, specify SELF.
11179	//
11180	//    * If you are signed in to a delegated administrator account, specify DELEGATED_ADMIN.
11181	//    Your AWS account must be registered as a delegated administrator in the
11182	//    management account. For more information, see Register a delegated administrator
11183	//    (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/stacksets-orgs-delegated-admin.html)
11184	//    in the AWS CloudFormation User Guide.
11185	CallAs *string `type:"string" enum:"CallAs"`
11186
11187	// The maximum number of results to be returned with a single call. If the number
11188	// of available results exceeds this maximum, the response includes a NextToken
11189	// value that you can assign to the NextToken request parameter to get the next
11190	// set of results.
11191	MaxResults *int64 `min:"1" type:"integer"`
11192
11193	// If the previous request didn't return all of the remaining results, the response
11194	// object's NextToken parameter value is set to a token. To retrieve the next
11195	// set of results, call ListStackSetOperationResults again and assign that token
11196	// to the request object's NextToken parameter. If there are no remaining results,
11197	// the previous response object's NextToken parameter is set to null.
11198	NextToken *string `min:"1" type:"string"`
11199
11200	// The ID of the stack set operation.
11201	//
11202	// OperationId is a required field
11203	OperationId *string `min:"1" type:"string" required:"true"`
11204
11205	// The name or unique ID of the stack set that you want to get operation results
11206	// for.
11207	//
11208	// StackSetName is a required field
11209	StackSetName *string `type:"string" required:"true"`
11210}
11211
11212// String returns the string representation
11213func (s ListStackSetOperationResultsInput) String() string {
11214	return awsutil.Prettify(s)
11215}
11216
11217// GoString returns the string representation
11218func (s ListStackSetOperationResultsInput) GoString() string {
11219	return s.String()
11220}
11221
11222// Validate inspects the fields of the type to determine if they are valid.
11223func (s *ListStackSetOperationResultsInput) Validate() error {
11224	invalidParams := request.ErrInvalidParams{Context: "ListStackSetOperationResultsInput"}
11225	if s.MaxResults != nil && *s.MaxResults < 1 {
11226		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
11227	}
11228	if s.NextToken != nil && len(*s.NextToken) < 1 {
11229		invalidParams.Add(request.NewErrParamMinLen("NextToken", 1))
11230	}
11231	if s.OperationId == nil {
11232		invalidParams.Add(request.NewErrParamRequired("OperationId"))
11233	}
11234	if s.OperationId != nil && len(*s.OperationId) < 1 {
11235		invalidParams.Add(request.NewErrParamMinLen("OperationId", 1))
11236	}
11237	if s.StackSetName == nil {
11238		invalidParams.Add(request.NewErrParamRequired("StackSetName"))
11239	}
11240
11241	if invalidParams.Len() > 0 {
11242		return invalidParams
11243	}
11244	return nil
11245}
11246
11247// SetCallAs sets the CallAs field's value.
11248func (s *ListStackSetOperationResultsInput) SetCallAs(v string) *ListStackSetOperationResultsInput {
11249	s.CallAs = &v
11250	return s
11251}
11252
11253// SetMaxResults sets the MaxResults field's value.
11254func (s *ListStackSetOperationResultsInput) SetMaxResults(v int64) *ListStackSetOperationResultsInput {
11255	s.MaxResults = &v
11256	return s
11257}
11258
11259// SetNextToken sets the NextToken field's value.
11260func (s *ListStackSetOperationResultsInput) SetNextToken(v string) *ListStackSetOperationResultsInput {
11261	s.NextToken = &v
11262	return s
11263}
11264
11265// SetOperationId sets the OperationId field's value.
11266func (s *ListStackSetOperationResultsInput) SetOperationId(v string) *ListStackSetOperationResultsInput {
11267	s.OperationId = &v
11268	return s
11269}
11270
11271// SetStackSetName sets the StackSetName field's value.
11272func (s *ListStackSetOperationResultsInput) SetStackSetName(v string) *ListStackSetOperationResultsInput {
11273	s.StackSetName = &v
11274	return s
11275}
11276
11277type ListStackSetOperationResultsOutput struct {
11278	_ struct{} `type:"structure"`
11279
11280	// If the request doesn't return all results, NextToken is set to a token. To
11281	// retrieve the next set of results, call ListOperationResults again and assign
11282	// that token to the request object's NextToken parameter. If there are no remaining
11283	// results, NextToken is set to null.
11284	NextToken *string `min:"1" type:"string"`
11285
11286	// A list of StackSetOperationResultSummary structures that contain information
11287	// about the specified operation results, for accounts and Regions that are
11288	// included in the operation.
11289	Summaries []*StackSetOperationResultSummary `type:"list"`
11290}
11291
11292// String returns the string representation
11293func (s ListStackSetOperationResultsOutput) String() string {
11294	return awsutil.Prettify(s)
11295}
11296
11297// GoString returns the string representation
11298func (s ListStackSetOperationResultsOutput) GoString() string {
11299	return s.String()
11300}
11301
11302// SetNextToken sets the NextToken field's value.
11303func (s *ListStackSetOperationResultsOutput) SetNextToken(v string) *ListStackSetOperationResultsOutput {
11304	s.NextToken = &v
11305	return s
11306}
11307
11308// SetSummaries sets the Summaries field's value.
11309func (s *ListStackSetOperationResultsOutput) SetSummaries(v []*StackSetOperationResultSummary) *ListStackSetOperationResultsOutput {
11310	s.Summaries = v
11311	return s
11312}
11313
11314type ListStackSetOperationsInput struct {
11315	_ struct{} `type:"structure"`
11316
11317	// [Service-managed permissions] Specifies whether you are acting as an account
11318	// administrator in the organization's management account or as a delegated
11319	// administrator in a member account.
11320	//
11321	// By default, SELF is specified. Use SELF for stack sets with self-managed
11322	// permissions.
11323	//
11324	//    * If you are signed in to the management account, specify SELF.
11325	//
11326	//    * If you are signed in to a delegated administrator account, specify DELEGATED_ADMIN.
11327	//    Your AWS account must be registered as a delegated administrator in the
11328	//    management account. For more information, see Register a delegated administrator
11329	//    (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/stacksets-orgs-delegated-admin.html)
11330	//    in the AWS CloudFormation User Guide.
11331	CallAs *string `type:"string" enum:"CallAs"`
11332
11333	// The maximum number of results to be returned with a single call. If the number
11334	// of available results exceeds this maximum, the response includes a NextToken
11335	// value that you can assign to the NextToken request parameter to get the next
11336	// set of results.
11337	MaxResults *int64 `min:"1" type:"integer"`
11338
11339	// If the previous paginated request didn't return all of the remaining results,
11340	// the response object's NextToken parameter value is set to a token. To retrieve
11341	// the next set of results, call ListStackSetOperations again and assign that
11342	// token to the request object's NextToken parameter. If there are no remaining
11343	// results, the previous response object's NextToken parameter is set to null.
11344	NextToken *string `min:"1" type:"string"`
11345
11346	// The name or unique ID of the stack set that you want to get operation summaries
11347	// for.
11348	//
11349	// StackSetName is a required field
11350	StackSetName *string `type:"string" required:"true"`
11351}
11352
11353// String returns the string representation
11354func (s ListStackSetOperationsInput) String() string {
11355	return awsutil.Prettify(s)
11356}
11357
11358// GoString returns the string representation
11359func (s ListStackSetOperationsInput) GoString() string {
11360	return s.String()
11361}
11362
11363// Validate inspects the fields of the type to determine if they are valid.
11364func (s *ListStackSetOperationsInput) Validate() error {
11365	invalidParams := request.ErrInvalidParams{Context: "ListStackSetOperationsInput"}
11366	if s.MaxResults != nil && *s.MaxResults < 1 {
11367		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
11368	}
11369	if s.NextToken != nil && len(*s.NextToken) < 1 {
11370		invalidParams.Add(request.NewErrParamMinLen("NextToken", 1))
11371	}
11372	if s.StackSetName == nil {
11373		invalidParams.Add(request.NewErrParamRequired("StackSetName"))
11374	}
11375
11376	if invalidParams.Len() > 0 {
11377		return invalidParams
11378	}
11379	return nil
11380}
11381
11382// SetCallAs sets the CallAs field's value.
11383func (s *ListStackSetOperationsInput) SetCallAs(v string) *ListStackSetOperationsInput {
11384	s.CallAs = &v
11385	return s
11386}
11387
11388// SetMaxResults sets the MaxResults field's value.
11389func (s *ListStackSetOperationsInput) SetMaxResults(v int64) *ListStackSetOperationsInput {
11390	s.MaxResults = &v
11391	return s
11392}
11393
11394// SetNextToken sets the NextToken field's value.
11395func (s *ListStackSetOperationsInput) SetNextToken(v string) *ListStackSetOperationsInput {
11396	s.NextToken = &v
11397	return s
11398}
11399
11400// SetStackSetName sets the StackSetName field's value.
11401func (s *ListStackSetOperationsInput) SetStackSetName(v string) *ListStackSetOperationsInput {
11402	s.StackSetName = &v
11403	return s
11404}
11405
11406type ListStackSetOperationsOutput struct {
11407	_ struct{} `type:"structure"`
11408
11409	// If the request doesn't return all results, NextToken is set to a token. To
11410	// retrieve the next set of results, call ListOperationResults again and assign
11411	// that token to the request object's NextToken parameter. If there are no remaining
11412	// results, NextToken is set to null.
11413	NextToken *string `min:"1" type:"string"`
11414
11415	// A list of StackSetOperationSummary structures that contain summary information
11416	// about operations for the specified stack set.
11417	Summaries []*StackSetOperationSummary `type:"list"`
11418}
11419
11420// String returns the string representation
11421func (s ListStackSetOperationsOutput) String() string {
11422	return awsutil.Prettify(s)
11423}
11424
11425// GoString returns the string representation
11426func (s ListStackSetOperationsOutput) GoString() string {
11427	return s.String()
11428}
11429
11430// SetNextToken sets the NextToken field's value.
11431func (s *ListStackSetOperationsOutput) SetNextToken(v string) *ListStackSetOperationsOutput {
11432	s.NextToken = &v
11433	return s
11434}
11435
11436// SetSummaries sets the Summaries field's value.
11437func (s *ListStackSetOperationsOutput) SetSummaries(v []*StackSetOperationSummary) *ListStackSetOperationsOutput {
11438	s.Summaries = v
11439	return s
11440}
11441
11442type ListStackSetsInput struct {
11443	_ struct{} `type:"structure"`
11444
11445	// [Service-managed permissions] Specifies whether you are acting as an account
11446	// administrator in the management account or as a delegated administrator in
11447	// a member account.
11448	//
11449	// By default, SELF is specified. Use SELF for stack sets with self-managed
11450	// permissions.
11451	//
11452	//    * If you are signed in to the management account, specify SELF.
11453	//
11454	//    * If you are signed in to a delegated administrator account, specify DELEGATED_ADMIN.
11455	//    Your AWS account must be registered as a delegated administrator in the
11456	//    management account. For more information, see Register a delegated administrator
11457	//    (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/stacksets-orgs-delegated-admin.html)
11458	//    in the AWS CloudFormation User Guide.
11459	CallAs *string `type:"string" enum:"CallAs"`
11460
11461	// The maximum number of results to be returned with a single call. If the number
11462	// of available results exceeds this maximum, the response includes a NextToken
11463	// value that you can assign to the NextToken request parameter to get the next
11464	// set of results.
11465	MaxResults *int64 `min:"1" type:"integer"`
11466
11467	// If the previous paginated request didn't return all of the remaining results,
11468	// the response object's NextToken parameter value is set to a token. To retrieve
11469	// the next set of results, call ListStackSets again and assign that token to
11470	// the request object's NextToken parameter. If there are no remaining results,
11471	// the previous response object's NextToken parameter is set to null.
11472	NextToken *string `min:"1" type:"string"`
11473
11474	// The status of the stack sets that you want to get summary information about.
11475	Status *string `type:"string" enum:"StackSetStatus"`
11476}
11477
11478// String returns the string representation
11479func (s ListStackSetsInput) String() string {
11480	return awsutil.Prettify(s)
11481}
11482
11483// GoString returns the string representation
11484func (s ListStackSetsInput) GoString() string {
11485	return s.String()
11486}
11487
11488// Validate inspects the fields of the type to determine if they are valid.
11489func (s *ListStackSetsInput) Validate() error {
11490	invalidParams := request.ErrInvalidParams{Context: "ListStackSetsInput"}
11491	if s.MaxResults != nil && *s.MaxResults < 1 {
11492		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
11493	}
11494	if s.NextToken != nil && len(*s.NextToken) < 1 {
11495		invalidParams.Add(request.NewErrParamMinLen("NextToken", 1))
11496	}
11497
11498	if invalidParams.Len() > 0 {
11499		return invalidParams
11500	}
11501	return nil
11502}
11503
11504// SetCallAs sets the CallAs field's value.
11505func (s *ListStackSetsInput) SetCallAs(v string) *ListStackSetsInput {
11506	s.CallAs = &v
11507	return s
11508}
11509
11510// SetMaxResults sets the MaxResults field's value.
11511func (s *ListStackSetsInput) SetMaxResults(v int64) *ListStackSetsInput {
11512	s.MaxResults = &v
11513	return s
11514}
11515
11516// SetNextToken sets the NextToken field's value.
11517func (s *ListStackSetsInput) SetNextToken(v string) *ListStackSetsInput {
11518	s.NextToken = &v
11519	return s
11520}
11521
11522// SetStatus sets the Status field's value.
11523func (s *ListStackSetsInput) SetStatus(v string) *ListStackSetsInput {
11524	s.Status = &v
11525	return s
11526}
11527
11528type ListStackSetsOutput struct {
11529	_ struct{} `type:"structure"`
11530
11531	// If the request doesn't return all of the remaining results, NextToken is
11532	// set to a token. To retrieve the next set of results, call ListStackInstances
11533	// again and assign that token to the request object's NextToken parameter.
11534	// If the request returns all results, NextToken is set to null.
11535	NextToken *string `min:"1" type:"string"`
11536
11537	// A list of StackSetSummary structures that contain information about the user's
11538	// stack sets.
11539	Summaries []*StackSetSummary `type:"list"`
11540}
11541
11542// String returns the string representation
11543func (s ListStackSetsOutput) String() string {
11544	return awsutil.Prettify(s)
11545}
11546
11547// GoString returns the string representation
11548func (s ListStackSetsOutput) GoString() string {
11549	return s.String()
11550}
11551
11552// SetNextToken sets the NextToken field's value.
11553func (s *ListStackSetsOutput) SetNextToken(v string) *ListStackSetsOutput {
11554	s.NextToken = &v
11555	return s
11556}
11557
11558// SetSummaries sets the Summaries field's value.
11559func (s *ListStackSetsOutput) SetSummaries(v []*StackSetSummary) *ListStackSetsOutput {
11560	s.Summaries = v
11561	return s
11562}
11563
11564// The input for ListStacks action.
11565type ListStacksInput struct {
11566	_ struct{} `type:"structure"`
11567
11568	// A string that identifies the next page of stacks that you want to retrieve.
11569	NextToken *string `min:"1" type:"string"`
11570
11571	// Stack status to use as a filter. Specify one or more stack status codes to
11572	// list only stacks with the specified status codes. For a complete list of
11573	// stack status codes, see the StackStatus parameter of the Stack data type.
11574	StackStatusFilter []*string `type:"list"`
11575}
11576
11577// String returns the string representation
11578func (s ListStacksInput) String() string {
11579	return awsutil.Prettify(s)
11580}
11581
11582// GoString returns the string representation
11583func (s ListStacksInput) GoString() string {
11584	return s.String()
11585}
11586
11587// Validate inspects the fields of the type to determine if they are valid.
11588func (s *ListStacksInput) Validate() error {
11589	invalidParams := request.ErrInvalidParams{Context: "ListStacksInput"}
11590	if s.NextToken != nil && len(*s.NextToken) < 1 {
11591		invalidParams.Add(request.NewErrParamMinLen("NextToken", 1))
11592	}
11593
11594	if invalidParams.Len() > 0 {
11595		return invalidParams
11596	}
11597	return nil
11598}
11599
11600// SetNextToken sets the NextToken field's value.
11601func (s *ListStacksInput) SetNextToken(v string) *ListStacksInput {
11602	s.NextToken = &v
11603	return s
11604}
11605
11606// SetStackStatusFilter sets the StackStatusFilter field's value.
11607func (s *ListStacksInput) SetStackStatusFilter(v []*string) *ListStacksInput {
11608	s.StackStatusFilter = v
11609	return s
11610}
11611
11612// The output for ListStacks action.
11613type ListStacksOutput struct {
11614	_ struct{} `type:"structure"`
11615
11616	// If the output exceeds 1 MB in size, a string that identifies the next page
11617	// of stacks. If no additional page exists, this value is null.
11618	NextToken *string `min:"1" type:"string"`
11619
11620	// A list of StackSummary structures containing information about the specified
11621	// stacks.
11622	StackSummaries []*StackSummary `type:"list"`
11623}
11624
11625// String returns the string representation
11626func (s ListStacksOutput) String() string {
11627	return awsutil.Prettify(s)
11628}
11629
11630// GoString returns the string representation
11631func (s ListStacksOutput) GoString() string {
11632	return s.String()
11633}
11634
11635// SetNextToken sets the NextToken field's value.
11636func (s *ListStacksOutput) SetNextToken(v string) *ListStacksOutput {
11637	s.NextToken = &v
11638	return s
11639}
11640
11641// SetStackSummaries sets the StackSummaries field's value.
11642func (s *ListStacksOutput) SetStackSummaries(v []*StackSummary) *ListStacksOutput {
11643	s.StackSummaries = v
11644	return s
11645}
11646
11647type ListTypeRegistrationsInput struct {
11648	_ struct{} `type:"structure"`
11649
11650	// The maximum number of results to be returned with a single call. If the number
11651	// of available results exceeds this maximum, the response includes a NextToken
11652	// value that you can assign to the NextToken request parameter to get the next
11653	// set of results.
11654	MaxResults *int64 `min:"1" type:"integer"`
11655
11656	// If the previous paginated request didn't return all of the remaining results,
11657	// the response object's NextToken parameter value is set to a token. To retrieve
11658	// the next set of results, call this action again and assign that token to
11659	// the request object's NextToken parameter. If there are no remaining results,
11660	// the previous response object's NextToken parameter is set to null.
11661	NextToken *string `min:"1" type:"string"`
11662
11663	// The current status of the extension registration request.
11664	//
11665	// The default is IN_PROGRESS.
11666	RegistrationStatusFilter *string `type:"string" enum:"RegistrationStatus"`
11667
11668	// The kind of extension.
11669	//
11670	// Conditional: You must specify either TypeName and Type, or Arn.
11671	Type *string `type:"string" enum:"RegistryType"`
11672
11673	// The Amazon Resource Name (ARN) of the extension.
11674	//
11675	// Conditional: You must specify either TypeName and Type, or Arn.
11676	TypeArn *string `type:"string"`
11677
11678	// The name of the extension.
11679	//
11680	// Conditional: You must specify either TypeName and Type, or Arn.
11681	TypeName *string `min:"10" type:"string"`
11682}
11683
11684// String returns the string representation
11685func (s ListTypeRegistrationsInput) String() string {
11686	return awsutil.Prettify(s)
11687}
11688
11689// GoString returns the string representation
11690func (s ListTypeRegistrationsInput) GoString() string {
11691	return s.String()
11692}
11693
11694// Validate inspects the fields of the type to determine if they are valid.
11695func (s *ListTypeRegistrationsInput) Validate() error {
11696	invalidParams := request.ErrInvalidParams{Context: "ListTypeRegistrationsInput"}
11697	if s.MaxResults != nil && *s.MaxResults < 1 {
11698		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
11699	}
11700	if s.NextToken != nil && len(*s.NextToken) < 1 {
11701		invalidParams.Add(request.NewErrParamMinLen("NextToken", 1))
11702	}
11703	if s.TypeName != nil && len(*s.TypeName) < 10 {
11704		invalidParams.Add(request.NewErrParamMinLen("TypeName", 10))
11705	}
11706
11707	if invalidParams.Len() > 0 {
11708		return invalidParams
11709	}
11710	return nil
11711}
11712
11713// SetMaxResults sets the MaxResults field's value.
11714func (s *ListTypeRegistrationsInput) SetMaxResults(v int64) *ListTypeRegistrationsInput {
11715	s.MaxResults = &v
11716	return s
11717}
11718
11719// SetNextToken sets the NextToken field's value.
11720func (s *ListTypeRegistrationsInput) SetNextToken(v string) *ListTypeRegistrationsInput {
11721	s.NextToken = &v
11722	return s
11723}
11724
11725// SetRegistrationStatusFilter sets the RegistrationStatusFilter field's value.
11726func (s *ListTypeRegistrationsInput) SetRegistrationStatusFilter(v string) *ListTypeRegistrationsInput {
11727	s.RegistrationStatusFilter = &v
11728	return s
11729}
11730
11731// SetType sets the Type field's value.
11732func (s *ListTypeRegistrationsInput) SetType(v string) *ListTypeRegistrationsInput {
11733	s.Type = &v
11734	return s
11735}
11736
11737// SetTypeArn sets the TypeArn field's value.
11738func (s *ListTypeRegistrationsInput) SetTypeArn(v string) *ListTypeRegistrationsInput {
11739	s.TypeArn = &v
11740	return s
11741}
11742
11743// SetTypeName sets the TypeName field's value.
11744func (s *ListTypeRegistrationsInput) SetTypeName(v string) *ListTypeRegistrationsInput {
11745	s.TypeName = &v
11746	return s
11747}
11748
11749type ListTypeRegistrationsOutput struct {
11750	_ struct{} `type:"structure"`
11751
11752	// If the request doesn't return all of the remaining results, NextToken is
11753	// set to a token. To retrieve the next set of results, call this action again
11754	// and assign that token to the request object's NextToken parameter. If the
11755	// request returns all results, NextToken is set to null.
11756	NextToken *string `min:"1" type:"string"`
11757
11758	// A list of extension registration tokens.
11759	//
11760	// Use DescribeTypeRegistration to return detailed information about a type
11761	// registration request.
11762	RegistrationTokenList []*string `type:"list"`
11763}
11764
11765// String returns the string representation
11766func (s ListTypeRegistrationsOutput) String() string {
11767	return awsutil.Prettify(s)
11768}
11769
11770// GoString returns the string representation
11771func (s ListTypeRegistrationsOutput) GoString() string {
11772	return s.String()
11773}
11774
11775// SetNextToken sets the NextToken field's value.
11776func (s *ListTypeRegistrationsOutput) SetNextToken(v string) *ListTypeRegistrationsOutput {
11777	s.NextToken = &v
11778	return s
11779}
11780
11781// SetRegistrationTokenList sets the RegistrationTokenList field's value.
11782func (s *ListTypeRegistrationsOutput) SetRegistrationTokenList(v []*string) *ListTypeRegistrationsOutput {
11783	s.RegistrationTokenList = v
11784	return s
11785}
11786
11787type ListTypeVersionsInput struct {
11788	_ struct{} `type:"structure"`
11789
11790	// The Amazon Resource Name (ARN) of the extension for which you want version
11791	// summary information.
11792	//
11793	// Conditional: You must specify either TypeName and Type, or Arn.
11794	Arn *string `type:"string"`
11795
11796	// The deprecation status of the extension versions that you want to get summary
11797	// information about.
11798	//
11799	// Valid values include:
11800	//
11801	//    * LIVE: The extension version is registered and can be used in CloudFormation
11802	//    operations, dependent on its provisioning behavior and visibility scope.
11803	//
11804	//    * DEPRECATED: The extension version has been deregistered and can no longer
11805	//    be used in CloudFormation operations.
11806	//
11807	// The default is LIVE.
11808	DeprecatedStatus *string `type:"string" enum:"DeprecatedStatus"`
11809
11810	// The maximum number of results to be returned with a single call. If the number
11811	// of available results exceeds this maximum, the response includes a NextToken
11812	// value that you can assign to the NextToken request parameter to get the next
11813	// set of results.
11814	MaxResults *int64 `min:"1" type:"integer"`
11815
11816	// If the previous paginated request didn't return all of the remaining results,
11817	// the response object's NextToken parameter value is set to a token. To retrieve
11818	// the next set of results, call this action again and assign that token to
11819	// the request object's NextToken parameter. If there are no remaining results,
11820	// the previous response object's NextToken parameter is set to null.
11821	NextToken *string `min:"1" type:"string"`
11822
11823	// The kind of the extension.
11824	//
11825	// Conditional: You must specify either TypeName and Type, or Arn.
11826	Type *string `type:"string" enum:"RegistryType"`
11827
11828	// The name of the extension for which you want version summary information.
11829	//
11830	// Conditional: You must specify either TypeName and Type, or Arn.
11831	TypeName *string `min:"10" type:"string"`
11832}
11833
11834// String returns the string representation
11835func (s ListTypeVersionsInput) String() string {
11836	return awsutil.Prettify(s)
11837}
11838
11839// GoString returns the string representation
11840func (s ListTypeVersionsInput) GoString() string {
11841	return s.String()
11842}
11843
11844// Validate inspects the fields of the type to determine if they are valid.
11845func (s *ListTypeVersionsInput) Validate() error {
11846	invalidParams := request.ErrInvalidParams{Context: "ListTypeVersionsInput"}
11847	if s.MaxResults != nil && *s.MaxResults < 1 {
11848		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
11849	}
11850	if s.NextToken != nil && len(*s.NextToken) < 1 {
11851		invalidParams.Add(request.NewErrParamMinLen("NextToken", 1))
11852	}
11853	if s.TypeName != nil && len(*s.TypeName) < 10 {
11854		invalidParams.Add(request.NewErrParamMinLen("TypeName", 10))
11855	}
11856
11857	if invalidParams.Len() > 0 {
11858		return invalidParams
11859	}
11860	return nil
11861}
11862
11863// SetArn sets the Arn field's value.
11864func (s *ListTypeVersionsInput) SetArn(v string) *ListTypeVersionsInput {
11865	s.Arn = &v
11866	return s
11867}
11868
11869// SetDeprecatedStatus sets the DeprecatedStatus field's value.
11870func (s *ListTypeVersionsInput) SetDeprecatedStatus(v string) *ListTypeVersionsInput {
11871	s.DeprecatedStatus = &v
11872	return s
11873}
11874
11875// SetMaxResults sets the MaxResults field's value.
11876func (s *ListTypeVersionsInput) SetMaxResults(v int64) *ListTypeVersionsInput {
11877	s.MaxResults = &v
11878	return s
11879}
11880
11881// SetNextToken sets the NextToken field's value.
11882func (s *ListTypeVersionsInput) SetNextToken(v string) *ListTypeVersionsInput {
11883	s.NextToken = &v
11884	return s
11885}
11886
11887// SetType sets the Type field's value.
11888func (s *ListTypeVersionsInput) SetType(v string) *ListTypeVersionsInput {
11889	s.Type = &v
11890	return s
11891}
11892
11893// SetTypeName sets the TypeName field's value.
11894func (s *ListTypeVersionsInput) SetTypeName(v string) *ListTypeVersionsInput {
11895	s.TypeName = &v
11896	return s
11897}
11898
11899type ListTypeVersionsOutput struct {
11900	_ struct{} `type:"structure"`
11901
11902	// If the request doesn't return all of the remaining results, NextToken is
11903	// set to a token. To retrieve the next set of results, call this action again
11904	// and assign that token to the request object's NextToken parameter. If the
11905	// request returns all results, NextToken is set to null.
11906	NextToken *string `min:"1" type:"string"`
11907
11908	// A list of TypeVersionSummary structures that contain information about the
11909	// specified extension's versions.
11910	TypeVersionSummaries []*TypeVersionSummary `type:"list"`
11911}
11912
11913// String returns the string representation
11914func (s ListTypeVersionsOutput) String() string {
11915	return awsutil.Prettify(s)
11916}
11917
11918// GoString returns the string representation
11919func (s ListTypeVersionsOutput) GoString() string {
11920	return s.String()
11921}
11922
11923// SetNextToken sets the NextToken field's value.
11924func (s *ListTypeVersionsOutput) SetNextToken(v string) *ListTypeVersionsOutput {
11925	s.NextToken = &v
11926	return s
11927}
11928
11929// SetTypeVersionSummaries sets the TypeVersionSummaries field's value.
11930func (s *ListTypeVersionsOutput) SetTypeVersionSummaries(v []*TypeVersionSummary) *ListTypeVersionsOutput {
11931	s.TypeVersionSummaries = v
11932	return s
11933}
11934
11935type ListTypesInput struct {
11936	_ struct{} `type:"structure"`
11937
11938	// The deprecation status of the extension that you want to get summary information
11939	// about.
11940	//
11941	// Valid values include:
11942	//
11943	//    * LIVE: The extension is registered for use in CloudFormation operations.
11944	//
11945	//    * DEPRECATED: The extension has been deregistered and can no longer be
11946	//    used in CloudFormation operations.
11947	DeprecatedStatus *string `type:"string" enum:"DeprecatedStatus"`
11948
11949	// The maximum number of results to be returned with a single call. If the number
11950	// of available results exceeds this maximum, the response includes a NextToken
11951	// value that you can assign to the NextToken request parameter to get the next
11952	// set of results.
11953	MaxResults *int64 `min:"1" type:"integer"`
11954
11955	// If the previous paginated request didn't return all of the remaining results,
11956	// the response object's NextToken parameter value is set to a token. To retrieve
11957	// the next set of results, call this action again and assign that token to
11958	// the request object's NextToken parameter. If there are no remaining results,
11959	// the previous response object's NextToken parameter is set to null.
11960	NextToken *string `min:"1" type:"string"`
11961
11962	// The provisioning behavior of the type. AWS CloudFormation determines the
11963	// provisioning type during registration, based on the types of handlers in
11964	// the schema handler package submitted.
11965	//
11966	// Valid values include:
11967	//
11968	//    * FULLY_MUTABLE: The extension includes an update handler to process updates
11969	//    to the extension during stack update operations.
11970	//
11971	//    * IMMUTABLE: The extension does not include an update handler, so the
11972	//    extension cannot be updated and must instead be replaced during stack
11973	//    update operations.
11974	//
11975	//    * NON_PROVISIONABLE: The extension does not include create, read, and
11976	//    delete handlers, and therefore cannot actually be provisioned.
11977	ProvisioningType *string `type:"string" enum:"ProvisioningType"`
11978
11979	// The type of extension.
11980	Type *string `type:"string" enum:"RegistryType"`
11981
11982	// The scope at which the extension is visible and usable in CloudFormation
11983	// operations.
11984	//
11985	// Valid values include:
11986	//
11987	//    * PRIVATE: The extension is only visible and usable within the account
11988	//    in which it is registered. Currently, AWS CloudFormation marks any extension
11989	//    you create as PRIVATE.
11990	//
11991	//    * PUBLIC: The extension is publically visible and usable within any Amazon
11992	//    account.
11993	//
11994	// The default is PRIVATE.
11995	Visibility *string `type:"string" enum:"Visibility"`
11996}
11997
11998// String returns the string representation
11999func (s ListTypesInput) String() string {
12000	return awsutil.Prettify(s)
12001}
12002
12003// GoString returns the string representation
12004func (s ListTypesInput) GoString() string {
12005	return s.String()
12006}
12007
12008// Validate inspects the fields of the type to determine if they are valid.
12009func (s *ListTypesInput) Validate() error {
12010	invalidParams := request.ErrInvalidParams{Context: "ListTypesInput"}
12011	if s.MaxResults != nil && *s.MaxResults < 1 {
12012		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
12013	}
12014	if s.NextToken != nil && len(*s.NextToken) < 1 {
12015		invalidParams.Add(request.NewErrParamMinLen("NextToken", 1))
12016	}
12017
12018	if invalidParams.Len() > 0 {
12019		return invalidParams
12020	}
12021	return nil
12022}
12023
12024// SetDeprecatedStatus sets the DeprecatedStatus field's value.
12025func (s *ListTypesInput) SetDeprecatedStatus(v string) *ListTypesInput {
12026	s.DeprecatedStatus = &v
12027	return s
12028}
12029
12030// SetMaxResults sets the MaxResults field's value.
12031func (s *ListTypesInput) SetMaxResults(v int64) *ListTypesInput {
12032	s.MaxResults = &v
12033	return s
12034}
12035
12036// SetNextToken sets the NextToken field's value.
12037func (s *ListTypesInput) SetNextToken(v string) *ListTypesInput {
12038	s.NextToken = &v
12039	return s
12040}
12041
12042// SetProvisioningType sets the ProvisioningType field's value.
12043func (s *ListTypesInput) SetProvisioningType(v string) *ListTypesInput {
12044	s.ProvisioningType = &v
12045	return s
12046}
12047
12048// SetType sets the Type field's value.
12049func (s *ListTypesInput) SetType(v string) *ListTypesInput {
12050	s.Type = &v
12051	return s
12052}
12053
12054// SetVisibility sets the Visibility field's value.
12055func (s *ListTypesInput) SetVisibility(v string) *ListTypesInput {
12056	s.Visibility = &v
12057	return s
12058}
12059
12060type ListTypesOutput struct {
12061	_ struct{} `type:"structure"`
12062
12063	// If the request doesn't return all of the remaining results, NextToken is
12064	// set to a token. To retrieve the next set of results, call this action again
12065	// and assign that token to the request object's NextToken parameter. If the
12066	// request returns all results, NextToken is set to null.
12067	NextToken *string `min:"1" type:"string"`
12068
12069	// A list of TypeSummary structures that contain information about the specified
12070	// extensions.
12071	TypeSummaries []*TypeSummary `type:"list"`
12072}
12073
12074// String returns the string representation
12075func (s ListTypesOutput) String() string {
12076	return awsutil.Prettify(s)
12077}
12078
12079// GoString returns the string representation
12080func (s ListTypesOutput) GoString() string {
12081	return s.String()
12082}
12083
12084// SetNextToken sets the NextToken field's value.
12085func (s *ListTypesOutput) SetNextToken(v string) *ListTypesOutput {
12086	s.NextToken = &v
12087	return s
12088}
12089
12090// SetTypeSummaries sets the TypeSummaries field's value.
12091func (s *ListTypesOutput) SetTypeSummaries(v []*TypeSummary) *ListTypesOutput {
12092	s.TypeSummaries = v
12093	return s
12094}
12095
12096// Contains logging configuration information for a type.
12097type LoggingConfig struct {
12098	_ struct{} `type:"structure"`
12099
12100	// The Amazon CloudWatch log group to which CloudFormation sends error logging
12101	// information when invoking the type's handlers.
12102	//
12103	// LogGroupName is a required field
12104	LogGroupName *string `min:"1" type:"string" required:"true"`
12105
12106	// The ARN of the role that CloudFormation should assume when sending log entries
12107	// to CloudWatch logs.
12108	//
12109	// LogRoleArn is a required field
12110	LogRoleArn *string `min:"1" type:"string" required:"true"`
12111}
12112
12113// String returns the string representation
12114func (s LoggingConfig) String() string {
12115	return awsutil.Prettify(s)
12116}
12117
12118// GoString returns the string representation
12119func (s LoggingConfig) GoString() string {
12120	return s.String()
12121}
12122
12123// Validate inspects the fields of the type to determine if they are valid.
12124func (s *LoggingConfig) Validate() error {
12125	invalidParams := request.ErrInvalidParams{Context: "LoggingConfig"}
12126	if s.LogGroupName == nil {
12127		invalidParams.Add(request.NewErrParamRequired("LogGroupName"))
12128	}
12129	if s.LogGroupName != nil && len(*s.LogGroupName) < 1 {
12130		invalidParams.Add(request.NewErrParamMinLen("LogGroupName", 1))
12131	}
12132	if s.LogRoleArn == nil {
12133		invalidParams.Add(request.NewErrParamRequired("LogRoleArn"))
12134	}
12135	if s.LogRoleArn != nil && len(*s.LogRoleArn) < 1 {
12136		invalidParams.Add(request.NewErrParamMinLen("LogRoleArn", 1))
12137	}
12138
12139	if invalidParams.Len() > 0 {
12140		return invalidParams
12141	}
12142	return nil
12143}
12144
12145// SetLogGroupName sets the LogGroupName field's value.
12146func (s *LoggingConfig) SetLogGroupName(v string) *LoggingConfig {
12147	s.LogGroupName = &v
12148	return s
12149}
12150
12151// SetLogRoleArn sets the LogRoleArn field's value.
12152func (s *LoggingConfig) SetLogRoleArn(v string) *LoggingConfig {
12153	s.LogRoleArn = &v
12154	return s
12155}
12156
12157// Contains information about the module from which the resource was created,
12158// if the resource was created from a module included in the stack template.
12159//
12160// For more information on modules, see Using modules to encapsulate and reuse
12161// resource configurations (AWSCloudFormation/latest/UserGuide/modules.html)
12162// in the CloudFormation User Guide.
12163type ModuleInfo struct {
12164	_ struct{} `type:"structure"`
12165
12166	// A concantenated list of the logical IDs of the module or modules containing
12167	// the resource. Modules are listed starting with the inner-most nested module,
12168	// and separated by /.
12169	//
12170	// In the following example, the resource was created from a module, moduleA,
12171	// that is nested inside a parent module, moduleB.
12172	//
12173	// moduleA/moduleB
12174	//
12175	// For more information, see Referencing resources in a module (AWSCloudFormation/latest/UserGuide/modules.html#module-ref-resources)
12176	// in the CloudFormation User Guide.
12177	LogicalIdHierarchy *string `type:"string"`
12178
12179	// A concantenated list of the the module type or types containing the resource.
12180	// Module types are listed starting with the inner-most nested module, and separated
12181	// by /.
12182	//
12183	// In the following example, the resource was created from a module of type
12184	// AWS::First::Example::MODULE, that is nested inside a parent module of type
12185	// AWS::Second::Example::MODULE.
12186	//
12187	// AWS::First::Example::MODULE/AWS::Second::Example::MODULE
12188	TypeHierarchy *string `type:"string"`
12189}
12190
12191// String returns the string representation
12192func (s ModuleInfo) String() string {
12193	return awsutil.Prettify(s)
12194}
12195
12196// GoString returns the string representation
12197func (s ModuleInfo) GoString() string {
12198	return s.String()
12199}
12200
12201// SetLogicalIdHierarchy sets the LogicalIdHierarchy field's value.
12202func (s *ModuleInfo) SetLogicalIdHierarchy(v string) *ModuleInfo {
12203	s.LogicalIdHierarchy = &v
12204	return s
12205}
12206
12207// SetTypeHierarchy sets the TypeHierarchy field's value.
12208func (s *ModuleInfo) SetTypeHierarchy(v string) *ModuleInfo {
12209	s.TypeHierarchy = &v
12210	return s
12211}
12212
12213// The Output data type.
12214type Output struct {
12215	_ struct{} `type:"structure"`
12216
12217	// User defined description associated with the output.
12218	Description *string `min:"1" type:"string"`
12219
12220	// The name of the export associated with the output.
12221	ExportName *string `type:"string"`
12222
12223	// The key associated with the output.
12224	OutputKey *string `type:"string"`
12225
12226	// The value associated with the output.
12227	OutputValue *string `type:"string"`
12228}
12229
12230// String returns the string representation
12231func (s Output) String() string {
12232	return awsutil.Prettify(s)
12233}
12234
12235// GoString returns the string representation
12236func (s Output) GoString() string {
12237	return s.String()
12238}
12239
12240// SetDescription sets the Description field's value.
12241func (s *Output) SetDescription(v string) *Output {
12242	s.Description = &v
12243	return s
12244}
12245
12246// SetExportName sets the ExportName field's value.
12247func (s *Output) SetExportName(v string) *Output {
12248	s.ExportName = &v
12249	return s
12250}
12251
12252// SetOutputKey sets the OutputKey field's value.
12253func (s *Output) SetOutputKey(v string) *Output {
12254	s.OutputKey = &v
12255	return s
12256}
12257
12258// SetOutputValue sets the OutputValue field's value.
12259func (s *Output) SetOutputValue(v string) *Output {
12260	s.OutputValue = &v
12261	return s
12262}
12263
12264// The Parameter data type.
12265type Parameter struct {
12266	_ struct{} `type:"structure"`
12267
12268	// The key associated with the parameter. If you don't specify a key and value
12269	// for a particular parameter, AWS CloudFormation uses the default value that
12270	// is specified in your template.
12271	ParameterKey *string `type:"string"`
12272
12273	// The input value associated with the parameter.
12274	ParameterValue *string `type:"string"`
12275
12276	// Read-only. The value that corresponds to a Systems Manager parameter key.
12277	// This field is returned only for SSM parameter types (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/parameters-section-structure.html#aws-ssm-parameter-types)
12278	// in the template.
12279	ResolvedValue *string `type:"string"`
12280
12281	// During a stack update, use the existing parameter value that the stack is
12282	// using for a given parameter key. If you specify true, do not specify a parameter
12283	// value.
12284	UsePreviousValue *bool `type:"boolean"`
12285}
12286
12287// String returns the string representation
12288func (s Parameter) String() string {
12289	return awsutil.Prettify(s)
12290}
12291
12292// GoString returns the string representation
12293func (s Parameter) GoString() string {
12294	return s.String()
12295}
12296
12297// SetParameterKey sets the ParameterKey field's value.
12298func (s *Parameter) SetParameterKey(v string) *Parameter {
12299	s.ParameterKey = &v
12300	return s
12301}
12302
12303// SetParameterValue sets the ParameterValue field's value.
12304func (s *Parameter) SetParameterValue(v string) *Parameter {
12305	s.ParameterValue = &v
12306	return s
12307}
12308
12309// SetResolvedValue sets the ResolvedValue field's value.
12310func (s *Parameter) SetResolvedValue(v string) *Parameter {
12311	s.ResolvedValue = &v
12312	return s
12313}
12314
12315// SetUsePreviousValue sets the UsePreviousValue field's value.
12316func (s *Parameter) SetUsePreviousValue(v bool) *Parameter {
12317	s.UsePreviousValue = &v
12318	return s
12319}
12320
12321// A set of criteria that AWS CloudFormation uses to validate parameter values.
12322// Although other constraints might be defined in the stack template, AWS CloudFormation
12323// returns only the AllowedValues property.
12324type ParameterConstraints struct {
12325	_ struct{} `type:"structure"`
12326
12327	// A list of values that are permitted for a parameter.
12328	AllowedValues []*string `type:"list"`
12329}
12330
12331// String returns the string representation
12332func (s ParameterConstraints) String() string {
12333	return awsutil.Prettify(s)
12334}
12335
12336// GoString returns the string representation
12337func (s ParameterConstraints) GoString() string {
12338	return s.String()
12339}
12340
12341// SetAllowedValues sets the AllowedValues field's value.
12342func (s *ParameterConstraints) SetAllowedValues(v []*string) *ParameterConstraints {
12343	s.AllowedValues = v
12344	return s
12345}
12346
12347// The ParameterDeclaration data type.
12348type ParameterDeclaration struct {
12349	_ struct{} `type:"structure"`
12350
12351	// The default value of the parameter.
12352	DefaultValue *string `type:"string"`
12353
12354	// The description that is associate with the parameter.
12355	Description *string `min:"1" type:"string"`
12356
12357	// Flag that indicates whether the parameter value is shown as plain text in
12358	// logs and in the AWS Management Console.
12359	NoEcho *bool `type:"boolean"`
12360
12361	// The criteria that AWS CloudFormation uses to validate parameter values.
12362	ParameterConstraints *ParameterConstraints `type:"structure"`
12363
12364	// The name that is associated with the parameter.
12365	ParameterKey *string `type:"string"`
12366
12367	// The type of parameter.
12368	ParameterType *string `type:"string"`
12369}
12370
12371// String returns the string representation
12372func (s ParameterDeclaration) String() string {
12373	return awsutil.Prettify(s)
12374}
12375
12376// GoString returns the string representation
12377func (s ParameterDeclaration) GoString() string {
12378	return s.String()
12379}
12380
12381// SetDefaultValue sets the DefaultValue field's value.
12382func (s *ParameterDeclaration) SetDefaultValue(v string) *ParameterDeclaration {
12383	s.DefaultValue = &v
12384	return s
12385}
12386
12387// SetDescription sets the Description field's value.
12388func (s *ParameterDeclaration) SetDescription(v string) *ParameterDeclaration {
12389	s.Description = &v
12390	return s
12391}
12392
12393// SetNoEcho sets the NoEcho field's value.
12394func (s *ParameterDeclaration) SetNoEcho(v bool) *ParameterDeclaration {
12395	s.NoEcho = &v
12396	return s
12397}
12398
12399// SetParameterConstraints sets the ParameterConstraints field's value.
12400func (s *ParameterDeclaration) SetParameterConstraints(v *ParameterConstraints) *ParameterDeclaration {
12401	s.ParameterConstraints = v
12402	return s
12403}
12404
12405// SetParameterKey sets the ParameterKey field's value.
12406func (s *ParameterDeclaration) SetParameterKey(v string) *ParameterDeclaration {
12407	s.ParameterKey = &v
12408	return s
12409}
12410
12411// SetParameterType sets the ParameterType field's value.
12412func (s *ParameterDeclaration) SetParameterType(v string) *ParameterDeclaration {
12413	s.ParameterType = &v
12414	return s
12415}
12416
12417// Context information that enables AWS CloudFormation to uniquely identify
12418// a resource. AWS CloudFormation uses context key-value pairs in cases where
12419// a resource's logical and physical IDs are not enough to uniquely identify
12420// that resource. Each context key-value pair specifies a resource that contains
12421// the targeted resource.
12422type PhysicalResourceIdContextKeyValuePair struct {
12423	_ struct{} `type:"structure"`
12424
12425	// The resource context key.
12426	//
12427	// Key is a required field
12428	Key *string `type:"string" required:"true"`
12429
12430	// The resource context value.
12431	//
12432	// Value is a required field
12433	Value *string `type:"string" required:"true"`
12434}
12435
12436// String returns the string representation
12437func (s PhysicalResourceIdContextKeyValuePair) String() string {
12438	return awsutil.Prettify(s)
12439}
12440
12441// GoString returns the string representation
12442func (s PhysicalResourceIdContextKeyValuePair) GoString() string {
12443	return s.String()
12444}
12445
12446// SetKey sets the Key field's value.
12447func (s *PhysicalResourceIdContextKeyValuePair) SetKey(v string) *PhysicalResourceIdContextKeyValuePair {
12448	s.Key = &v
12449	return s
12450}
12451
12452// SetValue sets the Value field's value.
12453func (s *PhysicalResourceIdContextKeyValuePair) SetValue(v string) *PhysicalResourceIdContextKeyValuePair {
12454	s.Value = &v
12455	return s
12456}
12457
12458// Information about a resource property whose actual value differs from its
12459// expected value, as defined in the stack template and any values specified
12460// as template parameters. These will be present only for resources whose StackResourceDriftStatus
12461// is MODIFIED. For more information, see Detecting Unregulated Configuration
12462// Changes to Stacks and Resources (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-stack-drift.html).
12463type PropertyDifference struct {
12464	_ struct{} `type:"structure"`
12465
12466	// The actual property value of the resource property.
12467	//
12468	// ActualValue is a required field
12469	ActualValue *string `type:"string" required:"true"`
12470
12471	// The type of property difference.
12472	//
12473	//    * ADD: A value has been added to a resource property that is an array
12474	//    or list data type.
12475	//
12476	//    * REMOVE: The property has been removed from the current resource configuration.
12477	//
12478	//    * NOT_EQUAL: The current property value differs from its expected value
12479	//    (as defined in the stack template and any values specified as template
12480	//    parameters).
12481	//
12482	// DifferenceType is a required field
12483	DifferenceType *string `type:"string" required:"true" enum:"DifferenceType"`
12484
12485	// The expected property value of the resource property, as defined in the stack
12486	// template and any values specified as template parameters.
12487	//
12488	// ExpectedValue is a required field
12489	ExpectedValue *string `type:"string" required:"true"`
12490
12491	// The fully-qualified path to the resource property.
12492	//
12493	// PropertyPath is a required field
12494	PropertyPath *string `type:"string" required:"true"`
12495}
12496
12497// String returns the string representation
12498func (s PropertyDifference) String() string {
12499	return awsutil.Prettify(s)
12500}
12501
12502// GoString returns the string representation
12503func (s PropertyDifference) GoString() string {
12504	return s.String()
12505}
12506
12507// SetActualValue sets the ActualValue field's value.
12508func (s *PropertyDifference) SetActualValue(v string) *PropertyDifference {
12509	s.ActualValue = &v
12510	return s
12511}
12512
12513// SetDifferenceType sets the DifferenceType field's value.
12514func (s *PropertyDifference) SetDifferenceType(v string) *PropertyDifference {
12515	s.DifferenceType = &v
12516	return s
12517}
12518
12519// SetExpectedValue sets the ExpectedValue field's value.
12520func (s *PropertyDifference) SetExpectedValue(v string) *PropertyDifference {
12521	s.ExpectedValue = &v
12522	return s
12523}
12524
12525// SetPropertyPath sets the PropertyPath field's value.
12526func (s *PropertyDifference) SetPropertyPath(v string) *PropertyDifference {
12527	s.PropertyPath = &v
12528	return s
12529}
12530
12531type RecordHandlerProgressInput struct {
12532	_ struct{} `type:"structure"`
12533
12534	// Reserved for use by the CloudFormation CLI (https://docs.aws.amazon.com/cloudformation-cli/latest/userguide/what-is-cloudformation-cli.html).
12535	//
12536	// BearerToken is a required field
12537	BearerToken *string `min:"1" type:"string" required:"true"`
12538
12539	// Reserved for use by the CloudFormation CLI (https://docs.aws.amazon.com/cloudformation-cli/latest/userguide/what-is-cloudformation-cli.html).
12540	ClientRequestToken *string `min:"1" type:"string"`
12541
12542	// Reserved for use by the CloudFormation CLI (https://docs.aws.amazon.com/cloudformation-cli/latest/userguide/what-is-cloudformation-cli.html).
12543	CurrentOperationStatus *string `type:"string" enum:"OperationStatus"`
12544
12545	// Reserved for use by the CloudFormation CLI (https://docs.aws.amazon.com/cloudformation-cli/latest/userguide/what-is-cloudformation-cli.html).
12546	ErrorCode *string `type:"string" enum:"HandlerErrorCode"`
12547
12548	// Reserved for use by the CloudFormation CLI (https://docs.aws.amazon.com/cloudformation-cli/latest/userguide/what-is-cloudformation-cli.html).
12549	//
12550	// OperationStatus is a required field
12551	OperationStatus *string `type:"string" required:"true" enum:"OperationStatus"`
12552
12553	// Reserved for use by the CloudFormation CLI (https://docs.aws.amazon.com/cloudformation-cli/latest/userguide/what-is-cloudformation-cli.html).
12554	ResourceModel *string `min:"1" type:"string"`
12555
12556	// Reserved for use by the CloudFormation CLI (https://docs.aws.amazon.com/cloudformation-cli/latest/userguide/what-is-cloudformation-cli.html).
12557	StatusMessage *string `type:"string"`
12558}
12559
12560// String returns the string representation
12561func (s RecordHandlerProgressInput) String() string {
12562	return awsutil.Prettify(s)
12563}
12564
12565// GoString returns the string representation
12566func (s RecordHandlerProgressInput) GoString() string {
12567	return s.String()
12568}
12569
12570// Validate inspects the fields of the type to determine if they are valid.
12571func (s *RecordHandlerProgressInput) Validate() error {
12572	invalidParams := request.ErrInvalidParams{Context: "RecordHandlerProgressInput"}
12573	if s.BearerToken == nil {
12574		invalidParams.Add(request.NewErrParamRequired("BearerToken"))
12575	}
12576	if s.BearerToken != nil && len(*s.BearerToken) < 1 {
12577		invalidParams.Add(request.NewErrParamMinLen("BearerToken", 1))
12578	}
12579	if s.ClientRequestToken != nil && len(*s.ClientRequestToken) < 1 {
12580		invalidParams.Add(request.NewErrParamMinLen("ClientRequestToken", 1))
12581	}
12582	if s.OperationStatus == nil {
12583		invalidParams.Add(request.NewErrParamRequired("OperationStatus"))
12584	}
12585	if s.ResourceModel != nil && len(*s.ResourceModel) < 1 {
12586		invalidParams.Add(request.NewErrParamMinLen("ResourceModel", 1))
12587	}
12588
12589	if invalidParams.Len() > 0 {
12590		return invalidParams
12591	}
12592	return nil
12593}
12594
12595// SetBearerToken sets the BearerToken field's value.
12596func (s *RecordHandlerProgressInput) SetBearerToken(v string) *RecordHandlerProgressInput {
12597	s.BearerToken = &v
12598	return s
12599}
12600
12601// SetClientRequestToken sets the ClientRequestToken field's value.
12602func (s *RecordHandlerProgressInput) SetClientRequestToken(v string) *RecordHandlerProgressInput {
12603	s.ClientRequestToken = &v
12604	return s
12605}
12606
12607// SetCurrentOperationStatus sets the CurrentOperationStatus field's value.
12608func (s *RecordHandlerProgressInput) SetCurrentOperationStatus(v string) *RecordHandlerProgressInput {
12609	s.CurrentOperationStatus = &v
12610	return s
12611}
12612
12613// SetErrorCode sets the ErrorCode field's value.
12614func (s *RecordHandlerProgressInput) SetErrorCode(v string) *RecordHandlerProgressInput {
12615	s.ErrorCode = &v
12616	return s
12617}
12618
12619// SetOperationStatus sets the OperationStatus field's value.
12620func (s *RecordHandlerProgressInput) SetOperationStatus(v string) *RecordHandlerProgressInput {
12621	s.OperationStatus = &v
12622	return s
12623}
12624
12625// SetResourceModel sets the ResourceModel field's value.
12626func (s *RecordHandlerProgressInput) SetResourceModel(v string) *RecordHandlerProgressInput {
12627	s.ResourceModel = &v
12628	return s
12629}
12630
12631// SetStatusMessage sets the StatusMessage field's value.
12632func (s *RecordHandlerProgressInput) SetStatusMessage(v string) *RecordHandlerProgressInput {
12633	s.StatusMessage = &v
12634	return s
12635}
12636
12637type RecordHandlerProgressOutput struct {
12638	_ struct{} `type:"structure"`
12639}
12640
12641// String returns the string representation
12642func (s RecordHandlerProgressOutput) String() string {
12643	return awsutil.Prettify(s)
12644}
12645
12646// GoString returns the string representation
12647func (s RecordHandlerProgressOutput) GoString() string {
12648	return s.String()
12649}
12650
12651type RegisterTypeInput struct {
12652	_ struct{} `type:"structure"`
12653
12654	// A unique identifier that acts as an idempotency key for this registration
12655	// request. Specifying a client request token prevents CloudFormation from generating
12656	// more than one version of an extension from the same registeration request,
12657	// even if the request is submitted multiple times.
12658	ClientRequestToken *string `min:"1" type:"string"`
12659
12660	// The Amazon Resource Name (ARN) of the IAM role for CloudFormation to assume
12661	// when invoking the extension. If your extension calls AWS APIs in any of its
12662	// handlers, you must create an IAM execution role (https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles.html)
12663	// that includes the necessary permissions to call those AWS APIs, and provision
12664	// that execution role in your account. When CloudFormation needs to invoke
12665	// the extension handler, CloudFormation assumes this execution role to create
12666	// a temporary session token, which it then passes to the extension handler,
12667	// thereby supplying your extension with the appropriate credentials.
12668	ExecutionRoleArn *string `min:"1" type:"string"`
12669
12670	// Specifies logging configuration information for an extension.
12671	LoggingConfig *LoggingConfig `type:"structure"`
12672
12673	// A url to the S3 bucket containing the extension project package that contains
12674	// the neccessary files for the extension you want to register.
12675	//
12676	// For information on generating a schema handler package for the extension
12677	// you want to register, see submit (https://docs.aws.amazon.com/cloudformation-cli/latest/userguide/resource-type-cli-submit.html)
12678	// in the CloudFormation CLI User Guide.
12679	//
12680	// The user registering the extension must be able to access the package in
12681	// the S3 bucket. That is, the user needs to have GetObject (https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetObject.html)
12682	// permissions for the schema handler package. For more information, see Actions,
12683	// Resources, and Condition Keys for Amazon S3 (https://docs.aws.amazon.com/IAM/latest/UserGuide/list_amazons3.html)
12684	// in the AWS Identity and Access Management User Guide.
12685	//
12686	// SchemaHandlerPackage is a required field
12687	SchemaHandlerPackage *string `min:"1" type:"string" required:"true"`
12688
12689	// The kind of extension.
12690	Type *string `type:"string" enum:"RegistryType"`
12691
12692	// The name of the extension being registered.
12693	//
12694	// We recommend that extension names adhere to the following pattern: company_or_organization::service::type.
12695	//
12696	// The following organization namespaces are reserved and cannot be used in
12697	// your extension names:
12698	//
12699	//    * Alexa
12700	//
12701	//    * AMZN
12702	//
12703	//    * Amazon
12704	//
12705	//    * AWS
12706	//
12707	//    * Custom
12708	//
12709	//    * Dev
12710	//
12711	// TypeName is a required field
12712	TypeName *string `min:"10" type:"string" required:"true"`
12713}
12714
12715// String returns the string representation
12716func (s RegisterTypeInput) String() string {
12717	return awsutil.Prettify(s)
12718}
12719
12720// GoString returns the string representation
12721func (s RegisterTypeInput) GoString() string {
12722	return s.String()
12723}
12724
12725// Validate inspects the fields of the type to determine if they are valid.
12726func (s *RegisterTypeInput) Validate() error {
12727	invalidParams := request.ErrInvalidParams{Context: "RegisterTypeInput"}
12728	if s.ClientRequestToken != nil && len(*s.ClientRequestToken) < 1 {
12729		invalidParams.Add(request.NewErrParamMinLen("ClientRequestToken", 1))
12730	}
12731	if s.ExecutionRoleArn != nil && len(*s.ExecutionRoleArn) < 1 {
12732		invalidParams.Add(request.NewErrParamMinLen("ExecutionRoleArn", 1))
12733	}
12734	if s.SchemaHandlerPackage == nil {
12735		invalidParams.Add(request.NewErrParamRequired("SchemaHandlerPackage"))
12736	}
12737	if s.SchemaHandlerPackage != nil && len(*s.SchemaHandlerPackage) < 1 {
12738		invalidParams.Add(request.NewErrParamMinLen("SchemaHandlerPackage", 1))
12739	}
12740	if s.TypeName == nil {
12741		invalidParams.Add(request.NewErrParamRequired("TypeName"))
12742	}
12743	if s.TypeName != nil && len(*s.TypeName) < 10 {
12744		invalidParams.Add(request.NewErrParamMinLen("TypeName", 10))
12745	}
12746	if s.LoggingConfig != nil {
12747		if err := s.LoggingConfig.Validate(); err != nil {
12748			invalidParams.AddNested("LoggingConfig", err.(request.ErrInvalidParams))
12749		}
12750	}
12751
12752	if invalidParams.Len() > 0 {
12753		return invalidParams
12754	}
12755	return nil
12756}
12757
12758// SetClientRequestToken sets the ClientRequestToken field's value.
12759func (s *RegisterTypeInput) SetClientRequestToken(v string) *RegisterTypeInput {
12760	s.ClientRequestToken = &v
12761	return s
12762}
12763
12764// SetExecutionRoleArn sets the ExecutionRoleArn field's value.
12765func (s *RegisterTypeInput) SetExecutionRoleArn(v string) *RegisterTypeInput {
12766	s.ExecutionRoleArn = &v
12767	return s
12768}
12769
12770// SetLoggingConfig sets the LoggingConfig field's value.
12771func (s *RegisterTypeInput) SetLoggingConfig(v *LoggingConfig) *RegisterTypeInput {
12772	s.LoggingConfig = v
12773	return s
12774}
12775
12776// SetSchemaHandlerPackage sets the SchemaHandlerPackage field's value.
12777func (s *RegisterTypeInput) SetSchemaHandlerPackage(v string) *RegisterTypeInput {
12778	s.SchemaHandlerPackage = &v
12779	return s
12780}
12781
12782// SetType sets the Type field's value.
12783func (s *RegisterTypeInput) SetType(v string) *RegisterTypeInput {
12784	s.Type = &v
12785	return s
12786}
12787
12788// SetTypeName sets the TypeName field's value.
12789func (s *RegisterTypeInput) SetTypeName(v string) *RegisterTypeInput {
12790	s.TypeName = &v
12791	return s
12792}
12793
12794type RegisterTypeOutput struct {
12795	_ struct{} `type:"structure"`
12796
12797	// The identifier for this registration request.
12798	//
12799	// Use this registration token when calling DescribeTypeRegistration , which
12800	// returns information about the status and IDs of the extension registration.
12801	RegistrationToken *string `min:"1" type:"string"`
12802}
12803
12804// String returns the string representation
12805func (s RegisterTypeOutput) String() string {
12806	return awsutil.Prettify(s)
12807}
12808
12809// GoString returns the string representation
12810func (s RegisterTypeOutput) GoString() string {
12811	return s.String()
12812}
12813
12814// SetRegistrationToken sets the RegistrationToken field's value.
12815func (s *RegisterTypeOutput) SetRegistrationToken(v string) *RegisterTypeOutput {
12816	s.RegistrationToken = &v
12817	return s
12818}
12819
12820// The ResourceChange structure describes the resource and the action that AWS
12821// CloudFormation will perform on it if you execute this change set.
12822type ResourceChange struct {
12823	_ struct{} `type:"structure"`
12824
12825	// The action that AWS CloudFormation takes on the resource, such as Add (adds
12826	// a new resource), Modify (changes a resource), Remove (deletes a resource),
12827	// Import (imports a resource), or Dynamic (exact action for the resource cannot
12828	// be determined).
12829	Action *string `type:"string" enum:"ChangeAction"`
12830
12831	// The change set ID of the nested change set.
12832	ChangeSetId *string `min:"1" type:"string"`
12833
12834	// For the Modify action, a list of ResourceChangeDetail structures that describes
12835	// the changes that AWS CloudFormation will make to the resource.
12836	Details []*ResourceChangeDetail `type:"list"`
12837
12838	// The resource's logical ID, which is defined in the stack's template.
12839	LogicalResourceId *string `type:"string"`
12840
12841	// Contains information about the module from which the resource was created,
12842	// if the resource was created from a module included in the stack template.
12843	ModuleInfo *ModuleInfo `type:"structure"`
12844
12845	// The resource's physical ID (resource name). Resources that you are adding
12846	// don't have physical IDs because they haven't been created.
12847	PhysicalResourceId *string `type:"string"`
12848
12849	// For the Modify action, indicates whether AWS CloudFormation will replace
12850	// the resource by creating a new one and deleting the old one. This value depends
12851	// on the value of the RequiresRecreation property in the ResourceTargetDefinition
12852	// structure. For example, if the RequiresRecreation field is Always and the
12853	// Evaluation field is Static, Replacement is True. If the RequiresRecreation
12854	// field is Always and the Evaluation field is Dynamic, Replacement is Conditionally.
12855	//
12856	// If you have multiple changes with different RequiresRecreation values, the
12857	// Replacement value depends on the change with the most impact. A RequiresRecreation
12858	// value of Always has the most impact, followed by Conditionally, and then
12859	// Never.
12860	Replacement *string `type:"string" enum:"Replacement"`
12861
12862	// The type of AWS CloudFormation resource, such as AWS::S3::Bucket.
12863	ResourceType *string `min:"1" type:"string"`
12864
12865	// For the Modify action, indicates which resource attribute is triggering this
12866	// update, such as a change in the resource attribute's Metadata, Properties,
12867	// or Tags.
12868	Scope []*string `type:"list"`
12869}
12870
12871// String returns the string representation
12872func (s ResourceChange) String() string {
12873	return awsutil.Prettify(s)
12874}
12875
12876// GoString returns the string representation
12877func (s ResourceChange) GoString() string {
12878	return s.String()
12879}
12880
12881// SetAction sets the Action field's value.
12882func (s *ResourceChange) SetAction(v string) *ResourceChange {
12883	s.Action = &v
12884	return s
12885}
12886
12887// SetChangeSetId sets the ChangeSetId field's value.
12888func (s *ResourceChange) SetChangeSetId(v string) *ResourceChange {
12889	s.ChangeSetId = &v
12890	return s
12891}
12892
12893// SetDetails sets the Details field's value.
12894func (s *ResourceChange) SetDetails(v []*ResourceChangeDetail) *ResourceChange {
12895	s.Details = v
12896	return s
12897}
12898
12899// SetLogicalResourceId sets the LogicalResourceId field's value.
12900func (s *ResourceChange) SetLogicalResourceId(v string) *ResourceChange {
12901	s.LogicalResourceId = &v
12902	return s
12903}
12904
12905// SetModuleInfo sets the ModuleInfo field's value.
12906func (s *ResourceChange) SetModuleInfo(v *ModuleInfo) *ResourceChange {
12907	s.ModuleInfo = v
12908	return s
12909}
12910
12911// SetPhysicalResourceId sets the PhysicalResourceId field's value.
12912func (s *ResourceChange) SetPhysicalResourceId(v string) *ResourceChange {
12913	s.PhysicalResourceId = &v
12914	return s
12915}
12916
12917// SetReplacement sets the Replacement field's value.
12918func (s *ResourceChange) SetReplacement(v string) *ResourceChange {
12919	s.Replacement = &v
12920	return s
12921}
12922
12923// SetResourceType sets the ResourceType field's value.
12924func (s *ResourceChange) SetResourceType(v string) *ResourceChange {
12925	s.ResourceType = &v
12926	return s
12927}
12928
12929// SetScope sets the Scope field's value.
12930func (s *ResourceChange) SetScope(v []*string) *ResourceChange {
12931	s.Scope = v
12932	return s
12933}
12934
12935// For a resource with Modify as the action, the ResourceChange structure describes
12936// the changes AWS CloudFormation will make to that resource.
12937type ResourceChangeDetail struct {
12938	_ struct{} `type:"structure"`
12939
12940	// The identity of the entity that triggered this change. This entity is a member
12941	// of the group that is specified by the ChangeSource field. For example, if
12942	// you modified the value of the KeyPairName parameter, the CausingEntity is
12943	// the name of the parameter (KeyPairName).
12944	//
12945	// If the ChangeSource value is DirectModification, no value is given for CausingEntity.
12946	CausingEntity *string `type:"string"`
12947
12948	// The group to which the CausingEntity value belongs. There are five entity
12949	// groups:
12950	//
12951	//    * ResourceReference entities are Ref intrinsic functions that refer to
12952	//    resources in the template, such as { "Ref" : "MyEC2InstanceResource" }.
12953	//
12954	//    * ParameterReference entities are Ref intrinsic functions that get template
12955	//    parameter values, such as { "Ref" : "MyPasswordParameter" }.
12956	//
12957	//    * ResourceAttribute entities are Fn::GetAtt intrinsic functions that get
12958	//    resource attribute values, such as { "Fn::GetAtt" : [ "MyEC2InstanceResource",
12959	//    "PublicDnsName" ] }.
12960	//
12961	//    * DirectModification entities are changes that are made directly to the
12962	//    template.
12963	//
12964	//    * Automatic entities are AWS::CloudFormation::Stack resource types, which
12965	//    are also known as nested stacks. If you made no changes to the AWS::CloudFormation::Stack
12966	//    resource, AWS CloudFormation sets the ChangeSource to Automatic because
12967	//    the nested stack's template might have changed. Changes to a nested stack's
12968	//    template aren't visible to AWS CloudFormation until you run an update
12969	//    on the parent stack.
12970	ChangeSource *string `type:"string" enum:"ChangeSource"`
12971
12972	// Indicates whether AWS CloudFormation can determine the target value, and
12973	// whether the target value will change before you execute a change set.
12974	//
12975	// For Static evaluations, AWS CloudFormation can determine that the target
12976	// value will change, and its value. For example, if you directly modify the
12977	// InstanceType property of an EC2 instance, AWS CloudFormation knows that this
12978	// property value will change, and its value, so this is a Static evaluation.
12979	//
12980	// For Dynamic evaluations, cannot determine the target value because it depends
12981	// on the result of an intrinsic function, such as a Ref or Fn::GetAtt intrinsic
12982	// function, when the stack is updated. For example, if your template includes
12983	// a reference to a resource that is conditionally recreated, the value of the
12984	// reference (the physical ID of the resource) might change, depending on if
12985	// the resource is recreated. If the resource is recreated, it will have a new
12986	// physical ID, so all references to that resource will also be updated.
12987	Evaluation *string `type:"string" enum:"EvaluationType"`
12988
12989	// A ResourceTargetDefinition structure that describes the field that AWS CloudFormation
12990	// will change and whether the resource will be recreated.
12991	Target *ResourceTargetDefinition `type:"structure"`
12992}
12993
12994// String returns the string representation
12995func (s ResourceChangeDetail) String() string {
12996	return awsutil.Prettify(s)
12997}
12998
12999// GoString returns the string representation
13000func (s ResourceChangeDetail) GoString() string {
13001	return s.String()
13002}
13003
13004// SetCausingEntity sets the CausingEntity field's value.
13005func (s *ResourceChangeDetail) SetCausingEntity(v string) *ResourceChangeDetail {
13006	s.CausingEntity = &v
13007	return s
13008}
13009
13010// SetChangeSource sets the ChangeSource field's value.
13011func (s *ResourceChangeDetail) SetChangeSource(v string) *ResourceChangeDetail {
13012	s.ChangeSource = &v
13013	return s
13014}
13015
13016// SetEvaluation sets the Evaluation field's value.
13017func (s *ResourceChangeDetail) SetEvaluation(v string) *ResourceChangeDetail {
13018	s.Evaluation = &v
13019	return s
13020}
13021
13022// SetTarget sets the Target field's value.
13023func (s *ResourceChangeDetail) SetTarget(v *ResourceTargetDefinition) *ResourceChangeDetail {
13024	s.Target = v
13025	return s
13026}
13027
13028// Describes the target resources of a specific type in your import template
13029// (for example, all AWS::S3::Bucket resources) and the properties you can provide
13030// during the import to identify resources of that type.
13031type ResourceIdentifierSummary struct {
13032	_ struct{} `type:"structure"`
13033
13034	// The logical IDs of the target resources of the specified ResourceType, as
13035	// defined in the import template.
13036	LogicalResourceIds []*string `min:"1" type:"list"`
13037
13038	// The resource properties you can provide during the import to identify your
13039	// target resources. For example, BucketName is a possible identifier property
13040	// for AWS::S3::Bucket resources.
13041	ResourceIdentifiers []*string `type:"list"`
13042
13043	// The template resource type of the target resources, such as AWS::S3::Bucket.
13044	ResourceType *string `min:"1" type:"string"`
13045}
13046
13047// String returns the string representation
13048func (s ResourceIdentifierSummary) String() string {
13049	return awsutil.Prettify(s)
13050}
13051
13052// GoString returns the string representation
13053func (s ResourceIdentifierSummary) GoString() string {
13054	return s.String()
13055}
13056
13057// SetLogicalResourceIds sets the LogicalResourceIds field's value.
13058func (s *ResourceIdentifierSummary) SetLogicalResourceIds(v []*string) *ResourceIdentifierSummary {
13059	s.LogicalResourceIds = v
13060	return s
13061}
13062
13063// SetResourceIdentifiers sets the ResourceIdentifiers field's value.
13064func (s *ResourceIdentifierSummary) SetResourceIdentifiers(v []*string) *ResourceIdentifierSummary {
13065	s.ResourceIdentifiers = v
13066	return s
13067}
13068
13069// SetResourceType sets the ResourceType field's value.
13070func (s *ResourceIdentifierSummary) SetResourceType(v string) *ResourceIdentifierSummary {
13071	s.ResourceType = &v
13072	return s
13073}
13074
13075// The field that AWS CloudFormation will change, such as the name of a resource's
13076// property, and whether the resource will be recreated.
13077type ResourceTargetDefinition struct {
13078	_ struct{} `type:"structure"`
13079
13080	// Indicates which resource attribute is triggering this update, such as a change
13081	// in the resource attribute's Metadata, Properties, or Tags.
13082	Attribute *string `type:"string" enum:"ResourceAttribute"`
13083
13084	// If the Attribute value is Properties, the name of the property. For all other
13085	// attributes, the value is null.
13086	Name *string `type:"string"`
13087
13088	// If the Attribute value is Properties, indicates whether a change to this
13089	// property causes the resource to be recreated. The value can be Never, Always,
13090	// or Conditionally. To determine the conditions for a Conditionally recreation,
13091	// see the update behavior for that property (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-template-resource-type-ref.html)
13092	// in the AWS CloudFormation User Guide.
13093	RequiresRecreation *string `type:"string" enum:"RequiresRecreation"`
13094}
13095
13096// String returns the string representation
13097func (s ResourceTargetDefinition) String() string {
13098	return awsutil.Prettify(s)
13099}
13100
13101// GoString returns the string representation
13102func (s ResourceTargetDefinition) GoString() string {
13103	return s.String()
13104}
13105
13106// SetAttribute sets the Attribute field's value.
13107func (s *ResourceTargetDefinition) SetAttribute(v string) *ResourceTargetDefinition {
13108	s.Attribute = &v
13109	return s
13110}
13111
13112// SetName sets the Name field's value.
13113func (s *ResourceTargetDefinition) SetName(v string) *ResourceTargetDefinition {
13114	s.Name = &v
13115	return s
13116}
13117
13118// SetRequiresRecreation sets the RequiresRecreation field's value.
13119func (s *ResourceTargetDefinition) SetRequiresRecreation(v string) *ResourceTargetDefinition {
13120	s.RequiresRecreation = &v
13121	return s
13122}
13123
13124// Describes the target resource of an import operation.
13125type ResourceToImport struct {
13126	_ struct{} `type:"structure"`
13127
13128	// The logical ID of the target resource as specified in the template.
13129	//
13130	// LogicalResourceId is a required field
13131	LogicalResourceId *string `type:"string" required:"true"`
13132
13133	// A key-value pair that identifies the target resource. The key is an identifier
13134	// property (for example, BucketName for AWS::S3::Bucket resources) and the
13135	// value is the actual property value (for example, MyS3Bucket).
13136	//
13137	// ResourceIdentifier is a required field
13138	ResourceIdentifier map[string]*string `min:"1" type:"map" required:"true"`
13139
13140	// The type of resource to import into your stack, such as AWS::S3::Bucket.
13141	// For a list of supported resource types, see Resources that support import
13142	// operations (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/resource-import-supported-resources.html)
13143	// in the AWS CloudFormation User Guide.
13144	//
13145	// ResourceType is a required field
13146	ResourceType *string `min:"1" type:"string" required:"true"`
13147}
13148
13149// String returns the string representation
13150func (s ResourceToImport) String() string {
13151	return awsutil.Prettify(s)
13152}
13153
13154// GoString returns the string representation
13155func (s ResourceToImport) GoString() string {
13156	return s.String()
13157}
13158
13159// Validate inspects the fields of the type to determine if they are valid.
13160func (s *ResourceToImport) Validate() error {
13161	invalidParams := request.ErrInvalidParams{Context: "ResourceToImport"}
13162	if s.LogicalResourceId == nil {
13163		invalidParams.Add(request.NewErrParamRequired("LogicalResourceId"))
13164	}
13165	if s.ResourceIdentifier == nil {
13166		invalidParams.Add(request.NewErrParamRequired("ResourceIdentifier"))
13167	}
13168	if s.ResourceIdentifier != nil && len(s.ResourceIdentifier) < 1 {
13169		invalidParams.Add(request.NewErrParamMinLen("ResourceIdentifier", 1))
13170	}
13171	if s.ResourceType == nil {
13172		invalidParams.Add(request.NewErrParamRequired("ResourceType"))
13173	}
13174	if s.ResourceType != nil && len(*s.ResourceType) < 1 {
13175		invalidParams.Add(request.NewErrParamMinLen("ResourceType", 1))
13176	}
13177
13178	if invalidParams.Len() > 0 {
13179		return invalidParams
13180	}
13181	return nil
13182}
13183
13184// SetLogicalResourceId sets the LogicalResourceId field's value.
13185func (s *ResourceToImport) SetLogicalResourceId(v string) *ResourceToImport {
13186	s.LogicalResourceId = &v
13187	return s
13188}
13189
13190// SetResourceIdentifier sets the ResourceIdentifier field's value.
13191func (s *ResourceToImport) SetResourceIdentifier(v map[string]*string) *ResourceToImport {
13192	s.ResourceIdentifier = v
13193	return s
13194}
13195
13196// SetResourceType sets the ResourceType field's value.
13197func (s *ResourceToImport) SetResourceType(v string) *ResourceToImport {
13198	s.ResourceType = &v
13199	return s
13200}
13201
13202// Structure containing the rollback triggers for AWS CloudFormation to monitor
13203// during stack creation and updating operations, and for the specified monitoring
13204// period afterwards.
13205//
13206// Rollback triggers enable you to have AWS CloudFormation monitor the state
13207// of your application during stack creation and updating, and to roll back
13208// that operation if the application breaches the threshold of any of the alarms
13209// you've specified. For more information, see Monitor and Roll Back Stack Operations
13210// (http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-rollback-triggers.html).
13211type RollbackConfiguration struct {
13212	_ struct{} `type:"structure"`
13213
13214	// The amount of time, in minutes, during which CloudFormation should monitor
13215	// all the rollback triggers after the stack creation or update operation deploys
13216	// all necessary resources.
13217	//
13218	// The default is 0 minutes.
13219	//
13220	// If you specify a monitoring period but do not specify any rollback triggers,
13221	// CloudFormation still waits the specified period of time before cleaning up
13222	// old resources after update operations. You can use this monitoring period
13223	// to perform any manual stack validation desired, and manually cancel the stack
13224	// creation or update (using CancelUpdateStack (https://docs.aws.amazon.com/AWSCloudFormation/latest/APIReference/API_CancelUpdateStack.html),
13225	// for example) as necessary.
13226	//
13227	// If you specify 0 for this parameter, CloudFormation still monitors the specified
13228	// rollback triggers during stack creation and update operations. Then, for
13229	// update operations, it begins disposing of old resources immediately once
13230	// the operation completes.
13231	MonitoringTimeInMinutes *int64 `type:"integer"`
13232
13233	// The triggers to monitor during stack creation or update actions.
13234	//
13235	// By default, AWS CloudFormation saves the rollback triggers specified for
13236	// a stack and applies them to any subsequent update operations for the stack,
13237	// unless you specify otherwise. If you do specify rollback triggers for this
13238	// parameter, those triggers replace any list of triggers previously specified
13239	// for the stack. This means:
13240	//
13241	//    * To use the rollback triggers previously specified for this stack, if
13242	//    any, don't specify this parameter.
13243	//
13244	//    * To specify new or updated rollback triggers, you must specify all the
13245	//    triggers that you want used for this stack, even triggers you've specifed
13246	//    before (for example, when creating the stack or during a previous stack
13247	//    update). Any triggers that you don't include in the updated list of triggers
13248	//    are no longer applied to the stack.
13249	//
13250	//    * To remove all currently specified triggers, specify an empty list for
13251	//    this parameter.
13252	//
13253	// If a specified trigger is missing, the entire stack operation fails and is
13254	// rolled back.
13255	RollbackTriggers []*RollbackTrigger `type:"list"`
13256}
13257
13258// String returns the string representation
13259func (s RollbackConfiguration) String() string {
13260	return awsutil.Prettify(s)
13261}
13262
13263// GoString returns the string representation
13264func (s RollbackConfiguration) GoString() string {
13265	return s.String()
13266}
13267
13268// Validate inspects the fields of the type to determine if they are valid.
13269func (s *RollbackConfiguration) Validate() error {
13270	invalidParams := request.ErrInvalidParams{Context: "RollbackConfiguration"}
13271	if s.RollbackTriggers != nil {
13272		for i, v := range s.RollbackTriggers {
13273			if v == nil {
13274				continue
13275			}
13276			if err := v.Validate(); err != nil {
13277				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "RollbackTriggers", i), err.(request.ErrInvalidParams))
13278			}
13279		}
13280	}
13281
13282	if invalidParams.Len() > 0 {
13283		return invalidParams
13284	}
13285	return nil
13286}
13287
13288// SetMonitoringTimeInMinutes sets the MonitoringTimeInMinutes field's value.
13289func (s *RollbackConfiguration) SetMonitoringTimeInMinutes(v int64) *RollbackConfiguration {
13290	s.MonitoringTimeInMinutes = &v
13291	return s
13292}
13293
13294// SetRollbackTriggers sets the RollbackTriggers field's value.
13295func (s *RollbackConfiguration) SetRollbackTriggers(v []*RollbackTrigger) *RollbackConfiguration {
13296	s.RollbackTriggers = v
13297	return s
13298}
13299
13300// A rollback trigger AWS CloudFormation monitors during creation and updating
13301// of stacks. If any of the alarms you specify goes to ALARM state during the
13302// stack operation or within the specified monitoring period afterwards, CloudFormation
13303// rolls back the entire stack operation.
13304type RollbackTrigger struct {
13305	_ struct{} `type:"structure"`
13306
13307	// The Amazon Resource Name (ARN) of the rollback trigger.
13308	//
13309	// If a specified trigger is missing, the entire stack operation fails and is
13310	// rolled back.
13311	//
13312	// Arn is a required field
13313	Arn *string `type:"string" required:"true"`
13314
13315	// The resource type of the rollback trigger. Currently, AWS::CloudWatch::Alarm
13316	// (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cw-alarm.html)
13317	// is the only supported resource type.
13318	//
13319	// Type is a required field
13320	Type *string `type:"string" required:"true"`
13321}
13322
13323// String returns the string representation
13324func (s RollbackTrigger) String() string {
13325	return awsutil.Prettify(s)
13326}
13327
13328// GoString returns the string representation
13329func (s RollbackTrigger) GoString() string {
13330	return s.String()
13331}
13332
13333// Validate inspects the fields of the type to determine if they are valid.
13334func (s *RollbackTrigger) Validate() error {
13335	invalidParams := request.ErrInvalidParams{Context: "RollbackTrigger"}
13336	if s.Arn == nil {
13337		invalidParams.Add(request.NewErrParamRequired("Arn"))
13338	}
13339	if s.Type == nil {
13340		invalidParams.Add(request.NewErrParamRequired("Type"))
13341	}
13342
13343	if invalidParams.Len() > 0 {
13344		return invalidParams
13345	}
13346	return nil
13347}
13348
13349// SetArn sets the Arn field's value.
13350func (s *RollbackTrigger) SetArn(v string) *RollbackTrigger {
13351	s.Arn = &v
13352	return s
13353}
13354
13355// SetType sets the Type field's value.
13356func (s *RollbackTrigger) SetType(v string) *RollbackTrigger {
13357	s.Type = &v
13358	return s
13359}
13360
13361// The input for the SetStackPolicy action.
13362type SetStackPolicyInput struct {
13363	_ struct{} `type:"structure"`
13364
13365	// The name or unique stack ID that you want to associate a policy with.
13366	//
13367	// StackName is a required field
13368	StackName *string `type:"string" required:"true"`
13369
13370	// Structure containing the stack policy body. For more information, go to Prevent
13371	// Updates to Stack Resources (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/protect-stack-resources.html)
13372	// in the AWS CloudFormation User Guide. You can specify either the StackPolicyBody
13373	// or the StackPolicyURL parameter, but not both.
13374	StackPolicyBody *string `min:"1" type:"string"`
13375
13376	// Location of a file containing the stack policy. The URL must point to a policy
13377	// (maximum size: 16 KB) located in an S3 bucket in the same Region as the stack.
13378	// You can specify either the StackPolicyBody or the StackPolicyURL parameter,
13379	// but not both.
13380	StackPolicyURL *string `min:"1" type:"string"`
13381}
13382
13383// String returns the string representation
13384func (s SetStackPolicyInput) String() string {
13385	return awsutil.Prettify(s)
13386}
13387
13388// GoString returns the string representation
13389func (s SetStackPolicyInput) GoString() string {
13390	return s.String()
13391}
13392
13393// Validate inspects the fields of the type to determine if they are valid.
13394func (s *SetStackPolicyInput) Validate() error {
13395	invalidParams := request.ErrInvalidParams{Context: "SetStackPolicyInput"}
13396	if s.StackName == nil {
13397		invalidParams.Add(request.NewErrParamRequired("StackName"))
13398	}
13399	if s.StackPolicyBody != nil && len(*s.StackPolicyBody) < 1 {
13400		invalidParams.Add(request.NewErrParamMinLen("StackPolicyBody", 1))
13401	}
13402	if s.StackPolicyURL != nil && len(*s.StackPolicyURL) < 1 {
13403		invalidParams.Add(request.NewErrParamMinLen("StackPolicyURL", 1))
13404	}
13405
13406	if invalidParams.Len() > 0 {
13407		return invalidParams
13408	}
13409	return nil
13410}
13411
13412// SetStackName sets the StackName field's value.
13413func (s *SetStackPolicyInput) SetStackName(v string) *SetStackPolicyInput {
13414	s.StackName = &v
13415	return s
13416}
13417
13418// SetStackPolicyBody sets the StackPolicyBody field's value.
13419func (s *SetStackPolicyInput) SetStackPolicyBody(v string) *SetStackPolicyInput {
13420	s.StackPolicyBody = &v
13421	return s
13422}
13423
13424// SetStackPolicyURL sets the StackPolicyURL field's value.
13425func (s *SetStackPolicyInput) SetStackPolicyURL(v string) *SetStackPolicyInput {
13426	s.StackPolicyURL = &v
13427	return s
13428}
13429
13430type SetStackPolicyOutput struct {
13431	_ struct{} `type:"structure"`
13432}
13433
13434// String returns the string representation
13435func (s SetStackPolicyOutput) String() string {
13436	return awsutil.Prettify(s)
13437}
13438
13439// GoString returns the string representation
13440func (s SetStackPolicyOutput) GoString() string {
13441	return s.String()
13442}
13443
13444type SetTypeDefaultVersionInput struct {
13445	_ struct{} `type:"structure"`
13446
13447	// The Amazon Resource Name (ARN) of the extension for which you want version
13448	// summary information.
13449	//
13450	// Conditional: You must specify either TypeName and Type, or Arn.
13451	Arn *string `type:"string"`
13452
13453	// The kind of extension.
13454	//
13455	// Conditional: You must specify either TypeName and Type, or Arn.
13456	Type *string `type:"string" enum:"RegistryType"`
13457
13458	// The name of the extension.
13459	//
13460	// Conditional: You must specify either TypeName and Type, or Arn.
13461	TypeName *string `min:"10" type:"string"`
13462
13463	// The ID of a specific version of the extension. The version ID is the value
13464	// at the end of the Amazon Resource Name (ARN) assigned to the extension version
13465	// when it is registered.
13466	VersionId *string `min:"1" type:"string"`
13467}
13468
13469// String returns the string representation
13470func (s SetTypeDefaultVersionInput) String() string {
13471	return awsutil.Prettify(s)
13472}
13473
13474// GoString returns the string representation
13475func (s SetTypeDefaultVersionInput) GoString() string {
13476	return s.String()
13477}
13478
13479// Validate inspects the fields of the type to determine if they are valid.
13480func (s *SetTypeDefaultVersionInput) Validate() error {
13481	invalidParams := request.ErrInvalidParams{Context: "SetTypeDefaultVersionInput"}
13482	if s.TypeName != nil && len(*s.TypeName) < 10 {
13483		invalidParams.Add(request.NewErrParamMinLen("TypeName", 10))
13484	}
13485	if s.VersionId != nil && len(*s.VersionId) < 1 {
13486		invalidParams.Add(request.NewErrParamMinLen("VersionId", 1))
13487	}
13488
13489	if invalidParams.Len() > 0 {
13490		return invalidParams
13491	}
13492	return nil
13493}
13494
13495// SetArn sets the Arn field's value.
13496func (s *SetTypeDefaultVersionInput) SetArn(v string) *SetTypeDefaultVersionInput {
13497	s.Arn = &v
13498	return s
13499}
13500
13501// SetType sets the Type field's value.
13502func (s *SetTypeDefaultVersionInput) SetType(v string) *SetTypeDefaultVersionInput {
13503	s.Type = &v
13504	return s
13505}
13506
13507// SetTypeName sets the TypeName field's value.
13508func (s *SetTypeDefaultVersionInput) SetTypeName(v string) *SetTypeDefaultVersionInput {
13509	s.TypeName = &v
13510	return s
13511}
13512
13513// SetVersionId sets the VersionId field's value.
13514func (s *SetTypeDefaultVersionInput) SetVersionId(v string) *SetTypeDefaultVersionInput {
13515	s.VersionId = &v
13516	return s
13517}
13518
13519type SetTypeDefaultVersionOutput struct {
13520	_ struct{} `type:"structure"`
13521}
13522
13523// String returns the string representation
13524func (s SetTypeDefaultVersionOutput) String() string {
13525	return awsutil.Prettify(s)
13526}
13527
13528// GoString returns the string representation
13529func (s SetTypeDefaultVersionOutput) GoString() string {
13530	return s.String()
13531}
13532
13533// The input for the SignalResource action.
13534type SignalResourceInput struct {
13535	_ struct{} `type:"structure"`
13536
13537	// The logical ID of the resource that you want to signal. The logical ID is
13538	// the name of the resource that given in the template.
13539	//
13540	// LogicalResourceId is a required field
13541	LogicalResourceId *string `type:"string" required:"true"`
13542
13543	// The stack name or unique stack ID that includes the resource that you want
13544	// to signal.
13545	//
13546	// StackName is a required field
13547	StackName *string `min:"1" type:"string" required:"true"`
13548
13549	// The status of the signal, which is either success or failure. A failure signal
13550	// causes AWS CloudFormation to immediately fail the stack creation or update.
13551	//
13552	// Status is a required field
13553	Status *string `type:"string" required:"true" enum:"ResourceSignalStatus"`
13554
13555	// A unique ID of the signal. When you signal Amazon EC2 instances or Auto Scaling
13556	// groups, specify the instance ID that you are signaling as the unique ID.
13557	// If you send multiple signals to a single resource (such as signaling a wait
13558	// condition), each signal requires a different unique ID.
13559	//
13560	// UniqueId is a required field
13561	UniqueId *string `min:"1" type:"string" required:"true"`
13562}
13563
13564// String returns the string representation
13565func (s SignalResourceInput) String() string {
13566	return awsutil.Prettify(s)
13567}
13568
13569// GoString returns the string representation
13570func (s SignalResourceInput) GoString() string {
13571	return s.String()
13572}
13573
13574// Validate inspects the fields of the type to determine if they are valid.
13575func (s *SignalResourceInput) Validate() error {
13576	invalidParams := request.ErrInvalidParams{Context: "SignalResourceInput"}
13577	if s.LogicalResourceId == nil {
13578		invalidParams.Add(request.NewErrParamRequired("LogicalResourceId"))
13579	}
13580	if s.StackName == nil {
13581		invalidParams.Add(request.NewErrParamRequired("StackName"))
13582	}
13583	if s.StackName != nil && len(*s.StackName) < 1 {
13584		invalidParams.Add(request.NewErrParamMinLen("StackName", 1))
13585	}
13586	if s.Status == nil {
13587		invalidParams.Add(request.NewErrParamRequired("Status"))
13588	}
13589	if s.UniqueId == nil {
13590		invalidParams.Add(request.NewErrParamRequired("UniqueId"))
13591	}
13592	if s.UniqueId != nil && len(*s.UniqueId) < 1 {
13593		invalidParams.Add(request.NewErrParamMinLen("UniqueId", 1))
13594	}
13595
13596	if invalidParams.Len() > 0 {
13597		return invalidParams
13598	}
13599	return nil
13600}
13601
13602// SetLogicalResourceId sets the LogicalResourceId field's value.
13603func (s *SignalResourceInput) SetLogicalResourceId(v string) *SignalResourceInput {
13604	s.LogicalResourceId = &v
13605	return s
13606}
13607
13608// SetStackName sets the StackName field's value.
13609func (s *SignalResourceInput) SetStackName(v string) *SignalResourceInput {
13610	s.StackName = &v
13611	return s
13612}
13613
13614// SetStatus sets the Status field's value.
13615func (s *SignalResourceInput) SetStatus(v string) *SignalResourceInput {
13616	s.Status = &v
13617	return s
13618}
13619
13620// SetUniqueId sets the UniqueId field's value.
13621func (s *SignalResourceInput) SetUniqueId(v string) *SignalResourceInput {
13622	s.UniqueId = &v
13623	return s
13624}
13625
13626type SignalResourceOutput struct {
13627	_ struct{} `type:"structure"`
13628}
13629
13630// String returns the string representation
13631func (s SignalResourceOutput) String() string {
13632	return awsutil.Prettify(s)
13633}
13634
13635// GoString returns the string representation
13636func (s SignalResourceOutput) GoString() string {
13637	return s.String()
13638}
13639
13640// The Stack data type.
13641type Stack struct {
13642	_ struct{} `type:"structure"`
13643
13644	// The capabilities allowed in the stack.
13645	Capabilities []*string `type:"list"`
13646
13647	// The unique ID of the change set.
13648	ChangeSetId *string `min:"1" type:"string"`
13649
13650	// The time at which the stack was created.
13651	//
13652	// CreationTime is a required field
13653	CreationTime *time.Time `type:"timestamp" required:"true"`
13654
13655	// The time the stack was deleted.
13656	DeletionTime *time.Time `type:"timestamp"`
13657
13658	// A user-defined description associated with the stack.
13659	Description *string `min:"1" type:"string"`
13660
13661	// Boolean to enable or disable rollback on stack creation failures:
13662	//
13663	//    * true: disable rollback
13664	//
13665	//    * false: enable rollback
13666	DisableRollback *bool `type:"boolean"`
13667
13668	// Information on whether a stack's actual configuration differs, or has drifted,
13669	// from it's expected configuration, as defined in the stack template and any
13670	// values specified as template parameters. For more information, see Detecting
13671	// Unregulated Configuration Changes to Stacks and Resources (http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-stack-drift.html).
13672	DriftInformation *StackDriftInformation `type:"structure"`
13673
13674	// Whether termination protection is enabled for the stack.
13675	//
13676	// For nested stacks (http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-nested-stacks.html),
13677	// termination protection is set on the root stack and cannot be changed directly
13678	// on the nested stack. For more information, see Protecting a Stack From Being
13679	// Deleted (http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-protect-stacks.html)
13680	// in the AWS CloudFormation User Guide.
13681	EnableTerminationProtection *bool `type:"boolean"`
13682
13683	// The time the stack was last updated. This field will only be returned if
13684	// the stack has been updated at least once.
13685	LastUpdatedTime *time.Time `type:"timestamp"`
13686
13687	// SNS topic ARNs to which stack related events are published.
13688	NotificationARNs []*string `type:"list"`
13689
13690	// A list of output structures.
13691	Outputs []*Output `type:"list"`
13692
13693	// A list of Parameter structures.
13694	Parameters []*Parameter `type:"list"`
13695
13696	// For nested stacks--stacks created as resources for another stack--the stack
13697	// ID of the direct parent of this stack. For the first level of nested stacks,
13698	// the root stack is also the parent stack.
13699	//
13700	// For more information, see Working with Nested Stacks (http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-nested-stacks.html)
13701	// in the AWS CloudFormation User Guide.
13702	ParentId *string `type:"string"`
13703
13704	// The Amazon Resource Name (ARN) of an AWS Identity and Access Management (IAM)
13705	// role that is associated with the stack. During a stack operation, AWS CloudFormation
13706	// uses this role's credentials to make calls on your behalf.
13707	RoleARN *string `min:"20" type:"string"`
13708
13709	// The rollback triggers for AWS CloudFormation to monitor during stack creation
13710	// and updating operations, and for the specified monitoring period afterwards.
13711	RollbackConfiguration *RollbackConfiguration `type:"structure"`
13712
13713	// For nested stacks--stacks created as resources for another stack--the stack
13714	// ID of the top-level stack to which the nested stack ultimately belongs.
13715	//
13716	// For more information, see Working with Nested Stacks (http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-nested-stacks.html)
13717	// in the AWS CloudFormation User Guide.
13718	RootId *string `type:"string"`
13719
13720	// Unique identifier of the stack.
13721	StackId *string `type:"string"`
13722
13723	// The name associated with the stack.
13724	//
13725	// StackName is a required field
13726	StackName *string `type:"string" required:"true"`
13727
13728	// Current status of the stack.
13729	//
13730	// StackStatus is a required field
13731	StackStatus *string `type:"string" required:"true" enum:"StackStatus"`
13732
13733	// Success/failure message associated with the stack status.
13734	StackStatusReason *string `type:"string"`
13735
13736	// A list of Tags that specify information about the stack.
13737	Tags []*Tag `type:"list"`
13738
13739	// The amount of time within which stack creation should complete.
13740	TimeoutInMinutes *int64 `min:"1" type:"integer"`
13741}
13742
13743// String returns the string representation
13744func (s Stack) String() string {
13745	return awsutil.Prettify(s)
13746}
13747
13748// GoString returns the string representation
13749func (s Stack) GoString() string {
13750	return s.String()
13751}
13752
13753// SetCapabilities sets the Capabilities field's value.
13754func (s *Stack) SetCapabilities(v []*string) *Stack {
13755	s.Capabilities = v
13756	return s
13757}
13758
13759// SetChangeSetId sets the ChangeSetId field's value.
13760func (s *Stack) SetChangeSetId(v string) *Stack {
13761	s.ChangeSetId = &v
13762	return s
13763}
13764
13765// SetCreationTime sets the CreationTime field's value.
13766func (s *Stack) SetCreationTime(v time.Time) *Stack {
13767	s.CreationTime = &v
13768	return s
13769}
13770
13771// SetDeletionTime sets the DeletionTime field's value.
13772func (s *Stack) SetDeletionTime(v time.Time) *Stack {
13773	s.DeletionTime = &v
13774	return s
13775}
13776
13777// SetDescription sets the Description field's value.
13778func (s *Stack) SetDescription(v string) *Stack {
13779	s.Description = &v
13780	return s
13781}
13782
13783// SetDisableRollback sets the DisableRollback field's value.
13784func (s *Stack) SetDisableRollback(v bool) *Stack {
13785	s.DisableRollback = &v
13786	return s
13787}
13788
13789// SetDriftInformation sets the DriftInformation field's value.
13790func (s *Stack) SetDriftInformation(v *StackDriftInformation) *Stack {
13791	s.DriftInformation = v
13792	return s
13793}
13794
13795// SetEnableTerminationProtection sets the EnableTerminationProtection field's value.
13796func (s *Stack) SetEnableTerminationProtection(v bool) *Stack {
13797	s.EnableTerminationProtection = &v
13798	return s
13799}
13800
13801// SetLastUpdatedTime sets the LastUpdatedTime field's value.
13802func (s *Stack) SetLastUpdatedTime(v time.Time) *Stack {
13803	s.LastUpdatedTime = &v
13804	return s
13805}
13806
13807// SetNotificationARNs sets the NotificationARNs field's value.
13808func (s *Stack) SetNotificationARNs(v []*string) *Stack {
13809	s.NotificationARNs = v
13810	return s
13811}
13812
13813// SetOutputs sets the Outputs field's value.
13814func (s *Stack) SetOutputs(v []*Output) *Stack {
13815	s.Outputs = v
13816	return s
13817}
13818
13819// SetParameters sets the Parameters field's value.
13820func (s *Stack) SetParameters(v []*Parameter) *Stack {
13821	s.Parameters = v
13822	return s
13823}
13824
13825// SetParentId sets the ParentId field's value.
13826func (s *Stack) SetParentId(v string) *Stack {
13827	s.ParentId = &v
13828	return s
13829}
13830
13831// SetRoleARN sets the RoleARN field's value.
13832func (s *Stack) SetRoleARN(v string) *Stack {
13833	s.RoleARN = &v
13834	return s
13835}
13836
13837// SetRollbackConfiguration sets the RollbackConfiguration field's value.
13838func (s *Stack) SetRollbackConfiguration(v *RollbackConfiguration) *Stack {
13839	s.RollbackConfiguration = v
13840	return s
13841}
13842
13843// SetRootId sets the RootId field's value.
13844func (s *Stack) SetRootId(v string) *Stack {
13845	s.RootId = &v
13846	return s
13847}
13848
13849// SetStackId sets the StackId field's value.
13850func (s *Stack) SetStackId(v string) *Stack {
13851	s.StackId = &v
13852	return s
13853}
13854
13855// SetStackName sets the StackName field's value.
13856func (s *Stack) SetStackName(v string) *Stack {
13857	s.StackName = &v
13858	return s
13859}
13860
13861// SetStackStatus sets the StackStatus field's value.
13862func (s *Stack) SetStackStatus(v string) *Stack {
13863	s.StackStatus = &v
13864	return s
13865}
13866
13867// SetStackStatusReason sets the StackStatusReason field's value.
13868func (s *Stack) SetStackStatusReason(v string) *Stack {
13869	s.StackStatusReason = &v
13870	return s
13871}
13872
13873// SetTags sets the Tags field's value.
13874func (s *Stack) SetTags(v []*Tag) *Stack {
13875	s.Tags = v
13876	return s
13877}
13878
13879// SetTimeoutInMinutes sets the TimeoutInMinutes field's value.
13880func (s *Stack) SetTimeoutInMinutes(v int64) *Stack {
13881	s.TimeoutInMinutes = &v
13882	return s
13883}
13884
13885// Contains information about whether the stack's actual configuration differs,
13886// or has drifted, from its expected configuration, as defined in the stack
13887// template and any values specified as template parameters. A stack is considered
13888// to have drifted if one or more of its resources have drifted.
13889type StackDriftInformation struct {
13890	_ struct{} `type:"structure"`
13891
13892	// Most recent time when a drift detection operation was initiated on the stack,
13893	// or any of its individual resources that support drift detection.
13894	LastCheckTimestamp *time.Time `type:"timestamp"`
13895
13896	// Status of the stack's actual configuration compared to its expected template
13897	// configuration.
13898	//
13899	//    * DRIFTED: The stack differs from its expected template configuration.
13900	//    A stack is considered to have drifted if one or more of its resources
13901	//    have drifted.
13902	//
13903	//    * NOT_CHECKED: AWS CloudFormation has not checked if the stack differs
13904	//    from its expected template configuration.
13905	//
13906	//    * IN_SYNC: The stack's actual configuration matches its expected template
13907	//    configuration.
13908	//
13909	//    * UNKNOWN: This value is reserved for future use.
13910	//
13911	// StackDriftStatus is a required field
13912	StackDriftStatus *string `type:"string" required:"true" enum:"StackDriftStatus"`
13913}
13914
13915// String returns the string representation
13916func (s StackDriftInformation) String() string {
13917	return awsutil.Prettify(s)
13918}
13919
13920// GoString returns the string representation
13921func (s StackDriftInformation) GoString() string {
13922	return s.String()
13923}
13924
13925// SetLastCheckTimestamp sets the LastCheckTimestamp field's value.
13926func (s *StackDriftInformation) SetLastCheckTimestamp(v time.Time) *StackDriftInformation {
13927	s.LastCheckTimestamp = &v
13928	return s
13929}
13930
13931// SetStackDriftStatus sets the StackDriftStatus field's value.
13932func (s *StackDriftInformation) SetStackDriftStatus(v string) *StackDriftInformation {
13933	s.StackDriftStatus = &v
13934	return s
13935}
13936
13937// Contains information about whether the stack's actual configuration differs,
13938// or has drifted, from its expected configuration, as defined in the stack
13939// template and any values specified as template parameters. A stack is considered
13940// to have drifted if one or more of its resources have drifted.
13941type StackDriftInformationSummary struct {
13942	_ struct{} `type:"structure"`
13943
13944	// Most recent time when a drift detection operation was initiated on the stack,
13945	// or any of its individual resources that support drift detection.
13946	LastCheckTimestamp *time.Time `type:"timestamp"`
13947
13948	// Status of the stack's actual configuration compared to its expected template
13949	// configuration.
13950	//
13951	//    * DRIFTED: The stack differs from its expected template configuration.
13952	//    A stack is considered to have drifted if one or more of its resources
13953	//    have drifted.
13954	//
13955	//    * NOT_CHECKED: AWS CloudFormation has not checked if the stack differs
13956	//    from its expected template configuration.
13957	//
13958	//    * IN_SYNC: The stack's actual configuration matches its expected template
13959	//    configuration.
13960	//
13961	//    * UNKNOWN: This value is reserved for future use.
13962	//
13963	// StackDriftStatus is a required field
13964	StackDriftStatus *string `type:"string" required:"true" enum:"StackDriftStatus"`
13965}
13966
13967// String returns the string representation
13968func (s StackDriftInformationSummary) String() string {
13969	return awsutil.Prettify(s)
13970}
13971
13972// GoString returns the string representation
13973func (s StackDriftInformationSummary) GoString() string {
13974	return s.String()
13975}
13976
13977// SetLastCheckTimestamp sets the LastCheckTimestamp field's value.
13978func (s *StackDriftInformationSummary) SetLastCheckTimestamp(v time.Time) *StackDriftInformationSummary {
13979	s.LastCheckTimestamp = &v
13980	return s
13981}
13982
13983// SetStackDriftStatus sets the StackDriftStatus field's value.
13984func (s *StackDriftInformationSummary) SetStackDriftStatus(v string) *StackDriftInformationSummary {
13985	s.StackDriftStatus = &v
13986	return s
13987}
13988
13989// The StackEvent data type.
13990type StackEvent struct {
13991	_ struct{} `type:"structure"`
13992
13993	// The token passed to the operation that generated this event.
13994	//
13995	// All events triggered by a given stack operation are assigned the same client
13996	// request token, which you can use to track operations. For example, if you
13997	// execute a CreateStack operation with the token token1, then all the StackEvents
13998	// generated by that operation will have ClientRequestToken set as token1.
13999	//
14000	// In the console, stack operations display the client request token on the
14001	// Events tab. Stack operations that are initiated from the console use the
14002	// token format Console-StackOperation-ID, which helps you easily identify the
14003	// stack operation . For example, if you create a stack using the console, each
14004	// stack event would be assigned the same token in the following format: Console-CreateStack-7f59c3cf-00d2-40c7-b2ff-e75db0987002.
14005	ClientRequestToken *string `min:"1" type:"string"`
14006
14007	// The unique ID of this event.
14008	//
14009	// EventId is a required field
14010	EventId *string `type:"string" required:"true"`
14011
14012	// The logical name of the resource specified in the template.
14013	LogicalResourceId *string `type:"string"`
14014
14015	// The name or unique identifier associated with the physical instance of the
14016	// resource.
14017	PhysicalResourceId *string `type:"string"`
14018
14019	// BLOB of the properties used to create the resource.
14020	ResourceProperties *string `type:"string"`
14021
14022	// Current status of the resource.
14023	ResourceStatus *string `type:"string" enum:"ResourceStatus"`
14024
14025	// Success/failure message associated with the resource.
14026	ResourceStatusReason *string `type:"string"`
14027
14028	// Type of resource. (For more information, go to AWS Resource Types Reference
14029	// (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-template-resource-type-ref.html)
14030	// in the AWS CloudFormation User Guide.)
14031	ResourceType *string `min:"1" type:"string"`
14032
14033	// The unique ID name of the instance of the stack.
14034	//
14035	// StackId is a required field
14036	StackId *string `type:"string" required:"true"`
14037
14038	// The name associated with a stack.
14039	//
14040	// StackName is a required field
14041	StackName *string `type:"string" required:"true"`
14042
14043	// Time the status was updated.
14044	//
14045	// Timestamp is a required field
14046	Timestamp *time.Time `type:"timestamp" required:"true"`
14047}
14048
14049// String returns the string representation
14050func (s StackEvent) String() string {
14051	return awsutil.Prettify(s)
14052}
14053
14054// GoString returns the string representation
14055func (s StackEvent) GoString() string {
14056	return s.String()
14057}
14058
14059// SetClientRequestToken sets the ClientRequestToken field's value.
14060func (s *StackEvent) SetClientRequestToken(v string) *StackEvent {
14061	s.ClientRequestToken = &v
14062	return s
14063}
14064
14065// SetEventId sets the EventId field's value.
14066func (s *StackEvent) SetEventId(v string) *StackEvent {
14067	s.EventId = &v
14068	return s
14069}
14070
14071// SetLogicalResourceId sets the LogicalResourceId field's value.
14072func (s *StackEvent) SetLogicalResourceId(v string) *StackEvent {
14073	s.LogicalResourceId = &v
14074	return s
14075}
14076
14077// SetPhysicalResourceId sets the PhysicalResourceId field's value.
14078func (s *StackEvent) SetPhysicalResourceId(v string) *StackEvent {
14079	s.PhysicalResourceId = &v
14080	return s
14081}
14082
14083// SetResourceProperties sets the ResourceProperties field's value.
14084func (s *StackEvent) SetResourceProperties(v string) *StackEvent {
14085	s.ResourceProperties = &v
14086	return s
14087}
14088
14089// SetResourceStatus sets the ResourceStatus field's value.
14090func (s *StackEvent) SetResourceStatus(v string) *StackEvent {
14091	s.ResourceStatus = &v
14092	return s
14093}
14094
14095// SetResourceStatusReason sets the ResourceStatusReason field's value.
14096func (s *StackEvent) SetResourceStatusReason(v string) *StackEvent {
14097	s.ResourceStatusReason = &v
14098	return s
14099}
14100
14101// SetResourceType sets the ResourceType field's value.
14102func (s *StackEvent) SetResourceType(v string) *StackEvent {
14103	s.ResourceType = &v
14104	return s
14105}
14106
14107// SetStackId sets the StackId field's value.
14108func (s *StackEvent) SetStackId(v string) *StackEvent {
14109	s.StackId = &v
14110	return s
14111}
14112
14113// SetStackName sets the StackName field's value.
14114func (s *StackEvent) SetStackName(v string) *StackEvent {
14115	s.StackName = &v
14116	return s
14117}
14118
14119// SetTimestamp sets the Timestamp field's value.
14120func (s *StackEvent) SetTimestamp(v time.Time) *StackEvent {
14121	s.Timestamp = &v
14122	return s
14123}
14124
14125// An AWS CloudFormation stack, in a specific account and Region, that's part
14126// of a stack set operation. A stack instance is a reference to an attempted
14127// or actual stack in a given account within a given Region. A stack instance
14128// can exist without a stack—for example, if the stack couldn't be created
14129// for some reason. A stack instance is associated with only one stack set.
14130// Each stack instance contains the ID of its associated stack set, as well
14131// as the ID of the actual stack and the stack status.
14132type StackInstance struct {
14133	_ struct{} `type:"structure"`
14134
14135	// [Self-managed permissions] The name of the AWS account that the stack instance
14136	// is associated with.
14137	Account *string `type:"string"`
14138
14139	// Status of the stack instance's actual configuration compared to the expected
14140	// template and parameter configuration of the stack set to which it belongs.
14141	//
14142	//    * DRIFTED: The stack differs from the expected template and parameter
14143	//    configuration of the stack set to which it belongs. A stack instance is
14144	//    considered to have drifted if one or more of the resources in the associated
14145	//    stack have drifted.
14146	//
14147	//    * NOT_CHECKED: AWS CloudFormation has not checked if the stack instance
14148	//    differs from its expected stack set configuration.
14149	//
14150	//    * IN_SYNC: The stack instance's actual configuration matches its expected
14151	//    stack set configuration.
14152	//
14153	//    * UNKNOWN: This value is reserved for future use.
14154	DriftStatus *string `type:"string" enum:"StackDriftStatus"`
14155
14156	// Most recent time when CloudFormation performed a drift detection operation
14157	// on the stack instance. This value will be NULL for any stack instance on
14158	// which drift detection has not yet been performed.
14159	LastDriftCheckTimestamp *time.Time `type:"timestamp"`
14160
14161	// [Service-managed permissions] The organization root ID or organizational
14162	// unit (OU) IDs that you specified for DeploymentTargets (https://docs.aws.amazon.com/AWSCloudFormation/latest/APIReference/API_DeploymentTargets.html).
14163	OrganizationalUnitId *string `type:"string"`
14164
14165	// A list of parameters from the stack set template whose values have been overridden
14166	// in this stack instance.
14167	ParameterOverrides []*Parameter `type:"list"`
14168
14169	// The name of the AWS Region that the stack instance is associated with.
14170	Region *string `type:"string"`
14171
14172	// The ID of the stack instance.
14173	StackId *string `type:"string"`
14174
14175	// The detailed status of the stack instance.
14176	StackInstanceStatus *StackInstanceComprehensiveStatus `type:"structure"`
14177
14178	// The name or unique ID of the stack set that the stack instance is associated
14179	// with.
14180	StackSetId *string `type:"string"`
14181
14182	// The status of the stack instance, in terms of its synchronization with its
14183	// associated stack set.
14184	//
14185	//    * INOPERABLE: A DeleteStackInstances operation has failed and left the
14186	//    stack in an unstable state. Stacks in this state are excluded from further
14187	//    UpdateStackSet operations. You might need to perform a DeleteStackInstances
14188	//    operation, with RetainStacks set to true, to delete the stack instance,
14189	//    and then delete the stack manually.
14190	//
14191	//    * OUTDATED: The stack isn't currently up to date with the stack set because:
14192	//    The associated stack failed during a CreateStackSet or UpdateStackSet
14193	//    operation. The stack was part of a CreateStackSet or UpdateStackSet operation
14194	//    that failed or was stopped before the stack was created or updated.
14195	//
14196	//    * CURRENT: The stack is currently up to date with the stack set.
14197	Status *string `type:"string" enum:"StackInstanceStatus"`
14198
14199	// The explanation for the specific status code that is assigned to this stack
14200	// instance.
14201	StatusReason *string `type:"string"`
14202}
14203
14204// String returns the string representation
14205func (s StackInstance) String() string {
14206	return awsutil.Prettify(s)
14207}
14208
14209// GoString returns the string representation
14210func (s StackInstance) GoString() string {
14211	return s.String()
14212}
14213
14214// SetAccount sets the Account field's value.
14215func (s *StackInstance) SetAccount(v string) *StackInstance {
14216	s.Account = &v
14217	return s
14218}
14219
14220// SetDriftStatus sets the DriftStatus field's value.
14221func (s *StackInstance) SetDriftStatus(v string) *StackInstance {
14222	s.DriftStatus = &v
14223	return s
14224}
14225
14226// SetLastDriftCheckTimestamp sets the LastDriftCheckTimestamp field's value.
14227func (s *StackInstance) SetLastDriftCheckTimestamp(v time.Time) *StackInstance {
14228	s.LastDriftCheckTimestamp = &v
14229	return s
14230}
14231
14232// SetOrganizationalUnitId sets the OrganizationalUnitId field's value.
14233func (s *StackInstance) SetOrganizationalUnitId(v string) *StackInstance {
14234	s.OrganizationalUnitId = &v
14235	return s
14236}
14237
14238// SetParameterOverrides sets the ParameterOverrides field's value.
14239func (s *StackInstance) SetParameterOverrides(v []*Parameter) *StackInstance {
14240	s.ParameterOverrides = v
14241	return s
14242}
14243
14244// SetRegion sets the Region field's value.
14245func (s *StackInstance) SetRegion(v string) *StackInstance {
14246	s.Region = &v
14247	return s
14248}
14249
14250// SetStackId sets the StackId field's value.
14251func (s *StackInstance) SetStackId(v string) *StackInstance {
14252	s.StackId = &v
14253	return s
14254}
14255
14256// SetStackInstanceStatus sets the StackInstanceStatus field's value.
14257func (s *StackInstance) SetStackInstanceStatus(v *StackInstanceComprehensiveStatus) *StackInstance {
14258	s.StackInstanceStatus = v
14259	return s
14260}
14261
14262// SetStackSetId sets the StackSetId field's value.
14263func (s *StackInstance) SetStackSetId(v string) *StackInstance {
14264	s.StackSetId = &v
14265	return s
14266}
14267
14268// SetStatus sets the Status field's value.
14269func (s *StackInstance) SetStatus(v string) *StackInstance {
14270	s.Status = &v
14271	return s
14272}
14273
14274// SetStatusReason sets the StatusReason field's value.
14275func (s *StackInstance) SetStatusReason(v string) *StackInstance {
14276	s.StatusReason = &v
14277	return s
14278}
14279
14280// The detailed status of the stack instance.
14281type StackInstanceComprehensiveStatus struct {
14282	_ struct{} `type:"structure"`
14283
14284	//    * CANCELLED: The operation in the specified account and Region has been
14285	//    cancelled. This is either because a user has stopped the stack set operation,
14286	//    or because the failure tolerance of the stack set operation has been exceeded.
14287	//
14288	//    * FAILED: The operation in the specified account and Region failed. If
14289	//    the stack set operation fails in enough accounts within a Region, the
14290	//    failure tolerance for the stack set operation as a whole might be exceeded.
14291	//
14292	//    * INOPERABLE: A DeleteStackInstances operation has failed and left the
14293	//    stack in an unstable state. Stacks in this state are excluded from further
14294	//    UpdateStackSet operations. You might need to perform a DeleteStackInstances
14295	//    operation, with RetainStacks set to true, to delete the stack instance,
14296	//    and then delete the stack manually.
14297	//
14298	//    * PENDING: The operation in the specified account and Region has yet to
14299	//    start.
14300	//
14301	//    * RUNNING: The operation in the specified account and Region is currently
14302	//    in progress.
14303	//
14304	//    * SUCCEEDED: The operation in the specified account and Region completed
14305	//    successfully.
14306	DetailedStatus *string `type:"string" enum:"StackInstanceDetailedStatus"`
14307}
14308
14309// String returns the string representation
14310func (s StackInstanceComprehensiveStatus) String() string {
14311	return awsutil.Prettify(s)
14312}
14313
14314// GoString returns the string representation
14315func (s StackInstanceComprehensiveStatus) GoString() string {
14316	return s.String()
14317}
14318
14319// SetDetailedStatus sets the DetailedStatus field's value.
14320func (s *StackInstanceComprehensiveStatus) SetDetailedStatus(v string) *StackInstanceComprehensiveStatus {
14321	s.DetailedStatus = &v
14322	return s
14323}
14324
14325// The status that stack instances are filtered by.
14326type StackInstanceFilter struct {
14327	_ struct{} `type:"structure"`
14328
14329	// The type of filter to apply.
14330	Name *string `type:"string" enum:"StackInstanceFilterName"`
14331
14332	// The status to filter by.
14333	Values *string `min:"6" type:"string"`
14334}
14335
14336// String returns the string representation
14337func (s StackInstanceFilter) String() string {
14338	return awsutil.Prettify(s)
14339}
14340
14341// GoString returns the string representation
14342func (s StackInstanceFilter) GoString() string {
14343	return s.String()
14344}
14345
14346// Validate inspects the fields of the type to determine if they are valid.
14347func (s *StackInstanceFilter) Validate() error {
14348	invalidParams := request.ErrInvalidParams{Context: "StackInstanceFilter"}
14349	if s.Values != nil && len(*s.Values) < 6 {
14350		invalidParams.Add(request.NewErrParamMinLen("Values", 6))
14351	}
14352
14353	if invalidParams.Len() > 0 {
14354		return invalidParams
14355	}
14356	return nil
14357}
14358
14359// SetName sets the Name field's value.
14360func (s *StackInstanceFilter) SetName(v string) *StackInstanceFilter {
14361	s.Name = &v
14362	return s
14363}
14364
14365// SetValues sets the Values field's value.
14366func (s *StackInstanceFilter) SetValues(v string) *StackInstanceFilter {
14367	s.Values = &v
14368	return s
14369}
14370
14371// The structure that contains summary information about a stack instance.
14372type StackInstanceSummary struct {
14373	_ struct{} `type:"structure"`
14374
14375	// [Self-managed permissions] The name of the AWS account that the stack instance
14376	// is associated with.
14377	Account *string `type:"string"`
14378
14379	// Status of the stack instance's actual configuration compared to the expected
14380	// template and parameter configuration of the stack set to which it belongs.
14381	//
14382	//    * DRIFTED: The stack differs from the expected template and parameter
14383	//    configuration of the stack set to which it belongs. A stack instance is
14384	//    considered to have drifted if one or more of the resources in the associated
14385	//    stack have drifted.
14386	//
14387	//    * NOT_CHECKED: AWS CloudFormation has not checked if the stack instance
14388	//    differs from its expected stack set configuration.
14389	//
14390	//    * IN_SYNC: The stack instance's actual configuration matches its expected
14391	//    stack set configuration.
14392	//
14393	//    * UNKNOWN: This value is reserved for future use.
14394	DriftStatus *string `type:"string" enum:"StackDriftStatus"`
14395
14396	// Most recent time when CloudFormation performed a drift detection operation
14397	// on the stack instance. This value will be NULL for any stack instance on
14398	// which drift detection has not yet been performed.
14399	LastDriftCheckTimestamp *time.Time `type:"timestamp"`
14400
14401	// [Service-managed permissions] The organization root ID or organizational
14402	// unit (OU) IDs that you specified for DeploymentTargets (https://docs.aws.amazon.com/AWSCloudFormation/latest/APIReference/API_DeploymentTargets.html).
14403	OrganizationalUnitId *string `type:"string"`
14404
14405	// The name of the AWS Region that the stack instance is associated with.
14406	Region *string `type:"string"`
14407
14408	// The ID of the stack instance.
14409	StackId *string `type:"string"`
14410
14411	// The detailed status of the stack instance.
14412	StackInstanceStatus *StackInstanceComprehensiveStatus `type:"structure"`
14413
14414	// The name or unique ID of the stack set that the stack instance is associated
14415	// with.
14416	StackSetId *string `type:"string"`
14417
14418	// The status of the stack instance, in terms of its synchronization with its
14419	// associated stack set.
14420	//
14421	//    * INOPERABLE: A DeleteStackInstances operation has failed and left the
14422	//    stack in an unstable state. Stacks in this state are excluded from further
14423	//    UpdateStackSet operations. You might need to perform a DeleteStackInstances
14424	//    operation, with RetainStacks set to true, to delete the stack instance,
14425	//    and then delete the stack manually.
14426	//
14427	//    * OUTDATED: The stack isn't currently up to date with the stack set because:
14428	//    The associated stack failed during a CreateStackSet or UpdateStackSet
14429	//    operation. The stack was part of a CreateStackSet or UpdateStackSet operation
14430	//    that failed or was stopped before the stack was created or updated.
14431	//
14432	//    * CURRENT: The stack is currently up to date with the stack set.
14433	Status *string `type:"string" enum:"StackInstanceStatus"`
14434
14435	// The explanation for the specific status code assigned to this stack instance.
14436	StatusReason *string `type:"string"`
14437}
14438
14439// String returns the string representation
14440func (s StackInstanceSummary) String() string {
14441	return awsutil.Prettify(s)
14442}
14443
14444// GoString returns the string representation
14445func (s StackInstanceSummary) GoString() string {
14446	return s.String()
14447}
14448
14449// SetAccount sets the Account field's value.
14450func (s *StackInstanceSummary) SetAccount(v string) *StackInstanceSummary {
14451	s.Account = &v
14452	return s
14453}
14454
14455// SetDriftStatus sets the DriftStatus field's value.
14456func (s *StackInstanceSummary) SetDriftStatus(v string) *StackInstanceSummary {
14457	s.DriftStatus = &v
14458	return s
14459}
14460
14461// SetLastDriftCheckTimestamp sets the LastDriftCheckTimestamp field's value.
14462func (s *StackInstanceSummary) SetLastDriftCheckTimestamp(v time.Time) *StackInstanceSummary {
14463	s.LastDriftCheckTimestamp = &v
14464	return s
14465}
14466
14467// SetOrganizationalUnitId sets the OrganizationalUnitId field's value.
14468func (s *StackInstanceSummary) SetOrganizationalUnitId(v string) *StackInstanceSummary {
14469	s.OrganizationalUnitId = &v
14470	return s
14471}
14472
14473// SetRegion sets the Region field's value.
14474func (s *StackInstanceSummary) SetRegion(v string) *StackInstanceSummary {
14475	s.Region = &v
14476	return s
14477}
14478
14479// SetStackId sets the StackId field's value.
14480func (s *StackInstanceSummary) SetStackId(v string) *StackInstanceSummary {
14481	s.StackId = &v
14482	return s
14483}
14484
14485// SetStackInstanceStatus sets the StackInstanceStatus field's value.
14486func (s *StackInstanceSummary) SetStackInstanceStatus(v *StackInstanceComprehensiveStatus) *StackInstanceSummary {
14487	s.StackInstanceStatus = v
14488	return s
14489}
14490
14491// SetStackSetId sets the StackSetId field's value.
14492func (s *StackInstanceSummary) SetStackSetId(v string) *StackInstanceSummary {
14493	s.StackSetId = &v
14494	return s
14495}
14496
14497// SetStatus sets the Status field's value.
14498func (s *StackInstanceSummary) SetStatus(v string) *StackInstanceSummary {
14499	s.Status = &v
14500	return s
14501}
14502
14503// SetStatusReason sets the StatusReason field's value.
14504func (s *StackInstanceSummary) SetStatusReason(v string) *StackInstanceSummary {
14505	s.StatusReason = &v
14506	return s
14507}
14508
14509// The StackResource data type.
14510type StackResource struct {
14511	_ struct{} `type:"structure"`
14512
14513	// User defined description associated with the resource.
14514	Description *string `min:"1" type:"string"`
14515
14516	// Information about whether the resource's actual configuration differs, or
14517	// has drifted, from its expected configuration, as defined in the stack template
14518	// and any values specified as template parameters. For more information, see
14519	// Detecting Unregulated Configuration Changes to Stacks and Resources (http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-stack-drift.html).
14520	DriftInformation *StackResourceDriftInformation `type:"structure"`
14521
14522	// The logical name of the resource specified in the template.
14523	//
14524	// LogicalResourceId is a required field
14525	LogicalResourceId *string `type:"string" required:"true"`
14526
14527	// Contains information about the module from which the resource was created,
14528	// if the resource was created from a module included in the stack template.
14529	ModuleInfo *ModuleInfo `type:"structure"`
14530
14531	// The name or unique identifier that corresponds to a physical instance ID
14532	// of a resource supported by AWS CloudFormation.
14533	PhysicalResourceId *string `type:"string"`
14534
14535	// Current status of the resource.
14536	//
14537	// ResourceStatus is a required field
14538	ResourceStatus *string `type:"string" required:"true" enum:"ResourceStatus"`
14539
14540	// Success/failure message associated with the resource.
14541	ResourceStatusReason *string `type:"string"`
14542
14543	// Type of resource. (For more information, go to AWS Resource Types Reference
14544	// (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-template-resource-type-ref.html)
14545	// in the AWS CloudFormation User Guide.)
14546	//
14547	// ResourceType is a required field
14548	ResourceType *string `min:"1" type:"string" required:"true"`
14549
14550	// Unique identifier of the stack.
14551	StackId *string `type:"string"`
14552
14553	// The name associated with the stack.
14554	StackName *string `type:"string"`
14555
14556	// Time the status was updated.
14557	//
14558	// Timestamp is a required field
14559	Timestamp *time.Time `type:"timestamp" required:"true"`
14560}
14561
14562// String returns the string representation
14563func (s StackResource) String() string {
14564	return awsutil.Prettify(s)
14565}
14566
14567// GoString returns the string representation
14568func (s StackResource) GoString() string {
14569	return s.String()
14570}
14571
14572// SetDescription sets the Description field's value.
14573func (s *StackResource) SetDescription(v string) *StackResource {
14574	s.Description = &v
14575	return s
14576}
14577
14578// SetDriftInformation sets the DriftInformation field's value.
14579func (s *StackResource) SetDriftInformation(v *StackResourceDriftInformation) *StackResource {
14580	s.DriftInformation = v
14581	return s
14582}
14583
14584// SetLogicalResourceId sets the LogicalResourceId field's value.
14585func (s *StackResource) SetLogicalResourceId(v string) *StackResource {
14586	s.LogicalResourceId = &v
14587	return s
14588}
14589
14590// SetModuleInfo sets the ModuleInfo field's value.
14591func (s *StackResource) SetModuleInfo(v *ModuleInfo) *StackResource {
14592	s.ModuleInfo = v
14593	return s
14594}
14595
14596// SetPhysicalResourceId sets the PhysicalResourceId field's value.
14597func (s *StackResource) SetPhysicalResourceId(v string) *StackResource {
14598	s.PhysicalResourceId = &v
14599	return s
14600}
14601
14602// SetResourceStatus sets the ResourceStatus field's value.
14603func (s *StackResource) SetResourceStatus(v string) *StackResource {
14604	s.ResourceStatus = &v
14605	return s
14606}
14607
14608// SetResourceStatusReason sets the ResourceStatusReason field's value.
14609func (s *StackResource) SetResourceStatusReason(v string) *StackResource {
14610	s.ResourceStatusReason = &v
14611	return s
14612}
14613
14614// SetResourceType sets the ResourceType field's value.
14615func (s *StackResource) SetResourceType(v string) *StackResource {
14616	s.ResourceType = &v
14617	return s
14618}
14619
14620// SetStackId sets the StackId field's value.
14621func (s *StackResource) SetStackId(v string) *StackResource {
14622	s.StackId = &v
14623	return s
14624}
14625
14626// SetStackName sets the StackName field's value.
14627func (s *StackResource) SetStackName(v string) *StackResource {
14628	s.StackName = &v
14629	return s
14630}
14631
14632// SetTimestamp sets the Timestamp field's value.
14633func (s *StackResource) SetTimestamp(v time.Time) *StackResource {
14634	s.Timestamp = &v
14635	return s
14636}
14637
14638// Contains detailed information about the specified stack resource.
14639type StackResourceDetail struct {
14640	_ struct{} `type:"structure"`
14641
14642	// User defined description associated with the resource.
14643	Description *string `min:"1" type:"string"`
14644
14645	// Information about whether the resource's actual configuration differs, or
14646	// has drifted, from its expected configuration, as defined in the stack template
14647	// and any values specified as template parameters. For more information, see
14648	// Detecting Unregulated Configuration Changes to Stacks and Resources (http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-stack-drift.html).
14649	DriftInformation *StackResourceDriftInformation `type:"structure"`
14650
14651	// Time the status was updated.
14652	//
14653	// LastUpdatedTimestamp is a required field
14654	LastUpdatedTimestamp *time.Time `type:"timestamp" required:"true"`
14655
14656	// The logical name of the resource specified in the template.
14657	//
14658	// LogicalResourceId is a required field
14659	LogicalResourceId *string `type:"string" required:"true"`
14660
14661	// The content of the Metadata attribute declared for the resource. For more
14662	// information, see Metadata Attribute (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-metadata.html)
14663	// in the AWS CloudFormation User Guide.
14664	Metadata *string `type:"string"`
14665
14666	// Contains information about the module from which the resource was created,
14667	// if the resource was created from a module included in the stack template.
14668	ModuleInfo *ModuleInfo `type:"structure"`
14669
14670	// The name or unique identifier that corresponds to a physical instance ID
14671	// of a resource supported by AWS CloudFormation.
14672	PhysicalResourceId *string `type:"string"`
14673
14674	// Current status of the resource.
14675	//
14676	// ResourceStatus is a required field
14677	ResourceStatus *string `type:"string" required:"true" enum:"ResourceStatus"`
14678
14679	// Success/failure message associated with the resource.
14680	ResourceStatusReason *string `type:"string"`
14681
14682	// Type of resource. ((For more information, go to AWS Resource Types Reference
14683	// (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-template-resource-type-ref.html)
14684	// in the AWS CloudFormation User Guide.)
14685	//
14686	// ResourceType is a required field
14687	ResourceType *string `min:"1" type:"string" required:"true"`
14688
14689	// Unique identifier of the stack.
14690	StackId *string `type:"string"`
14691
14692	// The name associated with the stack.
14693	StackName *string `type:"string"`
14694}
14695
14696// String returns the string representation
14697func (s StackResourceDetail) String() string {
14698	return awsutil.Prettify(s)
14699}
14700
14701// GoString returns the string representation
14702func (s StackResourceDetail) GoString() string {
14703	return s.String()
14704}
14705
14706// SetDescription sets the Description field's value.
14707func (s *StackResourceDetail) SetDescription(v string) *StackResourceDetail {
14708	s.Description = &v
14709	return s
14710}
14711
14712// SetDriftInformation sets the DriftInformation field's value.
14713func (s *StackResourceDetail) SetDriftInformation(v *StackResourceDriftInformation) *StackResourceDetail {
14714	s.DriftInformation = v
14715	return s
14716}
14717
14718// SetLastUpdatedTimestamp sets the LastUpdatedTimestamp field's value.
14719func (s *StackResourceDetail) SetLastUpdatedTimestamp(v time.Time) *StackResourceDetail {
14720	s.LastUpdatedTimestamp = &v
14721	return s
14722}
14723
14724// SetLogicalResourceId sets the LogicalResourceId field's value.
14725func (s *StackResourceDetail) SetLogicalResourceId(v string) *StackResourceDetail {
14726	s.LogicalResourceId = &v
14727	return s
14728}
14729
14730// SetMetadata sets the Metadata field's value.
14731func (s *StackResourceDetail) SetMetadata(v string) *StackResourceDetail {
14732	s.Metadata = &v
14733	return s
14734}
14735
14736// SetModuleInfo sets the ModuleInfo field's value.
14737func (s *StackResourceDetail) SetModuleInfo(v *ModuleInfo) *StackResourceDetail {
14738	s.ModuleInfo = v
14739	return s
14740}
14741
14742// SetPhysicalResourceId sets the PhysicalResourceId field's value.
14743func (s *StackResourceDetail) SetPhysicalResourceId(v string) *StackResourceDetail {
14744	s.PhysicalResourceId = &v
14745	return s
14746}
14747
14748// SetResourceStatus sets the ResourceStatus field's value.
14749func (s *StackResourceDetail) SetResourceStatus(v string) *StackResourceDetail {
14750	s.ResourceStatus = &v
14751	return s
14752}
14753
14754// SetResourceStatusReason sets the ResourceStatusReason field's value.
14755func (s *StackResourceDetail) SetResourceStatusReason(v string) *StackResourceDetail {
14756	s.ResourceStatusReason = &v
14757	return s
14758}
14759
14760// SetResourceType sets the ResourceType field's value.
14761func (s *StackResourceDetail) SetResourceType(v string) *StackResourceDetail {
14762	s.ResourceType = &v
14763	return s
14764}
14765
14766// SetStackId sets the StackId field's value.
14767func (s *StackResourceDetail) SetStackId(v string) *StackResourceDetail {
14768	s.StackId = &v
14769	return s
14770}
14771
14772// SetStackName sets the StackName field's value.
14773func (s *StackResourceDetail) SetStackName(v string) *StackResourceDetail {
14774	s.StackName = &v
14775	return s
14776}
14777
14778// Contains the drift information for a resource that has been checked for drift.
14779// This includes actual and expected property values for resources in which
14780// AWS CloudFormation has detected drift. Only resource properties explicitly
14781// defined in the stack template are checked for drift. For more information,
14782// see Detecting Unregulated Configuration Changes to Stacks and Resources (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-stack-drift.html).
14783//
14784// Resources that do not currently support drift detection cannot be checked.
14785// For a list of resources that support drift detection, see Resources that
14786// Support Drift Detection (http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-stack-drift-resource-list.html).
14787//
14788// Use DetectStackResourceDrift to detect drift on individual resources, or
14789// DetectStackDrift to detect drift on all resources in a given stack that support
14790// drift detection.
14791type StackResourceDrift struct {
14792	_ struct{} `type:"structure"`
14793
14794	// A JSON structure containing the actual property values of the stack resource.
14795	//
14796	// For resources whose StackResourceDriftStatus is DELETED, this structure will
14797	// not be present.
14798	ActualProperties *string `type:"string"`
14799
14800	// A JSON structure containing the expected property values of the stack resource,
14801	// as defined in the stack template and any values specified as template parameters.
14802	//
14803	// For resources whose StackResourceDriftStatus is DELETED, this structure will
14804	// not be present.
14805	ExpectedProperties *string `type:"string"`
14806
14807	// The logical name of the resource specified in the template.
14808	//
14809	// LogicalResourceId is a required field
14810	LogicalResourceId *string `type:"string" required:"true"`
14811
14812	// Contains information about the module from which the resource was created,
14813	// if the resource was created from a module included in the stack template.
14814	ModuleInfo *ModuleInfo `type:"structure"`
14815
14816	// The name or unique identifier that corresponds to a physical instance ID
14817	// of a resource supported by AWS CloudFormation.
14818	PhysicalResourceId *string `type:"string"`
14819
14820	// Context information that enables AWS CloudFormation to uniquely identify
14821	// a resource. AWS CloudFormation uses context key-value pairs in cases where
14822	// a resource's logical and physical IDs are not enough to uniquely identify
14823	// that resource. Each context key-value pair specifies a unique resource that
14824	// contains the targeted resource.
14825	PhysicalResourceIdContext []*PhysicalResourceIdContextKeyValuePair `type:"list"`
14826
14827	// A collection of the resource properties whose actual values differ from their
14828	// expected values. These will be present only for resources whose StackResourceDriftStatus
14829	// is MODIFIED.
14830	PropertyDifferences []*PropertyDifference `type:"list"`
14831
14832	// The type of the resource.
14833	//
14834	// ResourceType is a required field
14835	ResourceType *string `min:"1" type:"string" required:"true"`
14836
14837	// The ID of the stack.
14838	//
14839	// StackId is a required field
14840	StackId *string `type:"string" required:"true"`
14841
14842	// Status of the resource's actual configuration compared to its expected configuration
14843	//
14844	//    * DELETED: The resource differs from its expected template configuration
14845	//    because the resource has been deleted.
14846	//
14847	//    * MODIFIED: One or more resource properties differ from their expected
14848	//    values (as defined in the stack template and any values specified as template
14849	//    parameters).
14850	//
14851	//    * IN_SYNC: The resources's actual configuration matches its expected template
14852	//    configuration.
14853	//
14854	//    * NOT_CHECKED: AWS CloudFormation does not currently return this value.
14855	//
14856	// StackResourceDriftStatus is a required field
14857	StackResourceDriftStatus *string `type:"string" required:"true" enum:"StackResourceDriftStatus"`
14858
14859	// Time at which AWS CloudFormation performed drift detection on the stack resource.
14860	//
14861	// Timestamp is a required field
14862	Timestamp *time.Time `type:"timestamp" required:"true"`
14863}
14864
14865// String returns the string representation
14866func (s StackResourceDrift) String() string {
14867	return awsutil.Prettify(s)
14868}
14869
14870// GoString returns the string representation
14871func (s StackResourceDrift) GoString() string {
14872	return s.String()
14873}
14874
14875// SetActualProperties sets the ActualProperties field's value.
14876func (s *StackResourceDrift) SetActualProperties(v string) *StackResourceDrift {
14877	s.ActualProperties = &v
14878	return s
14879}
14880
14881// SetExpectedProperties sets the ExpectedProperties field's value.
14882func (s *StackResourceDrift) SetExpectedProperties(v string) *StackResourceDrift {
14883	s.ExpectedProperties = &v
14884	return s
14885}
14886
14887// SetLogicalResourceId sets the LogicalResourceId field's value.
14888func (s *StackResourceDrift) SetLogicalResourceId(v string) *StackResourceDrift {
14889	s.LogicalResourceId = &v
14890	return s
14891}
14892
14893// SetModuleInfo sets the ModuleInfo field's value.
14894func (s *StackResourceDrift) SetModuleInfo(v *ModuleInfo) *StackResourceDrift {
14895	s.ModuleInfo = v
14896	return s
14897}
14898
14899// SetPhysicalResourceId sets the PhysicalResourceId field's value.
14900func (s *StackResourceDrift) SetPhysicalResourceId(v string) *StackResourceDrift {
14901	s.PhysicalResourceId = &v
14902	return s
14903}
14904
14905// SetPhysicalResourceIdContext sets the PhysicalResourceIdContext field's value.
14906func (s *StackResourceDrift) SetPhysicalResourceIdContext(v []*PhysicalResourceIdContextKeyValuePair) *StackResourceDrift {
14907	s.PhysicalResourceIdContext = v
14908	return s
14909}
14910
14911// SetPropertyDifferences sets the PropertyDifferences field's value.
14912func (s *StackResourceDrift) SetPropertyDifferences(v []*PropertyDifference) *StackResourceDrift {
14913	s.PropertyDifferences = v
14914	return s
14915}
14916
14917// SetResourceType sets the ResourceType field's value.
14918func (s *StackResourceDrift) SetResourceType(v string) *StackResourceDrift {
14919	s.ResourceType = &v
14920	return s
14921}
14922
14923// SetStackId sets the StackId field's value.
14924func (s *StackResourceDrift) SetStackId(v string) *StackResourceDrift {
14925	s.StackId = &v
14926	return s
14927}
14928
14929// SetStackResourceDriftStatus sets the StackResourceDriftStatus field's value.
14930func (s *StackResourceDrift) SetStackResourceDriftStatus(v string) *StackResourceDrift {
14931	s.StackResourceDriftStatus = &v
14932	return s
14933}
14934
14935// SetTimestamp sets the Timestamp field's value.
14936func (s *StackResourceDrift) SetTimestamp(v time.Time) *StackResourceDrift {
14937	s.Timestamp = &v
14938	return s
14939}
14940
14941// Contains information about whether the resource's actual configuration differs,
14942// or has drifted, from its expected configuration.
14943type StackResourceDriftInformation struct {
14944	_ struct{} `type:"structure"`
14945
14946	// When AWS CloudFormation last checked if the resource had drifted from its
14947	// expected configuration.
14948	LastCheckTimestamp *time.Time `type:"timestamp"`
14949
14950	// Status of the resource's actual configuration compared to its expected configuration
14951	//
14952	//    * DELETED: The resource differs from its expected configuration in that
14953	//    it has been deleted.
14954	//
14955	//    * MODIFIED: The resource differs from its expected configuration.
14956	//
14957	//    * NOT_CHECKED: AWS CloudFormation has not checked if the resource differs
14958	//    from its expected configuration. Any resources that do not currently support
14959	//    drift detection have a status of NOT_CHECKED. For more information, see
14960	//    Resources that Support Drift Detection (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-stack-drift-resource-list.html).
14961	//
14962	//    * IN_SYNC: The resources's actual configuration matches its expected configuration.
14963	//
14964	// StackResourceDriftStatus is a required field
14965	StackResourceDriftStatus *string `type:"string" required:"true" enum:"StackResourceDriftStatus"`
14966}
14967
14968// String returns the string representation
14969func (s StackResourceDriftInformation) String() string {
14970	return awsutil.Prettify(s)
14971}
14972
14973// GoString returns the string representation
14974func (s StackResourceDriftInformation) GoString() string {
14975	return s.String()
14976}
14977
14978// SetLastCheckTimestamp sets the LastCheckTimestamp field's value.
14979func (s *StackResourceDriftInformation) SetLastCheckTimestamp(v time.Time) *StackResourceDriftInformation {
14980	s.LastCheckTimestamp = &v
14981	return s
14982}
14983
14984// SetStackResourceDriftStatus sets the StackResourceDriftStatus field's value.
14985func (s *StackResourceDriftInformation) SetStackResourceDriftStatus(v string) *StackResourceDriftInformation {
14986	s.StackResourceDriftStatus = &v
14987	return s
14988}
14989
14990// Summarizes information about whether the resource's actual configuration
14991// differs, or has drifted, from its expected configuration.
14992type StackResourceDriftInformationSummary struct {
14993	_ struct{} `type:"structure"`
14994
14995	// When AWS CloudFormation last checked if the resource had drifted from its
14996	// expected configuration.
14997	LastCheckTimestamp *time.Time `type:"timestamp"`
14998
14999	// Status of the resource's actual configuration compared to its expected configuration
15000	//
15001	//    * DELETED: The resource differs from its expected configuration in that
15002	//    it has been deleted.
15003	//
15004	//    * MODIFIED: The resource differs from its expected configuration.
15005	//
15006	//    * NOT_CHECKED: AWS CloudFormation has not checked if the resource differs
15007	//    from its expected configuration. Any resources that do not currently support
15008	//    drift detection have a status of NOT_CHECKED. For more information, see
15009	//    Resources that Support Drift Detection (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-stack-drift-resource-list.html).
15010	//    If you performed an ContinueUpdateRollback operation on a stack, any resources
15011	//    included in ResourcesToSkip will also have a status of NOT_CHECKED. For
15012	//    more information on skipping resources during rollback operations, see
15013	//    Continue Rolling Back an Update (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-continueupdaterollback.html)
15014	//    in the AWS CloudFormation User Guide.
15015	//
15016	//    * IN_SYNC: The resources's actual configuration matches its expected configuration.
15017	//
15018	// StackResourceDriftStatus is a required field
15019	StackResourceDriftStatus *string `type:"string" required:"true" enum:"StackResourceDriftStatus"`
15020}
15021
15022// String returns the string representation
15023func (s StackResourceDriftInformationSummary) String() string {
15024	return awsutil.Prettify(s)
15025}
15026
15027// GoString returns the string representation
15028func (s StackResourceDriftInformationSummary) GoString() string {
15029	return s.String()
15030}
15031
15032// SetLastCheckTimestamp sets the LastCheckTimestamp field's value.
15033func (s *StackResourceDriftInformationSummary) SetLastCheckTimestamp(v time.Time) *StackResourceDriftInformationSummary {
15034	s.LastCheckTimestamp = &v
15035	return s
15036}
15037
15038// SetStackResourceDriftStatus sets the StackResourceDriftStatus field's value.
15039func (s *StackResourceDriftInformationSummary) SetStackResourceDriftStatus(v string) *StackResourceDriftInformationSummary {
15040	s.StackResourceDriftStatus = &v
15041	return s
15042}
15043
15044// Contains high-level information about the specified stack resource.
15045type StackResourceSummary struct {
15046	_ struct{} `type:"structure"`
15047
15048	// Information about whether the resource's actual configuration differs, or
15049	// has drifted, from its expected configuration, as defined in the stack template
15050	// and any values specified as template parameters. For more information, see
15051	// Detecting Unregulated Configuration Changes to Stacks and Resources (http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-stack-drift.html).
15052	DriftInformation *StackResourceDriftInformationSummary `type:"structure"`
15053
15054	// Time the status was updated.
15055	//
15056	// LastUpdatedTimestamp is a required field
15057	LastUpdatedTimestamp *time.Time `type:"timestamp" required:"true"`
15058
15059	// The logical name of the resource specified in the template.
15060	//
15061	// LogicalResourceId is a required field
15062	LogicalResourceId *string `type:"string" required:"true"`
15063
15064	// Contains information about the module from which the resource was created,
15065	// if the resource was created from a module included in the stack template.
15066	ModuleInfo *ModuleInfo `type:"structure"`
15067
15068	// The name or unique identifier that corresponds to a physical instance ID
15069	// of the resource.
15070	PhysicalResourceId *string `type:"string"`
15071
15072	// Current status of the resource.
15073	//
15074	// ResourceStatus is a required field
15075	ResourceStatus *string `type:"string" required:"true" enum:"ResourceStatus"`
15076
15077	// Success/failure message associated with the resource.
15078	ResourceStatusReason *string `type:"string"`
15079
15080	// Type of resource. (For more information, go to AWS Resource Types Reference
15081	// (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-template-resource-type-ref.html)
15082	// in the AWS CloudFormation User Guide.)
15083	//
15084	// ResourceType is a required field
15085	ResourceType *string `min:"1" type:"string" required:"true"`
15086}
15087
15088// String returns the string representation
15089func (s StackResourceSummary) String() string {
15090	return awsutil.Prettify(s)
15091}
15092
15093// GoString returns the string representation
15094func (s StackResourceSummary) GoString() string {
15095	return s.String()
15096}
15097
15098// SetDriftInformation sets the DriftInformation field's value.
15099func (s *StackResourceSummary) SetDriftInformation(v *StackResourceDriftInformationSummary) *StackResourceSummary {
15100	s.DriftInformation = v
15101	return s
15102}
15103
15104// SetLastUpdatedTimestamp sets the LastUpdatedTimestamp field's value.
15105func (s *StackResourceSummary) SetLastUpdatedTimestamp(v time.Time) *StackResourceSummary {
15106	s.LastUpdatedTimestamp = &v
15107	return s
15108}
15109
15110// SetLogicalResourceId sets the LogicalResourceId field's value.
15111func (s *StackResourceSummary) SetLogicalResourceId(v string) *StackResourceSummary {
15112	s.LogicalResourceId = &v
15113	return s
15114}
15115
15116// SetModuleInfo sets the ModuleInfo field's value.
15117func (s *StackResourceSummary) SetModuleInfo(v *ModuleInfo) *StackResourceSummary {
15118	s.ModuleInfo = v
15119	return s
15120}
15121
15122// SetPhysicalResourceId sets the PhysicalResourceId field's value.
15123func (s *StackResourceSummary) SetPhysicalResourceId(v string) *StackResourceSummary {
15124	s.PhysicalResourceId = &v
15125	return s
15126}
15127
15128// SetResourceStatus sets the ResourceStatus field's value.
15129func (s *StackResourceSummary) SetResourceStatus(v string) *StackResourceSummary {
15130	s.ResourceStatus = &v
15131	return s
15132}
15133
15134// SetResourceStatusReason sets the ResourceStatusReason field's value.
15135func (s *StackResourceSummary) SetResourceStatusReason(v string) *StackResourceSummary {
15136	s.ResourceStatusReason = &v
15137	return s
15138}
15139
15140// SetResourceType sets the ResourceType field's value.
15141func (s *StackResourceSummary) SetResourceType(v string) *StackResourceSummary {
15142	s.ResourceType = &v
15143	return s
15144}
15145
15146// A structure that contains information about a stack set. A stack set enables
15147// you to provision stacks into AWS accounts and across Regions by using a single
15148// CloudFormation template. In the stack set, you specify the template to use,
15149// as well as any parameters and capabilities that the template requires.
15150type StackSet struct {
15151	_ struct{} `type:"structure"`
15152
15153	// The Amazon Resource Number (ARN) of the IAM role used to create or update
15154	// the stack set.
15155	//
15156	// Use customized administrator roles to control which users or groups can manage
15157	// specific stack sets within the same administrator account. For more information,
15158	// see Prerequisites: Granting Permissions for Stack Set Operations (http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/stacksets-prereqs.html)
15159	// in the AWS CloudFormation User Guide.
15160	AdministrationRoleARN *string `min:"20" type:"string"`
15161
15162	// [Service-managed permissions] Describes whether StackSets automatically deploys
15163	// to AWS Organizations accounts that are added to a target organization or
15164	// organizational unit (OU).
15165	AutoDeployment *AutoDeployment `type:"structure"`
15166
15167	// The capabilities that are allowed in the stack set. Some stack set templates
15168	// might include resources that can affect permissions in your AWS account—for
15169	// example, by creating new AWS Identity and Access Management (IAM) users.
15170	// For more information, see Acknowledging IAM Resources in AWS CloudFormation
15171	// Templates. (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-iam-template.html#capabilities)
15172	Capabilities []*string `type:"list"`
15173
15174	// A description of the stack set that you specify when the stack set is created
15175	// or updated.
15176	Description *string `min:"1" type:"string"`
15177
15178	// The name of the IAM execution role used to create or update the stack set.
15179	//
15180	// Use customized execution roles to control which stack resources users and
15181	// groups can include in their stack sets.
15182	ExecutionRoleName *string `min:"1" type:"string"`
15183
15184	// [Service-managed permissions] The organization root ID or organizational
15185	// unit (OU) IDs that you specified for DeploymentTargets (https://docs.aws.amazon.com/AWSCloudFormation/latest/APIReference/API_DeploymentTargets.html).
15186	OrganizationalUnitIds []*string `type:"list"`
15187
15188	// A list of input parameters for a stack set.
15189	Parameters []*Parameter `type:"list"`
15190
15191	// Describes how the IAM roles required for stack set operations are created.
15192	//
15193	//    * With self-managed permissions, you must create the administrator and
15194	//    execution roles required to deploy to target accounts. For more information,
15195	//    see Grant Self-Managed Stack Set Permissions (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/stacksets-prereqs-self-managed.html).
15196	//
15197	//    * With service-managed permissions, StackSets automatically creates the
15198	//    IAM roles required to deploy to accounts managed by AWS Organizations.
15199	//    For more information, see Grant Service-Managed Stack Set Permissions
15200	//    (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/stacksets-prereqs-service-managed.html).
15201	PermissionModel *string `type:"string" enum:"PermissionModels"`
15202
15203	// The Amazon Resource Number (ARN) of the stack set.
15204	StackSetARN *string `type:"string"`
15205
15206	// Detailed information about the drift status of the stack set.
15207	//
15208	// For stack sets, contains information about the last completed drift operation
15209	// performed on the stack set. Information about drift operations currently
15210	// in progress is not included.
15211	StackSetDriftDetectionDetails *StackSetDriftDetectionDetails `type:"structure"`
15212
15213	// The ID of the stack set.
15214	StackSetId *string `type:"string"`
15215
15216	// The name that's associated with the stack set.
15217	StackSetName *string `type:"string"`
15218
15219	// The status of the stack set.
15220	Status *string `type:"string" enum:"StackSetStatus"`
15221
15222	// A list of tags that specify information about the stack set. A maximum number
15223	// of 50 tags can be specified.
15224	Tags []*Tag `type:"list"`
15225
15226	// The structure that contains the body of the template that was used to create
15227	// or update the stack set.
15228	TemplateBody *string `min:"1" type:"string"`
15229}
15230
15231// String returns the string representation
15232func (s StackSet) String() string {
15233	return awsutil.Prettify(s)
15234}
15235
15236// GoString returns the string representation
15237func (s StackSet) GoString() string {
15238	return s.String()
15239}
15240
15241// SetAdministrationRoleARN sets the AdministrationRoleARN field's value.
15242func (s *StackSet) SetAdministrationRoleARN(v string) *StackSet {
15243	s.AdministrationRoleARN = &v
15244	return s
15245}
15246
15247// SetAutoDeployment sets the AutoDeployment field's value.
15248func (s *StackSet) SetAutoDeployment(v *AutoDeployment) *StackSet {
15249	s.AutoDeployment = v
15250	return s
15251}
15252
15253// SetCapabilities sets the Capabilities field's value.
15254func (s *StackSet) SetCapabilities(v []*string) *StackSet {
15255	s.Capabilities = v
15256	return s
15257}
15258
15259// SetDescription sets the Description field's value.
15260func (s *StackSet) SetDescription(v string) *StackSet {
15261	s.Description = &v
15262	return s
15263}
15264
15265// SetExecutionRoleName sets the ExecutionRoleName field's value.
15266func (s *StackSet) SetExecutionRoleName(v string) *StackSet {
15267	s.ExecutionRoleName = &v
15268	return s
15269}
15270
15271// SetOrganizationalUnitIds sets the OrganizationalUnitIds field's value.
15272func (s *StackSet) SetOrganizationalUnitIds(v []*string) *StackSet {
15273	s.OrganizationalUnitIds = v
15274	return s
15275}
15276
15277// SetParameters sets the Parameters field's value.
15278func (s *StackSet) SetParameters(v []*Parameter) *StackSet {
15279	s.Parameters = v
15280	return s
15281}
15282
15283// SetPermissionModel sets the PermissionModel field's value.
15284func (s *StackSet) SetPermissionModel(v string) *StackSet {
15285	s.PermissionModel = &v
15286	return s
15287}
15288
15289// SetStackSetARN sets the StackSetARN field's value.
15290func (s *StackSet) SetStackSetARN(v string) *StackSet {
15291	s.StackSetARN = &v
15292	return s
15293}
15294
15295// SetStackSetDriftDetectionDetails sets the StackSetDriftDetectionDetails field's value.
15296func (s *StackSet) SetStackSetDriftDetectionDetails(v *StackSetDriftDetectionDetails) *StackSet {
15297	s.StackSetDriftDetectionDetails = v
15298	return s
15299}
15300
15301// SetStackSetId sets the StackSetId field's value.
15302func (s *StackSet) SetStackSetId(v string) *StackSet {
15303	s.StackSetId = &v
15304	return s
15305}
15306
15307// SetStackSetName sets the StackSetName field's value.
15308func (s *StackSet) SetStackSetName(v string) *StackSet {
15309	s.StackSetName = &v
15310	return s
15311}
15312
15313// SetStatus sets the Status field's value.
15314func (s *StackSet) SetStatus(v string) *StackSet {
15315	s.Status = &v
15316	return s
15317}
15318
15319// SetTags sets the Tags field's value.
15320func (s *StackSet) SetTags(v []*Tag) *StackSet {
15321	s.Tags = v
15322	return s
15323}
15324
15325// SetTemplateBody sets the TemplateBody field's value.
15326func (s *StackSet) SetTemplateBody(v string) *StackSet {
15327	s.TemplateBody = &v
15328	return s
15329}
15330
15331// Detailed information about the drift status of the stack set.
15332//
15333// For stack sets, contains information about the last completed drift operation
15334// performed on the stack set. Information about drift operations in-progress
15335// is not included.
15336//
15337// For stack set operations, includes information about drift operations currently
15338// being performed on the stack set.
15339//
15340// For more information, see Detecting Unmanaged Changes in Stack Sets (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/stacksets-drift.html)
15341// in the AWS CloudFormation User Guide.
15342type StackSetDriftDetectionDetails struct {
15343	_ struct{} `type:"structure"`
15344
15345	// The status of the stack set drift detection operation.
15346	//
15347	//    * COMPLETED: The drift detection operation completed without failing on
15348	//    any stack instances.
15349	//
15350	//    * FAILED: The drift detection operation exceeded the specified failure
15351	//    tolerance.
15352	//
15353	//    * PARTIAL_SUCCESS: The drift detection operation completed without exceeding
15354	//    the failure tolerance for the operation.
15355	//
15356	//    * IN_PROGRESS: The drift detection operation is currently being performed.
15357	//
15358	//    * STOPPED: The user has cancelled the drift detection operation.
15359	DriftDetectionStatus *string `type:"string" enum:"StackSetDriftDetectionStatus"`
15360
15361	// Status of the stack set's actual configuration compared to its expected template
15362	// and parameter configuration. A stack set is considered to have drifted if
15363	// one or more of its stack instances have drifted from their expected template
15364	// and parameter configuration.
15365	//
15366	//    * DRIFTED: One or more of the stack instances belonging to the stack set
15367	//    stack differs from the expected template and parameter configuration.
15368	//    A stack instance is considered to have drifted if one or more of the resources
15369	//    in the associated stack have drifted.
15370	//
15371	//    * NOT_CHECKED: AWS CloudFormation has not checked the stack set for drift.
15372	//
15373	//    * IN_SYNC: All of the stack instances belonging to the stack set stack
15374	//    match from the expected template and parameter configuration.
15375	DriftStatus *string `type:"string" enum:"StackSetDriftStatus"`
15376
15377	// The number of stack instances that have drifted from the expected template
15378	// and parameter configuration of the stack set. A stack instance is considered
15379	// to have drifted if one or more of the resources in the associated stack do
15380	// not match their expected configuration.
15381	DriftedStackInstancesCount *int64 `type:"integer"`
15382
15383	// The number of stack instances for which the drift detection operation failed.
15384	FailedStackInstancesCount *int64 `type:"integer"`
15385
15386	// The number of stack instances that are currently being checked for drift.
15387	InProgressStackInstancesCount *int64 `type:"integer"`
15388
15389	// The number of stack instances which match the expected template and parameter
15390	// configuration of the stack set.
15391	InSyncStackInstancesCount *int64 `type:"integer"`
15392
15393	// Most recent time when CloudFormation performed a drift detection operation
15394	// on the stack set. This value will be NULL for any stack set on which drift
15395	// detection has not yet been performed.
15396	LastDriftCheckTimestamp *time.Time `type:"timestamp"`
15397
15398	// The total number of stack instances belonging to this stack set.
15399	//
15400	// The total number of stack instances is equal to the total of:
15401	//
15402	//    * Stack instances that match the stack set configuration.
15403	//
15404	//    * Stack instances that have drifted from the stack set configuration.
15405	//
15406	//    * Stack instances where the drift detection operation has failed.
15407	//
15408	//    * Stack instances currently being checked for drift.
15409	TotalStackInstancesCount *int64 `type:"integer"`
15410}
15411
15412// String returns the string representation
15413func (s StackSetDriftDetectionDetails) String() string {
15414	return awsutil.Prettify(s)
15415}
15416
15417// GoString returns the string representation
15418func (s StackSetDriftDetectionDetails) GoString() string {
15419	return s.String()
15420}
15421
15422// SetDriftDetectionStatus sets the DriftDetectionStatus field's value.
15423func (s *StackSetDriftDetectionDetails) SetDriftDetectionStatus(v string) *StackSetDriftDetectionDetails {
15424	s.DriftDetectionStatus = &v
15425	return s
15426}
15427
15428// SetDriftStatus sets the DriftStatus field's value.
15429func (s *StackSetDriftDetectionDetails) SetDriftStatus(v string) *StackSetDriftDetectionDetails {
15430	s.DriftStatus = &v
15431	return s
15432}
15433
15434// SetDriftedStackInstancesCount sets the DriftedStackInstancesCount field's value.
15435func (s *StackSetDriftDetectionDetails) SetDriftedStackInstancesCount(v int64) *StackSetDriftDetectionDetails {
15436	s.DriftedStackInstancesCount = &v
15437	return s
15438}
15439
15440// SetFailedStackInstancesCount sets the FailedStackInstancesCount field's value.
15441func (s *StackSetDriftDetectionDetails) SetFailedStackInstancesCount(v int64) *StackSetDriftDetectionDetails {
15442	s.FailedStackInstancesCount = &v
15443	return s
15444}
15445
15446// SetInProgressStackInstancesCount sets the InProgressStackInstancesCount field's value.
15447func (s *StackSetDriftDetectionDetails) SetInProgressStackInstancesCount(v int64) *StackSetDriftDetectionDetails {
15448	s.InProgressStackInstancesCount = &v
15449	return s
15450}
15451
15452// SetInSyncStackInstancesCount sets the InSyncStackInstancesCount field's value.
15453func (s *StackSetDriftDetectionDetails) SetInSyncStackInstancesCount(v int64) *StackSetDriftDetectionDetails {
15454	s.InSyncStackInstancesCount = &v
15455	return s
15456}
15457
15458// SetLastDriftCheckTimestamp sets the LastDriftCheckTimestamp field's value.
15459func (s *StackSetDriftDetectionDetails) SetLastDriftCheckTimestamp(v time.Time) *StackSetDriftDetectionDetails {
15460	s.LastDriftCheckTimestamp = &v
15461	return s
15462}
15463
15464// SetTotalStackInstancesCount sets the TotalStackInstancesCount field's value.
15465func (s *StackSetDriftDetectionDetails) SetTotalStackInstancesCount(v int64) *StackSetDriftDetectionDetails {
15466	s.TotalStackInstancesCount = &v
15467	return s
15468}
15469
15470// The structure that contains information about a stack set operation.
15471type StackSetOperation struct {
15472	_ struct{} `type:"structure"`
15473
15474	// The type of stack set operation: CREATE, UPDATE, or DELETE. Create and delete
15475	// operations affect only the specified stack set instances that are associated
15476	// with the specified stack set. Update operations affect both the stack set
15477	// itself, as well as all associated stack set instances.
15478	Action *string `type:"string" enum:"StackSetOperationAction"`
15479
15480	// The Amazon Resource Number (ARN) of the IAM role used to perform this stack
15481	// set operation.
15482	//
15483	// Use customized administrator roles to control which users or groups can manage
15484	// specific stack sets within the same administrator account. For more information,
15485	// see Define Permissions for Multiple Administrators (http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/stacksets-prereqs.html)
15486	// in the AWS CloudFormation User Guide.
15487	AdministrationRoleARN *string `min:"20" type:"string"`
15488
15489	// The time at which the operation was initiated. Note that the creation times
15490	// for the stack set operation might differ from the creation time of the individual
15491	// stacks themselves. This is because AWS CloudFormation needs to perform preparatory
15492	// work for the operation, such as dispatching the work to the requested Regions,
15493	// before actually creating the first stacks.
15494	CreationTimestamp *time.Time `type:"timestamp"`
15495
15496	// [Service-managed permissions] The AWS Organizations accounts affected by
15497	// the stack operation.
15498	DeploymentTargets *DeploymentTargets `type:"structure"`
15499
15500	// The time at which the stack set operation ended, across all accounts and
15501	// Regions specified. Note that this doesn't necessarily mean that the stack
15502	// set operation was successful, or even attempted, in each account or Region.
15503	EndTimestamp *time.Time `type:"timestamp"`
15504
15505	// The name of the IAM execution role used to create or update the stack set.
15506	//
15507	// Use customized execution roles to control which stack resources users and
15508	// groups can include in their stack sets.
15509	ExecutionRoleName *string `min:"1" type:"string"`
15510
15511	// The unique ID of a stack set operation.
15512	OperationId *string `min:"1" type:"string"`
15513
15514	// The preferences for how AWS CloudFormation performs this stack set operation.
15515	OperationPreferences *StackSetOperationPreferences `type:"structure"`
15516
15517	// For stack set operations of action type DELETE, specifies whether to remove
15518	// the stack instances from the specified stack set, but doesn't delete the
15519	// stacks. You can't reassociate a retained stack, or add an existing, saved
15520	// stack to a new stack set.
15521	RetainStacks *bool `type:"boolean"`
15522
15523	// Detailed information about the drift status of the stack set. This includes
15524	// information about drift operations currently being performed on the stack
15525	// set.
15526	//
15527	// this information will only be present for stack set operations whose Action
15528	// type is DETECT_DRIFT.
15529	//
15530	// For more information, see Detecting Unmanaged Changes in Stack Sets (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/stacksets-drift.html)
15531	// in the AWS CloudFormation User Guide.
15532	StackSetDriftDetectionDetails *StackSetDriftDetectionDetails `type:"structure"`
15533
15534	// The ID of the stack set.
15535	StackSetId *string `type:"string"`
15536
15537	// The status of the operation.
15538	//
15539	//    * FAILED: The operation exceeded the specified failure tolerance. The
15540	//    failure tolerance value that you've set for an operation is applied for
15541	//    each Region during stack create and update operations. If the number of
15542	//    failed stacks within a Region exceeds the failure tolerance, the status
15543	//    of the operation in the Region is set to FAILED. This in turn sets the
15544	//    status of the operation as a whole to FAILED, and AWS CloudFormation cancels
15545	//    the operation in any remaining Regions.
15546	//
15547	//    * QUEUED: [Service-managed permissions] For automatic deployments that
15548	//    require a sequence of operations, the operation is queued to be performed.
15549	//    For more information, see the stack set operation status codes (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/stacksets-concepts.html#stackset-status-codes)
15550	//    in the AWS CloudFormation User Guide.
15551	//
15552	//    * RUNNING: The operation is currently being performed.
15553	//
15554	//    * STOPPED: The user has cancelled the operation.
15555	//
15556	//    * STOPPING: The operation is in the process of stopping, at user request.
15557	//
15558	//    * SUCCEEDED: The operation completed creating or updating all the specified
15559	//    stacks without exceeding the failure tolerance for the operation.
15560	Status *string `type:"string" enum:"StackSetOperationStatus"`
15561}
15562
15563// String returns the string representation
15564func (s StackSetOperation) String() string {
15565	return awsutil.Prettify(s)
15566}
15567
15568// GoString returns the string representation
15569func (s StackSetOperation) GoString() string {
15570	return s.String()
15571}
15572
15573// SetAction sets the Action field's value.
15574func (s *StackSetOperation) SetAction(v string) *StackSetOperation {
15575	s.Action = &v
15576	return s
15577}
15578
15579// SetAdministrationRoleARN sets the AdministrationRoleARN field's value.
15580func (s *StackSetOperation) SetAdministrationRoleARN(v string) *StackSetOperation {
15581	s.AdministrationRoleARN = &v
15582	return s
15583}
15584
15585// SetCreationTimestamp sets the CreationTimestamp field's value.
15586func (s *StackSetOperation) SetCreationTimestamp(v time.Time) *StackSetOperation {
15587	s.CreationTimestamp = &v
15588	return s
15589}
15590
15591// SetDeploymentTargets sets the DeploymentTargets field's value.
15592func (s *StackSetOperation) SetDeploymentTargets(v *DeploymentTargets) *StackSetOperation {
15593	s.DeploymentTargets = v
15594	return s
15595}
15596
15597// SetEndTimestamp sets the EndTimestamp field's value.
15598func (s *StackSetOperation) SetEndTimestamp(v time.Time) *StackSetOperation {
15599	s.EndTimestamp = &v
15600	return s
15601}
15602
15603// SetExecutionRoleName sets the ExecutionRoleName field's value.
15604func (s *StackSetOperation) SetExecutionRoleName(v string) *StackSetOperation {
15605	s.ExecutionRoleName = &v
15606	return s
15607}
15608
15609// SetOperationId sets the OperationId field's value.
15610func (s *StackSetOperation) SetOperationId(v string) *StackSetOperation {
15611	s.OperationId = &v
15612	return s
15613}
15614
15615// SetOperationPreferences sets the OperationPreferences field's value.
15616func (s *StackSetOperation) SetOperationPreferences(v *StackSetOperationPreferences) *StackSetOperation {
15617	s.OperationPreferences = v
15618	return s
15619}
15620
15621// SetRetainStacks sets the RetainStacks field's value.
15622func (s *StackSetOperation) SetRetainStacks(v bool) *StackSetOperation {
15623	s.RetainStacks = &v
15624	return s
15625}
15626
15627// SetStackSetDriftDetectionDetails sets the StackSetDriftDetectionDetails field's value.
15628func (s *StackSetOperation) SetStackSetDriftDetectionDetails(v *StackSetDriftDetectionDetails) *StackSetOperation {
15629	s.StackSetDriftDetectionDetails = v
15630	return s
15631}
15632
15633// SetStackSetId sets the StackSetId field's value.
15634func (s *StackSetOperation) SetStackSetId(v string) *StackSetOperation {
15635	s.StackSetId = &v
15636	return s
15637}
15638
15639// SetStatus sets the Status field's value.
15640func (s *StackSetOperation) SetStatus(v string) *StackSetOperation {
15641	s.Status = &v
15642	return s
15643}
15644
15645// The user-specified preferences for how AWS CloudFormation performs a stack
15646// set operation.
15647//
15648// For more information on maximum concurrent accounts and failure tolerance,
15649// see Stack set operation options (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/stacksets-concepts.html#stackset-ops-options).
15650type StackSetOperationPreferences struct {
15651	_ struct{} `type:"structure"`
15652
15653	// The number of accounts, per Region, for which this operation can fail before
15654	// AWS CloudFormation stops the operation in that Region. If the operation is
15655	// stopped in a Region, AWS CloudFormation doesn't attempt the operation in
15656	// any subsequent Regions.
15657	//
15658	// Conditional: You must specify either FailureToleranceCount or FailureTolerancePercentage
15659	// (but not both).
15660	FailureToleranceCount *int64 `type:"integer"`
15661
15662	// The percentage of accounts, per Region, for which this stack operation can
15663	// fail before AWS CloudFormation stops the operation in that Region. If the
15664	// operation is stopped in a Region, AWS CloudFormation doesn't attempt the
15665	// operation in any subsequent Regions.
15666	//
15667	// When calculating the number of accounts based on the specified percentage,
15668	// AWS CloudFormation rounds down to the next whole number.
15669	//
15670	// Conditional: You must specify either FailureToleranceCount or FailureTolerancePercentage,
15671	// but not both.
15672	FailureTolerancePercentage *int64 `type:"integer"`
15673
15674	// The maximum number of accounts in which to perform this operation at one
15675	// time. This is dependent on the value of FailureToleranceCount. MaxConcurrentCount
15676	// is at most one more than the FailureToleranceCount.
15677	//
15678	// Note that this setting lets you specify the maximum for operations. For large
15679	// deployments, under certain circumstances the actual number of accounts acted
15680	// upon concurrently may be lower due to service throttling.
15681	//
15682	// Conditional: You must specify either MaxConcurrentCount or MaxConcurrentPercentage,
15683	// but not both.
15684	MaxConcurrentCount *int64 `min:"1" type:"integer"`
15685
15686	// The maximum percentage of accounts in which to perform this operation at
15687	// one time.
15688	//
15689	// When calculating the number of accounts based on the specified percentage,
15690	// AWS CloudFormation rounds down to the next whole number. This is true except
15691	// in cases where rounding down would result is zero. In this case, CloudFormation
15692	// sets the number as one instead.
15693	//
15694	// Note that this setting lets you specify the maximum for operations. For large
15695	// deployments, under certain circumstances the actual number of accounts acted
15696	// upon concurrently may be lower due to service throttling.
15697	//
15698	// Conditional: You must specify either MaxConcurrentCount or MaxConcurrentPercentage,
15699	// but not both.
15700	MaxConcurrentPercentage *int64 `min:"1" type:"integer"`
15701
15702	// The concurrency type of deploying StackSets operations in regions, could
15703	// be in parallel or one region at a time.
15704	RegionConcurrencyType *string `type:"string" enum:"RegionConcurrencyType"`
15705
15706	// The order of the Regions in where you want to perform the stack operation.
15707	RegionOrder []*string `type:"list"`
15708}
15709
15710// String returns the string representation
15711func (s StackSetOperationPreferences) String() string {
15712	return awsutil.Prettify(s)
15713}
15714
15715// GoString returns the string representation
15716func (s StackSetOperationPreferences) GoString() string {
15717	return s.String()
15718}
15719
15720// Validate inspects the fields of the type to determine if they are valid.
15721func (s *StackSetOperationPreferences) Validate() error {
15722	invalidParams := request.ErrInvalidParams{Context: "StackSetOperationPreferences"}
15723	if s.MaxConcurrentCount != nil && *s.MaxConcurrentCount < 1 {
15724		invalidParams.Add(request.NewErrParamMinValue("MaxConcurrentCount", 1))
15725	}
15726	if s.MaxConcurrentPercentage != nil && *s.MaxConcurrentPercentage < 1 {
15727		invalidParams.Add(request.NewErrParamMinValue("MaxConcurrentPercentage", 1))
15728	}
15729
15730	if invalidParams.Len() > 0 {
15731		return invalidParams
15732	}
15733	return nil
15734}
15735
15736// SetFailureToleranceCount sets the FailureToleranceCount field's value.
15737func (s *StackSetOperationPreferences) SetFailureToleranceCount(v int64) *StackSetOperationPreferences {
15738	s.FailureToleranceCount = &v
15739	return s
15740}
15741
15742// SetFailureTolerancePercentage sets the FailureTolerancePercentage field's value.
15743func (s *StackSetOperationPreferences) SetFailureTolerancePercentage(v int64) *StackSetOperationPreferences {
15744	s.FailureTolerancePercentage = &v
15745	return s
15746}
15747
15748// SetMaxConcurrentCount sets the MaxConcurrentCount field's value.
15749func (s *StackSetOperationPreferences) SetMaxConcurrentCount(v int64) *StackSetOperationPreferences {
15750	s.MaxConcurrentCount = &v
15751	return s
15752}
15753
15754// SetMaxConcurrentPercentage sets the MaxConcurrentPercentage field's value.
15755func (s *StackSetOperationPreferences) SetMaxConcurrentPercentage(v int64) *StackSetOperationPreferences {
15756	s.MaxConcurrentPercentage = &v
15757	return s
15758}
15759
15760// SetRegionConcurrencyType sets the RegionConcurrencyType field's value.
15761func (s *StackSetOperationPreferences) SetRegionConcurrencyType(v string) *StackSetOperationPreferences {
15762	s.RegionConcurrencyType = &v
15763	return s
15764}
15765
15766// SetRegionOrder sets the RegionOrder field's value.
15767func (s *StackSetOperationPreferences) SetRegionOrder(v []*string) *StackSetOperationPreferences {
15768	s.RegionOrder = v
15769	return s
15770}
15771
15772// The structure that contains information about a specified operation's results
15773// for a given account in a given Region.
15774type StackSetOperationResultSummary struct {
15775	_ struct{} `type:"structure"`
15776
15777	// [Self-managed permissions] The name of the AWS account for this operation
15778	// result.
15779	Account *string `type:"string"`
15780
15781	// The results of the account gate function AWS CloudFormation invokes, if present,
15782	// before proceeding with stack set operations in an account
15783	AccountGateResult *AccountGateResult `type:"structure"`
15784
15785	// [Service-managed permissions] The organization root ID or organizational
15786	// unit (OU) IDs that you specified for DeploymentTargets (https://docs.aws.amazon.com/AWSCloudFormation/latest/APIReference/API_DeploymentTargets.html).
15787	OrganizationalUnitId *string `type:"string"`
15788
15789	// The name of the AWS Region for this operation result.
15790	Region *string `type:"string"`
15791
15792	// The result status of the stack set operation for the given account in the
15793	// given Region.
15794	//
15795	//    * CANCELLED: The operation in the specified account and Region has been
15796	//    cancelled. This is either because a user has stopped the stack set operation,
15797	//    or because the failure tolerance of the stack set operation has been exceeded.
15798	//
15799	//    * FAILED: The operation in the specified account and Region failed. If
15800	//    the stack set operation fails in enough accounts within a Region, the
15801	//    failure tolerance for the stack set operation as a whole might be exceeded.
15802	//
15803	//    * RUNNING: The operation in the specified account and Region is currently
15804	//    in progress.
15805	//
15806	//    * PENDING: The operation in the specified account and Region has yet to
15807	//    start.
15808	//
15809	//    * SUCCEEDED: The operation in the specified account and Region completed
15810	//    successfully.
15811	Status *string `type:"string" enum:"StackSetOperationResultStatus"`
15812
15813	// The reason for the assigned result status.
15814	StatusReason *string `type:"string"`
15815}
15816
15817// String returns the string representation
15818func (s StackSetOperationResultSummary) String() string {
15819	return awsutil.Prettify(s)
15820}
15821
15822// GoString returns the string representation
15823func (s StackSetOperationResultSummary) GoString() string {
15824	return s.String()
15825}
15826
15827// SetAccount sets the Account field's value.
15828func (s *StackSetOperationResultSummary) SetAccount(v string) *StackSetOperationResultSummary {
15829	s.Account = &v
15830	return s
15831}
15832
15833// SetAccountGateResult sets the AccountGateResult field's value.
15834func (s *StackSetOperationResultSummary) SetAccountGateResult(v *AccountGateResult) *StackSetOperationResultSummary {
15835	s.AccountGateResult = v
15836	return s
15837}
15838
15839// SetOrganizationalUnitId sets the OrganizationalUnitId field's value.
15840func (s *StackSetOperationResultSummary) SetOrganizationalUnitId(v string) *StackSetOperationResultSummary {
15841	s.OrganizationalUnitId = &v
15842	return s
15843}
15844
15845// SetRegion sets the Region field's value.
15846func (s *StackSetOperationResultSummary) SetRegion(v string) *StackSetOperationResultSummary {
15847	s.Region = &v
15848	return s
15849}
15850
15851// SetStatus sets the Status field's value.
15852func (s *StackSetOperationResultSummary) SetStatus(v string) *StackSetOperationResultSummary {
15853	s.Status = &v
15854	return s
15855}
15856
15857// SetStatusReason sets the StatusReason field's value.
15858func (s *StackSetOperationResultSummary) SetStatusReason(v string) *StackSetOperationResultSummary {
15859	s.StatusReason = &v
15860	return s
15861}
15862
15863// The structures that contain summary information about the specified operation.
15864type StackSetOperationSummary struct {
15865	_ struct{} `type:"structure"`
15866
15867	// The type of operation: CREATE, UPDATE, or DELETE. Create and delete operations
15868	// affect only the specified stack instances that are associated with the specified
15869	// stack set. Update operations affect both the stack set itself as well as
15870	// all associated stack set instances.
15871	Action *string `type:"string" enum:"StackSetOperationAction"`
15872
15873	// The time at which the operation was initiated. Note that the creation times
15874	// for the stack set operation might differ from the creation time of the individual
15875	// stacks themselves. This is because AWS CloudFormation needs to perform preparatory
15876	// work for the operation, such as dispatching the work to the requested Regions,
15877	// before actually creating the first stacks.
15878	CreationTimestamp *time.Time `type:"timestamp"`
15879
15880	// The time at which the stack set operation ended, across all accounts and
15881	// Regions specified. Note that this doesn't necessarily mean that the stack
15882	// set operation was successful, or even attempted, in each account or Region.
15883	EndTimestamp *time.Time `type:"timestamp"`
15884
15885	// The unique ID of the stack set operation.
15886	OperationId *string `min:"1" type:"string"`
15887
15888	// The overall status of the operation.
15889	//
15890	//    * FAILED: The operation exceeded the specified failure tolerance. The
15891	//    failure tolerance value that you've set for an operation is applied for
15892	//    each Region during stack create and update operations. If the number of
15893	//    failed stacks within a Region exceeds the failure tolerance, the status
15894	//    of the operation in the Region is set to FAILED. This in turn sets the
15895	//    status of the operation as a whole to FAILED, and AWS CloudFormation cancels
15896	//    the operation in any remaining Regions.
15897	//
15898	//    * QUEUED: [Service-managed permissions] For automatic deployments that
15899	//    require a sequence of operations, the operation is queued to be performed.
15900	//    For more information, see the stack set operation status codes (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/stacksets-concepts.html#stackset-status-codes)
15901	//    in the AWS CloudFormation User Guide.
15902	//
15903	//    * RUNNING: The operation is currently being performed.
15904	//
15905	//    * STOPPED: The user has cancelled the operation.
15906	//
15907	//    * STOPPING: The operation is in the process of stopping, at user request.
15908	//
15909	//    * SUCCEEDED: The operation completed creating or updating all the specified
15910	//    stacks without exceeding the failure tolerance for the operation.
15911	Status *string `type:"string" enum:"StackSetOperationStatus"`
15912}
15913
15914// String returns the string representation
15915func (s StackSetOperationSummary) String() string {
15916	return awsutil.Prettify(s)
15917}
15918
15919// GoString returns the string representation
15920func (s StackSetOperationSummary) GoString() string {
15921	return s.String()
15922}
15923
15924// SetAction sets the Action field's value.
15925func (s *StackSetOperationSummary) SetAction(v string) *StackSetOperationSummary {
15926	s.Action = &v
15927	return s
15928}
15929
15930// SetCreationTimestamp sets the CreationTimestamp field's value.
15931func (s *StackSetOperationSummary) SetCreationTimestamp(v time.Time) *StackSetOperationSummary {
15932	s.CreationTimestamp = &v
15933	return s
15934}
15935
15936// SetEndTimestamp sets the EndTimestamp field's value.
15937func (s *StackSetOperationSummary) SetEndTimestamp(v time.Time) *StackSetOperationSummary {
15938	s.EndTimestamp = &v
15939	return s
15940}
15941
15942// SetOperationId sets the OperationId field's value.
15943func (s *StackSetOperationSummary) SetOperationId(v string) *StackSetOperationSummary {
15944	s.OperationId = &v
15945	return s
15946}
15947
15948// SetStatus sets the Status field's value.
15949func (s *StackSetOperationSummary) SetStatus(v string) *StackSetOperationSummary {
15950	s.Status = &v
15951	return s
15952}
15953
15954// The structures that contain summary information about the specified stack
15955// set.
15956type StackSetSummary struct {
15957	_ struct{} `type:"structure"`
15958
15959	// [Service-managed permissions] Describes whether StackSets automatically deploys
15960	// to AWS Organizations accounts that are added to a target organizational unit
15961	// (OU).
15962	AutoDeployment *AutoDeployment `type:"structure"`
15963
15964	// A description of the stack set that you specify when the stack set is created
15965	// or updated.
15966	Description *string `min:"1" type:"string"`
15967
15968	// Status of the stack set's actual configuration compared to its expected template
15969	// and parameter configuration. A stack set is considered to have drifted if
15970	// one or more of its stack instances have drifted from their expected template
15971	// and parameter configuration.
15972	//
15973	//    * DRIFTED: One or more of the stack instances belonging to the stack set
15974	//    stack differs from the expected template and parameter configuration.
15975	//    A stack instance is considered to have drifted if one or more of the resources
15976	//    in the associated stack have drifted.
15977	//
15978	//    * NOT_CHECKED: AWS CloudFormation has not checked the stack set for drift.
15979	//
15980	//    * IN_SYNC: All of the stack instances belonging to the stack set stack
15981	//    match from the expected template and parameter configuration.
15982	//
15983	//    * UNKNOWN: This value is reserved for future use.
15984	DriftStatus *string `type:"string" enum:"StackDriftStatus"`
15985
15986	// Most recent time when CloudFormation performed a drift detection operation
15987	// on the stack set. This value will be NULL for any stack set on which drift
15988	// detection has not yet been performed.
15989	LastDriftCheckTimestamp *time.Time `type:"timestamp"`
15990
15991	// Describes how the IAM roles required for stack set operations are created.
15992	//
15993	//    * With self-managed permissions, you must create the administrator and
15994	//    execution roles required to deploy to target accounts. For more information,
15995	//    see Grant Self-Managed Stack Set Permissions (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/stacksets-prereqs-self-managed.html).
15996	//
15997	//    * With service-managed permissions, StackSets automatically creates the
15998	//    IAM roles required to deploy to accounts managed by AWS Organizations.
15999	//    For more information, see Grant Service-Managed Stack Set Permissions
16000	//    (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/stacksets-prereqs-service-managed.html).
16001	PermissionModel *string `type:"string" enum:"PermissionModels"`
16002
16003	// The ID of the stack set.
16004	StackSetId *string `type:"string"`
16005
16006	// The name of the stack set.
16007	StackSetName *string `type:"string"`
16008
16009	// The status of the stack set.
16010	Status *string `type:"string" enum:"StackSetStatus"`
16011}
16012
16013// String returns the string representation
16014func (s StackSetSummary) String() string {
16015	return awsutil.Prettify(s)
16016}
16017
16018// GoString returns the string representation
16019func (s StackSetSummary) GoString() string {
16020	return s.String()
16021}
16022
16023// SetAutoDeployment sets the AutoDeployment field's value.
16024func (s *StackSetSummary) SetAutoDeployment(v *AutoDeployment) *StackSetSummary {
16025	s.AutoDeployment = v
16026	return s
16027}
16028
16029// SetDescription sets the Description field's value.
16030func (s *StackSetSummary) SetDescription(v string) *StackSetSummary {
16031	s.Description = &v
16032	return s
16033}
16034
16035// SetDriftStatus sets the DriftStatus field's value.
16036func (s *StackSetSummary) SetDriftStatus(v string) *StackSetSummary {
16037	s.DriftStatus = &v
16038	return s
16039}
16040
16041// SetLastDriftCheckTimestamp sets the LastDriftCheckTimestamp field's value.
16042func (s *StackSetSummary) SetLastDriftCheckTimestamp(v time.Time) *StackSetSummary {
16043	s.LastDriftCheckTimestamp = &v
16044	return s
16045}
16046
16047// SetPermissionModel sets the PermissionModel field's value.
16048func (s *StackSetSummary) SetPermissionModel(v string) *StackSetSummary {
16049	s.PermissionModel = &v
16050	return s
16051}
16052
16053// SetStackSetId sets the StackSetId field's value.
16054func (s *StackSetSummary) SetStackSetId(v string) *StackSetSummary {
16055	s.StackSetId = &v
16056	return s
16057}
16058
16059// SetStackSetName sets the StackSetName field's value.
16060func (s *StackSetSummary) SetStackSetName(v string) *StackSetSummary {
16061	s.StackSetName = &v
16062	return s
16063}
16064
16065// SetStatus sets the Status field's value.
16066func (s *StackSetSummary) SetStatus(v string) *StackSetSummary {
16067	s.Status = &v
16068	return s
16069}
16070
16071// The StackSummary Data Type
16072type StackSummary struct {
16073	_ struct{} `type:"structure"`
16074
16075	// The time the stack was created.
16076	//
16077	// CreationTime is a required field
16078	CreationTime *time.Time `type:"timestamp" required:"true"`
16079
16080	// The time the stack was deleted.
16081	DeletionTime *time.Time `type:"timestamp"`
16082
16083	// Summarizes information on whether a stack's actual configuration differs,
16084	// or has drifted, from it's expected configuration, as defined in the stack
16085	// template and any values specified as template parameters. For more information,
16086	// see Detecting Unregulated Configuration Changes to Stacks and Resources (http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-stack-drift.html).
16087	DriftInformation *StackDriftInformationSummary `type:"structure"`
16088
16089	// The time the stack was last updated. This field will only be returned if
16090	// the stack has been updated at least once.
16091	LastUpdatedTime *time.Time `type:"timestamp"`
16092
16093	// For nested stacks--stacks created as resources for another stack--the stack
16094	// ID of the direct parent of this stack. For the first level of nested stacks,
16095	// the root stack is also the parent stack.
16096	//
16097	// For more information, see Working with Nested Stacks (http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-nested-stacks.html)
16098	// in the AWS CloudFormation User Guide.
16099	ParentId *string `type:"string"`
16100
16101	// For nested stacks--stacks created as resources for another stack--the stack
16102	// ID of the top-level stack to which the nested stack ultimately belongs.
16103	//
16104	// For more information, see Working with Nested Stacks (http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-nested-stacks.html)
16105	// in the AWS CloudFormation User Guide.
16106	RootId *string `type:"string"`
16107
16108	// Unique stack identifier.
16109	StackId *string `type:"string"`
16110
16111	// The name associated with the stack.
16112	//
16113	// StackName is a required field
16114	StackName *string `type:"string" required:"true"`
16115
16116	// The current status of the stack.
16117	//
16118	// StackStatus is a required field
16119	StackStatus *string `type:"string" required:"true" enum:"StackStatus"`
16120
16121	// Success/Failure message associated with the stack status.
16122	StackStatusReason *string `type:"string"`
16123
16124	// The template description of the template used to create the stack.
16125	TemplateDescription *string `type:"string"`
16126}
16127
16128// String returns the string representation
16129func (s StackSummary) String() string {
16130	return awsutil.Prettify(s)
16131}
16132
16133// GoString returns the string representation
16134func (s StackSummary) GoString() string {
16135	return s.String()
16136}
16137
16138// SetCreationTime sets the CreationTime field's value.
16139func (s *StackSummary) SetCreationTime(v time.Time) *StackSummary {
16140	s.CreationTime = &v
16141	return s
16142}
16143
16144// SetDeletionTime sets the DeletionTime field's value.
16145func (s *StackSummary) SetDeletionTime(v time.Time) *StackSummary {
16146	s.DeletionTime = &v
16147	return s
16148}
16149
16150// SetDriftInformation sets the DriftInformation field's value.
16151func (s *StackSummary) SetDriftInformation(v *StackDriftInformationSummary) *StackSummary {
16152	s.DriftInformation = v
16153	return s
16154}
16155
16156// SetLastUpdatedTime sets the LastUpdatedTime field's value.
16157func (s *StackSummary) SetLastUpdatedTime(v time.Time) *StackSummary {
16158	s.LastUpdatedTime = &v
16159	return s
16160}
16161
16162// SetParentId sets the ParentId field's value.
16163func (s *StackSummary) SetParentId(v string) *StackSummary {
16164	s.ParentId = &v
16165	return s
16166}
16167
16168// SetRootId sets the RootId field's value.
16169func (s *StackSummary) SetRootId(v string) *StackSummary {
16170	s.RootId = &v
16171	return s
16172}
16173
16174// SetStackId sets the StackId field's value.
16175func (s *StackSummary) SetStackId(v string) *StackSummary {
16176	s.StackId = &v
16177	return s
16178}
16179
16180// SetStackName sets the StackName field's value.
16181func (s *StackSummary) SetStackName(v string) *StackSummary {
16182	s.StackName = &v
16183	return s
16184}
16185
16186// SetStackStatus sets the StackStatus field's value.
16187func (s *StackSummary) SetStackStatus(v string) *StackSummary {
16188	s.StackStatus = &v
16189	return s
16190}
16191
16192// SetStackStatusReason sets the StackStatusReason field's value.
16193func (s *StackSummary) SetStackStatusReason(v string) *StackSummary {
16194	s.StackStatusReason = &v
16195	return s
16196}
16197
16198// SetTemplateDescription sets the TemplateDescription field's value.
16199func (s *StackSummary) SetTemplateDescription(v string) *StackSummary {
16200	s.TemplateDescription = &v
16201	return s
16202}
16203
16204type StopStackSetOperationInput struct {
16205	_ struct{} `type:"structure"`
16206
16207	// [Service-managed permissions] Specifies whether you are acting as an account
16208	// administrator in the organization's management account or as a delegated
16209	// administrator in a member account.
16210	//
16211	// By default, SELF is specified. Use SELF for stack sets with self-managed
16212	// permissions.
16213	//
16214	//    * If you are signed in to the management account, specify SELF.
16215	//
16216	//    * If you are signed in to a delegated administrator account, specify DELEGATED_ADMIN.
16217	//    Your AWS account must be registered as a delegated administrator in the
16218	//    management account. For more information, see Register a delegated administrator
16219	//    (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/stacksets-orgs-delegated-admin.html)
16220	//    in the AWS CloudFormation User Guide.
16221	CallAs *string `type:"string" enum:"CallAs"`
16222
16223	// The ID of the stack operation.
16224	//
16225	// OperationId is a required field
16226	OperationId *string `min:"1" type:"string" required:"true"`
16227
16228	// The name or unique ID of the stack set that you want to stop the operation
16229	// for.
16230	//
16231	// StackSetName is a required field
16232	StackSetName *string `type:"string" required:"true"`
16233}
16234
16235// String returns the string representation
16236func (s StopStackSetOperationInput) String() string {
16237	return awsutil.Prettify(s)
16238}
16239
16240// GoString returns the string representation
16241func (s StopStackSetOperationInput) GoString() string {
16242	return s.String()
16243}
16244
16245// Validate inspects the fields of the type to determine if they are valid.
16246func (s *StopStackSetOperationInput) Validate() error {
16247	invalidParams := request.ErrInvalidParams{Context: "StopStackSetOperationInput"}
16248	if s.OperationId == nil {
16249		invalidParams.Add(request.NewErrParamRequired("OperationId"))
16250	}
16251	if s.OperationId != nil && len(*s.OperationId) < 1 {
16252		invalidParams.Add(request.NewErrParamMinLen("OperationId", 1))
16253	}
16254	if s.StackSetName == nil {
16255		invalidParams.Add(request.NewErrParamRequired("StackSetName"))
16256	}
16257
16258	if invalidParams.Len() > 0 {
16259		return invalidParams
16260	}
16261	return nil
16262}
16263
16264// SetCallAs sets the CallAs field's value.
16265func (s *StopStackSetOperationInput) SetCallAs(v string) *StopStackSetOperationInput {
16266	s.CallAs = &v
16267	return s
16268}
16269
16270// SetOperationId sets the OperationId field's value.
16271func (s *StopStackSetOperationInput) SetOperationId(v string) *StopStackSetOperationInput {
16272	s.OperationId = &v
16273	return s
16274}
16275
16276// SetStackSetName sets the StackSetName field's value.
16277func (s *StopStackSetOperationInput) SetStackSetName(v string) *StopStackSetOperationInput {
16278	s.StackSetName = &v
16279	return s
16280}
16281
16282type StopStackSetOperationOutput struct {
16283	_ struct{} `type:"structure"`
16284}
16285
16286// String returns the string representation
16287func (s StopStackSetOperationOutput) String() string {
16288	return awsutil.Prettify(s)
16289}
16290
16291// GoString returns the string representation
16292func (s StopStackSetOperationOutput) GoString() string {
16293	return s.String()
16294}
16295
16296// The Tag type enables you to specify a key-value pair that can be used to
16297// store information about an AWS CloudFormation stack.
16298type Tag struct {
16299	_ struct{} `type:"structure"`
16300
16301	// Required. A string used to identify this tag. You can specify a maximum of
16302	// 128 characters for a tag key. Tags owned by Amazon Web Services (AWS) have
16303	// the reserved prefix: aws:.
16304	//
16305	// Key is a required field
16306	Key *string `min:"1" type:"string" required:"true"`
16307
16308	// Required. A string containing the value for this tag. You can specify a maximum
16309	// of 256 characters for a tag value.
16310	//
16311	// Value is a required field
16312	Value *string `min:"1" type:"string" required:"true"`
16313}
16314
16315// String returns the string representation
16316func (s Tag) String() string {
16317	return awsutil.Prettify(s)
16318}
16319
16320// GoString returns the string representation
16321func (s Tag) GoString() string {
16322	return s.String()
16323}
16324
16325// Validate inspects the fields of the type to determine if they are valid.
16326func (s *Tag) Validate() error {
16327	invalidParams := request.ErrInvalidParams{Context: "Tag"}
16328	if s.Key == nil {
16329		invalidParams.Add(request.NewErrParamRequired("Key"))
16330	}
16331	if s.Key != nil && len(*s.Key) < 1 {
16332		invalidParams.Add(request.NewErrParamMinLen("Key", 1))
16333	}
16334	if s.Value == nil {
16335		invalidParams.Add(request.NewErrParamRequired("Value"))
16336	}
16337	if s.Value != nil && len(*s.Value) < 1 {
16338		invalidParams.Add(request.NewErrParamMinLen("Value", 1))
16339	}
16340
16341	if invalidParams.Len() > 0 {
16342		return invalidParams
16343	}
16344	return nil
16345}
16346
16347// SetKey sets the Key field's value.
16348func (s *Tag) SetKey(v string) *Tag {
16349	s.Key = &v
16350	return s
16351}
16352
16353// SetValue sets the Value field's value.
16354func (s *Tag) SetValue(v string) *Tag {
16355	s.Value = &v
16356	return s
16357}
16358
16359// The TemplateParameter data type.
16360type TemplateParameter struct {
16361	_ struct{} `type:"structure"`
16362
16363	// The default value associated with the parameter.
16364	DefaultValue *string `type:"string"`
16365
16366	// User defined description associated with the parameter.
16367	Description *string `min:"1" type:"string"`
16368
16369	// Flag indicating whether the parameter should be displayed as plain text in
16370	// logs and UIs.
16371	NoEcho *bool `type:"boolean"`
16372
16373	// The name associated with the parameter.
16374	ParameterKey *string `type:"string"`
16375}
16376
16377// String returns the string representation
16378func (s TemplateParameter) String() string {
16379	return awsutil.Prettify(s)
16380}
16381
16382// GoString returns the string representation
16383func (s TemplateParameter) GoString() string {
16384	return s.String()
16385}
16386
16387// SetDefaultValue sets the DefaultValue field's value.
16388func (s *TemplateParameter) SetDefaultValue(v string) *TemplateParameter {
16389	s.DefaultValue = &v
16390	return s
16391}
16392
16393// SetDescription sets the Description field's value.
16394func (s *TemplateParameter) SetDescription(v string) *TemplateParameter {
16395	s.Description = &v
16396	return s
16397}
16398
16399// SetNoEcho sets the NoEcho field's value.
16400func (s *TemplateParameter) SetNoEcho(v bool) *TemplateParameter {
16401	s.NoEcho = &v
16402	return s
16403}
16404
16405// SetParameterKey sets the ParameterKey field's value.
16406func (s *TemplateParameter) SetParameterKey(v string) *TemplateParameter {
16407	s.ParameterKey = &v
16408	return s
16409}
16410
16411// Contains summary information about the specified CloudFormation type.
16412type TypeSummary struct {
16413	_ struct{} `type:"structure"`
16414
16415	// The ID of the default version of the type. The default version is used when
16416	// the type version is not specified.
16417	//
16418	// To set the default version of a type, use SetTypeDefaultVersion .
16419	DefaultVersionId *string `min:"1" type:"string"`
16420
16421	// The description of the type.
16422	Description *string `min:"1" type:"string"`
16423
16424	// When the current default version of the type was registered.
16425	LastUpdated *time.Time `type:"timestamp"`
16426
16427	// The kind of type.
16428	Type *string `type:"string" enum:"RegistryType"`
16429
16430	// The Amazon Resource Name (ARN) of the type.
16431	TypeArn *string `type:"string"`
16432
16433	// The name of the type.
16434	TypeName *string `min:"10" type:"string"`
16435}
16436
16437// String returns the string representation
16438func (s TypeSummary) String() string {
16439	return awsutil.Prettify(s)
16440}
16441
16442// GoString returns the string representation
16443func (s TypeSummary) GoString() string {
16444	return s.String()
16445}
16446
16447// SetDefaultVersionId sets the DefaultVersionId field's value.
16448func (s *TypeSummary) SetDefaultVersionId(v string) *TypeSummary {
16449	s.DefaultVersionId = &v
16450	return s
16451}
16452
16453// SetDescription sets the Description field's value.
16454func (s *TypeSummary) SetDescription(v string) *TypeSummary {
16455	s.Description = &v
16456	return s
16457}
16458
16459// SetLastUpdated sets the LastUpdated field's value.
16460func (s *TypeSummary) SetLastUpdated(v time.Time) *TypeSummary {
16461	s.LastUpdated = &v
16462	return s
16463}
16464
16465// SetType sets the Type field's value.
16466func (s *TypeSummary) SetType(v string) *TypeSummary {
16467	s.Type = &v
16468	return s
16469}
16470
16471// SetTypeArn sets the TypeArn field's value.
16472func (s *TypeSummary) SetTypeArn(v string) *TypeSummary {
16473	s.TypeArn = &v
16474	return s
16475}
16476
16477// SetTypeName sets the TypeName field's value.
16478func (s *TypeSummary) SetTypeName(v string) *TypeSummary {
16479	s.TypeName = &v
16480	return s
16481}
16482
16483// Contains summary information about a specific version of a CloudFormation
16484// type.
16485type TypeVersionSummary struct {
16486	_ struct{} `type:"structure"`
16487
16488	// The Amazon Resource Name (ARN) of the type version.
16489	Arn *string `type:"string"`
16490
16491	// The description of the type version.
16492	Description *string `min:"1" type:"string"`
16493
16494	// Whether the specified type version is set as the default version.
16495	IsDefaultVersion *bool `type:"boolean"`
16496
16497	// When the version was registered.
16498	TimeCreated *time.Time `type:"timestamp"`
16499
16500	// The kind of type.
16501	Type *string `type:"string" enum:"RegistryType"`
16502
16503	// The name of the type.
16504	TypeName *string `min:"10" type:"string"`
16505
16506	// The ID of a specific version of the type. The version ID is the value at
16507	// the end of the Amazon Resource Name (ARN) assigned to the type version when
16508	// it is registered.
16509	VersionId *string `min:"1" type:"string"`
16510}
16511
16512// String returns the string representation
16513func (s TypeVersionSummary) String() string {
16514	return awsutil.Prettify(s)
16515}
16516
16517// GoString returns the string representation
16518func (s TypeVersionSummary) GoString() string {
16519	return s.String()
16520}
16521
16522// SetArn sets the Arn field's value.
16523func (s *TypeVersionSummary) SetArn(v string) *TypeVersionSummary {
16524	s.Arn = &v
16525	return s
16526}
16527
16528// SetDescription sets the Description field's value.
16529func (s *TypeVersionSummary) SetDescription(v string) *TypeVersionSummary {
16530	s.Description = &v
16531	return s
16532}
16533
16534// SetIsDefaultVersion sets the IsDefaultVersion field's value.
16535func (s *TypeVersionSummary) SetIsDefaultVersion(v bool) *TypeVersionSummary {
16536	s.IsDefaultVersion = &v
16537	return s
16538}
16539
16540// SetTimeCreated sets the TimeCreated field's value.
16541func (s *TypeVersionSummary) SetTimeCreated(v time.Time) *TypeVersionSummary {
16542	s.TimeCreated = &v
16543	return s
16544}
16545
16546// SetType sets the Type field's value.
16547func (s *TypeVersionSummary) SetType(v string) *TypeVersionSummary {
16548	s.Type = &v
16549	return s
16550}
16551
16552// SetTypeName sets the TypeName field's value.
16553func (s *TypeVersionSummary) SetTypeName(v string) *TypeVersionSummary {
16554	s.TypeName = &v
16555	return s
16556}
16557
16558// SetVersionId sets the VersionId field's value.
16559func (s *TypeVersionSummary) SetVersionId(v string) *TypeVersionSummary {
16560	s.VersionId = &v
16561	return s
16562}
16563
16564// The input for an UpdateStack action.
16565type UpdateStackInput struct {
16566	_ struct{} `type:"structure"`
16567
16568	// In some cases, you must explicitly acknowledge that your stack template contains
16569	// certain capabilities in order for AWS CloudFormation to update the stack.
16570	//
16571	//    * CAPABILITY_IAM and CAPABILITY_NAMED_IAM Some stack templates might include
16572	//    resources that can affect permissions in your AWS account; for example,
16573	//    by creating new AWS Identity and Access Management (IAM) users. For those
16574	//    stacks, you must explicitly acknowledge this by specifying one of these
16575	//    capabilities. The following IAM resources require you to specify either
16576	//    the CAPABILITY_IAM or CAPABILITY_NAMED_IAM capability. If you have IAM
16577	//    resources, you can specify either capability. If you have IAM resources
16578	//    with custom names, you must specify CAPABILITY_NAMED_IAM. If you don't
16579	//    specify either of these capabilities, AWS CloudFormation returns an InsufficientCapabilities
16580	//    error. If your stack template contains these resources, we recommend that
16581	//    you review all permissions associated with them and edit their permissions
16582	//    if necessary. AWS::IAM::AccessKey (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iam-accesskey.html)
16583	//    AWS::IAM::Group (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iam-group.html)
16584	//    AWS::IAM::InstanceProfile (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iam-instanceprofile.html)
16585	//    AWS::IAM::Policy (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iam-policy.html)
16586	//    AWS::IAM::Role (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iam-role.html)
16587	//    AWS::IAM::User (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iam-user.html)
16588	//    AWS::IAM::UserToGroupAddition (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iam-addusertogroup.html)
16589	//    For more information, see Acknowledging IAM Resources in AWS CloudFormation
16590	//    Templates (http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-iam-template.html#capabilities).
16591	//
16592	//    * CAPABILITY_AUTO_EXPAND Some template contain macros. Macros perform
16593	//    custom processing on templates; this can include simple actions like find-and-replace
16594	//    operations, all the way to extensive transformations of entire templates.
16595	//    Because of this, users typically create a change set from the processed
16596	//    template, so that they can review the changes resulting from the macros
16597	//    before actually updating the stack. If your stack template contains one
16598	//    or more macros, and you choose to update a stack directly from the processed
16599	//    template, without first reviewing the resulting changes in a change set,
16600	//    you must acknowledge this capability. This includes the AWS::Include (http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/create-reusable-transform-function-snippets-and-add-to-your-template-with-aws-include-transform.html)
16601	//    and AWS::Serverless (http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/transform-aws-serverless.html)
16602	//    transforms, which are macros hosted by AWS CloudFormation. If you want
16603	//    to update a stack from a stack template that contains macros and nested
16604	//    stacks, you must update the stack directly from the template using this
16605	//    capability. You should only update stacks directly from a stack template
16606	//    that contains macros if you know what processing the macro performs. Each
16607	//    macro relies on an underlying Lambda service function for processing stack
16608	//    templates. Be aware that the Lambda function owner can update the function
16609	//    operation without AWS CloudFormation being notified. For more information,
16610	//    see Using AWS CloudFormation Macros to Perform Custom Processing on Templates
16611	//    (http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/template-macros.html).
16612	Capabilities []*string `type:"list"`
16613
16614	// A unique identifier for this UpdateStack request. Specify this token if you
16615	// plan to retry requests so that AWS CloudFormation knows that you're not attempting
16616	// to update a stack with the same name. You might retry UpdateStack requests
16617	// to ensure that AWS CloudFormation successfully received them.
16618	//
16619	// All events triggered by a given stack operation are assigned the same client
16620	// request token, which you can use to track operations. For example, if you
16621	// execute a CreateStack operation with the token token1, then all the StackEvents
16622	// generated by that operation will have ClientRequestToken set as token1.
16623	//
16624	// In the console, stack operations display the client request token on the
16625	// Events tab. Stack operations that are initiated from the console use the
16626	// token format Console-StackOperation-ID, which helps you easily identify the
16627	// stack operation . For example, if you create a stack using the console, each
16628	// stack event would be assigned the same token in the following format: Console-CreateStack-7f59c3cf-00d2-40c7-b2ff-e75db0987002.
16629	ClientRequestToken *string `min:"1" type:"string"`
16630
16631	// Amazon Simple Notification Service topic Amazon Resource Names (ARNs) that
16632	// AWS CloudFormation associates with the stack. Specify an empty list to remove
16633	// all notification topics.
16634	NotificationARNs []*string `type:"list"`
16635
16636	// A list of Parameter structures that specify input parameters for the stack.
16637	// For more information, see the Parameter (https://docs.aws.amazon.com/AWSCloudFormation/latest/APIReference/API_Parameter.html)
16638	// data type.
16639	Parameters []*Parameter `type:"list"`
16640
16641	// The template resource types that you have permissions to work with for this
16642	// update stack action, such as AWS::EC2::Instance, AWS::EC2::*, or Custom::MyCustomInstance.
16643	//
16644	// If the list of resource types doesn't include a resource that you're updating,
16645	// the stack update fails. By default, AWS CloudFormation grants permissions
16646	// to all resource types. AWS Identity and Access Management (IAM) uses this
16647	// parameter for AWS CloudFormation-specific condition keys in IAM policies.
16648	// For more information, see Controlling Access with AWS Identity and Access
16649	// Management (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-iam-template.html).
16650	ResourceTypes []*string `type:"list"`
16651
16652	// The Amazon Resource Name (ARN) of an AWS Identity and Access Management (IAM)
16653	// role that AWS CloudFormation assumes to update the stack. AWS CloudFormation
16654	// uses the role's credentials to make calls on your behalf. AWS CloudFormation
16655	// always uses this role for all future operations on the stack. As long as
16656	// users have permission to operate on the stack, AWS CloudFormation uses this
16657	// role even if the users don't have permission to pass it. Ensure that the
16658	// role grants least privilege.
16659	//
16660	// If you don't specify a value, AWS CloudFormation uses the role that was previously
16661	// associated with the stack. If no role is available, AWS CloudFormation uses
16662	// a temporary session that is generated from your user credentials.
16663	RoleARN *string `min:"20" type:"string"`
16664
16665	// The rollback triggers for AWS CloudFormation to monitor during stack creation
16666	// and updating operations, and for the specified monitoring period afterwards.
16667	RollbackConfiguration *RollbackConfiguration `type:"structure"`
16668
16669	// The name or unique stack ID of the stack to update.
16670	//
16671	// StackName is a required field
16672	StackName *string `type:"string" required:"true"`
16673
16674	// Structure containing a new stack policy body. You can specify either the
16675	// StackPolicyBody or the StackPolicyURL parameter, but not both.
16676	//
16677	// You might update the stack policy, for example, in order to protect a new
16678	// resource that you created during a stack update. If you do not specify a
16679	// stack policy, the current policy that is associated with the stack is unchanged.
16680	StackPolicyBody *string `min:"1" type:"string"`
16681
16682	// Structure containing the temporary overriding stack policy body. You can
16683	// specify either the StackPolicyDuringUpdateBody or the StackPolicyDuringUpdateURL
16684	// parameter, but not both.
16685	//
16686	// If you want to update protected resources, specify a temporary overriding
16687	// stack policy during this update. If you do not specify a stack policy, the
16688	// current policy that is associated with the stack will be used.
16689	StackPolicyDuringUpdateBody *string `min:"1" type:"string"`
16690
16691	// Location of a file containing the temporary overriding stack policy. The
16692	// URL must point to a policy (max size: 16KB) located in an S3 bucket in the
16693	// same Region as the stack. You can specify either the StackPolicyDuringUpdateBody
16694	// or the StackPolicyDuringUpdateURL parameter, but not both.
16695	//
16696	// If you want to update protected resources, specify a temporary overriding
16697	// stack policy during this update. If you do not specify a stack policy, the
16698	// current policy that is associated with the stack will be used.
16699	StackPolicyDuringUpdateURL *string `min:"1" type:"string"`
16700
16701	// Location of a file containing the updated stack policy. The URL must point
16702	// to a policy (max size: 16KB) located in an S3 bucket in the same Region as
16703	// the stack. You can specify either the StackPolicyBody or the StackPolicyURL
16704	// parameter, but not both.
16705	//
16706	// You might update the stack policy, for example, in order to protect a new
16707	// resource that you created during a stack update. If you do not specify a
16708	// stack policy, the current policy that is associated with the stack is unchanged.
16709	StackPolicyURL *string `min:"1" type:"string"`
16710
16711	// Key-value pairs to associate with this stack. AWS CloudFormation also propagates
16712	// these tags to supported resources in the stack. You can specify a maximum
16713	// number of 50 tags.
16714	//
16715	// If you don't specify this parameter, AWS CloudFormation doesn't modify the
16716	// stack's tags. If you specify an empty value, AWS CloudFormation removes all
16717	// associated tags.
16718	Tags []*Tag `type:"list"`
16719
16720	// Structure containing the template body with a minimum length of 1 byte and
16721	// a maximum length of 51,200 bytes. (For more information, go to Template Anatomy
16722	// (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/template-anatomy.html)
16723	// in the AWS CloudFormation User Guide.)
16724	//
16725	// Conditional: You must specify only one of the following parameters: TemplateBody,
16726	// TemplateURL, or set the UsePreviousTemplate to true.
16727	TemplateBody *string `min:"1" type:"string"`
16728
16729	// Location of file containing the template body. The URL must point to a template
16730	// that is located in an Amazon S3 bucket or a Systems Manager document. For
16731	// more information, go to Template Anatomy (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/template-anatomy.html)
16732	// in the AWS CloudFormation User Guide.
16733	//
16734	// Conditional: You must specify only one of the following parameters: TemplateBody,
16735	// TemplateURL, or set the UsePreviousTemplate to true.
16736	TemplateURL *string `min:"1" type:"string"`
16737
16738	// Reuse the existing template that is associated with the stack that you are
16739	// updating.
16740	//
16741	// Conditional: You must specify only one of the following parameters: TemplateBody,
16742	// TemplateURL, or set the UsePreviousTemplate to true.
16743	UsePreviousTemplate *bool `type:"boolean"`
16744}
16745
16746// String returns the string representation
16747func (s UpdateStackInput) String() string {
16748	return awsutil.Prettify(s)
16749}
16750
16751// GoString returns the string representation
16752func (s UpdateStackInput) GoString() string {
16753	return s.String()
16754}
16755
16756// Validate inspects the fields of the type to determine if they are valid.
16757func (s *UpdateStackInput) Validate() error {
16758	invalidParams := request.ErrInvalidParams{Context: "UpdateStackInput"}
16759	if s.ClientRequestToken != nil && len(*s.ClientRequestToken) < 1 {
16760		invalidParams.Add(request.NewErrParamMinLen("ClientRequestToken", 1))
16761	}
16762	if s.RoleARN != nil && len(*s.RoleARN) < 20 {
16763		invalidParams.Add(request.NewErrParamMinLen("RoleARN", 20))
16764	}
16765	if s.StackName == nil {
16766		invalidParams.Add(request.NewErrParamRequired("StackName"))
16767	}
16768	if s.StackPolicyBody != nil && len(*s.StackPolicyBody) < 1 {
16769		invalidParams.Add(request.NewErrParamMinLen("StackPolicyBody", 1))
16770	}
16771	if s.StackPolicyDuringUpdateBody != nil && len(*s.StackPolicyDuringUpdateBody) < 1 {
16772		invalidParams.Add(request.NewErrParamMinLen("StackPolicyDuringUpdateBody", 1))
16773	}
16774	if s.StackPolicyDuringUpdateURL != nil && len(*s.StackPolicyDuringUpdateURL) < 1 {
16775		invalidParams.Add(request.NewErrParamMinLen("StackPolicyDuringUpdateURL", 1))
16776	}
16777	if s.StackPolicyURL != nil && len(*s.StackPolicyURL) < 1 {
16778		invalidParams.Add(request.NewErrParamMinLen("StackPolicyURL", 1))
16779	}
16780	if s.TemplateBody != nil && len(*s.TemplateBody) < 1 {
16781		invalidParams.Add(request.NewErrParamMinLen("TemplateBody", 1))
16782	}
16783	if s.TemplateURL != nil && len(*s.TemplateURL) < 1 {
16784		invalidParams.Add(request.NewErrParamMinLen("TemplateURL", 1))
16785	}
16786	if s.RollbackConfiguration != nil {
16787		if err := s.RollbackConfiguration.Validate(); err != nil {
16788			invalidParams.AddNested("RollbackConfiguration", err.(request.ErrInvalidParams))
16789		}
16790	}
16791	if s.Tags != nil {
16792		for i, v := range s.Tags {
16793			if v == nil {
16794				continue
16795			}
16796			if err := v.Validate(); err != nil {
16797				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Tags", i), err.(request.ErrInvalidParams))
16798			}
16799		}
16800	}
16801
16802	if invalidParams.Len() > 0 {
16803		return invalidParams
16804	}
16805	return nil
16806}
16807
16808// SetCapabilities sets the Capabilities field's value.
16809func (s *UpdateStackInput) SetCapabilities(v []*string) *UpdateStackInput {
16810	s.Capabilities = v
16811	return s
16812}
16813
16814// SetClientRequestToken sets the ClientRequestToken field's value.
16815func (s *UpdateStackInput) SetClientRequestToken(v string) *UpdateStackInput {
16816	s.ClientRequestToken = &v
16817	return s
16818}
16819
16820// SetNotificationARNs sets the NotificationARNs field's value.
16821func (s *UpdateStackInput) SetNotificationARNs(v []*string) *UpdateStackInput {
16822	s.NotificationARNs = v
16823	return s
16824}
16825
16826// SetParameters sets the Parameters field's value.
16827func (s *UpdateStackInput) SetParameters(v []*Parameter) *UpdateStackInput {
16828	s.Parameters = v
16829	return s
16830}
16831
16832// SetResourceTypes sets the ResourceTypes field's value.
16833func (s *UpdateStackInput) SetResourceTypes(v []*string) *UpdateStackInput {
16834	s.ResourceTypes = v
16835	return s
16836}
16837
16838// SetRoleARN sets the RoleARN field's value.
16839func (s *UpdateStackInput) SetRoleARN(v string) *UpdateStackInput {
16840	s.RoleARN = &v
16841	return s
16842}
16843
16844// SetRollbackConfiguration sets the RollbackConfiguration field's value.
16845func (s *UpdateStackInput) SetRollbackConfiguration(v *RollbackConfiguration) *UpdateStackInput {
16846	s.RollbackConfiguration = v
16847	return s
16848}
16849
16850// SetStackName sets the StackName field's value.
16851func (s *UpdateStackInput) SetStackName(v string) *UpdateStackInput {
16852	s.StackName = &v
16853	return s
16854}
16855
16856// SetStackPolicyBody sets the StackPolicyBody field's value.
16857func (s *UpdateStackInput) SetStackPolicyBody(v string) *UpdateStackInput {
16858	s.StackPolicyBody = &v
16859	return s
16860}
16861
16862// SetStackPolicyDuringUpdateBody sets the StackPolicyDuringUpdateBody field's value.
16863func (s *UpdateStackInput) SetStackPolicyDuringUpdateBody(v string) *UpdateStackInput {
16864	s.StackPolicyDuringUpdateBody = &v
16865	return s
16866}
16867
16868// SetStackPolicyDuringUpdateURL sets the StackPolicyDuringUpdateURL field's value.
16869func (s *UpdateStackInput) SetStackPolicyDuringUpdateURL(v string) *UpdateStackInput {
16870	s.StackPolicyDuringUpdateURL = &v
16871	return s
16872}
16873
16874// SetStackPolicyURL sets the StackPolicyURL field's value.
16875func (s *UpdateStackInput) SetStackPolicyURL(v string) *UpdateStackInput {
16876	s.StackPolicyURL = &v
16877	return s
16878}
16879
16880// SetTags sets the Tags field's value.
16881func (s *UpdateStackInput) SetTags(v []*Tag) *UpdateStackInput {
16882	s.Tags = v
16883	return s
16884}
16885
16886// SetTemplateBody sets the TemplateBody field's value.
16887func (s *UpdateStackInput) SetTemplateBody(v string) *UpdateStackInput {
16888	s.TemplateBody = &v
16889	return s
16890}
16891
16892// SetTemplateURL sets the TemplateURL field's value.
16893func (s *UpdateStackInput) SetTemplateURL(v string) *UpdateStackInput {
16894	s.TemplateURL = &v
16895	return s
16896}
16897
16898// SetUsePreviousTemplate sets the UsePreviousTemplate field's value.
16899func (s *UpdateStackInput) SetUsePreviousTemplate(v bool) *UpdateStackInput {
16900	s.UsePreviousTemplate = &v
16901	return s
16902}
16903
16904type UpdateStackInstancesInput struct {
16905	_ struct{} `type:"structure"`
16906
16907	// [Self-managed permissions] The names of one or more AWS accounts for which
16908	// you want to update parameter values for stack instances. The overridden parameter
16909	// values will be applied to all stack instances in the specified accounts and
16910	// Regions.
16911	//
16912	// You can specify Accounts or DeploymentTargets, but not both.
16913	Accounts []*string `type:"list"`
16914
16915	// [Service-managed permissions] Specifies whether you are acting as an account
16916	// administrator in the organization's management account or as a delegated
16917	// administrator in a member account.
16918	//
16919	// By default, SELF is specified. Use SELF for stack sets with self-managed
16920	// permissions.
16921	//
16922	//    * If you are signed in to the management account, specify SELF.
16923	//
16924	//    * If you are signed in to a delegated administrator account, specify DELEGATED_ADMIN.
16925	//    Your AWS account must be registered as a delegated administrator in the
16926	//    management account. For more information, see Register a delegated administrator
16927	//    (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/stacksets-orgs-delegated-admin.html)
16928	//    in the AWS CloudFormation User Guide.
16929	CallAs *string `type:"string" enum:"CallAs"`
16930
16931	// [Service-managed permissions] The AWS Organizations accounts for which you
16932	// want to update parameter values for stack instances. If your update targets
16933	// OUs, the overridden parameter values only apply to the accounts that are
16934	// currently in the target OUs and their child OUs. Accounts added to the target
16935	// OUs and their child OUs in the future won't use the overridden values.
16936	//
16937	// You can specify Accounts or DeploymentTargets, but not both.
16938	DeploymentTargets *DeploymentTargets `type:"structure"`
16939
16940	// The unique identifier for this stack set operation.
16941	//
16942	// The operation ID also functions as an idempotency token, to ensure that AWS
16943	// CloudFormation performs the stack set operation only once, even if you retry
16944	// the request multiple times. You might retry stack set operation requests
16945	// to ensure that AWS CloudFormation successfully received them.
16946	//
16947	// If you don't specify an operation ID, the SDK generates one automatically.
16948	OperationId *string `min:"1" type:"string" idempotencyToken:"true"`
16949
16950	// Preferences for how AWS CloudFormation performs this stack set operation.
16951	OperationPreferences *StackSetOperationPreferences `type:"structure"`
16952
16953	// A list of input parameters whose values you want to update for the specified
16954	// stack instances.
16955	//
16956	// Any overridden parameter values will be applied to all stack instances in
16957	// the specified accounts and Regions. When specifying parameters and their
16958	// values, be aware of how AWS CloudFormation sets parameter values during stack
16959	// instance update operations:
16960	//
16961	//    * To override the current value for a parameter, include the parameter
16962	//    and specify its value.
16963	//
16964	//    * To leave a parameter set to its present value, you can do one of the
16965	//    following: Do not include the parameter in the list. Include the parameter
16966	//    and specify UsePreviousValue as true. (You cannot specify both a value
16967	//    and set UsePreviousValue to true.)
16968	//
16969	//    * To set all overridden parameter back to the values specified in the
16970	//    stack set, specify a parameter list but do not include any parameters.
16971	//
16972	//    * To leave all parameters set to their present values, do not specify
16973	//    this property at all.
16974	//
16975	// During stack set updates, any parameter values overridden for a stack instance
16976	// are not updated, but retain their overridden value.
16977	//
16978	// You can only override the parameter values that are specified in the stack
16979	// set; to add or delete a parameter itself, use UpdateStackSet to update the
16980	// stack set template. If you add a parameter to a template, before you can
16981	// override the parameter value specified in the stack set you must first use
16982	// UpdateStackSet (https://docs.aws.amazon.com/AWSCloudFormation/latest/APIReference/API_UpdateStackSet.html)
16983	// to update all stack instances with the updated template and parameter value
16984	// specified in the stack set. Once a stack instance has been updated with the
16985	// new parameter, you can then override the parameter value using UpdateStackInstances.
16986	ParameterOverrides []*Parameter `type:"list"`
16987
16988	// The names of one or more Regions in which you want to update parameter values
16989	// for stack instances. The overridden parameter values will be applied to all
16990	// stack instances in the specified accounts and Regions.
16991	//
16992	// Regions is a required field
16993	Regions []*string `type:"list" required:"true"`
16994
16995	// The name or unique ID of the stack set associated with the stack instances.
16996	//
16997	// StackSetName is a required field
16998	StackSetName *string `type:"string" required:"true"`
16999}
17000
17001// String returns the string representation
17002func (s UpdateStackInstancesInput) String() string {
17003	return awsutil.Prettify(s)
17004}
17005
17006// GoString returns the string representation
17007func (s UpdateStackInstancesInput) GoString() string {
17008	return s.String()
17009}
17010
17011// Validate inspects the fields of the type to determine if they are valid.
17012func (s *UpdateStackInstancesInput) Validate() error {
17013	invalidParams := request.ErrInvalidParams{Context: "UpdateStackInstancesInput"}
17014	if s.OperationId != nil && len(*s.OperationId) < 1 {
17015		invalidParams.Add(request.NewErrParamMinLen("OperationId", 1))
17016	}
17017	if s.Regions == nil {
17018		invalidParams.Add(request.NewErrParamRequired("Regions"))
17019	}
17020	if s.StackSetName == nil {
17021		invalidParams.Add(request.NewErrParamRequired("StackSetName"))
17022	}
17023	if s.DeploymentTargets != nil {
17024		if err := s.DeploymentTargets.Validate(); err != nil {
17025			invalidParams.AddNested("DeploymentTargets", err.(request.ErrInvalidParams))
17026		}
17027	}
17028	if s.OperationPreferences != nil {
17029		if err := s.OperationPreferences.Validate(); err != nil {
17030			invalidParams.AddNested("OperationPreferences", err.(request.ErrInvalidParams))
17031		}
17032	}
17033
17034	if invalidParams.Len() > 0 {
17035		return invalidParams
17036	}
17037	return nil
17038}
17039
17040// SetAccounts sets the Accounts field's value.
17041func (s *UpdateStackInstancesInput) SetAccounts(v []*string) *UpdateStackInstancesInput {
17042	s.Accounts = v
17043	return s
17044}
17045
17046// SetCallAs sets the CallAs field's value.
17047func (s *UpdateStackInstancesInput) SetCallAs(v string) *UpdateStackInstancesInput {
17048	s.CallAs = &v
17049	return s
17050}
17051
17052// SetDeploymentTargets sets the DeploymentTargets field's value.
17053func (s *UpdateStackInstancesInput) SetDeploymentTargets(v *DeploymentTargets) *UpdateStackInstancesInput {
17054	s.DeploymentTargets = v
17055	return s
17056}
17057
17058// SetOperationId sets the OperationId field's value.
17059func (s *UpdateStackInstancesInput) SetOperationId(v string) *UpdateStackInstancesInput {
17060	s.OperationId = &v
17061	return s
17062}
17063
17064// SetOperationPreferences sets the OperationPreferences field's value.
17065func (s *UpdateStackInstancesInput) SetOperationPreferences(v *StackSetOperationPreferences) *UpdateStackInstancesInput {
17066	s.OperationPreferences = v
17067	return s
17068}
17069
17070// SetParameterOverrides sets the ParameterOverrides field's value.
17071func (s *UpdateStackInstancesInput) SetParameterOverrides(v []*Parameter) *UpdateStackInstancesInput {
17072	s.ParameterOverrides = v
17073	return s
17074}
17075
17076// SetRegions sets the Regions field's value.
17077func (s *UpdateStackInstancesInput) SetRegions(v []*string) *UpdateStackInstancesInput {
17078	s.Regions = v
17079	return s
17080}
17081
17082// SetStackSetName sets the StackSetName field's value.
17083func (s *UpdateStackInstancesInput) SetStackSetName(v string) *UpdateStackInstancesInput {
17084	s.StackSetName = &v
17085	return s
17086}
17087
17088type UpdateStackInstancesOutput struct {
17089	_ struct{} `type:"structure"`
17090
17091	// The unique identifier for this stack set operation.
17092	OperationId *string `min:"1" type:"string"`
17093}
17094
17095// String returns the string representation
17096func (s UpdateStackInstancesOutput) String() string {
17097	return awsutil.Prettify(s)
17098}
17099
17100// GoString returns the string representation
17101func (s UpdateStackInstancesOutput) GoString() string {
17102	return s.String()
17103}
17104
17105// SetOperationId sets the OperationId field's value.
17106func (s *UpdateStackInstancesOutput) SetOperationId(v string) *UpdateStackInstancesOutput {
17107	s.OperationId = &v
17108	return s
17109}
17110
17111// The output for an UpdateStack action.
17112type UpdateStackOutput struct {
17113	_ struct{} `type:"structure"`
17114
17115	// Unique identifier of the stack.
17116	StackId *string `type:"string"`
17117}
17118
17119// String returns the string representation
17120func (s UpdateStackOutput) String() string {
17121	return awsutil.Prettify(s)
17122}
17123
17124// GoString returns the string representation
17125func (s UpdateStackOutput) GoString() string {
17126	return s.String()
17127}
17128
17129// SetStackId sets the StackId field's value.
17130func (s *UpdateStackOutput) SetStackId(v string) *UpdateStackOutput {
17131	s.StackId = &v
17132	return s
17133}
17134
17135type UpdateStackSetInput struct {
17136	_ struct{} `type:"structure"`
17137
17138	// [Self-managed permissions] The accounts in which to update associated stack
17139	// instances. If you specify accounts, you must also specify the Regions in
17140	// which to update stack set instances.
17141	//
17142	// To update all the stack instances associated with this stack set, do not
17143	// specify the Accounts or Regions properties.
17144	//
17145	// If the stack set update includes changes to the template (that is, if the
17146	// TemplateBody or TemplateURL properties are specified), or the Parameters
17147	// property, AWS CloudFormation marks all stack instances with a status of OUTDATED
17148	// prior to updating the stack instances in the specified accounts and Regions.
17149	// If the stack set update does not include changes to the template or parameters,
17150	// AWS CloudFormation updates the stack instances in the specified accounts
17151	// and Regions, while leaving all other stack instances with their existing
17152	// stack instance status.
17153	Accounts []*string `type:"list"`
17154
17155	// The Amazon Resource Number (ARN) of the IAM role to use to update this stack
17156	// set.
17157	//
17158	// Specify an IAM role only if you are using customized administrator roles
17159	// to control which users or groups can manage specific stack sets within the
17160	// same administrator account. For more information, see Granting Permissions
17161	// for Stack Set Operations (http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/stacksets-prereqs.html)
17162	// in the AWS CloudFormation User Guide.
17163	//
17164	// If you specified a customized administrator role when you created the stack
17165	// set, you must specify a customized administrator role, even if it is the
17166	// same customized administrator role used with this stack set previously.
17167	AdministrationRoleARN *string `min:"20" type:"string"`
17168
17169	// [Service-managed permissions] Describes whether StackSets automatically deploys
17170	// to AWS Organizations accounts that are added to a target organization or
17171	// organizational unit (OU).
17172	//
17173	// If you specify AutoDeployment, do not specify DeploymentTargets or Regions.
17174	AutoDeployment *AutoDeployment `type:"structure"`
17175
17176	// [Service-managed permissions] Specifies whether you are acting as an account
17177	// administrator in the organization's management account or as a delegated
17178	// administrator in a member account.
17179	//
17180	// By default, SELF is specified. Use SELF for stack sets with self-managed
17181	// permissions.
17182	//
17183	//    * If you are signed in to the management account, specify SELF.
17184	//
17185	//    * If you are signed in to a delegated administrator account, specify DELEGATED_ADMIN.
17186	//    Your AWS account must be registered as a delegated administrator in the
17187	//    management account. For more information, see Register a delegated administrator
17188	//    (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/stacksets-orgs-delegated-admin.html)
17189	//    in the AWS CloudFormation User Guide.
17190	CallAs *string `type:"string" enum:"CallAs"`
17191
17192	// In some cases, you must explicitly acknowledge that your stack template contains
17193	// certain capabilities in order for AWS CloudFormation to update the stack
17194	// set and its associated stack instances.
17195	//
17196	//    * CAPABILITY_IAM and CAPABILITY_NAMED_IAM Some stack templates might include
17197	//    resources that can affect permissions in your AWS account; for example,
17198	//    by creating new AWS Identity and Access Management (IAM) users. For those
17199	//    stacks sets, you must explicitly acknowledge this by specifying one of
17200	//    these capabilities. The following IAM resources require you to specify
17201	//    either the CAPABILITY_IAM or CAPABILITY_NAMED_IAM capability. If you have
17202	//    IAM resources, you can specify either capability. If you have IAM resources
17203	//    with custom names, you must specify CAPABILITY_NAMED_IAM. If you don't
17204	//    specify either of these capabilities, AWS CloudFormation returns an InsufficientCapabilities
17205	//    error. If your stack template contains these resources, we recommend that
17206	//    you review all permissions associated with them and edit their permissions
17207	//    if necessary. AWS::IAM::AccessKey (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iam-accesskey.html)
17208	//    AWS::IAM::Group (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iam-group.html)
17209	//    AWS::IAM::InstanceProfile (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iam-instanceprofile.html)
17210	//    AWS::IAM::Policy (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iam-policy.html)
17211	//    AWS::IAM::Role (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iam-role.html)
17212	//    AWS::IAM::User (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iam-user.html)
17213	//    AWS::IAM::UserToGroupAddition (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iam-addusertogroup.html)
17214	//    For more information, see Acknowledging IAM Resources in AWS CloudFormation
17215	//    Templates (http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-iam-template.html#capabilities).
17216	//
17217	//    * CAPABILITY_AUTO_EXPAND Some templates reference macros. If your stack
17218	//    set template references one or more macros, you must update the stack
17219	//    set directly from the processed template, without first reviewing the
17220	//    resulting changes in a change set. To update the stack set directly, you
17221	//    must acknowledge this capability. For more information, see Using AWS
17222	//    CloudFormation Macros to Perform Custom Processing on Templates (http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/template-macros.html).
17223	//    Stack sets with service-managed permissions do not currently support the
17224	//    use of macros in templates. (This includes the AWS::Include (http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/create-reusable-transform-function-snippets-and-add-to-your-template-with-aws-include-transform.html)
17225	//    and AWS::Serverless (http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/transform-aws-serverless.html)
17226	//    transforms, which are macros hosted by AWS CloudFormation.) Even if you
17227	//    specify this capability for a stack set with service-managed permissions,
17228	//    if you reference a macro in your template the stack set operation will
17229	//    fail.
17230	Capabilities []*string `type:"list"`
17231
17232	// [Service-managed permissions] The AWS Organizations accounts in which to
17233	// update associated stack instances.
17234	//
17235	// To update all the stack instances associated with this stack set, do not
17236	// specify DeploymentTargets or Regions.
17237	//
17238	// If the stack set update includes changes to the template (that is, if TemplateBody
17239	// or TemplateURL is specified), or the Parameters, AWS CloudFormation marks
17240	// all stack instances with a status of OUTDATED prior to updating the stack
17241	// instances in the specified accounts and Regions. If the stack set update
17242	// does not include changes to the template or parameters, AWS CloudFormation
17243	// updates the stack instances in the specified accounts and Regions, while
17244	// leaving all other stack instances with their existing stack instance status.
17245	DeploymentTargets *DeploymentTargets `type:"structure"`
17246
17247	// A brief description of updates that you are making.
17248	Description *string `min:"1" type:"string"`
17249
17250	// The name of the IAM execution role to use to update the stack set. If you
17251	// do not specify an execution role, AWS CloudFormation uses the AWSCloudFormationStackSetExecutionRole
17252	// role for the stack set operation.
17253	//
17254	// Specify an IAM role only if you are using customized execution roles to control
17255	// which stack resources users and groups can include in their stack sets.
17256	//
17257	// If you specify a customized execution role, AWS CloudFormation uses that
17258	// role to update the stack. If you do not specify a customized execution role,
17259	// AWS CloudFormation performs the update using the role previously associated
17260	// with the stack set, so long as you have permissions to perform operations
17261	// on the stack set.
17262	ExecutionRoleName *string `min:"1" type:"string"`
17263
17264	// The unique ID for this stack set operation.
17265	//
17266	// The operation ID also functions as an idempotency token, to ensure that AWS
17267	// CloudFormation performs the stack set operation only once, even if you retry
17268	// the request multiple times. You might retry stack set operation requests
17269	// to ensure that AWS CloudFormation successfully received them.
17270	//
17271	// If you don't specify an operation ID, AWS CloudFormation generates one automatically.
17272	//
17273	// Repeating this stack set operation with a new operation ID retries all stack
17274	// instances whose status is OUTDATED.
17275	OperationId *string `min:"1" type:"string" idempotencyToken:"true"`
17276
17277	// Preferences for how AWS CloudFormation performs this stack set operation.
17278	OperationPreferences *StackSetOperationPreferences `type:"structure"`
17279
17280	// A list of input parameters for the stack set template.
17281	Parameters []*Parameter `type:"list"`
17282
17283	// Describes how the IAM roles required for stack set operations are created.
17284	// You cannot modify PermissionModel if there are stack instances associated
17285	// with your stack set.
17286	//
17287	//    * With self-managed permissions, you must create the administrator and
17288	//    execution roles required to deploy to target accounts. For more information,
17289	//    see Grant Self-Managed Stack Set Permissions (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/stacksets-prereqs-self-managed.html).
17290	//
17291	//    * With service-managed permissions, StackSets automatically creates the
17292	//    IAM roles required to deploy to accounts managed by AWS Organizations.
17293	//    For more information, see Grant Service-Managed Stack Set Permissions
17294	//    (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/stacksets-prereqs-service-managed.html).
17295	PermissionModel *string `type:"string" enum:"PermissionModels"`
17296
17297	// The Regions in which to update associated stack instances. If you specify
17298	// Regions, you must also specify accounts in which to update stack set instances.
17299	//
17300	// To update all the stack instances associated with this stack set, do not
17301	// specify the Accounts or Regions properties.
17302	//
17303	// If the stack set update includes changes to the template (that is, if the
17304	// TemplateBody or TemplateURL properties are specified), or the Parameters
17305	// property, AWS CloudFormation marks all stack instances with a status of OUTDATED
17306	// prior to updating the stack instances in the specified accounts and Regions.
17307	// If the stack set update does not include changes to the template or parameters,
17308	// AWS CloudFormation updates the stack instances in the specified accounts
17309	// and Regions, while leaving all other stack instances with their existing
17310	// stack instance status.
17311	Regions []*string `type:"list"`
17312
17313	// The name or unique ID of the stack set that you want to update.
17314	//
17315	// StackSetName is a required field
17316	StackSetName *string `type:"string" required:"true"`
17317
17318	// The key-value pairs to associate with this stack set and the stacks created
17319	// from it. AWS CloudFormation also propagates these tags to supported resources
17320	// that are created in the stacks. You can specify a maximum number of 50 tags.
17321	//
17322	// If you specify tags for this parameter, those tags replace any list of tags
17323	// that are currently associated with this stack set. This means:
17324	//
17325	//    * If you don't specify this parameter, AWS CloudFormation doesn't modify
17326	//    the stack's tags.
17327	//
17328	//    * If you specify any tags using this parameter, you must specify all the
17329	//    tags that you want associated with this stack set, even tags you've specifed
17330	//    before (for example, when creating the stack set or during a previous
17331	//    update of the stack set.). Any tags that you don't include in the updated
17332	//    list of tags are removed from the stack set, and therefore from the stacks
17333	//    and resources as well.
17334	//
17335	//    * If you specify an empty value, AWS CloudFormation removes all currently
17336	//    associated tags.
17337	//
17338	// If you specify new tags as part of an UpdateStackSet action, AWS CloudFormation
17339	// checks to see if you have the required IAM permission to tag resources. If
17340	// you omit tags that are currently associated with the stack set from the list
17341	// of tags you specify, AWS CloudFormation assumes that you want to remove those
17342	// tags from the stack set, and checks to see if you have permission to untag
17343	// resources. If you don't have the necessary permission(s), the entire UpdateStackSet
17344	// action fails with an access denied error, and the stack set is not updated.
17345	Tags []*Tag `type:"list"`
17346
17347	// The structure that contains the template body, with a minimum length of 1
17348	// byte and a maximum length of 51,200 bytes. For more information, see Template
17349	// Anatomy (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/template-anatomy.html)
17350	// in the AWS CloudFormation User Guide.
17351	//
17352	// Conditional: You must specify only one of the following parameters: TemplateBody
17353	// or TemplateURL—or set UsePreviousTemplate to true.
17354	TemplateBody *string `min:"1" type:"string"`
17355
17356	// The location of the file that contains the template body. The URL must point
17357	// to a template (maximum size: 460,800 bytes) that is located in an Amazon
17358	// S3 bucket or a Systems Manager document. For more information, see Template
17359	// Anatomy (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/template-anatomy.html)
17360	// in the AWS CloudFormation User Guide.
17361	//
17362	// Conditional: You must specify only one of the following parameters: TemplateBody
17363	// or TemplateURL—or set UsePreviousTemplate to true.
17364	TemplateURL *string `min:"1" type:"string"`
17365
17366	// Use the existing template that's associated with the stack set that you're
17367	// updating.
17368	//
17369	// Conditional: You must specify only one of the following parameters: TemplateBody
17370	// or TemplateURL—or set UsePreviousTemplate to true.
17371	UsePreviousTemplate *bool `type:"boolean"`
17372}
17373
17374// String returns the string representation
17375func (s UpdateStackSetInput) String() string {
17376	return awsutil.Prettify(s)
17377}
17378
17379// GoString returns the string representation
17380func (s UpdateStackSetInput) GoString() string {
17381	return s.String()
17382}
17383
17384// Validate inspects the fields of the type to determine if they are valid.
17385func (s *UpdateStackSetInput) Validate() error {
17386	invalidParams := request.ErrInvalidParams{Context: "UpdateStackSetInput"}
17387	if s.AdministrationRoleARN != nil && len(*s.AdministrationRoleARN) < 20 {
17388		invalidParams.Add(request.NewErrParamMinLen("AdministrationRoleARN", 20))
17389	}
17390	if s.Description != nil && len(*s.Description) < 1 {
17391		invalidParams.Add(request.NewErrParamMinLen("Description", 1))
17392	}
17393	if s.ExecutionRoleName != nil && len(*s.ExecutionRoleName) < 1 {
17394		invalidParams.Add(request.NewErrParamMinLen("ExecutionRoleName", 1))
17395	}
17396	if s.OperationId != nil && len(*s.OperationId) < 1 {
17397		invalidParams.Add(request.NewErrParamMinLen("OperationId", 1))
17398	}
17399	if s.StackSetName == nil {
17400		invalidParams.Add(request.NewErrParamRequired("StackSetName"))
17401	}
17402	if s.TemplateBody != nil && len(*s.TemplateBody) < 1 {
17403		invalidParams.Add(request.NewErrParamMinLen("TemplateBody", 1))
17404	}
17405	if s.TemplateURL != nil && len(*s.TemplateURL) < 1 {
17406		invalidParams.Add(request.NewErrParamMinLen("TemplateURL", 1))
17407	}
17408	if s.DeploymentTargets != nil {
17409		if err := s.DeploymentTargets.Validate(); err != nil {
17410			invalidParams.AddNested("DeploymentTargets", err.(request.ErrInvalidParams))
17411		}
17412	}
17413	if s.OperationPreferences != nil {
17414		if err := s.OperationPreferences.Validate(); err != nil {
17415			invalidParams.AddNested("OperationPreferences", err.(request.ErrInvalidParams))
17416		}
17417	}
17418	if s.Tags != nil {
17419		for i, v := range s.Tags {
17420			if v == nil {
17421				continue
17422			}
17423			if err := v.Validate(); err != nil {
17424				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Tags", i), err.(request.ErrInvalidParams))
17425			}
17426		}
17427	}
17428
17429	if invalidParams.Len() > 0 {
17430		return invalidParams
17431	}
17432	return nil
17433}
17434
17435// SetAccounts sets the Accounts field's value.
17436func (s *UpdateStackSetInput) SetAccounts(v []*string) *UpdateStackSetInput {
17437	s.Accounts = v
17438	return s
17439}
17440
17441// SetAdministrationRoleARN sets the AdministrationRoleARN field's value.
17442func (s *UpdateStackSetInput) SetAdministrationRoleARN(v string) *UpdateStackSetInput {
17443	s.AdministrationRoleARN = &v
17444	return s
17445}
17446
17447// SetAutoDeployment sets the AutoDeployment field's value.
17448func (s *UpdateStackSetInput) SetAutoDeployment(v *AutoDeployment) *UpdateStackSetInput {
17449	s.AutoDeployment = v
17450	return s
17451}
17452
17453// SetCallAs sets the CallAs field's value.
17454func (s *UpdateStackSetInput) SetCallAs(v string) *UpdateStackSetInput {
17455	s.CallAs = &v
17456	return s
17457}
17458
17459// SetCapabilities sets the Capabilities field's value.
17460func (s *UpdateStackSetInput) SetCapabilities(v []*string) *UpdateStackSetInput {
17461	s.Capabilities = v
17462	return s
17463}
17464
17465// SetDeploymentTargets sets the DeploymentTargets field's value.
17466func (s *UpdateStackSetInput) SetDeploymentTargets(v *DeploymentTargets) *UpdateStackSetInput {
17467	s.DeploymentTargets = v
17468	return s
17469}
17470
17471// SetDescription sets the Description field's value.
17472func (s *UpdateStackSetInput) SetDescription(v string) *UpdateStackSetInput {
17473	s.Description = &v
17474	return s
17475}
17476
17477// SetExecutionRoleName sets the ExecutionRoleName field's value.
17478func (s *UpdateStackSetInput) SetExecutionRoleName(v string) *UpdateStackSetInput {
17479	s.ExecutionRoleName = &v
17480	return s
17481}
17482
17483// SetOperationId sets the OperationId field's value.
17484func (s *UpdateStackSetInput) SetOperationId(v string) *UpdateStackSetInput {
17485	s.OperationId = &v
17486	return s
17487}
17488
17489// SetOperationPreferences sets the OperationPreferences field's value.
17490func (s *UpdateStackSetInput) SetOperationPreferences(v *StackSetOperationPreferences) *UpdateStackSetInput {
17491	s.OperationPreferences = v
17492	return s
17493}
17494
17495// SetParameters sets the Parameters field's value.
17496func (s *UpdateStackSetInput) SetParameters(v []*Parameter) *UpdateStackSetInput {
17497	s.Parameters = v
17498	return s
17499}
17500
17501// SetPermissionModel sets the PermissionModel field's value.
17502func (s *UpdateStackSetInput) SetPermissionModel(v string) *UpdateStackSetInput {
17503	s.PermissionModel = &v
17504	return s
17505}
17506
17507// SetRegions sets the Regions field's value.
17508func (s *UpdateStackSetInput) SetRegions(v []*string) *UpdateStackSetInput {
17509	s.Regions = v
17510	return s
17511}
17512
17513// SetStackSetName sets the StackSetName field's value.
17514func (s *UpdateStackSetInput) SetStackSetName(v string) *UpdateStackSetInput {
17515	s.StackSetName = &v
17516	return s
17517}
17518
17519// SetTags sets the Tags field's value.
17520func (s *UpdateStackSetInput) SetTags(v []*Tag) *UpdateStackSetInput {
17521	s.Tags = v
17522	return s
17523}
17524
17525// SetTemplateBody sets the TemplateBody field's value.
17526func (s *UpdateStackSetInput) SetTemplateBody(v string) *UpdateStackSetInput {
17527	s.TemplateBody = &v
17528	return s
17529}
17530
17531// SetTemplateURL sets the TemplateURL field's value.
17532func (s *UpdateStackSetInput) SetTemplateURL(v string) *UpdateStackSetInput {
17533	s.TemplateURL = &v
17534	return s
17535}
17536
17537// SetUsePreviousTemplate sets the UsePreviousTemplate field's value.
17538func (s *UpdateStackSetInput) SetUsePreviousTemplate(v bool) *UpdateStackSetInput {
17539	s.UsePreviousTemplate = &v
17540	return s
17541}
17542
17543type UpdateStackSetOutput struct {
17544	_ struct{} `type:"structure"`
17545
17546	// The unique ID for this stack set operation.
17547	OperationId *string `min:"1" type:"string"`
17548}
17549
17550// String returns the string representation
17551func (s UpdateStackSetOutput) String() string {
17552	return awsutil.Prettify(s)
17553}
17554
17555// GoString returns the string representation
17556func (s UpdateStackSetOutput) GoString() string {
17557	return s.String()
17558}
17559
17560// SetOperationId sets the OperationId field's value.
17561func (s *UpdateStackSetOutput) SetOperationId(v string) *UpdateStackSetOutput {
17562	s.OperationId = &v
17563	return s
17564}
17565
17566type UpdateTerminationProtectionInput struct {
17567	_ struct{} `type:"structure"`
17568
17569	// Whether to enable termination protection on the specified stack.
17570	//
17571	// EnableTerminationProtection is a required field
17572	EnableTerminationProtection *bool `type:"boolean" required:"true"`
17573
17574	// The name or unique ID of the stack for which you want to set termination
17575	// protection.
17576	//
17577	// StackName is a required field
17578	StackName *string `min:"1" type:"string" required:"true"`
17579}
17580
17581// String returns the string representation
17582func (s UpdateTerminationProtectionInput) String() string {
17583	return awsutil.Prettify(s)
17584}
17585
17586// GoString returns the string representation
17587func (s UpdateTerminationProtectionInput) GoString() string {
17588	return s.String()
17589}
17590
17591// Validate inspects the fields of the type to determine if they are valid.
17592func (s *UpdateTerminationProtectionInput) Validate() error {
17593	invalidParams := request.ErrInvalidParams{Context: "UpdateTerminationProtectionInput"}
17594	if s.EnableTerminationProtection == nil {
17595		invalidParams.Add(request.NewErrParamRequired("EnableTerminationProtection"))
17596	}
17597	if s.StackName == nil {
17598		invalidParams.Add(request.NewErrParamRequired("StackName"))
17599	}
17600	if s.StackName != nil && len(*s.StackName) < 1 {
17601		invalidParams.Add(request.NewErrParamMinLen("StackName", 1))
17602	}
17603
17604	if invalidParams.Len() > 0 {
17605		return invalidParams
17606	}
17607	return nil
17608}
17609
17610// SetEnableTerminationProtection sets the EnableTerminationProtection field's value.
17611func (s *UpdateTerminationProtectionInput) SetEnableTerminationProtection(v bool) *UpdateTerminationProtectionInput {
17612	s.EnableTerminationProtection = &v
17613	return s
17614}
17615
17616// SetStackName sets the StackName field's value.
17617func (s *UpdateTerminationProtectionInput) SetStackName(v string) *UpdateTerminationProtectionInput {
17618	s.StackName = &v
17619	return s
17620}
17621
17622type UpdateTerminationProtectionOutput struct {
17623	_ struct{} `type:"structure"`
17624
17625	// The unique ID of the stack.
17626	StackId *string `type:"string"`
17627}
17628
17629// String returns the string representation
17630func (s UpdateTerminationProtectionOutput) String() string {
17631	return awsutil.Prettify(s)
17632}
17633
17634// GoString returns the string representation
17635func (s UpdateTerminationProtectionOutput) GoString() string {
17636	return s.String()
17637}
17638
17639// SetStackId sets the StackId field's value.
17640func (s *UpdateTerminationProtectionOutput) SetStackId(v string) *UpdateTerminationProtectionOutput {
17641	s.StackId = &v
17642	return s
17643}
17644
17645// The input for ValidateTemplate action.
17646type ValidateTemplateInput struct {
17647	_ struct{} `type:"structure"`
17648
17649	// Structure containing the template body with a minimum length of 1 byte and
17650	// a maximum length of 51,200 bytes. For more information, go to Template Anatomy
17651	// (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/template-anatomy.html)
17652	// in the AWS CloudFormation User Guide.
17653	//
17654	// Conditional: You must pass TemplateURL or TemplateBody. If both are passed,
17655	// only TemplateBody is used.
17656	TemplateBody *string `min:"1" type:"string"`
17657
17658	// Location of file containing the template body. The URL must point to a template
17659	// (max size: 460,800 bytes) that is located in an Amazon S3 bucket or a Systems
17660	// Manager document. For more information, go to Template Anatomy (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/template-anatomy.html)
17661	// in the AWS CloudFormation User Guide.
17662	//
17663	// Conditional: You must pass TemplateURL or TemplateBody. If both are passed,
17664	// only TemplateBody is used.
17665	TemplateURL *string `min:"1" type:"string"`
17666}
17667
17668// String returns the string representation
17669func (s ValidateTemplateInput) String() string {
17670	return awsutil.Prettify(s)
17671}
17672
17673// GoString returns the string representation
17674func (s ValidateTemplateInput) GoString() string {
17675	return s.String()
17676}
17677
17678// Validate inspects the fields of the type to determine if they are valid.
17679func (s *ValidateTemplateInput) Validate() error {
17680	invalidParams := request.ErrInvalidParams{Context: "ValidateTemplateInput"}
17681	if s.TemplateBody != nil && len(*s.TemplateBody) < 1 {
17682		invalidParams.Add(request.NewErrParamMinLen("TemplateBody", 1))
17683	}
17684	if s.TemplateURL != nil && len(*s.TemplateURL) < 1 {
17685		invalidParams.Add(request.NewErrParamMinLen("TemplateURL", 1))
17686	}
17687
17688	if invalidParams.Len() > 0 {
17689		return invalidParams
17690	}
17691	return nil
17692}
17693
17694// SetTemplateBody sets the TemplateBody field's value.
17695func (s *ValidateTemplateInput) SetTemplateBody(v string) *ValidateTemplateInput {
17696	s.TemplateBody = &v
17697	return s
17698}
17699
17700// SetTemplateURL sets the TemplateURL field's value.
17701func (s *ValidateTemplateInput) SetTemplateURL(v string) *ValidateTemplateInput {
17702	s.TemplateURL = &v
17703	return s
17704}
17705
17706// The output for ValidateTemplate action.
17707type ValidateTemplateOutput struct {
17708	_ struct{} `type:"structure"`
17709
17710	// The capabilities found within the template. If your template contains IAM
17711	// resources, you must specify the CAPABILITY_IAM or CAPABILITY_NAMED_IAM value
17712	// for this parameter when you use the CreateStack or UpdateStack actions with
17713	// your template; otherwise, those actions return an InsufficientCapabilities
17714	// error.
17715	//
17716	// For more information, see Acknowledging IAM Resources in AWS CloudFormation
17717	// Templates (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-iam-template.html#capabilities).
17718	Capabilities []*string `type:"list"`
17719
17720	// The list of resources that generated the values in the Capabilities response
17721	// element.
17722	CapabilitiesReason *string `type:"string"`
17723
17724	// A list of the transforms that are declared in the template.
17725	DeclaredTransforms []*string `type:"list"`
17726
17727	// The description found within the template.
17728	Description *string `min:"1" type:"string"`
17729
17730	// A list of TemplateParameter structures.
17731	Parameters []*TemplateParameter `type:"list"`
17732}
17733
17734// String returns the string representation
17735func (s ValidateTemplateOutput) String() string {
17736	return awsutil.Prettify(s)
17737}
17738
17739// GoString returns the string representation
17740func (s ValidateTemplateOutput) GoString() string {
17741	return s.String()
17742}
17743
17744// SetCapabilities sets the Capabilities field's value.
17745func (s *ValidateTemplateOutput) SetCapabilities(v []*string) *ValidateTemplateOutput {
17746	s.Capabilities = v
17747	return s
17748}
17749
17750// SetCapabilitiesReason sets the CapabilitiesReason field's value.
17751func (s *ValidateTemplateOutput) SetCapabilitiesReason(v string) *ValidateTemplateOutput {
17752	s.CapabilitiesReason = &v
17753	return s
17754}
17755
17756// SetDeclaredTransforms sets the DeclaredTransforms field's value.
17757func (s *ValidateTemplateOutput) SetDeclaredTransforms(v []*string) *ValidateTemplateOutput {
17758	s.DeclaredTransforms = v
17759	return s
17760}
17761
17762// SetDescription sets the Description field's value.
17763func (s *ValidateTemplateOutput) SetDescription(v string) *ValidateTemplateOutput {
17764	s.Description = &v
17765	return s
17766}
17767
17768// SetParameters sets the Parameters field's value.
17769func (s *ValidateTemplateOutput) SetParameters(v []*TemplateParameter) *ValidateTemplateOutput {
17770	s.Parameters = v
17771	return s
17772}
17773
17774const (
17775	// AccountGateStatusSucceeded is a AccountGateStatus enum value
17776	AccountGateStatusSucceeded = "SUCCEEDED"
17777
17778	// AccountGateStatusFailed is a AccountGateStatus enum value
17779	AccountGateStatusFailed = "FAILED"
17780
17781	// AccountGateStatusSkipped is a AccountGateStatus enum value
17782	AccountGateStatusSkipped = "SKIPPED"
17783)
17784
17785// AccountGateStatus_Values returns all elements of the AccountGateStatus enum
17786func AccountGateStatus_Values() []string {
17787	return []string{
17788		AccountGateStatusSucceeded,
17789		AccountGateStatusFailed,
17790		AccountGateStatusSkipped,
17791	}
17792}
17793
17794const (
17795	// CallAsSelf is a CallAs enum value
17796	CallAsSelf = "SELF"
17797
17798	// CallAsDelegatedAdmin is a CallAs enum value
17799	CallAsDelegatedAdmin = "DELEGATED_ADMIN"
17800)
17801
17802// CallAs_Values returns all elements of the CallAs enum
17803func CallAs_Values() []string {
17804	return []string{
17805		CallAsSelf,
17806		CallAsDelegatedAdmin,
17807	}
17808}
17809
17810const (
17811	// CapabilityCapabilityIam is a Capability enum value
17812	CapabilityCapabilityIam = "CAPABILITY_IAM"
17813
17814	// CapabilityCapabilityNamedIam is a Capability enum value
17815	CapabilityCapabilityNamedIam = "CAPABILITY_NAMED_IAM"
17816
17817	// CapabilityCapabilityAutoExpand is a Capability enum value
17818	CapabilityCapabilityAutoExpand = "CAPABILITY_AUTO_EXPAND"
17819)
17820
17821// Capability_Values returns all elements of the Capability enum
17822func Capability_Values() []string {
17823	return []string{
17824		CapabilityCapabilityIam,
17825		CapabilityCapabilityNamedIam,
17826		CapabilityCapabilityAutoExpand,
17827	}
17828}
17829
17830const (
17831	// ChangeActionAdd is a ChangeAction enum value
17832	ChangeActionAdd = "Add"
17833
17834	// ChangeActionModify is a ChangeAction enum value
17835	ChangeActionModify = "Modify"
17836
17837	// ChangeActionRemove is a ChangeAction enum value
17838	ChangeActionRemove = "Remove"
17839
17840	// ChangeActionImport is a ChangeAction enum value
17841	ChangeActionImport = "Import"
17842
17843	// ChangeActionDynamic is a ChangeAction enum value
17844	ChangeActionDynamic = "Dynamic"
17845)
17846
17847// ChangeAction_Values returns all elements of the ChangeAction enum
17848func ChangeAction_Values() []string {
17849	return []string{
17850		ChangeActionAdd,
17851		ChangeActionModify,
17852		ChangeActionRemove,
17853		ChangeActionImport,
17854		ChangeActionDynamic,
17855	}
17856}
17857
17858const (
17859	// ChangeSetStatusCreatePending is a ChangeSetStatus enum value
17860	ChangeSetStatusCreatePending = "CREATE_PENDING"
17861
17862	// ChangeSetStatusCreateInProgress is a ChangeSetStatus enum value
17863	ChangeSetStatusCreateInProgress = "CREATE_IN_PROGRESS"
17864
17865	// ChangeSetStatusCreateComplete is a ChangeSetStatus enum value
17866	ChangeSetStatusCreateComplete = "CREATE_COMPLETE"
17867
17868	// ChangeSetStatusDeletePending is a ChangeSetStatus enum value
17869	ChangeSetStatusDeletePending = "DELETE_PENDING"
17870
17871	// ChangeSetStatusDeleteInProgress is a ChangeSetStatus enum value
17872	ChangeSetStatusDeleteInProgress = "DELETE_IN_PROGRESS"
17873
17874	// ChangeSetStatusDeleteComplete is a ChangeSetStatus enum value
17875	ChangeSetStatusDeleteComplete = "DELETE_COMPLETE"
17876
17877	// ChangeSetStatusDeleteFailed is a ChangeSetStatus enum value
17878	ChangeSetStatusDeleteFailed = "DELETE_FAILED"
17879
17880	// ChangeSetStatusFailed is a ChangeSetStatus enum value
17881	ChangeSetStatusFailed = "FAILED"
17882)
17883
17884// ChangeSetStatus_Values returns all elements of the ChangeSetStatus enum
17885func ChangeSetStatus_Values() []string {
17886	return []string{
17887		ChangeSetStatusCreatePending,
17888		ChangeSetStatusCreateInProgress,
17889		ChangeSetStatusCreateComplete,
17890		ChangeSetStatusDeletePending,
17891		ChangeSetStatusDeleteInProgress,
17892		ChangeSetStatusDeleteComplete,
17893		ChangeSetStatusDeleteFailed,
17894		ChangeSetStatusFailed,
17895	}
17896}
17897
17898const (
17899	// ChangeSetTypeCreate is a ChangeSetType enum value
17900	ChangeSetTypeCreate = "CREATE"
17901
17902	// ChangeSetTypeUpdate is a ChangeSetType enum value
17903	ChangeSetTypeUpdate = "UPDATE"
17904
17905	// ChangeSetTypeImport is a ChangeSetType enum value
17906	ChangeSetTypeImport = "IMPORT"
17907)
17908
17909// ChangeSetType_Values returns all elements of the ChangeSetType enum
17910func ChangeSetType_Values() []string {
17911	return []string{
17912		ChangeSetTypeCreate,
17913		ChangeSetTypeUpdate,
17914		ChangeSetTypeImport,
17915	}
17916}
17917
17918const (
17919	// ChangeSourceResourceReference is a ChangeSource enum value
17920	ChangeSourceResourceReference = "ResourceReference"
17921
17922	// ChangeSourceParameterReference is a ChangeSource enum value
17923	ChangeSourceParameterReference = "ParameterReference"
17924
17925	// ChangeSourceResourceAttribute is a ChangeSource enum value
17926	ChangeSourceResourceAttribute = "ResourceAttribute"
17927
17928	// ChangeSourceDirectModification is a ChangeSource enum value
17929	ChangeSourceDirectModification = "DirectModification"
17930
17931	// ChangeSourceAutomatic is a ChangeSource enum value
17932	ChangeSourceAutomatic = "Automatic"
17933)
17934
17935// ChangeSource_Values returns all elements of the ChangeSource enum
17936func ChangeSource_Values() []string {
17937	return []string{
17938		ChangeSourceResourceReference,
17939		ChangeSourceParameterReference,
17940		ChangeSourceResourceAttribute,
17941		ChangeSourceDirectModification,
17942		ChangeSourceAutomatic,
17943	}
17944}
17945
17946const (
17947	// ChangeTypeResource is a ChangeType enum value
17948	ChangeTypeResource = "Resource"
17949)
17950
17951// ChangeType_Values returns all elements of the ChangeType enum
17952func ChangeType_Values() []string {
17953	return []string{
17954		ChangeTypeResource,
17955	}
17956}
17957
17958const (
17959	// DeprecatedStatusLive is a DeprecatedStatus enum value
17960	DeprecatedStatusLive = "LIVE"
17961
17962	// DeprecatedStatusDeprecated is a DeprecatedStatus enum value
17963	DeprecatedStatusDeprecated = "DEPRECATED"
17964)
17965
17966// DeprecatedStatus_Values returns all elements of the DeprecatedStatus enum
17967func DeprecatedStatus_Values() []string {
17968	return []string{
17969		DeprecatedStatusLive,
17970		DeprecatedStatusDeprecated,
17971	}
17972}
17973
17974const (
17975	// DifferenceTypeAdd is a DifferenceType enum value
17976	DifferenceTypeAdd = "ADD"
17977
17978	// DifferenceTypeRemove is a DifferenceType enum value
17979	DifferenceTypeRemove = "REMOVE"
17980
17981	// DifferenceTypeNotEqual is a DifferenceType enum value
17982	DifferenceTypeNotEqual = "NOT_EQUAL"
17983)
17984
17985// DifferenceType_Values returns all elements of the DifferenceType enum
17986func DifferenceType_Values() []string {
17987	return []string{
17988		DifferenceTypeAdd,
17989		DifferenceTypeRemove,
17990		DifferenceTypeNotEqual,
17991	}
17992}
17993
17994const (
17995	// EvaluationTypeStatic is a EvaluationType enum value
17996	EvaluationTypeStatic = "Static"
17997
17998	// EvaluationTypeDynamic is a EvaluationType enum value
17999	EvaluationTypeDynamic = "Dynamic"
18000)
18001
18002// EvaluationType_Values returns all elements of the EvaluationType enum
18003func EvaluationType_Values() []string {
18004	return []string{
18005		EvaluationTypeStatic,
18006		EvaluationTypeDynamic,
18007	}
18008}
18009
18010const (
18011	// ExecutionStatusUnavailable is a ExecutionStatus enum value
18012	ExecutionStatusUnavailable = "UNAVAILABLE"
18013
18014	// ExecutionStatusAvailable is a ExecutionStatus enum value
18015	ExecutionStatusAvailable = "AVAILABLE"
18016
18017	// ExecutionStatusExecuteInProgress is a ExecutionStatus enum value
18018	ExecutionStatusExecuteInProgress = "EXECUTE_IN_PROGRESS"
18019
18020	// ExecutionStatusExecuteComplete is a ExecutionStatus enum value
18021	ExecutionStatusExecuteComplete = "EXECUTE_COMPLETE"
18022
18023	// ExecutionStatusExecuteFailed is a ExecutionStatus enum value
18024	ExecutionStatusExecuteFailed = "EXECUTE_FAILED"
18025
18026	// ExecutionStatusObsolete is a ExecutionStatus enum value
18027	ExecutionStatusObsolete = "OBSOLETE"
18028)
18029
18030// ExecutionStatus_Values returns all elements of the ExecutionStatus enum
18031func ExecutionStatus_Values() []string {
18032	return []string{
18033		ExecutionStatusUnavailable,
18034		ExecutionStatusAvailable,
18035		ExecutionStatusExecuteInProgress,
18036		ExecutionStatusExecuteComplete,
18037		ExecutionStatusExecuteFailed,
18038		ExecutionStatusObsolete,
18039	}
18040}
18041
18042const (
18043	// HandlerErrorCodeNotUpdatable is a HandlerErrorCode enum value
18044	HandlerErrorCodeNotUpdatable = "NotUpdatable"
18045
18046	// HandlerErrorCodeInvalidRequest is a HandlerErrorCode enum value
18047	HandlerErrorCodeInvalidRequest = "InvalidRequest"
18048
18049	// HandlerErrorCodeAccessDenied is a HandlerErrorCode enum value
18050	HandlerErrorCodeAccessDenied = "AccessDenied"
18051
18052	// HandlerErrorCodeInvalidCredentials is a HandlerErrorCode enum value
18053	HandlerErrorCodeInvalidCredentials = "InvalidCredentials"
18054
18055	// HandlerErrorCodeAlreadyExists is a HandlerErrorCode enum value
18056	HandlerErrorCodeAlreadyExists = "AlreadyExists"
18057
18058	// HandlerErrorCodeNotFound is a HandlerErrorCode enum value
18059	HandlerErrorCodeNotFound = "NotFound"
18060
18061	// HandlerErrorCodeResourceConflict is a HandlerErrorCode enum value
18062	HandlerErrorCodeResourceConflict = "ResourceConflict"
18063
18064	// HandlerErrorCodeThrottling is a HandlerErrorCode enum value
18065	HandlerErrorCodeThrottling = "Throttling"
18066
18067	// HandlerErrorCodeServiceLimitExceeded is a HandlerErrorCode enum value
18068	HandlerErrorCodeServiceLimitExceeded = "ServiceLimitExceeded"
18069
18070	// HandlerErrorCodeNotStabilized is a HandlerErrorCode enum value
18071	HandlerErrorCodeNotStabilized = "NotStabilized"
18072
18073	// HandlerErrorCodeGeneralServiceException is a HandlerErrorCode enum value
18074	HandlerErrorCodeGeneralServiceException = "GeneralServiceException"
18075
18076	// HandlerErrorCodeServiceInternalError is a HandlerErrorCode enum value
18077	HandlerErrorCodeServiceInternalError = "ServiceInternalError"
18078
18079	// HandlerErrorCodeNetworkFailure is a HandlerErrorCode enum value
18080	HandlerErrorCodeNetworkFailure = "NetworkFailure"
18081
18082	// HandlerErrorCodeInternalFailure is a HandlerErrorCode enum value
18083	HandlerErrorCodeInternalFailure = "InternalFailure"
18084)
18085
18086// HandlerErrorCode_Values returns all elements of the HandlerErrorCode enum
18087func HandlerErrorCode_Values() []string {
18088	return []string{
18089		HandlerErrorCodeNotUpdatable,
18090		HandlerErrorCodeInvalidRequest,
18091		HandlerErrorCodeAccessDenied,
18092		HandlerErrorCodeInvalidCredentials,
18093		HandlerErrorCodeAlreadyExists,
18094		HandlerErrorCodeNotFound,
18095		HandlerErrorCodeResourceConflict,
18096		HandlerErrorCodeThrottling,
18097		HandlerErrorCodeServiceLimitExceeded,
18098		HandlerErrorCodeNotStabilized,
18099		HandlerErrorCodeGeneralServiceException,
18100		HandlerErrorCodeServiceInternalError,
18101		HandlerErrorCodeNetworkFailure,
18102		HandlerErrorCodeInternalFailure,
18103	}
18104}
18105
18106const (
18107	// OnFailureDoNothing is a OnFailure enum value
18108	OnFailureDoNothing = "DO_NOTHING"
18109
18110	// OnFailureRollback is a OnFailure enum value
18111	OnFailureRollback = "ROLLBACK"
18112
18113	// OnFailureDelete is a OnFailure enum value
18114	OnFailureDelete = "DELETE"
18115)
18116
18117// OnFailure_Values returns all elements of the OnFailure enum
18118func OnFailure_Values() []string {
18119	return []string{
18120		OnFailureDoNothing,
18121		OnFailureRollback,
18122		OnFailureDelete,
18123	}
18124}
18125
18126const (
18127	// OperationStatusPending is a OperationStatus enum value
18128	OperationStatusPending = "PENDING"
18129
18130	// OperationStatusInProgress is a OperationStatus enum value
18131	OperationStatusInProgress = "IN_PROGRESS"
18132
18133	// OperationStatusSuccess is a OperationStatus enum value
18134	OperationStatusSuccess = "SUCCESS"
18135
18136	// OperationStatusFailed is a OperationStatus enum value
18137	OperationStatusFailed = "FAILED"
18138)
18139
18140// OperationStatus_Values returns all elements of the OperationStatus enum
18141func OperationStatus_Values() []string {
18142	return []string{
18143		OperationStatusPending,
18144		OperationStatusInProgress,
18145		OperationStatusSuccess,
18146		OperationStatusFailed,
18147	}
18148}
18149
18150const (
18151	// PermissionModelsServiceManaged is a PermissionModels enum value
18152	PermissionModelsServiceManaged = "SERVICE_MANAGED"
18153
18154	// PermissionModelsSelfManaged is a PermissionModels enum value
18155	PermissionModelsSelfManaged = "SELF_MANAGED"
18156)
18157
18158// PermissionModels_Values returns all elements of the PermissionModels enum
18159func PermissionModels_Values() []string {
18160	return []string{
18161		PermissionModelsServiceManaged,
18162		PermissionModelsSelfManaged,
18163	}
18164}
18165
18166const (
18167	// ProvisioningTypeNonProvisionable is a ProvisioningType enum value
18168	ProvisioningTypeNonProvisionable = "NON_PROVISIONABLE"
18169
18170	// ProvisioningTypeImmutable is a ProvisioningType enum value
18171	ProvisioningTypeImmutable = "IMMUTABLE"
18172
18173	// ProvisioningTypeFullyMutable is a ProvisioningType enum value
18174	ProvisioningTypeFullyMutable = "FULLY_MUTABLE"
18175)
18176
18177// ProvisioningType_Values returns all elements of the ProvisioningType enum
18178func ProvisioningType_Values() []string {
18179	return []string{
18180		ProvisioningTypeNonProvisionable,
18181		ProvisioningTypeImmutable,
18182		ProvisioningTypeFullyMutable,
18183	}
18184}
18185
18186const (
18187	// RegionConcurrencyTypeSequential is a RegionConcurrencyType enum value
18188	RegionConcurrencyTypeSequential = "SEQUENTIAL"
18189
18190	// RegionConcurrencyTypeParallel is a RegionConcurrencyType enum value
18191	RegionConcurrencyTypeParallel = "PARALLEL"
18192)
18193
18194// RegionConcurrencyType_Values returns all elements of the RegionConcurrencyType enum
18195func RegionConcurrencyType_Values() []string {
18196	return []string{
18197		RegionConcurrencyTypeSequential,
18198		RegionConcurrencyTypeParallel,
18199	}
18200}
18201
18202const (
18203	// RegistrationStatusComplete is a RegistrationStatus enum value
18204	RegistrationStatusComplete = "COMPLETE"
18205
18206	// RegistrationStatusInProgress is a RegistrationStatus enum value
18207	RegistrationStatusInProgress = "IN_PROGRESS"
18208
18209	// RegistrationStatusFailed is a RegistrationStatus enum value
18210	RegistrationStatusFailed = "FAILED"
18211)
18212
18213// RegistrationStatus_Values returns all elements of the RegistrationStatus enum
18214func RegistrationStatus_Values() []string {
18215	return []string{
18216		RegistrationStatusComplete,
18217		RegistrationStatusInProgress,
18218		RegistrationStatusFailed,
18219	}
18220}
18221
18222const (
18223	// RegistryTypeResource is a RegistryType enum value
18224	RegistryTypeResource = "RESOURCE"
18225
18226	// RegistryTypeModule is a RegistryType enum value
18227	RegistryTypeModule = "MODULE"
18228)
18229
18230// RegistryType_Values returns all elements of the RegistryType enum
18231func RegistryType_Values() []string {
18232	return []string{
18233		RegistryTypeResource,
18234		RegistryTypeModule,
18235	}
18236}
18237
18238const (
18239	// ReplacementTrue is a Replacement enum value
18240	ReplacementTrue = "True"
18241
18242	// ReplacementFalse is a Replacement enum value
18243	ReplacementFalse = "False"
18244
18245	// ReplacementConditional is a Replacement enum value
18246	ReplacementConditional = "Conditional"
18247)
18248
18249// Replacement_Values returns all elements of the Replacement enum
18250func Replacement_Values() []string {
18251	return []string{
18252		ReplacementTrue,
18253		ReplacementFalse,
18254		ReplacementConditional,
18255	}
18256}
18257
18258const (
18259	// RequiresRecreationNever is a RequiresRecreation enum value
18260	RequiresRecreationNever = "Never"
18261
18262	// RequiresRecreationConditionally is a RequiresRecreation enum value
18263	RequiresRecreationConditionally = "Conditionally"
18264
18265	// RequiresRecreationAlways is a RequiresRecreation enum value
18266	RequiresRecreationAlways = "Always"
18267)
18268
18269// RequiresRecreation_Values returns all elements of the RequiresRecreation enum
18270func RequiresRecreation_Values() []string {
18271	return []string{
18272		RequiresRecreationNever,
18273		RequiresRecreationConditionally,
18274		RequiresRecreationAlways,
18275	}
18276}
18277
18278const (
18279	// ResourceAttributeProperties is a ResourceAttribute enum value
18280	ResourceAttributeProperties = "Properties"
18281
18282	// ResourceAttributeMetadata is a ResourceAttribute enum value
18283	ResourceAttributeMetadata = "Metadata"
18284
18285	// ResourceAttributeCreationPolicy is a ResourceAttribute enum value
18286	ResourceAttributeCreationPolicy = "CreationPolicy"
18287
18288	// ResourceAttributeUpdatePolicy is a ResourceAttribute enum value
18289	ResourceAttributeUpdatePolicy = "UpdatePolicy"
18290
18291	// ResourceAttributeDeletionPolicy is a ResourceAttribute enum value
18292	ResourceAttributeDeletionPolicy = "DeletionPolicy"
18293
18294	// ResourceAttributeTags is a ResourceAttribute enum value
18295	ResourceAttributeTags = "Tags"
18296)
18297
18298// ResourceAttribute_Values returns all elements of the ResourceAttribute enum
18299func ResourceAttribute_Values() []string {
18300	return []string{
18301		ResourceAttributeProperties,
18302		ResourceAttributeMetadata,
18303		ResourceAttributeCreationPolicy,
18304		ResourceAttributeUpdatePolicy,
18305		ResourceAttributeDeletionPolicy,
18306		ResourceAttributeTags,
18307	}
18308}
18309
18310const (
18311	// ResourceSignalStatusSuccess is a ResourceSignalStatus enum value
18312	ResourceSignalStatusSuccess = "SUCCESS"
18313
18314	// ResourceSignalStatusFailure is a ResourceSignalStatus enum value
18315	ResourceSignalStatusFailure = "FAILURE"
18316)
18317
18318// ResourceSignalStatus_Values returns all elements of the ResourceSignalStatus enum
18319func ResourceSignalStatus_Values() []string {
18320	return []string{
18321		ResourceSignalStatusSuccess,
18322		ResourceSignalStatusFailure,
18323	}
18324}
18325
18326const (
18327	// ResourceStatusCreateInProgress is a ResourceStatus enum value
18328	ResourceStatusCreateInProgress = "CREATE_IN_PROGRESS"
18329
18330	// ResourceStatusCreateFailed is a ResourceStatus enum value
18331	ResourceStatusCreateFailed = "CREATE_FAILED"
18332
18333	// ResourceStatusCreateComplete is a ResourceStatus enum value
18334	ResourceStatusCreateComplete = "CREATE_COMPLETE"
18335
18336	// ResourceStatusDeleteInProgress is a ResourceStatus enum value
18337	ResourceStatusDeleteInProgress = "DELETE_IN_PROGRESS"
18338
18339	// ResourceStatusDeleteFailed is a ResourceStatus enum value
18340	ResourceStatusDeleteFailed = "DELETE_FAILED"
18341
18342	// ResourceStatusDeleteComplete is a ResourceStatus enum value
18343	ResourceStatusDeleteComplete = "DELETE_COMPLETE"
18344
18345	// ResourceStatusDeleteSkipped is a ResourceStatus enum value
18346	ResourceStatusDeleteSkipped = "DELETE_SKIPPED"
18347
18348	// ResourceStatusUpdateInProgress is a ResourceStatus enum value
18349	ResourceStatusUpdateInProgress = "UPDATE_IN_PROGRESS"
18350
18351	// ResourceStatusUpdateFailed is a ResourceStatus enum value
18352	ResourceStatusUpdateFailed = "UPDATE_FAILED"
18353
18354	// ResourceStatusUpdateComplete is a ResourceStatus enum value
18355	ResourceStatusUpdateComplete = "UPDATE_COMPLETE"
18356
18357	// ResourceStatusImportFailed is a ResourceStatus enum value
18358	ResourceStatusImportFailed = "IMPORT_FAILED"
18359
18360	// ResourceStatusImportComplete is a ResourceStatus enum value
18361	ResourceStatusImportComplete = "IMPORT_COMPLETE"
18362
18363	// ResourceStatusImportInProgress is a ResourceStatus enum value
18364	ResourceStatusImportInProgress = "IMPORT_IN_PROGRESS"
18365
18366	// ResourceStatusImportRollbackInProgress is a ResourceStatus enum value
18367	ResourceStatusImportRollbackInProgress = "IMPORT_ROLLBACK_IN_PROGRESS"
18368
18369	// ResourceStatusImportRollbackFailed is a ResourceStatus enum value
18370	ResourceStatusImportRollbackFailed = "IMPORT_ROLLBACK_FAILED"
18371
18372	// ResourceStatusImportRollbackComplete is a ResourceStatus enum value
18373	ResourceStatusImportRollbackComplete = "IMPORT_ROLLBACK_COMPLETE"
18374)
18375
18376// ResourceStatus_Values returns all elements of the ResourceStatus enum
18377func ResourceStatus_Values() []string {
18378	return []string{
18379		ResourceStatusCreateInProgress,
18380		ResourceStatusCreateFailed,
18381		ResourceStatusCreateComplete,
18382		ResourceStatusDeleteInProgress,
18383		ResourceStatusDeleteFailed,
18384		ResourceStatusDeleteComplete,
18385		ResourceStatusDeleteSkipped,
18386		ResourceStatusUpdateInProgress,
18387		ResourceStatusUpdateFailed,
18388		ResourceStatusUpdateComplete,
18389		ResourceStatusImportFailed,
18390		ResourceStatusImportComplete,
18391		ResourceStatusImportInProgress,
18392		ResourceStatusImportRollbackInProgress,
18393		ResourceStatusImportRollbackFailed,
18394		ResourceStatusImportRollbackComplete,
18395	}
18396}
18397
18398const (
18399	// StackDriftDetectionStatusDetectionInProgress is a StackDriftDetectionStatus enum value
18400	StackDriftDetectionStatusDetectionInProgress = "DETECTION_IN_PROGRESS"
18401
18402	// StackDriftDetectionStatusDetectionFailed is a StackDriftDetectionStatus enum value
18403	StackDriftDetectionStatusDetectionFailed = "DETECTION_FAILED"
18404
18405	// StackDriftDetectionStatusDetectionComplete is a StackDriftDetectionStatus enum value
18406	StackDriftDetectionStatusDetectionComplete = "DETECTION_COMPLETE"
18407)
18408
18409// StackDriftDetectionStatus_Values returns all elements of the StackDriftDetectionStatus enum
18410func StackDriftDetectionStatus_Values() []string {
18411	return []string{
18412		StackDriftDetectionStatusDetectionInProgress,
18413		StackDriftDetectionStatusDetectionFailed,
18414		StackDriftDetectionStatusDetectionComplete,
18415	}
18416}
18417
18418const (
18419	// StackDriftStatusDrifted is a StackDriftStatus enum value
18420	StackDriftStatusDrifted = "DRIFTED"
18421
18422	// StackDriftStatusInSync is a StackDriftStatus enum value
18423	StackDriftStatusInSync = "IN_SYNC"
18424
18425	// StackDriftStatusUnknown is a StackDriftStatus enum value
18426	StackDriftStatusUnknown = "UNKNOWN"
18427
18428	// StackDriftStatusNotChecked is a StackDriftStatus enum value
18429	StackDriftStatusNotChecked = "NOT_CHECKED"
18430)
18431
18432// StackDriftStatus_Values returns all elements of the StackDriftStatus enum
18433func StackDriftStatus_Values() []string {
18434	return []string{
18435		StackDriftStatusDrifted,
18436		StackDriftStatusInSync,
18437		StackDriftStatusUnknown,
18438		StackDriftStatusNotChecked,
18439	}
18440}
18441
18442const (
18443	// StackInstanceDetailedStatusPending is a StackInstanceDetailedStatus enum value
18444	StackInstanceDetailedStatusPending = "PENDING"
18445
18446	// StackInstanceDetailedStatusRunning is a StackInstanceDetailedStatus enum value
18447	StackInstanceDetailedStatusRunning = "RUNNING"
18448
18449	// StackInstanceDetailedStatusSucceeded is a StackInstanceDetailedStatus enum value
18450	StackInstanceDetailedStatusSucceeded = "SUCCEEDED"
18451
18452	// StackInstanceDetailedStatusFailed is a StackInstanceDetailedStatus enum value
18453	StackInstanceDetailedStatusFailed = "FAILED"
18454
18455	// StackInstanceDetailedStatusCancelled is a StackInstanceDetailedStatus enum value
18456	StackInstanceDetailedStatusCancelled = "CANCELLED"
18457
18458	// StackInstanceDetailedStatusInoperable is a StackInstanceDetailedStatus enum value
18459	StackInstanceDetailedStatusInoperable = "INOPERABLE"
18460)
18461
18462// StackInstanceDetailedStatus_Values returns all elements of the StackInstanceDetailedStatus enum
18463func StackInstanceDetailedStatus_Values() []string {
18464	return []string{
18465		StackInstanceDetailedStatusPending,
18466		StackInstanceDetailedStatusRunning,
18467		StackInstanceDetailedStatusSucceeded,
18468		StackInstanceDetailedStatusFailed,
18469		StackInstanceDetailedStatusCancelled,
18470		StackInstanceDetailedStatusInoperable,
18471	}
18472}
18473
18474const (
18475	// StackInstanceFilterNameDetailedStatus is a StackInstanceFilterName enum value
18476	StackInstanceFilterNameDetailedStatus = "DETAILED_STATUS"
18477)
18478
18479// StackInstanceFilterName_Values returns all elements of the StackInstanceFilterName enum
18480func StackInstanceFilterName_Values() []string {
18481	return []string{
18482		StackInstanceFilterNameDetailedStatus,
18483	}
18484}
18485
18486const (
18487	// StackInstanceStatusCurrent is a StackInstanceStatus enum value
18488	StackInstanceStatusCurrent = "CURRENT"
18489
18490	// StackInstanceStatusOutdated is a StackInstanceStatus enum value
18491	StackInstanceStatusOutdated = "OUTDATED"
18492
18493	// StackInstanceStatusInoperable is a StackInstanceStatus enum value
18494	StackInstanceStatusInoperable = "INOPERABLE"
18495)
18496
18497// StackInstanceStatus_Values returns all elements of the StackInstanceStatus enum
18498func StackInstanceStatus_Values() []string {
18499	return []string{
18500		StackInstanceStatusCurrent,
18501		StackInstanceStatusOutdated,
18502		StackInstanceStatusInoperable,
18503	}
18504}
18505
18506const (
18507	// StackResourceDriftStatusInSync is a StackResourceDriftStatus enum value
18508	StackResourceDriftStatusInSync = "IN_SYNC"
18509
18510	// StackResourceDriftStatusModified is a StackResourceDriftStatus enum value
18511	StackResourceDriftStatusModified = "MODIFIED"
18512
18513	// StackResourceDriftStatusDeleted is a StackResourceDriftStatus enum value
18514	StackResourceDriftStatusDeleted = "DELETED"
18515
18516	// StackResourceDriftStatusNotChecked is a StackResourceDriftStatus enum value
18517	StackResourceDriftStatusNotChecked = "NOT_CHECKED"
18518)
18519
18520// StackResourceDriftStatus_Values returns all elements of the StackResourceDriftStatus enum
18521func StackResourceDriftStatus_Values() []string {
18522	return []string{
18523		StackResourceDriftStatusInSync,
18524		StackResourceDriftStatusModified,
18525		StackResourceDriftStatusDeleted,
18526		StackResourceDriftStatusNotChecked,
18527	}
18528}
18529
18530const (
18531	// StackSetDriftDetectionStatusCompleted is a StackSetDriftDetectionStatus enum value
18532	StackSetDriftDetectionStatusCompleted = "COMPLETED"
18533
18534	// StackSetDriftDetectionStatusFailed is a StackSetDriftDetectionStatus enum value
18535	StackSetDriftDetectionStatusFailed = "FAILED"
18536
18537	// StackSetDriftDetectionStatusPartialSuccess is a StackSetDriftDetectionStatus enum value
18538	StackSetDriftDetectionStatusPartialSuccess = "PARTIAL_SUCCESS"
18539
18540	// StackSetDriftDetectionStatusInProgress is a StackSetDriftDetectionStatus enum value
18541	StackSetDriftDetectionStatusInProgress = "IN_PROGRESS"
18542
18543	// StackSetDriftDetectionStatusStopped is a StackSetDriftDetectionStatus enum value
18544	StackSetDriftDetectionStatusStopped = "STOPPED"
18545)
18546
18547// StackSetDriftDetectionStatus_Values returns all elements of the StackSetDriftDetectionStatus enum
18548func StackSetDriftDetectionStatus_Values() []string {
18549	return []string{
18550		StackSetDriftDetectionStatusCompleted,
18551		StackSetDriftDetectionStatusFailed,
18552		StackSetDriftDetectionStatusPartialSuccess,
18553		StackSetDriftDetectionStatusInProgress,
18554		StackSetDriftDetectionStatusStopped,
18555	}
18556}
18557
18558const (
18559	// StackSetDriftStatusDrifted is a StackSetDriftStatus enum value
18560	StackSetDriftStatusDrifted = "DRIFTED"
18561
18562	// StackSetDriftStatusInSync is a StackSetDriftStatus enum value
18563	StackSetDriftStatusInSync = "IN_SYNC"
18564
18565	// StackSetDriftStatusNotChecked is a StackSetDriftStatus enum value
18566	StackSetDriftStatusNotChecked = "NOT_CHECKED"
18567)
18568
18569// StackSetDriftStatus_Values returns all elements of the StackSetDriftStatus enum
18570func StackSetDriftStatus_Values() []string {
18571	return []string{
18572		StackSetDriftStatusDrifted,
18573		StackSetDriftStatusInSync,
18574		StackSetDriftStatusNotChecked,
18575	}
18576}
18577
18578const (
18579	// StackSetOperationActionCreate is a StackSetOperationAction enum value
18580	StackSetOperationActionCreate = "CREATE"
18581
18582	// StackSetOperationActionUpdate is a StackSetOperationAction enum value
18583	StackSetOperationActionUpdate = "UPDATE"
18584
18585	// StackSetOperationActionDelete is a StackSetOperationAction enum value
18586	StackSetOperationActionDelete = "DELETE"
18587
18588	// StackSetOperationActionDetectDrift is a StackSetOperationAction enum value
18589	StackSetOperationActionDetectDrift = "DETECT_DRIFT"
18590)
18591
18592// StackSetOperationAction_Values returns all elements of the StackSetOperationAction enum
18593func StackSetOperationAction_Values() []string {
18594	return []string{
18595		StackSetOperationActionCreate,
18596		StackSetOperationActionUpdate,
18597		StackSetOperationActionDelete,
18598		StackSetOperationActionDetectDrift,
18599	}
18600}
18601
18602const (
18603	// StackSetOperationResultStatusPending is a StackSetOperationResultStatus enum value
18604	StackSetOperationResultStatusPending = "PENDING"
18605
18606	// StackSetOperationResultStatusRunning is a StackSetOperationResultStatus enum value
18607	StackSetOperationResultStatusRunning = "RUNNING"
18608
18609	// StackSetOperationResultStatusSucceeded is a StackSetOperationResultStatus enum value
18610	StackSetOperationResultStatusSucceeded = "SUCCEEDED"
18611
18612	// StackSetOperationResultStatusFailed is a StackSetOperationResultStatus enum value
18613	StackSetOperationResultStatusFailed = "FAILED"
18614
18615	// StackSetOperationResultStatusCancelled is a StackSetOperationResultStatus enum value
18616	StackSetOperationResultStatusCancelled = "CANCELLED"
18617)
18618
18619// StackSetOperationResultStatus_Values returns all elements of the StackSetOperationResultStatus enum
18620func StackSetOperationResultStatus_Values() []string {
18621	return []string{
18622		StackSetOperationResultStatusPending,
18623		StackSetOperationResultStatusRunning,
18624		StackSetOperationResultStatusSucceeded,
18625		StackSetOperationResultStatusFailed,
18626		StackSetOperationResultStatusCancelled,
18627	}
18628}
18629
18630const (
18631	// StackSetOperationStatusRunning is a StackSetOperationStatus enum value
18632	StackSetOperationStatusRunning = "RUNNING"
18633
18634	// StackSetOperationStatusSucceeded is a StackSetOperationStatus enum value
18635	StackSetOperationStatusSucceeded = "SUCCEEDED"
18636
18637	// StackSetOperationStatusFailed is a StackSetOperationStatus enum value
18638	StackSetOperationStatusFailed = "FAILED"
18639
18640	// StackSetOperationStatusStopping is a StackSetOperationStatus enum value
18641	StackSetOperationStatusStopping = "STOPPING"
18642
18643	// StackSetOperationStatusStopped is a StackSetOperationStatus enum value
18644	StackSetOperationStatusStopped = "STOPPED"
18645
18646	// StackSetOperationStatusQueued is a StackSetOperationStatus enum value
18647	StackSetOperationStatusQueued = "QUEUED"
18648)
18649
18650// StackSetOperationStatus_Values returns all elements of the StackSetOperationStatus enum
18651func StackSetOperationStatus_Values() []string {
18652	return []string{
18653		StackSetOperationStatusRunning,
18654		StackSetOperationStatusSucceeded,
18655		StackSetOperationStatusFailed,
18656		StackSetOperationStatusStopping,
18657		StackSetOperationStatusStopped,
18658		StackSetOperationStatusQueued,
18659	}
18660}
18661
18662const (
18663	// StackSetStatusActive is a StackSetStatus enum value
18664	StackSetStatusActive = "ACTIVE"
18665
18666	// StackSetStatusDeleted is a StackSetStatus enum value
18667	StackSetStatusDeleted = "DELETED"
18668)
18669
18670// StackSetStatus_Values returns all elements of the StackSetStatus enum
18671func StackSetStatus_Values() []string {
18672	return []string{
18673		StackSetStatusActive,
18674		StackSetStatusDeleted,
18675	}
18676}
18677
18678const (
18679	// StackStatusCreateInProgress is a StackStatus enum value
18680	StackStatusCreateInProgress = "CREATE_IN_PROGRESS"
18681
18682	// StackStatusCreateFailed is a StackStatus enum value
18683	StackStatusCreateFailed = "CREATE_FAILED"
18684
18685	// StackStatusCreateComplete is a StackStatus enum value
18686	StackStatusCreateComplete = "CREATE_COMPLETE"
18687
18688	// StackStatusRollbackInProgress is a StackStatus enum value
18689	StackStatusRollbackInProgress = "ROLLBACK_IN_PROGRESS"
18690
18691	// StackStatusRollbackFailed is a StackStatus enum value
18692	StackStatusRollbackFailed = "ROLLBACK_FAILED"
18693
18694	// StackStatusRollbackComplete is a StackStatus enum value
18695	StackStatusRollbackComplete = "ROLLBACK_COMPLETE"
18696
18697	// StackStatusDeleteInProgress is a StackStatus enum value
18698	StackStatusDeleteInProgress = "DELETE_IN_PROGRESS"
18699
18700	// StackStatusDeleteFailed is a StackStatus enum value
18701	StackStatusDeleteFailed = "DELETE_FAILED"
18702
18703	// StackStatusDeleteComplete is a StackStatus enum value
18704	StackStatusDeleteComplete = "DELETE_COMPLETE"
18705
18706	// StackStatusUpdateInProgress is a StackStatus enum value
18707	StackStatusUpdateInProgress = "UPDATE_IN_PROGRESS"
18708
18709	// StackStatusUpdateCompleteCleanupInProgress is a StackStatus enum value
18710	StackStatusUpdateCompleteCleanupInProgress = "UPDATE_COMPLETE_CLEANUP_IN_PROGRESS"
18711
18712	// StackStatusUpdateComplete is a StackStatus enum value
18713	StackStatusUpdateComplete = "UPDATE_COMPLETE"
18714
18715	// StackStatusUpdateRollbackInProgress is a StackStatus enum value
18716	StackStatusUpdateRollbackInProgress = "UPDATE_ROLLBACK_IN_PROGRESS"
18717
18718	// StackStatusUpdateRollbackFailed is a StackStatus enum value
18719	StackStatusUpdateRollbackFailed = "UPDATE_ROLLBACK_FAILED"
18720
18721	// StackStatusUpdateRollbackCompleteCleanupInProgress is a StackStatus enum value
18722	StackStatusUpdateRollbackCompleteCleanupInProgress = "UPDATE_ROLLBACK_COMPLETE_CLEANUP_IN_PROGRESS"
18723
18724	// StackStatusUpdateRollbackComplete is a StackStatus enum value
18725	StackStatusUpdateRollbackComplete = "UPDATE_ROLLBACK_COMPLETE"
18726
18727	// StackStatusReviewInProgress is a StackStatus enum value
18728	StackStatusReviewInProgress = "REVIEW_IN_PROGRESS"
18729
18730	// StackStatusImportInProgress is a StackStatus enum value
18731	StackStatusImportInProgress = "IMPORT_IN_PROGRESS"
18732
18733	// StackStatusImportComplete is a StackStatus enum value
18734	StackStatusImportComplete = "IMPORT_COMPLETE"
18735
18736	// StackStatusImportRollbackInProgress is a StackStatus enum value
18737	StackStatusImportRollbackInProgress = "IMPORT_ROLLBACK_IN_PROGRESS"
18738
18739	// StackStatusImportRollbackFailed is a StackStatus enum value
18740	StackStatusImportRollbackFailed = "IMPORT_ROLLBACK_FAILED"
18741
18742	// StackStatusImportRollbackComplete is a StackStatus enum value
18743	StackStatusImportRollbackComplete = "IMPORT_ROLLBACK_COMPLETE"
18744)
18745
18746// StackStatus_Values returns all elements of the StackStatus enum
18747func StackStatus_Values() []string {
18748	return []string{
18749		StackStatusCreateInProgress,
18750		StackStatusCreateFailed,
18751		StackStatusCreateComplete,
18752		StackStatusRollbackInProgress,
18753		StackStatusRollbackFailed,
18754		StackStatusRollbackComplete,
18755		StackStatusDeleteInProgress,
18756		StackStatusDeleteFailed,
18757		StackStatusDeleteComplete,
18758		StackStatusUpdateInProgress,
18759		StackStatusUpdateCompleteCleanupInProgress,
18760		StackStatusUpdateComplete,
18761		StackStatusUpdateRollbackInProgress,
18762		StackStatusUpdateRollbackFailed,
18763		StackStatusUpdateRollbackCompleteCleanupInProgress,
18764		StackStatusUpdateRollbackComplete,
18765		StackStatusReviewInProgress,
18766		StackStatusImportInProgress,
18767		StackStatusImportComplete,
18768		StackStatusImportRollbackInProgress,
18769		StackStatusImportRollbackFailed,
18770		StackStatusImportRollbackComplete,
18771	}
18772}
18773
18774const (
18775	// TemplateStageOriginal is a TemplateStage enum value
18776	TemplateStageOriginal = "Original"
18777
18778	// TemplateStageProcessed is a TemplateStage enum value
18779	TemplateStageProcessed = "Processed"
18780)
18781
18782// TemplateStage_Values returns all elements of the TemplateStage enum
18783func TemplateStage_Values() []string {
18784	return []string{
18785		TemplateStageOriginal,
18786		TemplateStageProcessed,
18787	}
18788}
18789
18790const (
18791	// VisibilityPublic is a Visibility enum value
18792	VisibilityPublic = "PUBLIC"
18793
18794	// VisibilityPrivate is a Visibility enum value
18795	VisibilityPrivate = "PRIVATE"
18796)
18797
18798// Visibility_Values returns all elements of the Visibility enum
18799func Visibility_Values() []string {
18800	return []string{
18801		VisibilityPublic,
18802		VisibilityPrivate,
18803	}
18804}
18805