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 opActivateType = "ActivateType"
17
18// ActivateTypeRequest generates a "aws/request.Request" representing the
19// client's request for the ActivateType 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 ActivateType for more information on using the ActivateType
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 ActivateTypeRequest method.
34//    req, resp := client.ActivateTypeRequest(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/ActivateType
42func (c *CloudFormation) ActivateTypeRequest(input *ActivateTypeInput) (req *request.Request, output *ActivateTypeOutput) {
43	op := &request.Operation{
44		Name:       opActivateType,
45		HTTPMethod: "POST",
46		HTTPPath:   "/",
47	}
48
49	if input == nil {
50		input = &ActivateTypeInput{}
51	}
52
53	output = &ActivateTypeOutput{}
54	req = c.newRequest(op, input, output)
55	return
56}
57
58// ActivateType API operation for AWS CloudFormation.
59//
60// Activates a public third-party extension, making it available for use in
61// stack templates. For more information, see Using public extensions (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/registry-public.html)
62// in the CloudFormation User Guide.
63//
64// Once you have activated a public third-party extension in your account and
65// region, use SetTypeConfiguration (AWSCloudFormation/latest/APIReference/API_SetTypeConfiguration.html)
66// to specify configuration properties for the extension. For more information,
67// see Configuring extensions at the account level (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/registry-register.html#registry-set-configuration)
68// in the CloudFormation User Guide.
69//
70// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
71// with awserr.Error's Code and Message methods to get detailed information about
72// the error.
73//
74// See the AWS API reference guide for AWS CloudFormation's
75// API operation ActivateType for usage and error information.
76//
77// Returned Error Codes:
78//   * ErrCodeCFNRegistryException "CFNRegistryException"
79//   An error occurred during a CloudFormation registry operation.
80//
81//   * ErrCodeTypeNotFoundException "TypeNotFoundException"
82//   The specified extension does not exist in the CloudFormation registry.
83//
84// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/ActivateType
85func (c *CloudFormation) ActivateType(input *ActivateTypeInput) (*ActivateTypeOutput, error) {
86	req, out := c.ActivateTypeRequest(input)
87	return out, req.Send()
88}
89
90// ActivateTypeWithContext is the same as ActivateType with the addition of
91// the ability to pass a context and additional request options.
92//
93// See ActivateType for details on how to use this API operation.
94//
95// The context must be non-nil and will be used for request cancellation. If
96// the context is nil a panic will occur. In the future the SDK may create
97// sub-contexts for http.Requests. See https://golang.org/pkg/context/
98// for more information on using Contexts.
99func (c *CloudFormation) ActivateTypeWithContext(ctx aws.Context, input *ActivateTypeInput, opts ...request.Option) (*ActivateTypeOutput, error) {
100	req, out := c.ActivateTypeRequest(input)
101	req.SetContext(ctx)
102	req.ApplyOptions(opts...)
103	return out, req.Send()
104}
105
106const opBatchDescribeTypeConfigurations = "BatchDescribeTypeConfigurations"
107
108// BatchDescribeTypeConfigurationsRequest generates a "aws/request.Request" representing the
109// client's request for the BatchDescribeTypeConfigurations operation. The "output" return
110// value will be populated with the request's response once the request completes
111// successfully.
112//
113// Use "Send" method on the returned Request to send the API call to the service.
114// the "output" return value is not valid until after Send returns without error.
115//
116// See BatchDescribeTypeConfigurations for more information on using the BatchDescribeTypeConfigurations
117// API call, and error handling.
118//
119// This method is useful when you want to inject custom logic or configuration
120// into the SDK's request lifecycle. Such as custom headers, or retry logic.
121//
122//
123//    // Example sending a request using the BatchDescribeTypeConfigurationsRequest method.
124//    req, resp := client.BatchDescribeTypeConfigurationsRequest(params)
125//
126//    err := req.Send()
127//    if err == nil { // resp is now filled
128//        fmt.Println(resp)
129//    }
130//
131// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/BatchDescribeTypeConfigurations
132func (c *CloudFormation) BatchDescribeTypeConfigurationsRequest(input *BatchDescribeTypeConfigurationsInput) (req *request.Request, output *BatchDescribeTypeConfigurationsOutput) {
133	op := &request.Operation{
134		Name:       opBatchDescribeTypeConfigurations,
135		HTTPMethod: "POST",
136		HTTPPath:   "/",
137	}
138
139	if input == nil {
140		input = &BatchDescribeTypeConfigurationsInput{}
141	}
142
143	output = &BatchDescribeTypeConfigurationsOutput{}
144	req = c.newRequest(op, input, output)
145	return
146}
147
148// BatchDescribeTypeConfigurations API operation for AWS CloudFormation.
149//
150// Returns configuration data for the specified CloudFormation extensions, from
151// the CloudFormation registry for the account and region.
152//
153// For more information, see Configuring extensions at the account level (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/registry-register.html#registry-set-configuration)
154// in the CloudFormation User Guide.
155//
156// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
157// with awserr.Error's Code and Message methods to get detailed information about
158// the error.
159//
160// See the AWS API reference guide for AWS CloudFormation's
161// API operation BatchDescribeTypeConfigurations for usage and error information.
162//
163// Returned Error Codes:
164//   * ErrCodeTypeConfigurationNotFoundException "TypeConfigurationNotFoundException"
165//   The specified extension configuration cannot be found.
166//
167//   * ErrCodeCFNRegistryException "CFNRegistryException"
168//   An error occurred during a CloudFormation registry operation.
169//
170// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/BatchDescribeTypeConfigurations
171func (c *CloudFormation) BatchDescribeTypeConfigurations(input *BatchDescribeTypeConfigurationsInput) (*BatchDescribeTypeConfigurationsOutput, error) {
172	req, out := c.BatchDescribeTypeConfigurationsRequest(input)
173	return out, req.Send()
174}
175
176// BatchDescribeTypeConfigurationsWithContext is the same as BatchDescribeTypeConfigurations with the addition of
177// the ability to pass a context and additional request options.
178//
179// See BatchDescribeTypeConfigurations for details on how to use this API operation.
180//
181// The context must be non-nil and will be used for request cancellation. If
182// the context is nil a panic will occur. In the future the SDK may create
183// sub-contexts for http.Requests. See https://golang.org/pkg/context/
184// for more information on using Contexts.
185func (c *CloudFormation) BatchDescribeTypeConfigurationsWithContext(ctx aws.Context, input *BatchDescribeTypeConfigurationsInput, opts ...request.Option) (*BatchDescribeTypeConfigurationsOutput, error) {
186	req, out := c.BatchDescribeTypeConfigurationsRequest(input)
187	req.SetContext(ctx)
188	req.ApplyOptions(opts...)
189	return out, req.Send()
190}
191
192const opCancelUpdateStack = "CancelUpdateStack"
193
194// CancelUpdateStackRequest generates a "aws/request.Request" representing the
195// client's request for the CancelUpdateStack operation. The "output" return
196// value will be populated with the request's response once the request completes
197// successfully.
198//
199// Use "Send" method on the returned Request to send the API call to the service.
200// the "output" return value is not valid until after Send returns without error.
201//
202// See CancelUpdateStack for more information on using the CancelUpdateStack
203// API call, and error handling.
204//
205// This method is useful when you want to inject custom logic or configuration
206// into the SDK's request lifecycle. Such as custom headers, or retry logic.
207//
208//
209//    // Example sending a request using the CancelUpdateStackRequest method.
210//    req, resp := client.CancelUpdateStackRequest(params)
211//
212//    err := req.Send()
213//    if err == nil { // resp is now filled
214//        fmt.Println(resp)
215//    }
216//
217// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/CancelUpdateStack
218func (c *CloudFormation) CancelUpdateStackRequest(input *CancelUpdateStackInput) (req *request.Request, output *CancelUpdateStackOutput) {
219	op := &request.Operation{
220		Name:       opCancelUpdateStack,
221		HTTPMethod: "POST",
222		HTTPPath:   "/",
223	}
224
225	if input == nil {
226		input = &CancelUpdateStackInput{}
227	}
228
229	output = &CancelUpdateStackOutput{}
230	req = c.newRequest(op, input, output)
231	req.Handlers.Unmarshal.Swap(query.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
232	return
233}
234
235// CancelUpdateStack API operation for AWS CloudFormation.
236//
237// Cancels an update on the specified stack. If the call completes successfully,
238// the stack rolls back the update and reverts to the previous stack configuration.
239//
240// You can cancel only stacks that are in the UPDATE_IN_PROGRESS state.
241//
242// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
243// with awserr.Error's Code and Message methods to get detailed information about
244// the error.
245//
246// See the AWS API reference guide for AWS CloudFormation's
247// API operation CancelUpdateStack for usage and error information.
248//
249// Returned Error Codes:
250//   * ErrCodeTokenAlreadyExistsException "TokenAlreadyExistsException"
251//   A client request token already exists.
252//
253// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/CancelUpdateStack
254func (c *CloudFormation) CancelUpdateStack(input *CancelUpdateStackInput) (*CancelUpdateStackOutput, error) {
255	req, out := c.CancelUpdateStackRequest(input)
256	return out, req.Send()
257}
258
259// CancelUpdateStackWithContext is the same as CancelUpdateStack with the addition of
260// the ability to pass a context and additional request options.
261//
262// See CancelUpdateStack for details on how to use this API operation.
263//
264// The context must be non-nil and will be used for request cancellation. If
265// the context is nil a panic will occur. In the future the SDK may create
266// sub-contexts for http.Requests. See https://golang.org/pkg/context/
267// for more information on using Contexts.
268func (c *CloudFormation) CancelUpdateStackWithContext(ctx aws.Context, input *CancelUpdateStackInput, opts ...request.Option) (*CancelUpdateStackOutput, error) {
269	req, out := c.CancelUpdateStackRequest(input)
270	req.SetContext(ctx)
271	req.ApplyOptions(opts...)
272	return out, req.Send()
273}
274
275const opContinueUpdateRollback = "ContinueUpdateRollback"
276
277// ContinueUpdateRollbackRequest generates a "aws/request.Request" representing the
278// client's request for the ContinueUpdateRollback operation. The "output" return
279// value will be populated with the request's response once the request completes
280// successfully.
281//
282// Use "Send" method on the returned Request to send the API call to the service.
283// the "output" return value is not valid until after Send returns without error.
284//
285// See ContinueUpdateRollback for more information on using the ContinueUpdateRollback
286// API call, and error handling.
287//
288// This method is useful when you want to inject custom logic or configuration
289// into the SDK's request lifecycle. Such as custom headers, or retry logic.
290//
291//
292//    // Example sending a request using the ContinueUpdateRollbackRequest method.
293//    req, resp := client.ContinueUpdateRollbackRequest(params)
294//
295//    err := req.Send()
296//    if err == nil { // resp is now filled
297//        fmt.Println(resp)
298//    }
299//
300// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/ContinueUpdateRollback
301func (c *CloudFormation) ContinueUpdateRollbackRequest(input *ContinueUpdateRollbackInput) (req *request.Request, output *ContinueUpdateRollbackOutput) {
302	op := &request.Operation{
303		Name:       opContinueUpdateRollback,
304		HTTPMethod: "POST",
305		HTTPPath:   "/",
306	}
307
308	if input == nil {
309		input = &ContinueUpdateRollbackInput{}
310	}
311
312	output = &ContinueUpdateRollbackOutput{}
313	req = c.newRequest(op, input, output)
314	req.Handlers.Unmarshal.Swap(query.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
315	return
316}
317
318// ContinueUpdateRollback API operation for AWS CloudFormation.
319//
320// For a specified stack that is in the UPDATE_ROLLBACK_FAILED state, continues
321// rolling it back to the UPDATE_ROLLBACK_COMPLETE state. Depending on the cause
322// of the failure, you can manually fix the error (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/troubleshooting.html#troubleshooting-errors-update-rollback-failed)
323// and continue the rollback. By continuing the rollback, you can return your
324// stack to a working state (the UPDATE_ROLLBACK_COMPLETE state), and then try
325// to update the stack again.
326//
327// A stack goes into the UPDATE_ROLLBACK_FAILED state when CloudFormation cannot
328// roll back all changes after a failed stack update. For example, you might
329// have a stack that is rolling back to an old database instance that was deleted
330// outside of CloudFormation. Because CloudFormation doesn't know the database
331// was deleted, it assumes that the database instance still exists and attempts
332// to roll back to it, causing the update rollback to fail.
333//
334// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
335// with awserr.Error's Code and Message methods to get detailed information about
336// the error.
337//
338// See the AWS API reference guide for AWS CloudFormation's
339// API operation ContinueUpdateRollback for usage and error information.
340//
341// Returned Error Codes:
342//   * ErrCodeTokenAlreadyExistsException "TokenAlreadyExistsException"
343//   A client request token already exists.
344//
345// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/ContinueUpdateRollback
346func (c *CloudFormation) ContinueUpdateRollback(input *ContinueUpdateRollbackInput) (*ContinueUpdateRollbackOutput, error) {
347	req, out := c.ContinueUpdateRollbackRequest(input)
348	return out, req.Send()
349}
350
351// ContinueUpdateRollbackWithContext is the same as ContinueUpdateRollback with the addition of
352// the ability to pass a context and additional request options.
353//
354// See ContinueUpdateRollback for details on how to use this API operation.
355//
356// The context must be non-nil and will be used for request cancellation. If
357// the context is nil a panic will occur. In the future the SDK may create
358// sub-contexts for http.Requests. See https://golang.org/pkg/context/
359// for more information on using Contexts.
360func (c *CloudFormation) ContinueUpdateRollbackWithContext(ctx aws.Context, input *ContinueUpdateRollbackInput, opts ...request.Option) (*ContinueUpdateRollbackOutput, error) {
361	req, out := c.ContinueUpdateRollbackRequest(input)
362	req.SetContext(ctx)
363	req.ApplyOptions(opts...)
364	return out, req.Send()
365}
366
367const opCreateChangeSet = "CreateChangeSet"
368
369// CreateChangeSetRequest generates a "aws/request.Request" representing the
370// client's request for the CreateChangeSet operation. The "output" return
371// value will be populated with the request's response once the request completes
372// successfully.
373//
374// Use "Send" method on the returned Request to send the API call to the service.
375// the "output" return value is not valid until after Send returns without error.
376//
377// See CreateChangeSet for more information on using the CreateChangeSet
378// API call, and error handling.
379//
380// This method is useful when you want to inject custom logic or configuration
381// into the SDK's request lifecycle. Such as custom headers, or retry logic.
382//
383//
384//    // Example sending a request using the CreateChangeSetRequest method.
385//    req, resp := client.CreateChangeSetRequest(params)
386//
387//    err := req.Send()
388//    if err == nil { // resp is now filled
389//        fmt.Println(resp)
390//    }
391//
392// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/CreateChangeSet
393func (c *CloudFormation) CreateChangeSetRequest(input *CreateChangeSetInput) (req *request.Request, output *CreateChangeSetOutput) {
394	op := &request.Operation{
395		Name:       opCreateChangeSet,
396		HTTPMethod: "POST",
397		HTTPPath:   "/",
398	}
399
400	if input == nil {
401		input = &CreateChangeSetInput{}
402	}
403
404	output = &CreateChangeSetOutput{}
405	req = c.newRequest(op, input, output)
406	return
407}
408
409// CreateChangeSet API operation for AWS CloudFormation.
410//
411// Creates a list of changes that will be applied to a stack so that you can
412// review the changes before executing them. You can create a change set for
413// a stack that doesn't exist or an existing stack. If you create a change set
414// for a stack that doesn't exist, the change set shows all of the resources
415// that CloudFormation will create. If you create a change set for an existing
416// stack, CloudFormation compares the stack's information with the information
417// that you submit in the change set and lists the differences. Use change sets
418// to understand which resources CloudFormation will create or change, and how
419// it will change resources in an existing stack, before you create or update
420// a stack.
421//
422// To create a change set for a stack that doesn't exist, for the ChangeSetType
423// parameter, specify CREATE. To create a change set for an existing stack,
424// specify UPDATE for the ChangeSetType parameter. To create a change set for
425// an import operation, specify IMPORT for the ChangeSetType parameter. After
426// the CreateChangeSet call successfully completes, CloudFormation starts creating
427// the change set. To check the status of the change set or to review it, use
428// the DescribeChangeSet action.
429//
430// When you are satisfied with the changes the change set will make, execute
431// the change set by using the ExecuteChangeSet action. CloudFormation doesn't
432// make changes until you execute the change set.
433//
434// To create a change set for the entire stack hierachy, set IncludeNestedStacks
435// to True.
436//
437// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
438// with awserr.Error's Code and Message methods to get detailed information about
439// the error.
440//
441// See the AWS API reference guide for AWS CloudFormation's
442// API operation CreateChangeSet for usage and error information.
443//
444// Returned Error Codes:
445//   * ErrCodeAlreadyExistsException "AlreadyExistsException"
446//   The resource with the name requested already exists.
447//
448//   * ErrCodeInsufficientCapabilitiesException "InsufficientCapabilitiesException"
449//   The template contains resources with capabilities that weren't specified
450//   in the Capabilities parameter.
451//
452//   * ErrCodeLimitExceededException "LimitExceededException"
453//   The quota for the resource has already been reached.
454//
455//   For information on resource and stack limitations, see Limits (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/cloudformation-limits.html)
456//   in the CloudFormation User Guide.
457//
458// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/CreateChangeSet
459func (c *CloudFormation) CreateChangeSet(input *CreateChangeSetInput) (*CreateChangeSetOutput, error) {
460	req, out := c.CreateChangeSetRequest(input)
461	return out, req.Send()
462}
463
464// CreateChangeSetWithContext is the same as CreateChangeSet with the addition of
465// the ability to pass a context and additional request options.
466//
467// See CreateChangeSet for details on how to use this API operation.
468//
469// The context must be non-nil and will be used for request cancellation. If
470// the context is nil a panic will occur. In the future the SDK may create
471// sub-contexts for http.Requests. See https://golang.org/pkg/context/
472// for more information on using Contexts.
473func (c *CloudFormation) CreateChangeSetWithContext(ctx aws.Context, input *CreateChangeSetInput, opts ...request.Option) (*CreateChangeSetOutput, error) {
474	req, out := c.CreateChangeSetRequest(input)
475	req.SetContext(ctx)
476	req.ApplyOptions(opts...)
477	return out, req.Send()
478}
479
480const opCreateStack = "CreateStack"
481
482// CreateStackRequest generates a "aws/request.Request" representing the
483// client's request for the CreateStack operation. The "output" return
484// value will be populated with the request's response once the request completes
485// successfully.
486//
487// Use "Send" method on the returned Request to send the API call to the service.
488// the "output" return value is not valid until after Send returns without error.
489//
490// See CreateStack for more information on using the CreateStack
491// API call, and error handling.
492//
493// This method is useful when you want to inject custom logic or configuration
494// into the SDK's request lifecycle. Such as custom headers, or retry logic.
495//
496//
497//    // Example sending a request using the CreateStackRequest method.
498//    req, resp := client.CreateStackRequest(params)
499//
500//    err := req.Send()
501//    if err == nil { // resp is now filled
502//        fmt.Println(resp)
503//    }
504//
505// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/CreateStack
506func (c *CloudFormation) CreateStackRequest(input *CreateStackInput) (req *request.Request, output *CreateStackOutput) {
507	op := &request.Operation{
508		Name:       opCreateStack,
509		HTTPMethod: "POST",
510		HTTPPath:   "/",
511	}
512
513	if input == nil {
514		input = &CreateStackInput{}
515	}
516
517	output = &CreateStackOutput{}
518	req = c.newRequest(op, input, output)
519	return
520}
521
522// CreateStack API operation for AWS CloudFormation.
523//
524// Creates a stack as specified in the template. After the call completes successfully,
525// the stack creation starts. You can check the status of the stack via the
526// DescribeStacks API.
527//
528// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
529// with awserr.Error's Code and Message methods to get detailed information about
530// the error.
531//
532// See the AWS API reference guide for AWS CloudFormation's
533// API operation CreateStack for usage and error information.
534//
535// Returned Error Codes:
536//   * ErrCodeLimitExceededException "LimitExceededException"
537//   The quota for the resource has already been reached.
538//
539//   For information on resource and stack limitations, see Limits (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/cloudformation-limits.html)
540//   in the CloudFormation User Guide.
541//
542//   * ErrCodeAlreadyExistsException "AlreadyExistsException"
543//   The resource with the name requested already exists.
544//
545//   * ErrCodeTokenAlreadyExistsException "TokenAlreadyExistsException"
546//   A client request token already exists.
547//
548//   * ErrCodeInsufficientCapabilitiesException "InsufficientCapabilitiesException"
549//   The template contains resources with capabilities that weren't specified
550//   in the Capabilities parameter.
551//
552// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/CreateStack
553func (c *CloudFormation) CreateStack(input *CreateStackInput) (*CreateStackOutput, error) {
554	req, out := c.CreateStackRequest(input)
555	return out, req.Send()
556}
557
558// CreateStackWithContext is the same as CreateStack with the addition of
559// the ability to pass a context and additional request options.
560//
561// See CreateStack for details on how to use this API operation.
562//
563// The context must be non-nil and will be used for request cancellation. If
564// the context is nil a panic will occur. In the future the SDK may create
565// sub-contexts for http.Requests. See https://golang.org/pkg/context/
566// for more information on using Contexts.
567func (c *CloudFormation) CreateStackWithContext(ctx aws.Context, input *CreateStackInput, opts ...request.Option) (*CreateStackOutput, error) {
568	req, out := c.CreateStackRequest(input)
569	req.SetContext(ctx)
570	req.ApplyOptions(opts...)
571	return out, req.Send()
572}
573
574const opCreateStackInstances = "CreateStackInstances"
575
576// CreateStackInstancesRequest generates a "aws/request.Request" representing the
577// client's request for the CreateStackInstances operation. The "output" return
578// value will be populated with the request's response once the request completes
579// successfully.
580//
581// Use "Send" method on the returned Request to send the API call to the service.
582// the "output" return value is not valid until after Send returns without error.
583//
584// See CreateStackInstances for more information on using the CreateStackInstances
585// API call, and error handling.
586//
587// This method is useful when you want to inject custom logic or configuration
588// into the SDK's request lifecycle. Such as custom headers, or retry logic.
589//
590//
591//    // Example sending a request using the CreateStackInstancesRequest method.
592//    req, resp := client.CreateStackInstancesRequest(params)
593//
594//    err := req.Send()
595//    if err == nil { // resp is now filled
596//        fmt.Println(resp)
597//    }
598//
599// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/CreateStackInstances
600func (c *CloudFormation) CreateStackInstancesRequest(input *CreateStackInstancesInput) (req *request.Request, output *CreateStackInstancesOutput) {
601	op := &request.Operation{
602		Name:       opCreateStackInstances,
603		HTTPMethod: "POST",
604		HTTPPath:   "/",
605	}
606
607	if input == nil {
608		input = &CreateStackInstancesInput{}
609	}
610
611	output = &CreateStackInstancesOutput{}
612	req = c.newRequest(op, input, output)
613	return
614}
615
616// CreateStackInstances API operation for AWS CloudFormation.
617//
618// Creates stack instances for the specified accounts, within the specified
619// Regions. A stack instance refers to a stack in a specific account and Region.
620// You must specify at least one value for either Accounts or DeploymentTargets,
621// and you must specify at least one value for Regions.
622//
623// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
624// with awserr.Error's Code and Message methods to get detailed information about
625// the error.
626//
627// See the AWS API reference guide for AWS CloudFormation's
628// API operation CreateStackInstances for usage and error information.
629//
630// Returned Error Codes:
631//   * ErrCodeStackSetNotFoundException "StackSetNotFoundException"
632//   The specified stack set doesn't exist.
633//
634//   * ErrCodeOperationInProgressException "OperationInProgressException"
635//   Another operation is currently in progress for this stack set. Only one operation
636//   can be performed for a stack set at a given time.
637//
638//   * ErrCodeOperationIdAlreadyExistsException "OperationIdAlreadyExistsException"
639//   The specified operation ID already exists.
640//
641//   * ErrCodeStaleRequestException "StaleRequestException"
642//   Another operation has been performed on this stack set since the specified
643//   operation was performed.
644//
645//   * ErrCodeInvalidOperationException "InvalidOperationException"
646//   The specified operation isn't valid.
647//
648//   * ErrCodeLimitExceededException "LimitExceededException"
649//   The quota for the resource has already been reached.
650//
651//   For information on resource and stack limitations, see Limits (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/cloudformation-limits.html)
652//   in the CloudFormation User Guide.
653//
654// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/CreateStackInstances
655func (c *CloudFormation) CreateStackInstances(input *CreateStackInstancesInput) (*CreateStackInstancesOutput, error) {
656	req, out := c.CreateStackInstancesRequest(input)
657	return out, req.Send()
658}
659
660// CreateStackInstancesWithContext is the same as CreateStackInstances with the addition of
661// the ability to pass a context and additional request options.
662//
663// See CreateStackInstances for details on how to use this API operation.
664//
665// The context must be non-nil and will be used for request cancellation. If
666// the context is nil a panic will occur. In the future the SDK may create
667// sub-contexts for http.Requests. See https://golang.org/pkg/context/
668// for more information on using Contexts.
669func (c *CloudFormation) CreateStackInstancesWithContext(ctx aws.Context, input *CreateStackInstancesInput, opts ...request.Option) (*CreateStackInstancesOutput, error) {
670	req, out := c.CreateStackInstancesRequest(input)
671	req.SetContext(ctx)
672	req.ApplyOptions(opts...)
673	return out, req.Send()
674}
675
676const opCreateStackSet = "CreateStackSet"
677
678// CreateStackSetRequest generates a "aws/request.Request" representing the
679// client's request for the CreateStackSet operation. The "output" return
680// value will be populated with the request's response once the request completes
681// successfully.
682//
683// Use "Send" method on the returned Request to send the API call to the service.
684// the "output" return value is not valid until after Send returns without error.
685//
686// See CreateStackSet for more information on using the CreateStackSet
687// API call, and error handling.
688//
689// This method is useful when you want to inject custom logic or configuration
690// into the SDK's request lifecycle. Such as custom headers, or retry logic.
691//
692//
693//    // Example sending a request using the CreateStackSetRequest method.
694//    req, resp := client.CreateStackSetRequest(params)
695//
696//    err := req.Send()
697//    if err == nil { // resp is now filled
698//        fmt.Println(resp)
699//    }
700//
701// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/CreateStackSet
702func (c *CloudFormation) CreateStackSetRequest(input *CreateStackSetInput) (req *request.Request, output *CreateStackSetOutput) {
703	op := &request.Operation{
704		Name:       opCreateStackSet,
705		HTTPMethod: "POST",
706		HTTPPath:   "/",
707	}
708
709	if input == nil {
710		input = &CreateStackSetInput{}
711	}
712
713	output = &CreateStackSetOutput{}
714	req = c.newRequest(op, input, output)
715	return
716}
717
718// CreateStackSet API operation for AWS CloudFormation.
719//
720// Creates a stack set.
721//
722// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
723// with awserr.Error's Code and Message methods to get detailed information about
724// the error.
725//
726// See the AWS API reference guide for AWS CloudFormation's
727// API operation CreateStackSet for usage and error information.
728//
729// Returned Error Codes:
730//   * ErrCodeNameAlreadyExistsException "NameAlreadyExistsException"
731//   The specified name is already in use.
732//
733//   * ErrCodeCreatedButModifiedException "CreatedButModifiedException"
734//   The specified resource exists, but has been changed.
735//
736//   * ErrCodeLimitExceededException "LimitExceededException"
737//   The quota for the resource has already been reached.
738//
739//   For information on resource and stack limitations, see Limits (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/cloudformation-limits.html)
740//   in the CloudFormation User Guide.
741//
742// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/CreateStackSet
743func (c *CloudFormation) CreateStackSet(input *CreateStackSetInput) (*CreateStackSetOutput, error) {
744	req, out := c.CreateStackSetRequest(input)
745	return out, req.Send()
746}
747
748// CreateStackSetWithContext is the same as CreateStackSet with the addition of
749// the ability to pass a context and additional request options.
750//
751// See CreateStackSet for details on how to use this API operation.
752//
753// The context must be non-nil and will be used for request cancellation. If
754// the context is nil a panic will occur. In the future the SDK may create
755// sub-contexts for http.Requests. See https://golang.org/pkg/context/
756// for more information on using Contexts.
757func (c *CloudFormation) CreateStackSetWithContext(ctx aws.Context, input *CreateStackSetInput, opts ...request.Option) (*CreateStackSetOutput, error) {
758	req, out := c.CreateStackSetRequest(input)
759	req.SetContext(ctx)
760	req.ApplyOptions(opts...)
761	return out, req.Send()
762}
763
764const opDeactivateType = "DeactivateType"
765
766// DeactivateTypeRequest generates a "aws/request.Request" representing the
767// client's request for the DeactivateType operation. The "output" return
768// value will be populated with the request's response once the request completes
769// successfully.
770//
771// Use "Send" method on the returned Request to send the API call to the service.
772// the "output" return value is not valid until after Send returns without error.
773//
774// See DeactivateType for more information on using the DeactivateType
775// API call, and error handling.
776//
777// This method is useful when you want to inject custom logic or configuration
778// into the SDK's request lifecycle. Such as custom headers, or retry logic.
779//
780//
781//    // Example sending a request using the DeactivateTypeRequest method.
782//    req, resp := client.DeactivateTypeRequest(params)
783//
784//    err := req.Send()
785//    if err == nil { // resp is now filled
786//        fmt.Println(resp)
787//    }
788//
789// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/DeactivateType
790func (c *CloudFormation) DeactivateTypeRequest(input *DeactivateTypeInput) (req *request.Request, output *DeactivateTypeOutput) {
791	op := &request.Operation{
792		Name:       opDeactivateType,
793		HTTPMethod: "POST",
794		HTTPPath:   "/",
795	}
796
797	if input == nil {
798		input = &DeactivateTypeInput{}
799	}
800
801	output = &DeactivateTypeOutput{}
802	req = c.newRequest(op, input, output)
803	req.Handlers.Unmarshal.Swap(query.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
804	return
805}
806
807// DeactivateType API operation for AWS CloudFormation.
808//
809// Deactivates a public extension that was previously activated in this account
810// and region.
811//
812// Once deactivated, an extension cannot be used in any CloudFormation operation.
813// This includes stack update operations where the stack template includes the
814// extension, even if no updates are being made to the extension. In addition,
815// deactivated extensions are not automatically updated if a new version of
816// the extension is released.
817//
818// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
819// with awserr.Error's Code and Message methods to get detailed information about
820// the error.
821//
822// See the AWS API reference guide for AWS CloudFormation's
823// API operation DeactivateType for usage and error information.
824//
825// Returned Error Codes:
826//   * ErrCodeCFNRegistryException "CFNRegistryException"
827//   An error occurred during a CloudFormation registry operation.
828//
829//   * ErrCodeTypeNotFoundException "TypeNotFoundException"
830//   The specified extension does not exist in the CloudFormation registry.
831//
832// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/DeactivateType
833func (c *CloudFormation) DeactivateType(input *DeactivateTypeInput) (*DeactivateTypeOutput, error) {
834	req, out := c.DeactivateTypeRequest(input)
835	return out, req.Send()
836}
837
838// DeactivateTypeWithContext is the same as DeactivateType with the addition of
839// the ability to pass a context and additional request options.
840//
841// See DeactivateType 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) DeactivateTypeWithContext(ctx aws.Context, input *DeactivateTypeInput, opts ...request.Option) (*DeactivateTypeOutput, error) {
848	req, out := c.DeactivateTypeRequest(input)
849	req.SetContext(ctx)
850	req.ApplyOptions(opts...)
851	return out, req.Send()
852}
853
854const opDeleteChangeSet = "DeleteChangeSet"
855
856// DeleteChangeSetRequest generates a "aws/request.Request" representing the
857// client's request for the DeleteChangeSet 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 DeleteChangeSet for more information on using the DeleteChangeSet
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 DeleteChangeSetRequest method.
872//    req, resp := client.DeleteChangeSetRequest(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/DeleteChangeSet
880func (c *CloudFormation) DeleteChangeSetRequest(input *DeleteChangeSetInput) (req *request.Request, output *DeleteChangeSetOutput) {
881	op := &request.Operation{
882		Name:       opDeleteChangeSet,
883		HTTPMethod: "POST",
884		HTTPPath:   "/",
885	}
886
887	if input == nil {
888		input = &DeleteChangeSetInput{}
889	}
890
891	output = &DeleteChangeSetOutput{}
892	req = c.newRequest(op, input, output)
893	req.Handlers.Unmarshal.Swap(query.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
894	return
895}
896
897// DeleteChangeSet API operation for AWS CloudFormation.
898//
899// Deletes the specified change set. Deleting change sets ensures that no one
900// executes the wrong change set.
901//
902// If the call successfully completes, CloudFormation successfully deleted the
903// change set.
904//
905// If IncludeNestedStacks specifies True during the creation of the nested change
906// set, then DeleteChangeSet will delete all change sets that belong to the
907// stacks hierarchy and will also delete all change sets for nested stacks with
908// the status of REVIEW_IN_PROGRESS.
909//
910// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
911// with awserr.Error's Code and Message methods to get detailed information about
912// the error.
913//
914// See the AWS API reference guide for AWS CloudFormation's
915// API operation DeleteChangeSet for usage and error information.
916//
917// Returned Error Codes:
918//   * ErrCodeInvalidChangeSetStatusException "InvalidChangeSetStatus"
919//   The specified change set can't be used to update the stack. For example,
920//   the change set status might be CREATE_IN_PROGRESS, or the stack status might
921//   be UPDATE_IN_PROGRESS.
922//
923// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/DeleteChangeSet
924func (c *CloudFormation) DeleteChangeSet(input *DeleteChangeSetInput) (*DeleteChangeSetOutput, error) {
925	req, out := c.DeleteChangeSetRequest(input)
926	return out, req.Send()
927}
928
929// DeleteChangeSetWithContext is the same as DeleteChangeSet with the addition of
930// the ability to pass a context and additional request options.
931//
932// See DeleteChangeSet for details on how to use this API operation.
933//
934// The context must be non-nil and will be used for request cancellation. If
935// the context is nil a panic will occur. In the future the SDK may create
936// sub-contexts for http.Requests. See https://golang.org/pkg/context/
937// for more information on using Contexts.
938func (c *CloudFormation) DeleteChangeSetWithContext(ctx aws.Context, input *DeleteChangeSetInput, opts ...request.Option) (*DeleteChangeSetOutput, error) {
939	req, out := c.DeleteChangeSetRequest(input)
940	req.SetContext(ctx)
941	req.ApplyOptions(opts...)
942	return out, req.Send()
943}
944
945const opDeleteStack = "DeleteStack"
946
947// DeleteStackRequest generates a "aws/request.Request" representing the
948// client's request for the DeleteStack operation. The "output" return
949// value will be populated with the request's response once the request completes
950// successfully.
951//
952// Use "Send" method on the returned Request to send the API call to the service.
953// the "output" return value is not valid until after Send returns without error.
954//
955// See DeleteStack for more information on using the DeleteStack
956// API call, and error handling.
957//
958// This method is useful when you want to inject custom logic or configuration
959// into the SDK's request lifecycle. Such as custom headers, or retry logic.
960//
961//
962//    // Example sending a request using the DeleteStackRequest method.
963//    req, resp := client.DeleteStackRequest(params)
964//
965//    err := req.Send()
966//    if err == nil { // resp is now filled
967//        fmt.Println(resp)
968//    }
969//
970// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/DeleteStack
971func (c *CloudFormation) DeleteStackRequest(input *DeleteStackInput) (req *request.Request, output *DeleteStackOutput) {
972	op := &request.Operation{
973		Name:       opDeleteStack,
974		HTTPMethod: "POST",
975		HTTPPath:   "/",
976	}
977
978	if input == nil {
979		input = &DeleteStackInput{}
980	}
981
982	output = &DeleteStackOutput{}
983	req = c.newRequest(op, input, output)
984	req.Handlers.Unmarshal.Swap(query.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
985	return
986}
987
988// DeleteStack API operation for AWS CloudFormation.
989//
990// Deletes a specified stack. Once the call completes successfully, stack deletion
991// starts. Deleted stacks do not show up in the DescribeStacks API if the deletion
992// has been completed successfully.
993//
994// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
995// with awserr.Error's Code and Message methods to get detailed information about
996// the error.
997//
998// See the AWS API reference guide for AWS CloudFormation's
999// API operation DeleteStack for usage and error information.
1000//
1001// Returned Error Codes:
1002//   * ErrCodeTokenAlreadyExistsException "TokenAlreadyExistsException"
1003//   A client request token already exists.
1004//
1005// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/DeleteStack
1006func (c *CloudFormation) DeleteStack(input *DeleteStackInput) (*DeleteStackOutput, error) {
1007	req, out := c.DeleteStackRequest(input)
1008	return out, req.Send()
1009}
1010
1011// DeleteStackWithContext is the same as DeleteStack with the addition of
1012// the ability to pass a context and additional request options.
1013//
1014// See DeleteStack for details on how to use this API operation.
1015//
1016// The context must be non-nil and will be used for request cancellation. If
1017// the context is nil a panic will occur. In the future the SDK may create
1018// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1019// for more information on using Contexts.
1020func (c *CloudFormation) DeleteStackWithContext(ctx aws.Context, input *DeleteStackInput, opts ...request.Option) (*DeleteStackOutput, error) {
1021	req, out := c.DeleteStackRequest(input)
1022	req.SetContext(ctx)
1023	req.ApplyOptions(opts...)
1024	return out, req.Send()
1025}
1026
1027const opDeleteStackInstances = "DeleteStackInstances"
1028
1029// DeleteStackInstancesRequest generates a "aws/request.Request" representing the
1030// client's request for the DeleteStackInstances operation. The "output" return
1031// value will be populated with the request's response once the request completes
1032// successfully.
1033//
1034// Use "Send" method on the returned Request to send the API call to the service.
1035// the "output" return value is not valid until after Send returns without error.
1036//
1037// See DeleteStackInstances for more information on using the DeleteStackInstances
1038// API call, and error handling.
1039//
1040// This method is useful when you want to inject custom logic or configuration
1041// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1042//
1043//
1044//    // Example sending a request using the DeleteStackInstancesRequest method.
1045//    req, resp := client.DeleteStackInstancesRequest(params)
1046//
1047//    err := req.Send()
1048//    if err == nil { // resp is now filled
1049//        fmt.Println(resp)
1050//    }
1051//
1052// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/DeleteStackInstances
1053func (c *CloudFormation) DeleteStackInstancesRequest(input *DeleteStackInstancesInput) (req *request.Request, output *DeleteStackInstancesOutput) {
1054	op := &request.Operation{
1055		Name:       opDeleteStackInstances,
1056		HTTPMethod: "POST",
1057		HTTPPath:   "/",
1058	}
1059
1060	if input == nil {
1061		input = &DeleteStackInstancesInput{}
1062	}
1063
1064	output = &DeleteStackInstancesOutput{}
1065	req = c.newRequest(op, input, output)
1066	return
1067}
1068
1069// DeleteStackInstances API operation for AWS CloudFormation.
1070//
1071// Deletes stack instances for the specified accounts, in the specified Regions.
1072//
1073// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1074// with awserr.Error's Code and Message methods to get detailed information about
1075// the error.
1076//
1077// See the AWS API reference guide for AWS CloudFormation's
1078// API operation DeleteStackInstances for usage and error information.
1079//
1080// Returned Error Codes:
1081//   * ErrCodeStackSetNotFoundException "StackSetNotFoundException"
1082//   The specified stack set doesn't exist.
1083//
1084//   * ErrCodeOperationInProgressException "OperationInProgressException"
1085//   Another operation is currently in progress for this stack set. Only one operation
1086//   can be performed for a stack set at a given time.
1087//
1088//   * ErrCodeOperationIdAlreadyExistsException "OperationIdAlreadyExistsException"
1089//   The specified operation ID already exists.
1090//
1091//   * ErrCodeStaleRequestException "StaleRequestException"
1092//   Another operation has been performed on this stack set since the specified
1093//   operation was performed.
1094//
1095//   * ErrCodeInvalidOperationException "InvalidOperationException"
1096//   The specified operation isn't valid.
1097//
1098// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/DeleteStackInstances
1099func (c *CloudFormation) DeleteStackInstances(input *DeleteStackInstancesInput) (*DeleteStackInstancesOutput, error) {
1100	req, out := c.DeleteStackInstancesRequest(input)
1101	return out, req.Send()
1102}
1103
1104// DeleteStackInstancesWithContext is the same as DeleteStackInstances with the addition of
1105// the ability to pass a context and additional request options.
1106//
1107// See DeleteStackInstances for details on how to use this API operation.
1108//
1109// The context must be non-nil and will be used for request cancellation. If
1110// the context is nil a panic will occur. In the future the SDK may create
1111// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1112// for more information on using Contexts.
1113func (c *CloudFormation) DeleteStackInstancesWithContext(ctx aws.Context, input *DeleteStackInstancesInput, opts ...request.Option) (*DeleteStackInstancesOutput, error) {
1114	req, out := c.DeleteStackInstancesRequest(input)
1115	req.SetContext(ctx)
1116	req.ApplyOptions(opts...)
1117	return out, req.Send()
1118}
1119
1120const opDeleteStackSet = "DeleteStackSet"
1121
1122// DeleteStackSetRequest generates a "aws/request.Request" representing the
1123// client's request for the DeleteStackSet operation. The "output" return
1124// value will be populated with the request's response once the request completes
1125// successfully.
1126//
1127// Use "Send" method on the returned Request to send the API call to the service.
1128// the "output" return value is not valid until after Send returns without error.
1129//
1130// See DeleteStackSet for more information on using the DeleteStackSet
1131// API call, and error handling.
1132//
1133// This method is useful when you want to inject custom logic or configuration
1134// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1135//
1136//
1137//    // Example sending a request using the DeleteStackSetRequest method.
1138//    req, resp := client.DeleteStackSetRequest(params)
1139//
1140//    err := req.Send()
1141//    if err == nil { // resp is now filled
1142//        fmt.Println(resp)
1143//    }
1144//
1145// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/DeleteStackSet
1146func (c *CloudFormation) DeleteStackSetRequest(input *DeleteStackSetInput) (req *request.Request, output *DeleteStackSetOutput) {
1147	op := &request.Operation{
1148		Name:       opDeleteStackSet,
1149		HTTPMethod: "POST",
1150		HTTPPath:   "/",
1151	}
1152
1153	if input == nil {
1154		input = &DeleteStackSetInput{}
1155	}
1156
1157	output = &DeleteStackSetOutput{}
1158	req = c.newRequest(op, input, output)
1159	req.Handlers.Unmarshal.Swap(query.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
1160	return
1161}
1162
1163// DeleteStackSet API operation for AWS CloudFormation.
1164//
1165// Deletes a stack set. Before you can delete a stack set, all of its member
1166// stack instances must be deleted. For more information about how to do this,
1167// see DeleteStackInstances.
1168//
1169// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1170// with awserr.Error's Code and Message methods to get detailed information about
1171// the error.
1172//
1173// See the AWS API reference guide for AWS CloudFormation's
1174// API operation DeleteStackSet for usage and error information.
1175//
1176// Returned Error Codes:
1177//   * ErrCodeStackSetNotEmptyException "StackSetNotEmptyException"
1178//   You can't yet delete this stack set, because it still contains one or more
1179//   stack instances. Delete all stack instances from the stack set before deleting
1180//   the stack set.
1181//
1182//   * ErrCodeOperationInProgressException "OperationInProgressException"
1183//   Another operation is currently in progress for this stack set. Only one operation
1184//   can be performed for a stack set at a given time.
1185//
1186// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/DeleteStackSet
1187func (c *CloudFormation) DeleteStackSet(input *DeleteStackSetInput) (*DeleteStackSetOutput, error) {
1188	req, out := c.DeleteStackSetRequest(input)
1189	return out, req.Send()
1190}
1191
1192// DeleteStackSetWithContext is the same as DeleteStackSet with the addition of
1193// the ability to pass a context and additional request options.
1194//
1195// See DeleteStackSet for details on how to use this API operation.
1196//
1197// The context must be non-nil and will be used for request cancellation. If
1198// the context is nil a panic will occur. In the future the SDK may create
1199// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1200// for more information on using Contexts.
1201func (c *CloudFormation) DeleteStackSetWithContext(ctx aws.Context, input *DeleteStackSetInput, opts ...request.Option) (*DeleteStackSetOutput, error) {
1202	req, out := c.DeleteStackSetRequest(input)
1203	req.SetContext(ctx)
1204	req.ApplyOptions(opts...)
1205	return out, req.Send()
1206}
1207
1208const opDeregisterType = "DeregisterType"
1209
1210// DeregisterTypeRequest generates a "aws/request.Request" representing the
1211// client's request for the DeregisterType operation. The "output" return
1212// value will be populated with the request's response once the request completes
1213// successfully.
1214//
1215// Use "Send" method on the returned Request to send the API call to the service.
1216// the "output" return value is not valid until after Send returns without error.
1217//
1218// See DeregisterType for more information on using the DeregisterType
1219// API call, and error handling.
1220//
1221// This method is useful when you want to inject custom logic or configuration
1222// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1223//
1224//
1225//    // Example sending a request using the DeregisterTypeRequest method.
1226//    req, resp := client.DeregisterTypeRequest(params)
1227//
1228//    err := req.Send()
1229//    if err == nil { // resp is now filled
1230//        fmt.Println(resp)
1231//    }
1232//
1233// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/DeregisterType
1234func (c *CloudFormation) DeregisterTypeRequest(input *DeregisterTypeInput) (req *request.Request, output *DeregisterTypeOutput) {
1235	op := &request.Operation{
1236		Name:       opDeregisterType,
1237		HTTPMethod: "POST",
1238		HTTPPath:   "/",
1239	}
1240
1241	if input == nil {
1242		input = &DeregisterTypeInput{}
1243	}
1244
1245	output = &DeregisterTypeOutput{}
1246	req = c.newRequest(op, input, output)
1247	req.Handlers.Unmarshal.Swap(query.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
1248	return
1249}
1250
1251// DeregisterType API operation for AWS CloudFormation.
1252//
1253// Marks an extension or extension version as DEPRECATED in the CloudFormation
1254// registry, removing it from active use. Deprecated extensions or extension
1255// versions cannot be used in CloudFormation operations.
1256//
1257// To deregister an entire extension, you must individually deregister all active
1258// versions of that extension. If an extension has only a single active version,
1259// deregistering that version results in the extension itself being deregistered
1260// and marked as deprecated in the registry.
1261//
1262// You cannot deregister the default version of an extension if there are other
1263// active version of that extension. If you do deregister the default version
1264// of an extension, the textensionype itself is deregistered as well and marked
1265// as deprecated.
1266//
1267// To view the deprecation status of an extension or extension version, use
1268// DescribeType (https://docs.aws.amazon.com/AWSCloudFormation/latest/APIReference/API_DescribeType.html).
1269//
1270// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1271// with awserr.Error's Code and Message methods to get detailed information about
1272// the error.
1273//
1274// See the AWS API reference guide for AWS CloudFormation's
1275// API operation DeregisterType for usage and error information.
1276//
1277// Returned Error Codes:
1278//   * ErrCodeCFNRegistryException "CFNRegistryException"
1279//   An error occurred during a CloudFormation registry operation.
1280//
1281//   * ErrCodeTypeNotFoundException "TypeNotFoundException"
1282//   The specified extension does not exist in the CloudFormation registry.
1283//
1284// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/DeregisterType
1285func (c *CloudFormation) DeregisterType(input *DeregisterTypeInput) (*DeregisterTypeOutput, error) {
1286	req, out := c.DeregisterTypeRequest(input)
1287	return out, req.Send()
1288}
1289
1290// DeregisterTypeWithContext is the same as DeregisterType with the addition of
1291// the ability to pass a context and additional request options.
1292//
1293// See DeregisterType for details on how to use this API operation.
1294//
1295// The context must be non-nil and will be used for request cancellation. If
1296// the context is nil a panic will occur. In the future the SDK may create
1297// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1298// for more information on using Contexts.
1299func (c *CloudFormation) DeregisterTypeWithContext(ctx aws.Context, input *DeregisterTypeInput, opts ...request.Option) (*DeregisterTypeOutput, error) {
1300	req, out := c.DeregisterTypeRequest(input)
1301	req.SetContext(ctx)
1302	req.ApplyOptions(opts...)
1303	return out, req.Send()
1304}
1305
1306const opDescribeAccountLimits = "DescribeAccountLimits"
1307
1308// DescribeAccountLimitsRequest generates a "aws/request.Request" representing the
1309// client's request for the DescribeAccountLimits operation. The "output" return
1310// value will be populated with the request's response once the request completes
1311// successfully.
1312//
1313// Use "Send" method on the returned Request to send the API call to the service.
1314// the "output" return value is not valid until after Send returns without error.
1315//
1316// See DescribeAccountLimits for more information on using the DescribeAccountLimits
1317// API call, and error handling.
1318//
1319// This method is useful when you want to inject custom logic or configuration
1320// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1321//
1322//
1323//    // Example sending a request using the DescribeAccountLimitsRequest method.
1324//    req, resp := client.DescribeAccountLimitsRequest(params)
1325//
1326//    err := req.Send()
1327//    if err == nil { // resp is now filled
1328//        fmt.Println(resp)
1329//    }
1330//
1331// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/DescribeAccountLimits
1332func (c *CloudFormation) DescribeAccountLimitsRequest(input *DescribeAccountLimitsInput) (req *request.Request, output *DescribeAccountLimitsOutput) {
1333	op := &request.Operation{
1334		Name:       opDescribeAccountLimits,
1335		HTTPMethod: "POST",
1336		HTTPPath:   "/",
1337		Paginator: &request.Paginator{
1338			InputTokens:     []string{"NextToken"},
1339			OutputTokens:    []string{"NextToken"},
1340			LimitToken:      "",
1341			TruncationToken: "",
1342		},
1343	}
1344
1345	if input == nil {
1346		input = &DescribeAccountLimitsInput{}
1347	}
1348
1349	output = &DescribeAccountLimitsOutput{}
1350	req = c.newRequest(op, input, output)
1351	return
1352}
1353
1354// DescribeAccountLimits API operation for AWS CloudFormation.
1355//
1356// Retrieves your account's CloudFormation limits, such as the maximum number
1357// of stacks that you can create in your account. For more information about
1358// account limits, see CloudFormation Limits (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/cloudformation-limits.html)
1359// in the CloudFormation User Guide.
1360//
1361// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1362// with awserr.Error's Code and Message methods to get detailed information about
1363// the error.
1364//
1365// See the AWS API reference guide for AWS CloudFormation's
1366// API operation DescribeAccountLimits for usage and error information.
1367// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/DescribeAccountLimits
1368func (c *CloudFormation) DescribeAccountLimits(input *DescribeAccountLimitsInput) (*DescribeAccountLimitsOutput, error) {
1369	req, out := c.DescribeAccountLimitsRequest(input)
1370	return out, req.Send()
1371}
1372
1373// DescribeAccountLimitsWithContext is the same as DescribeAccountLimits with the addition of
1374// the ability to pass a context and additional request options.
1375//
1376// See DescribeAccountLimits for details on how to use this API operation.
1377//
1378// The context must be non-nil and will be used for request cancellation. If
1379// the context is nil a panic will occur. In the future the SDK may create
1380// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1381// for more information on using Contexts.
1382func (c *CloudFormation) DescribeAccountLimitsWithContext(ctx aws.Context, input *DescribeAccountLimitsInput, opts ...request.Option) (*DescribeAccountLimitsOutput, error) {
1383	req, out := c.DescribeAccountLimitsRequest(input)
1384	req.SetContext(ctx)
1385	req.ApplyOptions(opts...)
1386	return out, req.Send()
1387}
1388
1389// DescribeAccountLimitsPages iterates over the pages of a DescribeAccountLimits operation,
1390// calling the "fn" function with the response data for each page. To stop
1391// iterating, return false from the fn function.
1392//
1393// See DescribeAccountLimits method for more information on how to use this operation.
1394//
1395// Note: This operation can generate multiple requests to a service.
1396//
1397//    // Example iterating over at most 3 pages of a DescribeAccountLimits operation.
1398//    pageNum := 0
1399//    err := client.DescribeAccountLimitsPages(params,
1400//        func(page *cloudformation.DescribeAccountLimitsOutput, lastPage bool) bool {
1401//            pageNum++
1402//            fmt.Println(page)
1403//            return pageNum <= 3
1404//        })
1405//
1406func (c *CloudFormation) DescribeAccountLimitsPages(input *DescribeAccountLimitsInput, fn func(*DescribeAccountLimitsOutput, bool) bool) error {
1407	return c.DescribeAccountLimitsPagesWithContext(aws.BackgroundContext(), input, fn)
1408}
1409
1410// DescribeAccountLimitsPagesWithContext same as DescribeAccountLimitsPages except
1411// it takes a Context and allows setting request options on the pages.
1412//
1413// The context must be non-nil and will be used for request cancellation. If
1414// the context is nil a panic will occur. In the future the SDK may create
1415// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1416// for more information on using Contexts.
1417func (c *CloudFormation) DescribeAccountLimitsPagesWithContext(ctx aws.Context, input *DescribeAccountLimitsInput, fn func(*DescribeAccountLimitsOutput, bool) bool, opts ...request.Option) error {
1418	p := request.Pagination{
1419		NewRequest: func() (*request.Request, error) {
1420			var inCpy *DescribeAccountLimitsInput
1421			if input != nil {
1422				tmp := *input
1423				inCpy = &tmp
1424			}
1425			req, _ := c.DescribeAccountLimitsRequest(inCpy)
1426			req.SetContext(ctx)
1427			req.ApplyOptions(opts...)
1428			return req, nil
1429		},
1430	}
1431
1432	for p.Next() {
1433		if !fn(p.Page().(*DescribeAccountLimitsOutput), !p.HasNextPage()) {
1434			break
1435		}
1436	}
1437
1438	return p.Err()
1439}
1440
1441const opDescribeChangeSet = "DescribeChangeSet"
1442
1443// DescribeChangeSetRequest generates a "aws/request.Request" representing the
1444// client's request for the DescribeChangeSet operation. The "output" return
1445// value will be populated with the request's response once the request completes
1446// successfully.
1447//
1448// Use "Send" method on the returned Request to send the API call to the service.
1449// the "output" return value is not valid until after Send returns without error.
1450//
1451// See DescribeChangeSet for more information on using the DescribeChangeSet
1452// API call, and error handling.
1453//
1454// This method is useful when you want to inject custom logic or configuration
1455// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1456//
1457//
1458//    // Example sending a request using the DescribeChangeSetRequest method.
1459//    req, resp := client.DescribeChangeSetRequest(params)
1460//
1461//    err := req.Send()
1462//    if err == nil { // resp is now filled
1463//        fmt.Println(resp)
1464//    }
1465//
1466// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/DescribeChangeSet
1467func (c *CloudFormation) DescribeChangeSetRequest(input *DescribeChangeSetInput) (req *request.Request, output *DescribeChangeSetOutput) {
1468	op := &request.Operation{
1469		Name:       opDescribeChangeSet,
1470		HTTPMethod: "POST",
1471		HTTPPath:   "/",
1472	}
1473
1474	if input == nil {
1475		input = &DescribeChangeSetInput{}
1476	}
1477
1478	output = &DescribeChangeSetOutput{}
1479	req = c.newRequest(op, input, output)
1480	return
1481}
1482
1483// DescribeChangeSet API operation for AWS CloudFormation.
1484//
1485// Returns the inputs for the change set and a list of changes that CloudFormation
1486// will make if you execute the change set. For more information, see Updating
1487// Stacks Using Change Sets (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-changesets.html)
1488// in the CloudFormation User Guide.
1489//
1490// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1491// with awserr.Error's Code and Message methods to get detailed information about
1492// the error.
1493//
1494// See the AWS API reference guide for AWS CloudFormation's
1495// API operation DescribeChangeSet for usage and error information.
1496//
1497// Returned Error Codes:
1498//   * ErrCodeChangeSetNotFoundException "ChangeSetNotFound"
1499//   The specified change set name or ID doesn't exit. To view valid change sets
1500//   for a stack, use the ListChangeSets action.
1501//
1502// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/DescribeChangeSet
1503func (c *CloudFormation) DescribeChangeSet(input *DescribeChangeSetInput) (*DescribeChangeSetOutput, error) {
1504	req, out := c.DescribeChangeSetRequest(input)
1505	return out, req.Send()
1506}
1507
1508// DescribeChangeSetWithContext is the same as DescribeChangeSet with the addition of
1509// the ability to pass a context and additional request options.
1510//
1511// See DescribeChangeSet for details on how to use this API operation.
1512//
1513// The context must be non-nil and will be used for request cancellation. If
1514// the context is nil a panic will occur. In the future the SDK may create
1515// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1516// for more information on using Contexts.
1517func (c *CloudFormation) DescribeChangeSetWithContext(ctx aws.Context, input *DescribeChangeSetInput, opts ...request.Option) (*DescribeChangeSetOutput, error) {
1518	req, out := c.DescribeChangeSetRequest(input)
1519	req.SetContext(ctx)
1520	req.ApplyOptions(opts...)
1521	return out, req.Send()
1522}
1523
1524const opDescribePublisher = "DescribePublisher"
1525
1526// DescribePublisherRequest generates a "aws/request.Request" representing the
1527// client's request for the DescribePublisher operation. The "output" return
1528// value will be populated with the request's response once the request completes
1529// successfully.
1530//
1531// Use "Send" method on the returned Request to send the API call to the service.
1532// the "output" return value is not valid until after Send returns without error.
1533//
1534// See DescribePublisher for more information on using the DescribePublisher
1535// API call, and error handling.
1536//
1537// This method is useful when you want to inject custom logic or configuration
1538// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1539//
1540//
1541//    // Example sending a request using the DescribePublisherRequest method.
1542//    req, resp := client.DescribePublisherRequest(params)
1543//
1544//    err := req.Send()
1545//    if err == nil { // resp is now filled
1546//        fmt.Println(resp)
1547//    }
1548//
1549// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/DescribePublisher
1550func (c *CloudFormation) DescribePublisherRequest(input *DescribePublisherInput) (req *request.Request, output *DescribePublisherOutput) {
1551	op := &request.Operation{
1552		Name:       opDescribePublisher,
1553		HTTPMethod: "POST",
1554		HTTPPath:   "/",
1555	}
1556
1557	if input == nil {
1558		input = &DescribePublisherInput{}
1559	}
1560
1561	output = &DescribePublisherOutput{}
1562	req = c.newRequest(op, input, output)
1563	return
1564}
1565
1566// DescribePublisher API operation for AWS CloudFormation.
1567//
1568// Returns information about a CloudFormation extension publisher.
1569//
1570// If you do not supply a PublisherId, and you have registered as an extension
1571// publisher, DescribePublisher returns information about your own publisher
1572// account.
1573//
1574// For more information on registering as a publisher, see:
1575//
1576//    * RegisterPublisher (https://docs.aws.amazon.com/AWSCloudFormation/latest/APIReference/API_RegisterPublisher.html)
1577//
1578//    * Publishing extensions to make them available for public use (https://docs.aws.amazon.com/cloudformation-cli/latest/userguide/publish-extension.html)
1579//    in the CloudFormation CLI User Guide
1580//
1581// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1582// with awserr.Error's Code and Message methods to get detailed information about
1583// the error.
1584//
1585// See the AWS API reference guide for AWS CloudFormation's
1586// API operation DescribePublisher for usage and error information.
1587//
1588// Returned Error Codes:
1589//   * ErrCodeCFNRegistryException "CFNRegistryException"
1590//   An error occurred during a CloudFormation registry operation.
1591//
1592// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/DescribePublisher
1593func (c *CloudFormation) DescribePublisher(input *DescribePublisherInput) (*DescribePublisherOutput, error) {
1594	req, out := c.DescribePublisherRequest(input)
1595	return out, req.Send()
1596}
1597
1598// DescribePublisherWithContext is the same as DescribePublisher with the addition of
1599// the ability to pass a context and additional request options.
1600//
1601// See DescribePublisher for details on how to use this API operation.
1602//
1603// The context must be non-nil and will be used for request cancellation. If
1604// the context is nil a panic will occur. In the future the SDK may create
1605// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1606// for more information on using Contexts.
1607func (c *CloudFormation) DescribePublisherWithContext(ctx aws.Context, input *DescribePublisherInput, opts ...request.Option) (*DescribePublisherOutput, error) {
1608	req, out := c.DescribePublisherRequest(input)
1609	req.SetContext(ctx)
1610	req.ApplyOptions(opts...)
1611	return out, req.Send()
1612}
1613
1614const opDescribeStackDriftDetectionStatus = "DescribeStackDriftDetectionStatus"
1615
1616// DescribeStackDriftDetectionStatusRequest generates a "aws/request.Request" representing the
1617// client's request for the DescribeStackDriftDetectionStatus operation. The "output" return
1618// value will be populated with the request's response once the request completes
1619// successfully.
1620//
1621// Use "Send" method on the returned Request to send the API call to the service.
1622// the "output" return value is not valid until after Send returns without error.
1623//
1624// See DescribeStackDriftDetectionStatus for more information on using the DescribeStackDriftDetectionStatus
1625// API call, and error handling.
1626//
1627// This method is useful when you want to inject custom logic or configuration
1628// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1629//
1630//
1631//    // Example sending a request using the DescribeStackDriftDetectionStatusRequest method.
1632//    req, resp := client.DescribeStackDriftDetectionStatusRequest(params)
1633//
1634//    err := req.Send()
1635//    if err == nil { // resp is now filled
1636//        fmt.Println(resp)
1637//    }
1638//
1639// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/DescribeStackDriftDetectionStatus
1640func (c *CloudFormation) DescribeStackDriftDetectionStatusRequest(input *DescribeStackDriftDetectionStatusInput) (req *request.Request, output *DescribeStackDriftDetectionStatusOutput) {
1641	op := &request.Operation{
1642		Name:       opDescribeStackDriftDetectionStatus,
1643		HTTPMethod: "POST",
1644		HTTPPath:   "/",
1645	}
1646
1647	if input == nil {
1648		input = &DescribeStackDriftDetectionStatusInput{}
1649	}
1650
1651	output = &DescribeStackDriftDetectionStatusOutput{}
1652	req = c.newRequest(op, input, output)
1653	return
1654}
1655
1656// DescribeStackDriftDetectionStatus API operation for AWS CloudFormation.
1657//
1658// Returns information about a stack drift detection operation. A stack drift
1659// detection operation detects whether a stack's actual configuration differs,
1660// or has drifted, from it's expected configuration, as defined in the stack
1661// template and any values specified as template parameters. A stack is considered
1662// to have drifted if one or more of its resources have drifted. For more information
1663// on stack and resource drift, see Detecting Unregulated Configuration Changes
1664// to Stacks and Resources (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-stack-drift.html).
1665//
1666// Use DetectStackDrift to initiate a stack drift detection operation. DetectStackDrift
1667// returns a StackDriftDetectionId you can use to monitor the progress of the
1668// operation using DescribeStackDriftDetectionStatus. Once the drift detection
1669// operation has completed, use DescribeStackResourceDrifts to return drift
1670// information about the stack and its resources.
1671//
1672// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1673// with awserr.Error's Code and Message methods to get detailed information about
1674// the error.
1675//
1676// See the AWS API reference guide for AWS CloudFormation's
1677// API operation DescribeStackDriftDetectionStatus for usage and error information.
1678// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/DescribeStackDriftDetectionStatus
1679func (c *CloudFormation) DescribeStackDriftDetectionStatus(input *DescribeStackDriftDetectionStatusInput) (*DescribeStackDriftDetectionStatusOutput, error) {
1680	req, out := c.DescribeStackDriftDetectionStatusRequest(input)
1681	return out, req.Send()
1682}
1683
1684// DescribeStackDriftDetectionStatusWithContext is the same as DescribeStackDriftDetectionStatus with the addition of
1685// the ability to pass a context and additional request options.
1686//
1687// See DescribeStackDriftDetectionStatus for details on how to use this API operation.
1688//
1689// The context must be non-nil and will be used for request cancellation. If
1690// the context is nil a panic will occur. In the future the SDK may create
1691// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1692// for more information on using Contexts.
1693func (c *CloudFormation) DescribeStackDriftDetectionStatusWithContext(ctx aws.Context, input *DescribeStackDriftDetectionStatusInput, opts ...request.Option) (*DescribeStackDriftDetectionStatusOutput, error) {
1694	req, out := c.DescribeStackDriftDetectionStatusRequest(input)
1695	req.SetContext(ctx)
1696	req.ApplyOptions(opts...)
1697	return out, req.Send()
1698}
1699
1700const opDescribeStackEvents = "DescribeStackEvents"
1701
1702// DescribeStackEventsRequest generates a "aws/request.Request" representing the
1703// client's request for the DescribeStackEvents operation. The "output" return
1704// value will be populated with the request's response once the request completes
1705// successfully.
1706//
1707// Use "Send" method on the returned Request to send the API call to the service.
1708// the "output" return value is not valid until after Send returns without error.
1709//
1710// See DescribeStackEvents for more information on using the DescribeStackEvents
1711// API call, and error handling.
1712//
1713// This method is useful when you want to inject custom logic or configuration
1714// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1715//
1716//
1717//    // Example sending a request using the DescribeStackEventsRequest method.
1718//    req, resp := client.DescribeStackEventsRequest(params)
1719//
1720//    err := req.Send()
1721//    if err == nil { // resp is now filled
1722//        fmt.Println(resp)
1723//    }
1724//
1725// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/DescribeStackEvents
1726func (c *CloudFormation) DescribeStackEventsRequest(input *DescribeStackEventsInput) (req *request.Request, output *DescribeStackEventsOutput) {
1727	op := &request.Operation{
1728		Name:       opDescribeStackEvents,
1729		HTTPMethod: "POST",
1730		HTTPPath:   "/",
1731		Paginator: &request.Paginator{
1732			InputTokens:     []string{"NextToken"},
1733			OutputTokens:    []string{"NextToken"},
1734			LimitToken:      "",
1735			TruncationToken: "",
1736		},
1737	}
1738
1739	if input == nil {
1740		input = &DescribeStackEventsInput{}
1741	}
1742
1743	output = &DescribeStackEventsOutput{}
1744	req = c.newRequest(op, input, output)
1745	return
1746}
1747
1748// DescribeStackEvents API operation for AWS CloudFormation.
1749//
1750// Returns all stack related events for a specified stack in reverse chronological
1751// order. For more information about a stack's event history, go to Stacks (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/concept-stack.html)
1752// in the CloudFormation User Guide.
1753//
1754// You can list events for stacks that have failed to create or have been deleted
1755// by specifying the unique stack identifier (stack ID).
1756//
1757// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1758// with awserr.Error's Code and Message methods to get detailed information about
1759// the error.
1760//
1761// See the AWS API reference guide for AWS CloudFormation's
1762// API operation DescribeStackEvents for usage and error information.
1763// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/DescribeStackEvents
1764func (c *CloudFormation) DescribeStackEvents(input *DescribeStackEventsInput) (*DescribeStackEventsOutput, error) {
1765	req, out := c.DescribeStackEventsRequest(input)
1766	return out, req.Send()
1767}
1768
1769// DescribeStackEventsWithContext is the same as DescribeStackEvents with the addition of
1770// the ability to pass a context and additional request options.
1771//
1772// See DescribeStackEvents for details on how to use this API operation.
1773//
1774// The context must be non-nil and will be used for request cancellation. If
1775// the context is nil a panic will occur. In the future the SDK may create
1776// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1777// for more information on using Contexts.
1778func (c *CloudFormation) DescribeStackEventsWithContext(ctx aws.Context, input *DescribeStackEventsInput, opts ...request.Option) (*DescribeStackEventsOutput, error) {
1779	req, out := c.DescribeStackEventsRequest(input)
1780	req.SetContext(ctx)
1781	req.ApplyOptions(opts...)
1782	return out, req.Send()
1783}
1784
1785// DescribeStackEventsPages iterates over the pages of a DescribeStackEvents operation,
1786// calling the "fn" function with the response data for each page. To stop
1787// iterating, return false from the fn function.
1788//
1789// See DescribeStackEvents method for more information on how to use this operation.
1790//
1791// Note: This operation can generate multiple requests to a service.
1792//
1793//    // Example iterating over at most 3 pages of a DescribeStackEvents operation.
1794//    pageNum := 0
1795//    err := client.DescribeStackEventsPages(params,
1796//        func(page *cloudformation.DescribeStackEventsOutput, lastPage bool) bool {
1797//            pageNum++
1798//            fmt.Println(page)
1799//            return pageNum <= 3
1800//        })
1801//
1802func (c *CloudFormation) DescribeStackEventsPages(input *DescribeStackEventsInput, fn func(*DescribeStackEventsOutput, bool) bool) error {
1803	return c.DescribeStackEventsPagesWithContext(aws.BackgroundContext(), input, fn)
1804}
1805
1806// DescribeStackEventsPagesWithContext same as DescribeStackEventsPages except
1807// it takes a Context and allows setting request options on the pages.
1808//
1809// The context must be non-nil and will be used for request cancellation. If
1810// the context is nil a panic will occur. In the future the SDK may create
1811// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1812// for more information on using Contexts.
1813func (c *CloudFormation) DescribeStackEventsPagesWithContext(ctx aws.Context, input *DescribeStackEventsInput, fn func(*DescribeStackEventsOutput, bool) bool, opts ...request.Option) error {
1814	p := request.Pagination{
1815		NewRequest: func() (*request.Request, error) {
1816			var inCpy *DescribeStackEventsInput
1817			if input != nil {
1818				tmp := *input
1819				inCpy = &tmp
1820			}
1821			req, _ := c.DescribeStackEventsRequest(inCpy)
1822			req.SetContext(ctx)
1823			req.ApplyOptions(opts...)
1824			return req, nil
1825		},
1826	}
1827
1828	for p.Next() {
1829		if !fn(p.Page().(*DescribeStackEventsOutput), !p.HasNextPage()) {
1830			break
1831		}
1832	}
1833
1834	return p.Err()
1835}
1836
1837const opDescribeStackInstance = "DescribeStackInstance"
1838
1839// DescribeStackInstanceRequest generates a "aws/request.Request" representing the
1840// client's request for the DescribeStackInstance operation. The "output" return
1841// value will be populated with the request's response once the request completes
1842// successfully.
1843//
1844// Use "Send" method on the returned Request to send the API call to the service.
1845// the "output" return value is not valid until after Send returns without error.
1846//
1847// See DescribeStackInstance for more information on using the DescribeStackInstance
1848// API call, and error handling.
1849//
1850// This method is useful when you want to inject custom logic or configuration
1851// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1852//
1853//
1854//    // Example sending a request using the DescribeStackInstanceRequest method.
1855//    req, resp := client.DescribeStackInstanceRequest(params)
1856//
1857//    err := req.Send()
1858//    if err == nil { // resp is now filled
1859//        fmt.Println(resp)
1860//    }
1861//
1862// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/DescribeStackInstance
1863func (c *CloudFormation) DescribeStackInstanceRequest(input *DescribeStackInstanceInput) (req *request.Request, output *DescribeStackInstanceOutput) {
1864	op := &request.Operation{
1865		Name:       opDescribeStackInstance,
1866		HTTPMethod: "POST",
1867		HTTPPath:   "/",
1868	}
1869
1870	if input == nil {
1871		input = &DescribeStackInstanceInput{}
1872	}
1873
1874	output = &DescribeStackInstanceOutput{}
1875	req = c.newRequest(op, input, output)
1876	return
1877}
1878
1879// DescribeStackInstance API operation for AWS CloudFormation.
1880//
1881// Returns the stack instance that's associated with the specified stack set,
1882// account, and Region.
1883//
1884// For a list of stack instances that are associated with a specific stack set,
1885// use ListStackInstances.
1886//
1887// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1888// with awserr.Error's Code and Message methods to get detailed information about
1889// the error.
1890//
1891// See the AWS API reference guide for AWS CloudFormation's
1892// API operation DescribeStackInstance for usage and error information.
1893//
1894// Returned Error Codes:
1895//   * ErrCodeStackSetNotFoundException "StackSetNotFoundException"
1896//   The specified stack set doesn't exist.
1897//
1898//   * ErrCodeStackInstanceNotFoundException "StackInstanceNotFoundException"
1899//   The specified stack instance doesn't exist.
1900//
1901// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/DescribeStackInstance
1902func (c *CloudFormation) DescribeStackInstance(input *DescribeStackInstanceInput) (*DescribeStackInstanceOutput, error) {
1903	req, out := c.DescribeStackInstanceRequest(input)
1904	return out, req.Send()
1905}
1906
1907// DescribeStackInstanceWithContext is the same as DescribeStackInstance with the addition of
1908// the ability to pass a context and additional request options.
1909//
1910// See DescribeStackInstance for details on how to use this API operation.
1911//
1912// The context must be non-nil and will be used for request cancellation. If
1913// the context is nil a panic will occur. In the future the SDK may create
1914// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1915// for more information on using Contexts.
1916func (c *CloudFormation) DescribeStackInstanceWithContext(ctx aws.Context, input *DescribeStackInstanceInput, opts ...request.Option) (*DescribeStackInstanceOutput, error) {
1917	req, out := c.DescribeStackInstanceRequest(input)
1918	req.SetContext(ctx)
1919	req.ApplyOptions(opts...)
1920	return out, req.Send()
1921}
1922
1923const opDescribeStackResource = "DescribeStackResource"
1924
1925// DescribeStackResourceRequest generates a "aws/request.Request" representing the
1926// client's request for the DescribeStackResource operation. The "output" return
1927// value will be populated with the request's response once the request completes
1928// successfully.
1929//
1930// Use "Send" method on the returned Request to send the API call to the service.
1931// the "output" return value is not valid until after Send returns without error.
1932//
1933// See DescribeStackResource for more information on using the DescribeStackResource
1934// API call, and error handling.
1935//
1936// This method is useful when you want to inject custom logic or configuration
1937// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1938//
1939//
1940//    // Example sending a request using the DescribeStackResourceRequest method.
1941//    req, resp := client.DescribeStackResourceRequest(params)
1942//
1943//    err := req.Send()
1944//    if err == nil { // resp is now filled
1945//        fmt.Println(resp)
1946//    }
1947//
1948// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/DescribeStackResource
1949func (c *CloudFormation) DescribeStackResourceRequest(input *DescribeStackResourceInput) (req *request.Request, output *DescribeStackResourceOutput) {
1950	op := &request.Operation{
1951		Name:       opDescribeStackResource,
1952		HTTPMethod: "POST",
1953		HTTPPath:   "/",
1954	}
1955
1956	if input == nil {
1957		input = &DescribeStackResourceInput{}
1958	}
1959
1960	output = &DescribeStackResourceOutput{}
1961	req = c.newRequest(op, input, output)
1962	return
1963}
1964
1965// DescribeStackResource API operation for AWS CloudFormation.
1966//
1967// Returns a description of the specified resource in the specified stack.
1968//
1969// For deleted stacks, DescribeStackResource returns resource information for
1970// up to 90 days after the stack has been deleted.
1971//
1972// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1973// with awserr.Error's Code and Message methods to get detailed information about
1974// the error.
1975//
1976// See the AWS API reference guide for AWS CloudFormation's
1977// API operation DescribeStackResource for usage and error information.
1978// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/DescribeStackResource
1979func (c *CloudFormation) DescribeStackResource(input *DescribeStackResourceInput) (*DescribeStackResourceOutput, error) {
1980	req, out := c.DescribeStackResourceRequest(input)
1981	return out, req.Send()
1982}
1983
1984// DescribeStackResourceWithContext is the same as DescribeStackResource with the addition of
1985// the ability to pass a context and additional request options.
1986//
1987// See DescribeStackResource for details on how to use this API operation.
1988//
1989// The context must be non-nil and will be used for request cancellation. If
1990// the context is nil a panic will occur. In the future the SDK may create
1991// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1992// for more information on using Contexts.
1993func (c *CloudFormation) DescribeStackResourceWithContext(ctx aws.Context, input *DescribeStackResourceInput, opts ...request.Option) (*DescribeStackResourceOutput, error) {
1994	req, out := c.DescribeStackResourceRequest(input)
1995	req.SetContext(ctx)
1996	req.ApplyOptions(opts...)
1997	return out, req.Send()
1998}
1999
2000const opDescribeStackResourceDrifts = "DescribeStackResourceDrifts"
2001
2002// DescribeStackResourceDriftsRequest generates a "aws/request.Request" representing the
2003// client's request for the DescribeStackResourceDrifts operation. The "output" return
2004// value will be populated with the request's response once the request completes
2005// successfully.
2006//
2007// Use "Send" method on the returned Request to send the API call to the service.
2008// the "output" return value is not valid until after Send returns without error.
2009//
2010// See DescribeStackResourceDrifts for more information on using the DescribeStackResourceDrifts
2011// API call, and error handling.
2012//
2013// This method is useful when you want to inject custom logic or configuration
2014// into the SDK's request lifecycle. Such as custom headers, or retry logic.
2015//
2016//
2017//    // Example sending a request using the DescribeStackResourceDriftsRequest method.
2018//    req, resp := client.DescribeStackResourceDriftsRequest(params)
2019//
2020//    err := req.Send()
2021//    if err == nil { // resp is now filled
2022//        fmt.Println(resp)
2023//    }
2024//
2025// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/DescribeStackResourceDrifts
2026func (c *CloudFormation) DescribeStackResourceDriftsRequest(input *DescribeStackResourceDriftsInput) (req *request.Request, output *DescribeStackResourceDriftsOutput) {
2027	op := &request.Operation{
2028		Name:       opDescribeStackResourceDrifts,
2029		HTTPMethod: "POST",
2030		HTTPPath:   "/",
2031		Paginator: &request.Paginator{
2032			InputTokens:     []string{"NextToken"},
2033			OutputTokens:    []string{"NextToken"},
2034			LimitToken:      "MaxResults",
2035			TruncationToken: "",
2036		},
2037	}
2038
2039	if input == nil {
2040		input = &DescribeStackResourceDriftsInput{}
2041	}
2042
2043	output = &DescribeStackResourceDriftsOutput{}
2044	req = c.newRequest(op, input, output)
2045	return
2046}
2047
2048// DescribeStackResourceDrifts API operation for AWS CloudFormation.
2049//
2050// Returns drift information for the resources that have been checked for drift
2051// in the specified stack. This includes actual and expected configuration values
2052// for resources where CloudFormation detects configuration drift.
2053//
2054// For a given stack, there will be one StackResourceDrift for each stack resource
2055// that has been checked for drift. Resources that have not yet been checked
2056// for drift are not included. Resources that do not currently support drift
2057// detection are not checked, and so not included. For a list of resources that
2058// support drift detection, see Resources that Support Drift Detection (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-stack-drift-resource-list.html).
2059//
2060// Use DetectStackResourceDrift to detect drift on individual resources, or
2061// DetectStackDrift to detect drift on all supported resources for a given stack.
2062//
2063// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
2064// with awserr.Error's Code and Message methods to get detailed information about
2065// the error.
2066//
2067// See the AWS API reference guide for AWS CloudFormation's
2068// API operation DescribeStackResourceDrifts for usage and error information.
2069// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/DescribeStackResourceDrifts
2070func (c *CloudFormation) DescribeStackResourceDrifts(input *DescribeStackResourceDriftsInput) (*DescribeStackResourceDriftsOutput, error) {
2071	req, out := c.DescribeStackResourceDriftsRequest(input)
2072	return out, req.Send()
2073}
2074
2075// DescribeStackResourceDriftsWithContext is the same as DescribeStackResourceDrifts with the addition of
2076// the ability to pass a context and additional request options.
2077//
2078// See DescribeStackResourceDrifts for details on how to use this API operation.
2079//
2080// The context must be non-nil and will be used for request cancellation. If
2081// the context is nil a panic will occur. In the future the SDK may create
2082// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2083// for more information on using Contexts.
2084func (c *CloudFormation) DescribeStackResourceDriftsWithContext(ctx aws.Context, input *DescribeStackResourceDriftsInput, opts ...request.Option) (*DescribeStackResourceDriftsOutput, error) {
2085	req, out := c.DescribeStackResourceDriftsRequest(input)
2086	req.SetContext(ctx)
2087	req.ApplyOptions(opts...)
2088	return out, req.Send()
2089}
2090
2091// DescribeStackResourceDriftsPages iterates over the pages of a DescribeStackResourceDrifts operation,
2092// calling the "fn" function with the response data for each page. To stop
2093// iterating, return false from the fn function.
2094//
2095// See DescribeStackResourceDrifts method for more information on how to use this operation.
2096//
2097// Note: This operation can generate multiple requests to a service.
2098//
2099//    // Example iterating over at most 3 pages of a DescribeStackResourceDrifts operation.
2100//    pageNum := 0
2101//    err := client.DescribeStackResourceDriftsPages(params,
2102//        func(page *cloudformation.DescribeStackResourceDriftsOutput, lastPage bool) bool {
2103//            pageNum++
2104//            fmt.Println(page)
2105//            return pageNum <= 3
2106//        })
2107//
2108func (c *CloudFormation) DescribeStackResourceDriftsPages(input *DescribeStackResourceDriftsInput, fn func(*DescribeStackResourceDriftsOutput, bool) bool) error {
2109	return c.DescribeStackResourceDriftsPagesWithContext(aws.BackgroundContext(), input, fn)
2110}
2111
2112// DescribeStackResourceDriftsPagesWithContext same as DescribeStackResourceDriftsPages except
2113// it takes a Context and allows setting request options on the pages.
2114//
2115// The context must be non-nil and will be used for request cancellation. If
2116// the context is nil a panic will occur. In the future the SDK may create
2117// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2118// for more information on using Contexts.
2119func (c *CloudFormation) DescribeStackResourceDriftsPagesWithContext(ctx aws.Context, input *DescribeStackResourceDriftsInput, fn func(*DescribeStackResourceDriftsOutput, bool) bool, opts ...request.Option) error {
2120	p := request.Pagination{
2121		NewRequest: func() (*request.Request, error) {
2122			var inCpy *DescribeStackResourceDriftsInput
2123			if input != nil {
2124				tmp := *input
2125				inCpy = &tmp
2126			}
2127			req, _ := c.DescribeStackResourceDriftsRequest(inCpy)
2128			req.SetContext(ctx)
2129			req.ApplyOptions(opts...)
2130			return req, nil
2131		},
2132	}
2133
2134	for p.Next() {
2135		if !fn(p.Page().(*DescribeStackResourceDriftsOutput), !p.HasNextPage()) {
2136			break
2137		}
2138	}
2139
2140	return p.Err()
2141}
2142
2143const opDescribeStackResources = "DescribeStackResources"
2144
2145// DescribeStackResourcesRequest generates a "aws/request.Request" representing the
2146// client's request for the DescribeStackResources operation. The "output" return
2147// value will be populated with the request's response once the request completes
2148// successfully.
2149//
2150// Use "Send" method on the returned Request to send the API call to the service.
2151// the "output" return value is not valid until after Send returns without error.
2152//
2153// See DescribeStackResources for more information on using the DescribeStackResources
2154// API call, and error handling.
2155//
2156// This method is useful when you want to inject custom logic or configuration
2157// into the SDK's request lifecycle. Such as custom headers, or retry logic.
2158//
2159//
2160//    // Example sending a request using the DescribeStackResourcesRequest method.
2161//    req, resp := client.DescribeStackResourcesRequest(params)
2162//
2163//    err := req.Send()
2164//    if err == nil { // resp is now filled
2165//        fmt.Println(resp)
2166//    }
2167//
2168// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/DescribeStackResources
2169func (c *CloudFormation) DescribeStackResourcesRequest(input *DescribeStackResourcesInput) (req *request.Request, output *DescribeStackResourcesOutput) {
2170	op := &request.Operation{
2171		Name:       opDescribeStackResources,
2172		HTTPMethod: "POST",
2173		HTTPPath:   "/",
2174	}
2175
2176	if input == nil {
2177		input = &DescribeStackResourcesInput{}
2178	}
2179
2180	output = &DescribeStackResourcesOutput{}
2181	req = c.newRequest(op, input, output)
2182	return
2183}
2184
2185// DescribeStackResources API operation for AWS CloudFormation.
2186//
2187// Returns Amazon Web Services resource descriptions for running and deleted
2188// stacks. If StackName is specified, all the associated resources that are
2189// part of the stack are returned. If PhysicalResourceId is specified, the associated
2190// resources of the stack that the resource belongs to are returned.
2191//
2192// Only the first 100 resources will be returned. If your stack has more resources
2193// than this, you should use ListStackResources instead.
2194//
2195// For deleted stacks, DescribeStackResources returns resource information for
2196// up to 90 days after the stack has been deleted.
2197//
2198// You must specify either StackName or PhysicalResourceId, but not both. In
2199// addition, you can specify LogicalResourceId to filter the returned result.
2200// For more information about resources, the LogicalResourceId and PhysicalResourceId,
2201// go to the CloudFormation User Guide (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/).
2202//
2203// A ValidationError is returned if you specify both StackName and PhysicalResourceId
2204// in the same request.
2205//
2206// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
2207// with awserr.Error's Code and Message methods to get detailed information about
2208// the error.
2209//
2210// See the AWS API reference guide for AWS CloudFormation's
2211// API operation DescribeStackResources for usage and error information.
2212// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/DescribeStackResources
2213func (c *CloudFormation) DescribeStackResources(input *DescribeStackResourcesInput) (*DescribeStackResourcesOutput, error) {
2214	req, out := c.DescribeStackResourcesRequest(input)
2215	return out, req.Send()
2216}
2217
2218// DescribeStackResourcesWithContext is the same as DescribeStackResources with the addition of
2219// the ability to pass a context and additional request options.
2220//
2221// See DescribeStackResources for details on how to use this API operation.
2222//
2223// The context must be non-nil and will be used for request cancellation. If
2224// the context is nil a panic will occur. In the future the SDK may create
2225// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2226// for more information on using Contexts.
2227func (c *CloudFormation) DescribeStackResourcesWithContext(ctx aws.Context, input *DescribeStackResourcesInput, opts ...request.Option) (*DescribeStackResourcesOutput, error) {
2228	req, out := c.DescribeStackResourcesRequest(input)
2229	req.SetContext(ctx)
2230	req.ApplyOptions(opts...)
2231	return out, req.Send()
2232}
2233
2234const opDescribeStackSet = "DescribeStackSet"
2235
2236// DescribeStackSetRequest generates a "aws/request.Request" representing the
2237// client's request for the DescribeStackSet operation. The "output" return
2238// value will be populated with the request's response once the request completes
2239// successfully.
2240//
2241// Use "Send" method on the returned Request to send the API call to the service.
2242// the "output" return value is not valid until after Send returns without error.
2243//
2244// See DescribeStackSet for more information on using the DescribeStackSet
2245// API call, and error handling.
2246//
2247// This method is useful when you want to inject custom logic or configuration
2248// into the SDK's request lifecycle. Such as custom headers, or retry logic.
2249//
2250//
2251//    // Example sending a request using the DescribeStackSetRequest method.
2252//    req, resp := client.DescribeStackSetRequest(params)
2253//
2254//    err := req.Send()
2255//    if err == nil { // resp is now filled
2256//        fmt.Println(resp)
2257//    }
2258//
2259// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/DescribeStackSet
2260func (c *CloudFormation) DescribeStackSetRequest(input *DescribeStackSetInput) (req *request.Request, output *DescribeStackSetOutput) {
2261	op := &request.Operation{
2262		Name:       opDescribeStackSet,
2263		HTTPMethod: "POST",
2264		HTTPPath:   "/",
2265	}
2266
2267	if input == nil {
2268		input = &DescribeStackSetInput{}
2269	}
2270
2271	output = &DescribeStackSetOutput{}
2272	req = c.newRequest(op, input, output)
2273	return
2274}
2275
2276// DescribeStackSet API operation for AWS CloudFormation.
2277//
2278// Returns the description of the specified stack set.
2279//
2280// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
2281// with awserr.Error's Code and Message methods to get detailed information about
2282// the error.
2283//
2284// See the AWS API reference guide for AWS CloudFormation's
2285// API operation DescribeStackSet for usage and error information.
2286//
2287// Returned Error Codes:
2288//   * ErrCodeStackSetNotFoundException "StackSetNotFoundException"
2289//   The specified stack set doesn't exist.
2290//
2291// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/DescribeStackSet
2292func (c *CloudFormation) DescribeStackSet(input *DescribeStackSetInput) (*DescribeStackSetOutput, error) {
2293	req, out := c.DescribeStackSetRequest(input)
2294	return out, req.Send()
2295}
2296
2297// DescribeStackSetWithContext is the same as DescribeStackSet with the addition of
2298// the ability to pass a context and additional request options.
2299//
2300// See DescribeStackSet for details on how to use this API operation.
2301//
2302// The context must be non-nil and will be used for request cancellation. If
2303// the context is nil a panic will occur. In the future the SDK may create
2304// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2305// for more information on using Contexts.
2306func (c *CloudFormation) DescribeStackSetWithContext(ctx aws.Context, input *DescribeStackSetInput, opts ...request.Option) (*DescribeStackSetOutput, error) {
2307	req, out := c.DescribeStackSetRequest(input)
2308	req.SetContext(ctx)
2309	req.ApplyOptions(opts...)
2310	return out, req.Send()
2311}
2312
2313const opDescribeStackSetOperation = "DescribeStackSetOperation"
2314
2315// DescribeStackSetOperationRequest generates a "aws/request.Request" representing the
2316// client's request for the DescribeStackSetOperation operation. The "output" return
2317// value will be populated with the request's response once the request completes
2318// successfully.
2319//
2320// Use "Send" method on the returned Request to send the API call to the service.
2321// the "output" return value is not valid until after Send returns without error.
2322//
2323// See DescribeStackSetOperation for more information on using the DescribeStackSetOperation
2324// API call, and error handling.
2325//
2326// This method is useful when you want to inject custom logic or configuration
2327// into the SDK's request lifecycle. Such as custom headers, or retry logic.
2328//
2329//
2330//    // Example sending a request using the DescribeStackSetOperationRequest method.
2331//    req, resp := client.DescribeStackSetOperationRequest(params)
2332//
2333//    err := req.Send()
2334//    if err == nil { // resp is now filled
2335//        fmt.Println(resp)
2336//    }
2337//
2338// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/DescribeStackSetOperation
2339func (c *CloudFormation) DescribeStackSetOperationRequest(input *DescribeStackSetOperationInput) (req *request.Request, output *DescribeStackSetOperationOutput) {
2340	op := &request.Operation{
2341		Name:       opDescribeStackSetOperation,
2342		HTTPMethod: "POST",
2343		HTTPPath:   "/",
2344	}
2345
2346	if input == nil {
2347		input = &DescribeStackSetOperationInput{}
2348	}
2349
2350	output = &DescribeStackSetOperationOutput{}
2351	req = c.newRequest(op, input, output)
2352	return
2353}
2354
2355// DescribeStackSetOperation API operation for AWS CloudFormation.
2356//
2357// Returns the description of the specified stack set operation.
2358//
2359// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
2360// with awserr.Error's Code and Message methods to get detailed information about
2361// the error.
2362//
2363// See the AWS API reference guide for AWS CloudFormation's
2364// API operation DescribeStackSetOperation for usage and error information.
2365//
2366// Returned Error Codes:
2367//   * ErrCodeStackSetNotFoundException "StackSetNotFoundException"
2368//   The specified stack set doesn't exist.
2369//
2370//   * ErrCodeOperationNotFoundException "OperationNotFoundException"
2371//   The specified ID refers to an operation that doesn't exist.
2372//
2373// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/DescribeStackSetOperation
2374func (c *CloudFormation) DescribeStackSetOperation(input *DescribeStackSetOperationInput) (*DescribeStackSetOperationOutput, error) {
2375	req, out := c.DescribeStackSetOperationRequest(input)
2376	return out, req.Send()
2377}
2378
2379// DescribeStackSetOperationWithContext is the same as DescribeStackSetOperation with the addition of
2380// the ability to pass a context and additional request options.
2381//
2382// See DescribeStackSetOperation for details on how to use this API operation.
2383//
2384// The context must be non-nil and will be used for request cancellation. If
2385// the context is nil a panic will occur. In the future the SDK may create
2386// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2387// for more information on using Contexts.
2388func (c *CloudFormation) DescribeStackSetOperationWithContext(ctx aws.Context, input *DescribeStackSetOperationInput, opts ...request.Option) (*DescribeStackSetOperationOutput, error) {
2389	req, out := c.DescribeStackSetOperationRequest(input)
2390	req.SetContext(ctx)
2391	req.ApplyOptions(opts...)
2392	return out, req.Send()
2393}
2394
2395const opDescribeStacks = "DescribeStacks"
2396
2397// DescribeStacksRequest generates a "aws/request.Request" representing the
2398// client's request for the DescribeStacks operation. The "output" return
2399// value will be populated with the request's response once the request completes
2400// successfully.
2401//
2402// Use "Send" method on the returned Request to send the API call to the service.
2403// the "output" return value is not valid until after Send returns without error.
2404//
2405// See DescribeStacks for more information on using the DescribeStacks
2406// API call, and error handling.
2407//
2408// This method is useful when you want to inject custom logic or configuration
2409// into the SDK's request lifecycle. Such as custom headers, or retry logic.
2410//
2411//
2412//    // Example sending a request using the DescribeStacksRequest method.
2413//    req, resp := client.DescribeStacksRequest(params)
2414//
2415//    err := req.Send()
2416//    if err == nil { // resp is now filled
2417//        fmt.Println(resp)
2418//    }
2419//
2420// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/DescribeStacks
2421func (c *CloudFormation) DescribeStacksRequest(input *DescribeStacksInput) (req *request.Request, output *DescribeStacksOutput) {
2422	op := &request.Operation{
2423		Name:       opDescribeStacks,
2424		HTTPMethod: "POST",
2425		HTTPPath:   "/",
2426		Paginator: &request.Paginator{
2427			InputTokens:     []string{"NextToken"},
2428			OutputTokens:    []string{"NextToken"},
2429			LimitToken:      "",
2430			TruncationToken: "",
2431		},
2432	}
2433
2434	if input == nil {
2435		input = &DescribeStacksInput{}
2436	}
2437
2438	output = &DescribeStacksOutput{}
2439	req = c.newRequest(op, input, output)
2440	return
2441}
2442
2443// DescribeStacks API operation for AWS CloudFormation.
2444//
2445// Returns the description for the specified stack; if no stack name was specified,
2446// then it returns the description for all the stacks created.
2447//
2448// If the stack does not exist, an AmazonCloudFormationException is returned.
2449//
2450// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
2451// with awserr.Error's Code and Message methods to get detailed information about
2452// the error.
2453//
2454// See the AWS API reference guide for AWS CloudFormation's
2455// API operation DescribeStacks for usage and error information.
2456// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/DescribeStacks
2457func (c *CloudFormation) DescribeStacks(input *DescribeStacksInput) (*DescribeStacksOutput, error) {
2458	req, out := c.DescribeStacksRequest(input)
2459	return out, req.Send()
2460}
2461
2462// DescribeStacksWithContext is the same as DescribeStacks with the addition of
2463// the ability to pass a context and additional request options.
2464//
2465// See DescribeStacks for details on how to use this API operation.
2466//
2467// The context must be non-nil and will be used for request cancellation. If
2468// the context is nil a panic will occur. In the future the SDK may create
2469// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2470// for more information on using Contexts.
2471func (c *CloudFormation) DescribeStacksWithContext(ctx aws.Context, input *DescribeStacksInput, opts ...request.Option) (*DescribeStacksOutput, error) {
2472	req, out := c.DescribeStacksRequest(input)
2473	req.SetContext(ctx)
2474	req.ApplyOptions(opts...)
2475	return out, req.Send()
2476}
2477
2478// DescribeStacksPages iterates over the pages of a DescribeStacks operation,
2479// calling the "fn" function with the response data for each page. To stop
2480// iterating, return false from the fn function.
2481//
2482// See DescribeStacks method for more information on how to use this operation.
2483//
2484// Note: This operation can generate multiple requests to a service.
2485//
2486//    // Example iterating over at most 3 pages of a DescribeStacks operation.
2487//    pageNum := 0
2488//    err := client.DescribeStacksPages(params,
2489//        func(page *cloudformation.DescribeStacksOutput, lastPage bool) bool {
2490//            pageNum++
2491//            fmt.Println(page)
2492//            return pageNum <= 3
2493//        })
2494//
2495func (c *CloudFormation) DescribeStacksPages(input *DescribeStacksInput, fn func(*DescribeStacksOutput, bool) bool) error {
2496	return c.DescribeStacksPagesWithContext(aws.BackgroundContext(), input, fn)
2497}
2498
2499// DescribeStacksPagesWithContext same as DescribeStacksPages except
2500// it takes a Context and allows setting request options on the pages.
2501//
2502// The context must be non-nil and will be used for request cancellation. If
2503// the context is nil a panic will occur. In the future the SDK may create
2504// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2505// for more information on using Contexts.
2506func (c *CloudFormation) DescribeStacksPagesWithContext(ctx aws.Context, input *DescribeStacksInput, fn func(*DescribeStacksOutput, bool) bool, opts ...request.Option) error {
2507	p := request.Pagination{
2508		NewRequest: func() (*request.Request, error) {
2509			var inCpy *DescribeStacksInput
2510			if input != nil {
2511				tmp := *input
2512				inCpy = &tmp
2513			}
2514			req, _ := c.DescribeStacksRequest(inCpy)
2515			req.SetContext(ctx)
2516			req.ApplyOptions(opts...)
2517			return req, nil
2518		},
2519	}
2520
2521	for p.Next() {
2522		if !fn(p.Page().(*DescribeStacksOutput), !p.HasNextPage()) {
2523			break
2524		}
2525	}
2526
2527	return p.Err()
2528}
2529
2530const opDescribeType = "DescribeType"
2531
2532// DescribeTypeRequest generates a "aws/request.Request" representing the
2533// client's request for the DescribeType operation. The "output" return
2534// value will be populated with the request's response once the request completes
2535// successfully.
2536//
2537// Use "Send" method on the returned Request to send the API call to the service.
2538// the "output" return value is not valid until after Send returns without error.
2539//
2540// See DescribeType for more information on using the DescribeType
2541// API call, and error handling.
2542//
2543// This method is useful when you want to inject custom logic or configuration
2544// into the SDK's request lifecycle. Such as custom headers, or retry logic.
2545//
2546//
2547//    // Example sending a request using the DescribeTypeRequest method.
2548//    req, resp := client.DescribeTypeRequest(params)
2549//
2550//    err := req.Send()
2551//    if err == nil { // resp is now filled
2552//        fmt.Println(resp)
2553//    }
2554//
2555// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/DescribeType
2556func (c *CloudFormation) DescribeTypeRequest(input *DescribeTypeInput) (req *request.Request, output *DescribeTypeOutput) {
2557	op := &request.Operation{
2558		Name:       opDescribeType,
2559		HTTPMethod: "POST",
2560		HTTPPath:   "/",
2561	}
2562
2563	if input == nil {
2564		input = &DescribeTypeInput{}
2565	}
2566
2567	output = &DescribeTypeOutput{}
2568	req = c.newRequest(op, input, output)
2569	return
2570}
2571
2572// DescribeType API operation for AWS CloudFormation.
2573//
2574// Returns detailed information about an extension that has been registered.
2575//
2576// If you specify a VersionId, DescribeType returns information about that specific
2577// extension version. Otherwise, it returns information about the default extension
2578// version.
2579//
2580// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
2581// with awserr.Error's Code and Message methods to get detailed information about
2582// the error.
2583//
2584// See the AWS API reference guide for AWS CloudFormation's
2585// API operation DescribeType for usage and error information.
2586//
2587// Returned Error Codes:
2588//   * ErrCodeCFNRegistryException "CFNRegistryException"
2589//   An error occurred during a CloudFormation registry operation.
2590//
2591//   * ErrCodeTypeNotFoundException "TypeNotFoundException"
2592//   The specified extension does not exist in the CloudFormation registry.
2593//
2594// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/DescribeType
2595func (c *CloudFormation) DescribeType(input *DescribeTypeInput) (*DescribeTypeOutput, error) {
2596	req, out := c.DescribeTypeRequest(input)
2597	return out, req.Send()
2598}
2599
2600// DescribeTypeWithContext is the same as DescribeType with the addition of
2601// the ability to pass a context and additional request options.
2602//
2603// See DescribeType for details on how to use this API operation.
2604//
2605// The context must be non-nil and will be used for request cancellation. If
2606// the context is nil a panic will occur. In the future the SDK may create
2607// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2608// for more information on using Contexts.
2609func (c *CloudFormation) DescribeTypeWithContext(ctx aws.Context, input *DescribeTypeInput, opts ...request.Option) (*DescribeTypeOutput, error) {
2610	req, out := c.DescribeTypeRequest(input)
2611	req.SetContext(ctx)
2612	req.ApplyOptions(opts...)
2613	return out, req.Send()
2614}
2615
2616const opDescribeTypeRegistration = "DescribeTypeRegistration"
2617
2618// DescribeTypeRegistrationRequest generates a "aws/request.Request" representing the
2619// client's request for the DescribeTypeRegistration operation. The "output" return
2620// value will be populated with the request's response once the request completes
2621// successfully.
2622//
2623// Use "Send" method on the returned Request to send the API call to the service.
2624// the "output" return value is not valid until after Send returns without error.
2625//
2626// See DescribeTypeRegistration for more information on using the DescribeTypeRegistration
2627// API call, and error handling.
2628//
2629// This method is useful when you want to inject custom logic or configuration
2630// into the SDK's request lifecycle. Such as custom headers, or retry logic.
2631//
2632//
2633//    // Example sending a request using the DescribeTypeRegistrationRequest method.
2634//    req, resp := client.DescribeTypeRegistrationRequest(params)
2635//
2636//    err := req.Send()
2637//    if err == nil { // resp is now filled
2638//        fmt.Println(resp)
2639//    }
2640//
2641// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/DescribeTypeRegistration
2642func (c *CloudFormation) DescribeTypeRegistrationRequest(input *DescribeTypeRegistrationInput) (req *request.Request, output *DescribeTypeRegistrationOutput) {
2643	op := &request.Operation{
2644		Name:       opDescribeTypeRegistration,
2645		HTTPMethod: "POST",
2646		HTTPPath:   "/",
2647	}
2648
2649	if input == nil {
2650		input = &DescribeTypeRegistrationInput{}
2651	}
2652
2653	output = &DescribeTypeRegistrationOutput{}
2654	req = c.newRequest(op, input, output)
2655	return
2656}
2657
2658// DescribeTypeRegistration API operation for AWS CloudFormation.
2659//
2660// Returns information about an extension's registration, including its current
2661// status and type and version identifiers.
2662//
2663// When you initiate a registration request using RegisterType , you can then
2664// use DescribeTypeRegistration to monitor the progress of that registration
2665// request.
2666//
2667// Once the registration request has completed, use DescribeType to return detailed
2668// information about an extension.
2669//
2670// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
2671// with awserr.Error's Code and Message methods to get detailed information about
2672// the error.
2673//
2674// See the AWS API reference guide for AWS CloudFormation's
2675// API operation DescribeTypeRegistration for usage and error information.
2676//
2677// Returned Error Codes:
2678//   * ErrCodeCFNRegistryException "CFNRegistryException"
2679//   An error occurred during a CloudFormation registry operation.
2680//
2681// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/DescribeTypeRegistration
2682func (c *CloudFormation) DescribeTypeRegistration(input *DescribeTypeRegistrationInput) (*DescribeTypeRegistrationOutput, error) {
2683	req, out := c.DescribeTypeRegistrationRequest(input)
2684	return out, req.Send()
2685}
2686
2687// DescribeTypeRegistrationWithContext is the same as DescribeTypeRegistration with the addition of
2688// the ability to pass a context and additional request options.
2689//
2690// See DescribeTypeRegistration for details on how to use this API operation.
2691//
2692// The context must be non-nil and will be used for request cancellation. If
2693// the context is nil a panic will occur. In the future the SDK may create
2694// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2695// for more information on using Contexts.
2696func (c *CloudFormation) DescribeTypeRegistrationWithContext(ctx aws.Context, input *DescribeTypeRegistrationInput, opts ...request.Option) (*DescribeTypeRegistrationOutput, error) {
2697	req, out := c.DescribeTypeRegistrationRequest(input)
2698	req.SetContext(ctx)
2699	req.ApplyOptions(opts...)
2700	return out, req.Send()
2701}
2702
2703const opDetectStackDrift = "DetectStackDrift"
2704
2705// DetectStackDriftRequest generates a "aws/request.Request" representing the
2706// client's request for the DetectStackDrift operation. The "output" return
2707// value will be populated with the request's response once the request completes
2708// successfully.
2709//
2710// Use "Send" method on the returned Request to send the API call to the service.
2711// the "output" return value is not valid until after Send returns without error.
2712//
2713// See DetectStackDrift for more information on using the DetectStackDrift
2714// API call, and error handling.
2715//
2716// This method is useful when you want to inject custom logic or configuration
2717// into the SDK's request lifecycle. Such as custom headers, or retry logic.
2718//
2719//
2720//    // Example sending a request using the DetectStackDriftRequest method.
2721//    req, resp := client.DetectStackDriftRequest(params)
2722//
2723//    err := req.Send()
2724//    if err == nil { // resp is now filled
2725//        fmt.Println(resp)
2726//    }
2727//
2728// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/DetectStackDrift
2729func (c *CloudFormation) DetectStackDriftRequest(input *DetectStackDriftInput) (req *request.Request, output *DetectStackDriftOutput) {
2730	op := &request.Operation{
2731		Name:       opDetectStackDrift,
2732		HTTPMethod: "POST",
2733		HTTPPath:   "/",
2734	}
2735
2736	if input == nil {
2737		input = &DetectStackDriftInput{}
2738	}
2739
2740	output = &DetectStackDriftOutput{}
2741	req = c.newRequest(op, input, output)
2742	return
2743}
2744
2745// DetectStackDrift API operation for AWS CloudFormation.
2746//
2747// Detects whether a stack's actual configuration differs, or has drifted, from
2748// it's expected configuration, as defined in the stack template and any values
2749// specified as template parameters. For each resource in the stack that supports
2750// drift detection, CloudFormation compares the actual configuration of the
2751// resource with its expected template configuration. Only resource properties
2752// explicitly defined in the stack template are checked for drift. A stack is
2753// considered to have drifted if one or more of its resources differ from their
2754// expected template configurations. For more information, see Detecting Unregulated
2755// Configuration Changes to Stacks and Resources (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-stack-drift.html).
2756//
2757// Use DetectStackDrift to detect drift on all supported resources for a given
2758// stack, or DetectStackResourceDrift to detect drift on individual resources.
2759//
2760// For a list of stack resources that currently support drift detection, see
2761// Resources that Support Drift Detection (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-stack-drift-resource-list.html).
2762//
2763// DetectStackDrift can take up to several minutes, depending on the number
2764// of resources contained within the stack. Use DescribeStackDriftDetectionStatus
2765// to monitor the progress of a detect stack drift operation. Once the drift
2766// detection operation has completed, use DescribeStackResourceDrifts to return
2767// drift information about the stack and its resources.
2768//
2769// When detecting drift on a stack, CloudFormation does not detect drift on
2770// any nested stacks belonging to that stack. Perform DetectStackDrift directly
2771// on the nested stack itself.
2772//
2773// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
2774// with awserr.Error's Code and Message methods to get detailed information about
2775// the error.
2776//
2777// See the AWS API reference guide for AWS CloudFormation's
2778// API operation DetectStackDrift for usage and error information.
2779// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/DetectStackDrift
2780func (c *CloudFormation) DetectStackDrift(input *DetectStackDriftInput) (*DetectStackDriftOutput, error) {
2781	req, out := c.DetectStackDriftRequest(input)
2782	return out, req.Send()
2783}
2784
2785// DetectStackDriftWithContext is the same as DetectStackDrift with the addition of
2786// the ability to pass a context and additional request options.
2787//
2788// See DetectStackDrift for details on how to use this API operation.
2789//
2790// The context must be non-nil and will be used for request cancellation. If
2791// the context is nil a panic will occur. In the future the SDK may create
2792// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2793// for more information on using Contexts.
2794func (c *CloudFormation) DetectStackDriftWithContext(ctx aws.Context, input *DetectStackDriftInput, opts ...request.Option) (*DetectStackDriftOutput, error) {
2795	req, out := c.DetectStackDriftRequest(input)
2796	req.SetContext(ctx)
2797	req.ApplyOptions(opts...)
2798	return out, req.Send()
2799}
2800
2801const opDetectStackResourceDrift = "DetectStackResourceDrift"
2802
2803// DetectStackResourceDriftRequest generates a "aws/request.Request" representing the
2804// client's request for the DetectStackResourceDrift operation. The "output" return
2805// value will be populated with the request's response once the request completes
2806// successfully.
2807//
2808// Use "Send" method on the returned Request to send the API call to the service.
2809// the "output" return value is not valid until after Send returns without error.
2810//
2811// See DetectStackResourceDrift for more information on using the DetectStackResourceDrift
2812// API call, and error handling.
2813//
2814// This method is useful when you want to inject custom logic or configuration
2815// into the SDK's request lifecycle. Such as custom headers, or retry logic.
2816//
2817//
2818//    // Example sending a request using the DetectStackResourceDriftRequest method.
2819//    req, resp := client.DetectStackResourceDriftRequest(params)
2820//
2821//    err := req.Send()
2822//    if err == nil { // resp is now filled
2823//        fmt.Println(resp)
2824//    }
2825//
2826// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/DetectStackResourceDrift
2827func (c *CloudFormation) DetectStackResourceDriftRequest(input *DetectStackResourceDriftInput) (req *request.Request, output *DetectStackResourceDriftOutput) {
2828	op := &request.Operation{
2829		Name:       opDetectStackResourceDrift,
2830		HTTPMethod: "POST",
2831		HTTPPath:   "/",
2832	}
2833
2834	if input == nil {
2835		input = &DetectStackResourceDriftInput{}
2836	}
2837
2838	output = &DetectStackResourceDriftOutput{}
2839	req = c.newRequest(op, input, output)
2840	return
2841}
2842
2843// DetectStackResourceDrift API operation for AWS CloudFormation.
2844//
2845// Returns information about whether a resource's actual configuration differs,
2846// or has drifted, from it's expected configuration, as defined in the stack
2847// template and any values specified as template parameters. This information
2848// includes actual and expected property values for resources in which CloudFormation
2849// detects drift. Only resource properties explicitly defined in the stack template
2850// are checked for drift. For more information about stack and resource drift,
2851// see Detecting Unregulated Configuration Changes to Stacks and Resources (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-stack-drift.html).
2852//
2853// Use DetectStackResourceDrift to detect drift on individual resources, or
2854// DetectStackDrift to detect drift on all resources in a given stack that support
2855// drift detection.
2856//
2857// Resources that do not currently support drift detection cannot be checked.
2858// For a list of resources that support drift detection, see Resources that
2859// Support Drift Detection (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-stack-drift-resource-list.html).
2860//
2861// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
2862// with awserr.Error's Code and Message methods to get detailed information about
2863// the error.
2864//
2865// See the AWS API reference guide for AWS CloudFormation's
2866// API operation DetectStackResourceDrift for usage and error information.
2867// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/DetectStackResourceDrift
2868func (c *CloudFormation) DetectStackResourceDrift(input *DetectStackResourceDriftInput) (*DetectStackResourceDriftOutput, error) {
2869	req, out := c.DetectStackResourceDriftRequest(input)
2870	return out, req.Send()
2871}
2872
2873// DetectStackResourceDriftWithContext is the same as DetectStackResourceDrift with the addition of
2874// the ability to pass a context and additional request options.
2875//
2876// See DetectStackResourceDrift for details on how to use this API operation.
2877//
2878// The context must be non-nil and will be used for request cancellation. If
2879// the context is nil a panic will occur. In the future the SDK may create
2880// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2881// for more information on using Contexts.
2882func (c *CloudFormation) DetectStackResourceDriftWithContext(ctx aws.Context, input *DetectStackResourceDriftInput, opts ...request.Option) (*DetectStackResourceDriftOutput, error) {
2883	req, out := c.DetectStackResourceDriftRequest(input)
2884	req.SetContext(ctx)
2885	req.ApplyOptions(opts...)
2886	return out, req.Send()
2887}
2888
2889const opDetectStackSetDrift = "DetectStackSetDrift"
2890
2891// DetectStackSetDriftRequest generates a "aws/request.Request" representing the
2892// client's request for the DetectStackSetDrift operation. The "output" return
2893// value will be populated with the request's response once the request completes
2894// successfully.
2895//
2896// Use "Send" method on the returned Request to send the API call to the service.
2897// the "output" return value is not valid until after Send returns without error.
2898//
2899// See DetectStackSetDrift for more information on using the DetectStackSetDrift
2900// API call, and error handling.
2901//
2902// This method is useful when you want to inject custom logic or configuration
2903// into the SDK's request lifecycle. Such as custom headers, or retry logic.
2904//
2905//
2906//    // Example sending a request using the DetectStackSetDriftRequest method.
2907//    req, resp := client.DetectStackSetDriftRequest(params)
2908//
2909//    err := req.Send()
2910//    if err == nil { // resp is now filled
2911//        fmt.Println(resp)
2912//    }
2913//
2914// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/DetectStackSetDrift
2915func (c *CloudFormation) DetectStackSetDriftRequest(input *DetectStackSetDriftInput) (req *request.Request, output *DetectStackSetDriftOutput) {
2916	op := &request.Operation{
2917		Name:       opDetectStackSetDrift,
2918		HTTPMethod: "POST",
2919		HTTPPath:   "/",
2920	}
2921
2922	if input == nil {
2923		input = &DetectStackSetDriftInput{}
2924	}
2925
2926	output = &DetectStackSetDriftOutput{}
2927	req = c.newRequest(op, input, output)
2928	return
2929}
2930
2931// DetectStackSetDrift API operation for AWS CloudFormation.
2932//
2933// Detect drift on a stack set. When CloudFormation performs drift detection
2934// on a stack set, it performs drift detection on the stack associated with
2935// each stack instance in the stack set. For more information, see How CloudFormation
2936// Performs Drift Detection on a Stack Set (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/stacksets-drift.html).
2937//
2938// DetectStackSetDrift returns the OperationId of the stack set drift detection
2939// operation. Use this operation id with DescribeStackSetOperation to monitor
2940// the progress of the drift detection operation. The drift detection operation
2941// may take some time, depending on the number of stack instances included in
2942// the stack set, as well as the number of resources included in each stack.
2943//
2944// Once the operation has completed, use the following actions to return drift
2945// information:
2946//
2947//    * Use DescribeStackSet to return detailed information about the stack
2948//    set, including detailed information about the last completed drift operation
2949//    performed on the stack set. (Information about drift operations that are
2950//    in progress is not included.)
2951//
2952//    * Use ListStackInstances to return a list of stack instances belonging
2953//    to the stack set, including the drift status and last drift time checked
2954//    of each instance.
2955//
2956//    * Use DescribeStackInstance to return detailed information about a specific
2957//    stack instance, including its drift status and last drift time checked.
2958//
2959// For more information on performing a drift detection operation on a stack
2960// set, see Detecting Unmanaged Changes in Stack Sets (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/stacksets-drift.html).
2961//
2962// You can only run a single drift detection operation on a given stack set
2963// at one time.
2964//
2965// To stop a drift detection stack set operation, use StopStackSetOperation .
2966//
2967// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
2968// with awserr.Error's Code and Message methods to get detailed information about
2969// the error.
2970//
2971// See the AWS API reference guide for AWS CloudFormation's
2972// API operation DetectStackSetDrift for usage and error information.
2973//
2974// Returned Error Codes:
2975//   * ErrCodeInvalidOperationException "InvalidOperationException"
2976//   The specified operation isn't valid.
2977//
2978//   * ErrCodeOperationInProgressException "OperationInProgressException"
2979//   Another operation is currently in progress for this stack set. Only one operation
2980//   can be performed for a stack set at a given time.
2981//
2982//   * ErrCodeStackSetNotFoundException "StackSetNotFoundException"
2983//   The specified stack set doesn't exist.
2984//
2985// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/DetectStackSetDrift
2986func (c *CloudFormation) DetectStackSetDrift(input *DetectStackSetDriftInput) (*DetectStackSetDriftOutput, error) {
2987	req, out := c.DetectStackSetDriftRequest(input)
2988	return out, req.Send()
2989}
2990
2991// DetectStackSetDriftWithContext is the same as DetectStackSetDrift with the addition of
2992// the ability to pass a context and additional request options.
2993//
2994// See DetectStackSetDrift for details on how to use this API operation.
2995//
2996// The context must be non-nil and will be used for request cancellation. If
2997// the context is nil a panic will occur. In the future the SDK may create
2998// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2999// for more information on using Contexts.
3000func (c *CloudFormation) DetectStackSetDriftWithContext(ctx aws.Context, input *DetectStackSetDriftInput, opts ...request.Option) (*DetectStackSetDriftOutput, error) {
3001	req, out := c.DetectStackSetDriftRequest(input)
3002	req.SetContext(ctx)
3003	req.ApplyOptions(opts...)
3004	return out, req.Send()
3005}
3006
3007const opEstimateTemplateCost = "EstimateTemplateCost"
3008
3009// EstimateTemplateCostRequest generates a "aws/request.Request" representing the
3010// client's request for the EstimateTemplateCost operation. The "output" return
3011// value will be populated with the request's response once the request completes
3012// successfully.
3013//
3014// Use "Send" method on the returned Request to send the API call to the service.
3015// the "output" return value is not valid until after Send returns without error.
3016//
3017// See EstimateTemplateCost for more information on using the EstimateTemplateCost
3018// API call, and error handling.
3019//
3020// This method is useful when you want to inject custom logic or configuration
3021// into the SDK's request lifecycle. Such as custom headers, or retry logic.
3022//
3023//
3024//    // Example sending a request using the EstimateTemplateCostRequest method.
3025//    req, resp := client.EstimateTemplateCostRequest(params)
3026//
3027//    err := req.Send()
3028//    if err == nil { // resp is now filled
3029//        fmt.Println(resp)
3030//    }
3031//
3032// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/EstimateTemplateCost
3033func (c *CloudFormation) EstimateTemplateCostRequest(input *EstimateTemplateCostInput) (req *request.Request, output *EstimateTemplateCostOutput) {
3034	op := &request.Operation{
3035		Name:       opEstimateTemplateCost,
3036		HTTPMethod: "POST",
3037		HTTPPath:   "/",
3038	}
3039
3040	if input == nil {
3041		input = &EstimateTemplateCostInput{}
3042	}
3043
3044	output = &EstimateTemplateCostOutput{}
3045	req = c.newRequest(op, input, output)
3046	return
3047}
3048
3049// EstimateTemplateCost API operation for AWS CloudFormation.
3050//
3051// Returns the estimated monthly cost of a template. The return value is an
3052// Amazon Web Services Simple Monthly Calculator URL with a query string that
3053// describes the resources required to run the template.
3054//
3055// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
3056// with awserr.Error's Code and Message methods to get detailed information about
3057// the error.
3058//
3059// See the AWS API reference guide for AWS CloudFormation's
3060// API operation EstimateTemplateCost for usage and error information.
3061// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/EstimateTemplateCost
3062func (c *CloudFormation) EstimateTemplateCost(input *EstimateTemplateCostInput) (*EstimateTemplateCostOutput, error) {
3063	req, out := c.EstimateTemplateCostRequest(input)
3064	return out, req.Send()
3065}
3066
3067// EstimateTemplateCostWithContext is the same as EstimateTemplateCost with the addition of
3068// the ability to pass a context and additional request options.
3069//
3070// See EstimateTemplateCost for details on how to use this API operation.
3071//
3072// The context must be non-nil and will be used for request cancellation. If
3073// the context is nil a panic will occur. In the future the SDK may create
3074// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3075// for more information on using Contexts.
3076func (c *CloudFormation) EstimateTemplateCostWithContext(ctx aws.Context, input *EstimateTemplateCostInput, opts ...request.Option) (*EstimateTemplateCostOutput, error) {
3077	req, out := c.EstimateTemplateCostRequest(input)
3078	req.SetContext(ctx)
3079	req.ApplyOptions(opts...)
3080	return out, req.Send()
3081}
3082
3083const opExecuteChangeSet = "ExecuteChangeSet"
3084
3085// ExecuteChangeSetRequest generates a "aws/request.Request" representing the
3086// client's request for the ExecuteChangeSet operation. The "output" return
3087// value will be populated with the request's response once the request completes
3088// successfully.
3089//
3090// Use "Send" method on the returned Request to send the API call to the service.
3091// the "output" return value is not valid until after Send returns without error.
3092//
3093// See ExecuteChangeSet for more information on using the ExecuteChangeSet
3094// API call, and error handling.
3095//
3096// This method is useful when you want to inject custom logic or configuration
3097// into the SDK's request lifecycle. Such as custom headers, or retry logic.
3098//
3099//
3100//    // Example sending a request using the ExecuteChangeSetRequest method.
3101//    req, resp := client.ExecuteChangeSetRequest(params)
3102//
3103//    err := req.Send()
3104//    if err == nil { // resp is now filled
3105//        fmt.Println(resp)
3106//    }
3107//
3108// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/ExecuteChangeSet
3109func (c *CloudFormation) ExecuteChangeSetRequest(input *ExecuteChangeSetInput) (req *request.Request, output *ExecuteChangeSetOutput) {
3110	op := &request.Operation{
3111		Name:       opExecuteChangeSet,
3112		HTTPMethod: "POST",
3113		HTTPPath:   "/",
3114	}
3115
3116	if input == nil {
3117		input = &ExecuteChangeSetInput{}
3118	}
3119
3120	output = &ExecuteChangeSetOutput{}
3121	req = c.newRequest(op, input, output)
3122	req.Handlers.Unmarshal.Swap(query.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
3123	return
3124}
3125
3126// ExecuteChangeSet API operation for AWS CloudFormation.
3127//
3128// Updates a stack using the input information that was provided when the specified
3129// change set was created. After the call successfully completes, CloudFormation
3130// starts updating the stack. Use the DescribeStacks action to view the status
3131// of the update.
3132//
3133// When you execute a change set, CloudFormation deletes all other change sets
3134// associated with the stack because they aren't valid for the updated stack.
3135//
3136// If a stack policy is associated with the stack, CloudFormation enforces the
3137// policy during the update. You can't specify a temporary stack policy that
3138// overrides the current policy.
3139//
3140// To create a change set for the entire stack hierachy, IncludeNestedStacks
3141// must have been set to True.
3142//
3143// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
3144// with awserr.Error's Code and Message methods to get detailed information about
3145// the error.
3146//
3147// See the AWS API reference guide for AWS CloudFormation's
3148// API operation ExecuteChangeSet for usage and error information.
3149//
3150// Returned Error Codes:
3151//   * ErrCodeInvalidChangeSetStatusException "InvalidChangeSetStatus"
3152//   The specified change set can't be used to update the stack. For example,
3153//   the change set status might be CREATE_IN_PROGRESS, or the stack status might
3154//   be UPDATE_IN_PROGRESS.
3155//
3156//   * ErrCodeChangeSetNotFoundException "ChangeSetNotFound"
3157//   The specified change set name or ID doesn't exit. To view valid change sets
3158//   for a stack, use the ListChangeSets action.
3159//
3160//   * ErrCodeInsufficientCapabilitiesException "InsufficientCapabilitiesException"
3161//   The template contains resources with capabilities that weren't specified
3162//   in the Capabilities parameter.
3163//
3164//   * ErrCodeTokenAlreadyExistsException "TokenAlreadyExistsException"
3165//   A client request token already exists.
3166//
3167// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/ExecuteChangeSet
3168func (c *CloudFormation) ExecuteChangeSet(input *ExecuteChangeSetInput) (*ExecuteChangeSetOutput, error) {
3169	req, out := c.ExecuteChangeSetRequest(input)
3170	return out, req.Send()
3171}
3172
3173// ExecuteChangeSetWithContext is the same as ExecuteChangeSet with the addition of
3174// the ability to pass a context and additional request options.
3175//
3176// See ExecuteChangeSet for details on how to use this API operation.
3177//
3178// The context must be non-nil and will be used for request cancellation. If
3179// the context is nil a panic will occur. In the future the SDK may create
3180// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3181// for more information on using Contexts.
3182func (c *CloudFormation) ExecuteChangeSetWithContext(ctx aws.Context, input *ExecuteChangeSetInput, opts ...request.Option) (*ExecuteChangeSetOutput, error) {
3183	req, out := c.ExecuteChangeSetRequest(input)
3184	req.SetContext(ctx)
3185	req.ApplyOptions(opts...)
3186	return out, req.Send()
3187}
3188
3189const opGetStackPolicy = "GetStackPolicy"
3190
3191// GetStackPolicyRequest generates a "aws/request.Request" representing the
3192// client's request for the GetStackPolicy operation. The "output" return
3193// value will be populated with the request's response once the request completes
3194// successfully.
3195//
3196// Use "Send" method on the returned Request to send the API call to the service.
3197// the "output" return value is not valid until after Send returns without error.
3198//
3199// See GetStackPolicy for more information on using the GetStackPolicy
3200// API call, and error handling.
3201//
3202// This method is useful when you want to inject custom logic or configuration
3203// into the SDK's request lifecycle. Such as custom headers, or retry logic.
3204//
3205//
3206//    // Example sending a request using the GetStackPolicyRequest method.
3207//    req, resp := client.GetStackPolicyRequest(params)
3208//
3209//    err := req.Send()
3210//    if err == nil { // resp is now filled
3211//        fmt.Println(resp)
3212//    }
3213//
3214// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/GetStackPolicy
3215func (c *CloudFormation) GetStackPolicyRequest(input *GetStackPolicyInput) (req *request.Request, output *GetStackPolicyOutput) {
3216	op := &request.Operation{
3217		Name:       opGetStackPolicy,
3218		HTTPMethod: "POST",
3219		HTTPPath:   "/",
3220	}
3221
3222	if input == nil {
3223		input = &GetStackPolicyInput{}
3224	}
3225
3226	output = &GetStackPolicyOutput{}
3227	req = c.newRequest(op, input, output)
3228	return
3229}
3230
3231// GetStackPolicy API operation for AWS CloudFormation.
3232//
3233// Returns the stack policy for a specified stack. If a stack doesn't have a
3234// policy, a null value is returned.
3235//
3236// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
3237// with awserr.Error's Code and Message methods to get detailed information about
3238// the error.
3239//
3240// See the AWS API reference guide for AWS CloudFormation's
3241// API operation GetStackPolicy for usage and error information.
3242// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/GetStackPolicy
3243func (c *CloudFormation) GetStackPolicy(input *GetStackPolicyInput) (*GetStackPolicyOutput, error) {
3244	req, out := c.GetStackPolicyRequest(input)
3245	return out, req.Send()
3246}
3247
3248// GetStackPolicyWithContext is the same as GetStackPolicy with the addition of
3249// the ability to pass a context and additional request options.
3250//
3251// See GetStackPolicy for details on how to use this API operation.
3252//
3253// The context must be non-nil and will be used for request cancellation. If
3254// the context is nil a panic will occur. In the future the SDK may create
3255// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3256// for more information on using Contexts.
3257func (c *CloudFormation) GetStackPolicyWithContext(ctx aws.Context, input *GetStackPolicyInput, opts ...request.Option) (*GetStackPolicyOutput, error) {
3258	req, out := c.GetStackPolicyRequest(input)
3259	req.SetContext(ctx)
3260	req.ApplyOptions(opts...)
3261	return out, req.Send()
3262}
3263
3264const opGetTemplate = "GetTemplate"
3265
3266// GetTemplateRequest generates a "aws/request.Request" representing the
3267// client's request for the GetTemplate operation. The "output" return
3268// value will be populated with the request's response once the request completes
3269// successfully.
3270//
3271// Use "Send" method on the returned Request to send the API call to the service.
3272// the "output" return value is not valid until after Send returns without error.
3273//
3274// See GetTemplate for more information on using the GetTemplate
3275// API call, and error handling.
3276//
3277// This method is useful when you want to inject custom logic or configuration
3278// into the SDK's request lifecycle. Such as custom headers, or retry logic.
3279//
3280//
3281//    // Example sending a request using the GetTemplateRequest method.
3282//    req, resp := client.GetTemplateRequest(params)
3283//
3284//    err := req.Send()
3285//    if err == nil { // resp is now filled
3286//        fmt.Println(resp)
3287//    }
3288//
3289// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/GetTemplate
3290func (c *CloudFormation) GetTemplateRequest(input *GetTemplateInput) (req *request.Request, output *GetTemplateOutput) {
3291	op := &request.Operation{
3292		Name:       opGetTemplate,
3293		HTTPMethod: "POST",
3294		HTTPPath:   "/",
3295	}
3296
3297	if input == nil {
3298		input = &GetTemplateInput{}
3299	}
3300
3301	output = &GetTemplateOutput{}
3302	req = c.newRequest(op, input, output)
3303	return
3304}
3305
3306// GetTemplate API operation for AWS CloudFormation.
3307//
3308// Returns the template body for a specified stack. You can get the template
3309// for running or deleted stacks.
3310//
3311// For deleted stacks, GetTemplate returns the template for up to 90 days after
3312// the stack has been deleted.
3313//
3314// If the template does not exist, a ValidationError is returned.
3315//
3316// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
3317// with awserr.Error's Code and Message methods to get detailed information about
3318// the error.
3319//
3320// See the AWS API reference guide for AWS CloudFormation's
3321// API operation GetTemplate for usage and error information.
3322//
3323// Returned Error Codes:
3324//   * ErrCodeChangeSetNotFoundException "ChangeSetNotFound"
3325//   The specified change set name or ID doesn't exit. To view valid change sets
3326//   for a stack, use the ListChangeSets action.
3327//
3328// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/GetTemplate
3329func (c *CloudFormation) GetTemplate(input *GetTemplateInput) (*GetTemplateOutput, error) {
3330	req, out := c.GetTemplateRequest(input)
3331	return out, req.Send()
3332}
3333
3334// GetTemplateWithContext is the same as GetTemplate with the addition of
3335// the ability to pass a context and additional request options.
3336//
3337// See GetTemplate for details on how to use this API operation.
3338//
3339// The context must be non-nil and will be used for request cancellation. If
3340// the context is nil a panic will occur. In the future the SDK may create
3341// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3342// for more information on using Contexts.
3343func (c *CloudFormation) GetTemplateWithContext(ctx aws.Context, input *GetTemplateInput, opts ...request.Option) (*GetTemplateOutput, error) {
3344	req, out := c.GetTemplateRequest(input)
3345	req.SetContext(ctx)
3346	req.ApplyOptions(opts...)
3347	return out, req.Send()
3348}
3349
3350const opGetTemplateSummary = "GetTemplateSummary"
3351
3352// GetTemplateSummaryRequest generates a "aws/request.Request" representing the
3353// client's request for the GetTemplateSummary operation. The "output" return
3354// value will be populated with the request's response once the request completes
3355// successfully.
3356//
3357// Use "Send" method on the returned Request to send the API call to the service.
3358// the "output" return value is not valid until after Send returns without error.
3359//
3360// See GetTemplateSummary for more information on using the GetTemplateSummary
3361// API call, and error handling.
3362//
3363// This method is useful when you want to inject custom logic or configuration
3364// into the SDK's request lifecycle. Such as custom headers, or retry logic.
3365//
3366//
3367//    // Example sending a request using the GetTemplateSummaryRequest method.
3368//    req, resp := client.GetTemplateSummaryRequest(params)
3369//
3370//    err := req.Send()
3371//    if err == nil { // resp is now filled
3372//        fmt.Println(resp)
3373//    }
3374//
3375// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/GetTemplateSummary
3376func (c *CloudFormation) GetTemplateSummaryRequest(input *GetTemplateSummaryInput) (req *request.Request, output *GetTemplateSummaryOutput) {
3377	op := &request.Operation{
3378		Name:       opGetTemplateSummary,
3379		HTTPMethod: "POST",
3380		HTTPPath:   "/",
3381	}
3382
3383	if input == nil {
3384		input = &GetTemplateSummaryInput{}
3385	}
3386
3387	output = &GetTemplateSummaryOutput{}
3388	req = c.newRequest(op, input, output)
3389	return
3390}
3391
3392// GetTemplateSummary API operation for AWS CloudFormation.
3393//
3394// Returns information about a new or existing template. The GetTemplateSummary
3395// action is useful for viewing parameter information, such as default parameter
3396// values and parameter types, before you create or update a stack or stack
3397// set.
3398//
3399// You can use the GetTemplateSummary action when you submit a template, or
3400// you can get template information for a stack set, or a running or deleted
3401// stack.
3402//
3403// For deleted stacks, GetTemplateSummary returns the template information for
3404// up to 90 days after the stack has been deleted. If the template does not
3405// exist, a ValidationError is returned.
3406//
3407// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
3408// with awserr.Error's Code and Message methods to get detailed information about
3409// the error.
3410//
3411// See the AWS API reference guide for AWS CloudFormation's
3412// API operation GetTemplateSummary for usage and error information.
3413//
3414// Returned Error Codes:
3415//   * ErrCodeStackSetNotFoundException "StackSetNotFoundException"
3416//   The specified stack set doesn't exist.
3417//
3418// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/GetTemplateSummary
3419func (c *CloudFormation) GetTemplateSummary(input *GetTemplateSummaryInput) (*GetTemplateSummaryOutput, error) {
3420	req, out := c.GetTemplateSummaryRequest(input)
3421	return out, req.Send()
3422}
3423
3424// GetTemplateSummaryWithContext is the same as GetTemplateSummary with the addition of
3425// the ability to pass a context and additional request options.
3426//
3427// See GetTemplateSummary for details on how to use this API operation.
3428//
3429// The context must be non-nil and will be used for request cancellation. If
3430// the context is nil a panic will occur. In the future the SDK may create
3431// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3432// for more information on using Contexts.
3433func (c *CloudFormation) GetTemplateSummaryWithContext(ctx aws.Context, input *GetTemplateSummaryInput, opts ...request.Option) (*GetTemplateSummaryOutput, error) {
3434	req, out := c.GetTemplateSummaryRequest(input)
3435	req.SetContext(ctx)
3436	req.ApplyOptions(opts...)
3437	return out, req.Send()
3438}
3439
3440const opImportStacksToStackSet = "ImportStacksToStackSet"
3441
3442// ImportStacksToStackSetRequest generates a "aws/request.Request" representing the
3443// client's request for the ImportStacksToStackSet operation. The "output" return
3444// value will be populated with the request's response once the request completes
3445// successfully.
3446//
3447// Use "Send" method on the returned Request to send the API call to the service.
3448// the "output" return value is not valid until after Send returns without error.
3449//
3450// See ImportStacksToStackSet for more information on using the ImportStacksToStackSet
3451// API call, and error handling.
3452//
3453// This method is useful when you want to inject custom logic or configuration
3454// into the SDK's request lifecycle. Such as custom headers, or retry logic.
3455//
3456//
3457//    // Example sending a request using the ImportStacksToStackSetRequest method.
3458//    req, resp := client.ImportStacksToStackSetRequest(params)
3459//
3460//    err := req.Send()
3461//    if err == nil { // resp is now filled
3462//        fmt.Println(resp)
3463//    }
3464//
3465// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/ImportStacksToStackSet
3466func (c *CloudFormation) ImportStacksToStackSetRequest(input *ImportStacksToStackSetInput) (req *request.Request, output *ImportStacksToStackSetOutput) {
3467	op := &request.Operation{
3468		Name:       opImportStacksToStackSet,
3469		HTTPMethod: "POST",
3470		HTTPPath:   "/",
3471	}
3472
3473	if input == nil {
3474		input = &ImportStacksToStackSetInput{}
3475	}
3476
3477	output = &ImportStacksToStackSetOutput{}
3478	req = c.newRequest(op, input, output)
3479	return
3480}
3481
3482// ImportStacksToStackSet API operation for AWS CloudFormation.
3483//
3484// Import existing stacks into a new stack sets. Use the stack import operation
3485// to import up to 10 stacks into a new stack set in the same account as the
3486// source stack or in a different administrator account and Region, by specifying
3487// the stack ID of the stack you intend to import.
3488//
3489// ImportStacksToStackSet is only supported by self-managed permissions.
3490//
3491// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
3492// with awserr.Error's Code and Message methods to get detailed information about
3493// the error.
3494//
3495// See the AWS API reference guide for AWS CloudFormation's
3496// API operation ImportStacksToStackSet for usage and error information.
3497//
3498// Returned Error Codes:
3499//   * ErrCodeLimitExceededException "LimitExceededException"
3500//   The quota for the resource has already been reached.
3501//
3502//   For information on resource and stack limitations, see Limits (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/cloudformation-limits.html)
3503//   in the CloudFormation User Guide.
3504//
3505//   * ErrCodeStackSetNotFoundException "StackSetNotFoundException"
3506//   The specified stack set doesn't exist.
3507//
3508//   * ErrCodeInvalidOperationException "InvalidOperationException"
3509//   The specified operation isn't valid.
3510//
3511//   * ErrCodeOperationInProgressException "OperationInProgressException"
3512//   Another operation is currently in progress for this stack set. Only one operation
3513//   can be performed for a stack set at a given time.
3514//
3515//   * ErrCodeOperationIdAlreadyExistsException "OperationIdAlreadyExistsException"
3516//   The specified operation ID already exists.
3517//
3518//   * ErrCodeStackNotFoundException "StackNotFoundException"
3519//   The specified stack ARN doesn’t exist or stack doesn’t exist corresponding
3520//   to the ARN in input.
3521//
3522//   * ErrCodeStaleRequestException "StaleRequestException"
3523//   Another operation has been performed on this stack set since the specified
3524//   operation was performed.
3525//
3526// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/ImportStacksToStackSet
3527func (c *CloudFormation) ImportStacksToStackSet(input *ImportStacksToStackSetInput) (*ImportStacksToStackSetOutput, error) {
3528	req, out := c.ImportStacksToStackSetRequest(input)
3529	return out, req.Send()
3530}
3531
3532// ImportStacksToStackSetWithContext is the same as ImportStacksToStackSet with the addition of
3533// the ability to pass a context and additional request options.
3534//
3535// See ImportStacksToStackSet for details on how to use this API operation.
3536//
3537// The context must be non-nil and will be used for request cancellation. If
3538// the context is nil a panic will occur. In the future the SDK may create
3539// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3540// for more information on using Contexts.
3541func (c *CloudFormation) ImportStacksToStackSetWithContext(ctx aws.Context, input *ImportStacksToStackSetInput, opts ...request.Option) (*ImportStacksToStackSetOutput, error) {
3542	req, out := c.ImportStacksToStackSetRequest(input)
3543	req.SetContext(ctx)
3544	req.ApplyOptions(opts...)
3545	return out, req.Send()
3546}
3547
3548const opListChangeSets = "ListChangeSets"
3549
3550// ListChangeSetsRequest generates a "aws/request.Request" representing the
3551// client's request for the ListChangeSets operation. The "output" return
3552// value will be populated with the request's response once the request completes
3553// successfully.
3554//
3555// Use "Send" method on the returned Request to send the API call to the service.
3556// the "output" return value is not valid until after Send returns without error.
3557//
3558// See ListChangeSets for more information on using the ListChangeSets
3559// API call, and error handling.
3560//
3561// This method is useful when you want to inject custom logic or configuration
3562// into the SDK's request lifecycle. Such as custom headers, or retry logic.
3563//
3564//
3565//    // Example sending a request using the ListChangeSetsRequest method.
3566//    req, resp := client.ListChangeSetsRequest(params)
3567//
3568//    err := req.Send()
3569//    if err == nil { // resp is now filled
3570//        fmt.Println(resp)
3571//    }
3572//
3573// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/ListChangeSets
3574func (c *CloudFormation) ListChangeSetsRequest(input *ListChangeSetsInput) (req *request.Request, output *ListChangeSetsOutput) {
3575	op := &request.Operation{
3576		Name:       opListChangeSets,
3577		HTTPMethod: "POST",
3578		HTTPPath:   "/",
3579		Paginator: &request.Paginator{
3580			InputTokens:     []string{"NextToken"},
3581			OutputTokens:    []string{"NextToken"},
3582			LimitToken:      "",
3583			TruncationToken: "",
3584		},
3585	}
3586
3587	if input == nil {
3588		input = &ListChangeSetsInput{}
3589	}
3590
3591	output = &ListChangeSetsOutput{}
3592	req = c.newRequest(op, input, output)
3593	return
3594}
3595
3596// ListChangeSets API operation for AWS CloudFormation.
3597//
3598// Returns the ID and status of each active change set for a stack. For example,
3599// CloudFormation lists change sets that are in the CREATE_IN_PROGRESS or CREATE_PENDING
3600// state.
3601//
3602// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
3603// with awserr.Error's Code and Message methods to get detailed information about
3604// the error.
3605//
3606// See the AWS API reference guide for AWS CloudFormation's
3607// API operation ListChangeSets for usage and error information.
3608// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/ListChangeSets
3609func (c *CloudFormation) ListChangeSets(input *ListChangeSetsInput) (*ListChangeSetsOutput, error) {
3610	req, out := c.ListChangeSetsRequest(input)
3611	return out, req.Send()
3612}
3613
3614// ListChangeSetsWithContext is the same as ListChangeSets with the addition of
3615// the ability to pass a context and additional request options.
3616//
3617// See ListChangeSets for details on how to use this API operation.
3618//
3619// The context must be non-nil and will be used for request cancellation. If
3620// the context is nil a panic will occur. In the future the SDK may create
3621// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3622// for more information on using Contexts.
3623func (c *CloudFormation) ListChangeSetsWithContext(ctx aws.Context, input *ListChangeSetsInput, opts ...request.Option) (*ListChangeSetsOutput, error) {
3624	req, out := c.ListChangeSetsRequest(input)
3625	req.SetContext(ctx)
3626	req.ApplyOptions(opts...)
3627	return out, req.Send()
3628}
3629
3630// ListChangeSetsPages iterates over the pages of a ListChangeSets operation,
3631// calling the "fn" function with the response data for each page. To stop
3632// iterating, return false from the fn function.
3633//
3634// See ListChangeSets method for more information on how to use this operation.
3635//
3636// Note: This operation can generate multiple requests to a service.
3637//
3638//    // Example iterating over at most 3 pages of a ListChangeSets operation.
3639//    pageNum := 0
3640//    err := client.ListChangeSetsPages(params,
3641//        func(page *cloudformation.ListChangeSetsOutput, lastPage bool) bool {
3642//            pageNum++
3643//            fmt.Println(page)
3644//            return pageNum <= 3
3645//        })
3646//
3647func (c *CloudFormation) ListChangeSetsPages(input *ListChangeSetsInput, fn func(*ListChangeSetsOutput, bool) bool) error {
3648	return c.ListChangeSetsPagesWithContext(aws.BackgroundContext(), input, fn)
3649}
3650
3651// ListChangeSetsPagesWithContext same as ListChangeSetsPages except
3652// it takes a Context and allows setting request options on the pages.
3653//
3654// The context must be non-nil and will be used for request cancellation. If
3655// the context is nil a panic will occur. In the future the SDK may create
3656// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3657// for more information on using Contexts.
3658func (c *CloudFormation) ListChangeSetsPagesWithContext(ctx aws.Context, input *ListChangeSetsInput, fn func(*ListChangeSetsOutput, bool) bool, opts ...request.Option) error {
3659	p := request.Pagination{
3660		NewRequest: func() (*request.Request, error) {
3661			var inCpy *ListChangeSetsInput
3662			if input != nil {
3663				tmp := *input
3664				inCpy = &tmp
3665			}
3666			req, _ := c.ListChangeSetsRequest(inCpy)
3667			req.SetContext(ctx)
3668			req.ApplyOptions(opts...)
3669			return req, nil
3670		},
3671	}
3672
3673	for p.Next() {
3674		if !fn(p.Page().(*ListChangeSetsOutput), !p.HasNextPage()) {
3675			break
3676		}
3677	}
3678
3679	return p.Err()
3680}
3681
3682const opListExports = "ListExports"
3683
3684// ListExportsRequest generates a "aws/request.Request" representing the
3685// client's request for the ListExports operation. The "output" return
3686// value will be populated with the request's response once the request completes
3687// successfully.
3688//
3689// Use "Send" method on the returned Request to send the API call to the service.
3690// the "output" return value is not valid until after Send returns without error.
3691//
3692// See ListExports for more information on using the ListExports
3693// API call, and error handling.
3694//
3695// This method is useful when you want to inject custom logic or configuration
3696// into the SDK's request lifecycle. Such as custom headers, or retry logic.
3697//
3698//
3699//    // Example sending a request using the ListExportsRequest method.
3700//    req, resp := client.ListExportsRequest(params)
3701//
3702//    err := req.Send()
3703//    if err == nil { // resp is now filled
3704//        fmt.Println(resp)
3705//    }
3706//
3707// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/ListExports
3708func (c *CloudFormation) ListExportsRequest(input *ListExportsInput) (req *request.Request, output *ListExportsOutput) {
3709	op := &request.Operation{
3710		Name:       opListExports,
3711		HTTPMethod: "POST",
3712		HTTPPath:   "/",
3713		Paginator: &request.Paginator{
3714			InputTokens:     []string{"NextToken"},
3715			OutputTokens:    []string{"NextToken"},
3716			LimitToken:      "",
3717			TruncationToken: "",
3718		},
3719	}
3720
3721	if input == nil {
3722		input = &ListExportsInput{}
3723	}
3724
3725	output = &ListExportsOutput{}
3726	req = c.newRequest(op, input, output)
3727	return
3728}
3729
3730// ListExports API operation for AWS CloudFormation.
3731//
3732// Lists all exported output values in the account and Region in which you call
3733// this action. Use this action to see the exported output values that you can
3734// import into other stacks. To import values, use the Fn::ImportValue (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/intrinsic-function-reference-importvalue.html)
3735// function.
3736//
3737// For more information, see CloudFormation Export Stack Output Values (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-stack-exports.html).
3738//
3739// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
3740// with awserr.Error's Code and Message methods to get detailed information about
3741// the error.
3742//
3743// See the AWS API reference guide for AWS CloudFormation's
3744// API operation ListExports for usage and error information.
3745// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/ListExports
3746func (c *CloudFormation) ListExports(input *ListExportsInput) (*ListExportsOutput, error) {
3747	req, out := c.ListExportsRequest(input)
3748	return out, req.Send()
3749}
3750
3751// ListExportsWithContext is the same as ListExports with the addition of
3752// the ability to pass a context and additional request options.
3753//
3754// See ListExports for details on how to use this API operation.
3755//
3756// The context must be non-nil and will be used for request cancellation. If
3757// the context is nil a panic will occur. In the future the SDK may create
3758// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3759// for more information on using Contexts.
3760func (c *CloudFormation) ListExportsWithContext(ctx aws.Context, input *ListExportsInput, opts ...request.Option) (*ListExportsOutput, error) {
3761	req, out := c.ListExportsRequest(input)
3762	req.SetContext(ctx)
3763	req.ApplyOptions(opts...)
3764	return out, req.Send()
3765}
3766
3767// ListExportsPages iterates over the pages of a ListExports operation,
3768// calling the "fn" function with the response data for each page. To stop
3769// iterating, return false from the fn function.
3770//
3771// See ListExports method for more information on how to use this operation.
3772//
3773// Note: This operation can generate multiple requests to a service.
3774//
3775//    // Example iterating over at most 3 pages of a ListExports operation.
3776//    pageNum := 0
3777//    err := client.ListExportsPages(params,
3778//        func(page *cloudformation.ListExportsOutput, lastPage bool) bool {
3779//            pageNum++
3780//            fmt.Println(page)
3781//            return pageNum <= 3
3782//        })
3783//
3784func (c *CloudFormation) ListExportsPages(input *ListExportsInput, fn func(*ListExportsOutput, bool) bool) error {
3785	return c.ListExportsPagesWithContext(aws.BackgroundContext(), input, fn)
3786}
3787
3788// ListExportsPagesWithContext same as ListExportsPages except
3789// it takes a Context and allows setting request options on the pages.
3790//
3791// The context must be non-nil and will be used for request cancellation. If
3792// the context is nil a panic will occur. In the future the SDK may create
3793// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3794// for more information on using Contexts.
3795func (c *CloudFormation) ListExportsPagesWithContext(ctx aws.Context, input *ListExportsInput, fn func(*ListExportsOutput, bool) bool, opts ...request.Option) error {
3796	p := request.Pagination{
3797		NewRequest: func() (*request.Request, error) {
3798			var inCpy *ListExportsInput
3799			if input != nil {
3800				tmp := *input
3801				inCpy = &tmp
3802			}
3803			req, _ := c.ListExportsRequest(inCpy)
3804			req.SetContext(ctx)
3805			req.ApplyOptions(opts...)
3806			return req, nil
3807		},
3808	}
3809
3810	for p.Next() {
3811		if !fn(p.Page().(*ListExportsOutput), !p.HasNextPage()) {
3812			break
3813		}
3814	}
3815
3816	return p.Err()
3817}
3818
3819const opListImports = "ListImports"
3820
3821// ListImportsRequest generates a "aws/request.Request" representing the
3822// client's request for the ListImports operation. The "output" return
3823// value will be populated with the request's response once the request completes
3824// successfully.
3825//
3826// Use "Send" method on the returned Request to send the API call to the service.
3827// the "output" return value is not valid until after Send returns without error.
3828//
3829// See ListImports for more information on using the ListImports
3830// API call, and error handling.
3831//
3832// This method is useful when you want to inject custom logic or configuration
3833// into the SDK's request lifecycle. Such as custom headers, or retry logic.
3834//
3835//
3836//    // Example sending a request using the ListImportsRequest method.
3837//    req, resp := client.ListImportsRequest(params)
3838//
3839//    err := req.Send()
3840//    if err == nil { // resp is now filled
3841//        fmt.Println(resp)
3842//    }
3843//
3844// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/ListImports
3845func (c *CloudFormation) ListImportsRequest(input *ListImportsInput) (req *request.Request, output *ListImportsOutput) {
3846	op := &request.Operation{
3847		Name:       opListImports,
3848		HTTPMethod: "POST",
3849		HTTPPath:   "/",
3850		Paginator: &request.Paginator{
3851			InputTokens:     []string{"NextToken"},
3852			OutputTokens:    []string{"NextToken"},
3853			LimitToken:      "",
3854			TruncationToken: "",
3855		},
3856	}
3857
3858	if input == nil {
3859		input = &ListImportsInput{}
3860	}
3861
3862	output = &ListImportsOutput{}
3863	req = c.newRequest(op, input, output)
3864	return
3865}
3866
3867// ListImports API operation for AWS CloudFormation.
3868//
3869// Lists all stacks that are importing an exported output value. To modify or
3870// remove an exported output value, first use this action to see which stacks
3871// are using it. To see the exported output values in your account, see ListExports.
3872//
3873// For more information about importing an exported output value, see the Fn::ImportValue
3874// (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/intrinsic-function-reference-importvalue.html)
3875// function.
3876//
3877// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
3878// with awserr.Error's Code and Message methods to get detailed information about
3879// the error.
3880//
3881// See the AWS API reference guide for AWS CloudFormation's
3882// API operation ListImports for usage and error information.
3883// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/ListImports
3884func (c *CloudFormation) ListImports(input *ListImportsInput) (*ListImportsOutput, error) {
3885	req, out := c.ListImportsRequest(input)
3886	return out, req.Send()
3887}
3888
3889// ListImportsWithContext is the same as ListImports with the addition of
3890// the ability to pass a context and additional request options.
3891//
3892// See ListImports for details on how to use this API operation.
3893//
3894// The context must be non-nil and will be used for request cancellation. If
3895// the context is nil a panic will occur. In the future the SDK may create
3896// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3897// for more information on using Contexts.
3898func (c *CloudFormation) ListImportsWithContext(ctx aws.Context, input *ListImportsInput, opts ...request.Option) (*ListImportsOutput, error) {
3899	req, out := c.ListImportsRequest(input)
3900	req.SetContext(ctx)
3901	req.ApplyOptions(opts...)
3902	return out, req.Send()
3903}
3904
3905// ListImportsPages iterates over the pages of a ListImports operation,
3906// calling the "fn" function with the response data for each page. To stop
3907// iterating, return false from the fn function.
3908//
3909// See ListImports method for more information on how to use this operation.
3910//
3911// Note: This operation can generate multiple requests to a service.
3912//
3913//    // Example iterating over at most 3 pages of a ListImports operation.
3914//    pageNum := 0
3915//    err := client.ListImportsPages(params,
3916//        func(page *cloudformation.ListImportsOutput, lastPage bool) bool {
3917//            pageNum++
3918//            fmt.Println(page)
3919//            return pageNum <= 3
3920//        })
3921//
3922func (c *CloudFormation) ListImportsPages(input *ListImportsInput, fn func(*ListImportsOutput, bool) bool) error {
3923	return c.ListImportsPagesWithContext(aws.BackgroundContext(), input, fn)
3924}
3925
3926// ListImportsPagesWithContext same as ListImportsPages except
3927// it takes a Context and allows setting request options on the pages.
3928//
3929// The context must be non-nil and will be used for request cancellation. If
3930// the context is nil a panic will occur. In the future the SDK may create
3931// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3932// for more information on using Contexts.
3933func (c *CloudFormation) ListImportsPagesWithContext(ctx aws.Context, input *ListImportsInput, fn func(*ListImportsOutput, bool) bool, opts ...request.Option) error {
3934	p := request.Pagination{
3935		NewRequest: func() (*request.Request, error) {
3936			var inCpy *ListImportsInput
3937			if input != nil {
3938				tmp := *input
3939				inCpy = &tmp
3940			}
3941			req, _ := c.ListImportsRequest(inCpy)
3942			req.SetContext(ctx)
3943			req.ApplyOptions(opts...)
3944			return req, nil
3945		},
3946	}
3947
3948	for p.Next() {
3949		if !fn(p.Page().(*ListImportsOutput), !p.HasNextPage()) {
3950			break
3951		}
3952	}
3953
3954	return p.Err()
3955}
3956
3957const opListStackInstances = "ListStackInstances"
3958
3959// ListStackInstancesRequest generates a "aws/request.Request" representing the
3960// client's request for the ListStackInstances operation. The "output" return
3961// value will be populated with the request's response once the request completes
3962// successfully.
3963//
3964// Use "Send" method on the returned Request to send the API call to the service.
3965// the "output" return value is not valid until after Send returns without error.
3966//
3967// See ListStackInstances for more information on using the ListStackInstances
3968// API call, and error handling.
3969//
3970// This method is useful when you want to inject custom logic or configuration
3971// into the SDK's request lifecycle. Such as custom headers, or retry logic.
3972//
3973//
3974//    // Example sending a request using the ListStackInstancesRequest method.
3975//    req, resp := client.ListStackInstancesRequest(params)
3976//
3977//    err := req.Send()
3978//    if err == nil { // resp is now filled
3979//        fmt.Println(resp)
3980//    }
3981//
3982// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/ListStackInstances
3983func (c *CloudFormation) ListStackInstancesRequest(input *ListStackInstancesInput) (req *request.Request, output *ListStackInstancesOutput) {
3984	op := &request.Operation{
3985		Name:       opListStackInstances,
3986		HTTPMethod: "POST",
3987		HTTPPath:   "/",
3988		Paginator: &request.Paginator{
3989			InputTokens:     []string{"NextToken"},
3990			OutputTokens:    []string{"NextToken"},
3991			LimitToken:      "MaxResults",
3992			TruncationToken: "",
3993		},
3994	}
3995
3996	if input == nil {
3997		input = &ListStackInstancesInput{}
3998	}
3999
4000	output = &ListStackInstancesOutput{}
4001	req = c.newRequest(op, input, output)
4002	return
4003}
4004
4005// ListStackInstances API operation for AWS CloudFormation.
4006//
4007// Returns summary information about stack instances that are associated with
4008// the specified stack set. You can filter for stack instances that are associated
4009// with a specific account name or Region, or that have a specific status.
4010//
4011// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
4012// with awserr.Error's Code and Message methods to get detailed information about
4013// the error.
4014//
4015// See the AWS API reference guide for AWS CloudFormation's
4016// API operation ListStackInstances for usage and error information.
4017//
4018// Returned Error Codes:
4019//   * ErrCodeStackSetNotFoundException "StackSetNotFoundException"
4020//   The specified stack set doesn't exist.
4021//
4022// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/ListStackInstances
4023func (c *CloudFormation) ListStackInstances(input *ListStackInstancesInput) (*ListStackInstancesOutput, error) {
4024	req, out := c.ListStackInstancesRequest(input)
4025	return out, req.Send()
4026}
4027
4028// ListStackInstancesWithContext is the same as ListStackInstances with the addition of
4029// the ability to pass a context and additional request options.
4030//
4031// See ListStackInstances for details on how to use this API operation.
4032//
4033// The context must be non-nil and will be used for request cancellation. If
4034// the context is nil a panic will occur. In the future the SDK may create
4035// sub-contexts for http.Requests. See https://golang.org/pkg/context/
4036// for more information on using Contexts.
4037func (c *CloudFormation) ListStackInstancesWithContext(ctx aws.Context, input *ListStackInstancesInput, opts ...request.Option) (*ListStackInstancesOutput, error) {
4038	req, out := c.ListStackInstancesRequest(input)
4039	req.SetContext(ctx)
4040	req.ApplyOptions(opts...)
4041	return out, req.Send()
4042}
4043
4044// ListStackInstancesPages iterates over the pages of a ListStackInstances operation,
4045// calling the "fn" function with the response data for each page. To stop
4046// iterating, return false from the fn function.
4047//
4048// See ListStackInstances method for more information on how to use this operation.
4049//
4050// Note: This operation can generate multiple requests to a service.
4051//
4052//    // Example iterating over at most 3 pages of a ListStackInstances operation.
4053//    pageNum := 0
4054//    err := client.ListStackInstancesPages(params,
4055//        func(page *cloudformation.ListStackInstancesOutput, lastPage bool) bool {
4056//            pageNum++
4057//            fmt.Println(page)
4058//            return pageNum <= 3
4059//        })
4060//
4061func (c *CloudFormation) ListStackInstancesPages(input *ListStackInstancesInput, fn func(*ListStackInstancesOutput, bool) bool) error {
4062	return c.ListStackInstancesPagesWithContext(aws.BackgroundContext(), input, fn)
4063}
4064
4065// ListStackInstancesPagesWithContext same as ListStackInstancesPages except
4066// it takes a Context and allows setting request options on the pages.
4067//
4068// The context must be non-nil and will be used for request cancellation. If
4069// the context is nil a panic will occur. In the future the SDK may create
4070// sub-contexts for http.Requests. See https://golang.org/pkg/context/
4071// for more information on using Contexts.
4072func (c *CloudFormation) ListStackInstancesPagesWithContext(ctx aws.Context, input *ListStackInstancesInput, fn func(*ListStackInstancesOutput, bool) bool, opts ...request.Option) error {
4073	p := request.Pagination{
4074		NewRequest: func() (*request.Request, error) {
4075			var inCpy *ListStackInstancesInput
4076			if input != nil {
4077				tmp := *input
4078				inCpy = &tmp
4079			}
4080			req, _ := c.ListStackInstancesRequest(inCpy)
4081			req.SetContext(ctx)
4082			req.ApplyOptions(opts...)
4083			return req, nil
4084		},
4085	}
4086
4087	for p.Next() {
4088		if !fn(p.Page().(*ListStackInstancesOutput), !p.HasNextPage()) {
4089			break
4090		}
4091	}
4092
4093	return p.Err()
4094}
4095
4096const opListStackResources = "ListStackResources"
4097
4098// ListStackResourcesRequest generates a "aws/request.Request" representing the
4099// client's request for the ListStackResources operation. The "output" return
4100// value will be populated with the request's response once the request completes
4101// successfully.
4102//
4103// Use "Send" method on the returned Request to send the API call to the service.
4104// the "output" return value is not valid until after Send returns without error.
4105//
4106// See ListStackResources for more information on using the ListStackResources
4107// API call, and error handling.
4108//
4109// This method is useful when you want to inject custom logic or configuration
4110// into the SDK's request lifecycle. Such as custom headers, or retry logic.
4111//
4112//
4113//    // Example sending a request using the ListStackResourcesRequest method.
4114//    req, resp := client.ListStackResourcesRequest(params)
4115//
4116//    err := req.Send()
4117//    if err == nil { // resp is now filled
4118//        fmt.Println(resp)
4119//    }
4120//
4121// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/ListStackResources
4122func (c *CloudFormation) ListStackResourcesRequest(input *ListStackResourcesInput) (req *request.Request, output *ListStackResourcesOutput) {
4123	op := &request.Operation{
4124		Name:       opListStackResources,
4125		HTTPMethod: "POST",
4126		HTTPPath:   "/",
4127		Paginator: &request.Paginator{
4128			InputTokens:     []string{"NextToken"},
4129			OutputTokens:    []string{"NextToken"},
4130			LimitToken:      "",
4131			TruncationToken: "",
4132		},
4133	}
4134
4135	if input == nil {
4136		input = &ListStackResourcesInput{}
4137	}
4138
4139	output = &ListStackResourcesOutput{}
4140	req = c.newRequest(op, input, output)
4141	return
4142}
4143
4144// ListStackResources API operation for AWS CloudFormation.
4145//
4146// Returns descriptions of all resources of the specified stack.
4147//
4148// For deleted stacks, ListStackResources returns resource information for up
4149// to 90 days after the stack has been deleted.
4150//
4151// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
4152// with awserr.Error's Code and Message methods to get detailed information about
4153// the error.
4154//
4155// See the AWS API reference guide for AWS CloudFormation's
4156// API operation ListStackResources for usage and error information.
4157// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/ListStackResources
4158func (c *CloudFormation) ListStackResources(input *ListStackResourcesInput) (*ListStackResourcesOutput, error) {
4159	req, out := c.ListStackResourcesRequest(input)
4160	return out, req.Send()
4161}
4162
4163// ListStackResourcesWithContext is the same as ListStackResources with the addition of
4164// the ability to pass a context and additional request options.
4165//
4166// See ListStackResources for details on how to use this API operation.
4167//
4168// The context must be non-nil and will be used for request cancellation. If
4169// the context is nil a panic will occur. In the future the SDK may create
4170// sub-contexts for http.Requests. See https://golang.org/pkg/context/
4171// for more information on using Contexts.
4172func (c *CloudFormation) ListStackResourcesWithContext(ctx aws.Context, input *ListStackResourcesInput, opts ...request.Option) (*ListStackResourcesOutput, error) {
4173	req, out := c.ListStackResourcesRequest(input)
4174	req.SetContext(ctx)
4175	req.ApplyOptions(opts...)
4176	return out, req.Send()
4177}
4178
4179// ListStackResourcesPages iterates over the pages of a ListStackResources operation,
4180// calling the "fn" function with the response data for each page. To stop
4181// iterating, return false from the fn function.
4182//
4183// See ListStackResources method for more information on how to use this operation.
4184//
4185// Note: This operation can generate multiple requests to a service.
4186//
4187//    // Example iterating over at most 3 pages of a ListStackResources operation.
4188//    pageNum := 0
4189//    err := client.ListStackResourcesPages(params,
4190//        func(page *cloudformation.ListStackResourcesOutput, lastPage bool) bool {
4191//            pageNum++
4192//            fmt.Println(page)
4193//            return pageNum <= 3
4194//        })
4195//
4196func (c *CloudFormation) ListStackResourcesPages(input *ListStackResourcesInput, fn func(*ListStackResourcesOutput, bool) bool) error {
4197	return c.ListStackResourcesPagesWithContext(aws.BackgroundContext(), input, fn)
4198}
4199
4200// ListStackResourcesPagesWithContext same as ListStackResourcesPages except
4201// it takes a Context and allows setting request options on the pages.
4202//
4203// The context must be non-nil and will be used for request cancellation. If
4204// the context is nil a panic will occur. In the future the SDK may create
4205// sub-contexts for http.Requests. See https://golang.org/pkg/context/
4206// for more information on using Contexts.
4207func (c *CloudFormation) ListStackResourcesPagesWithContext(ctx aws.Context, input *ListStackResourcesInput, fn func(*ListStackResourcesOutput, bool) bool, opts ...request.Option) error {
4208	p := request.Pagination{
4209		NewRequest: func() (*request.Request, error) {
4210			var inCpy *ListStackResourcesInput
4211			if input != nil {
4212				tmp := *input
4213				inCpy = &tmp
4214			}
4215			req, _ := c.ListStackResourcesRequest(inCpy)
4216			req.SetContext(ctx)
4217			req.ApplyOptions(opts...)
4218			return req, nil
4219		},
4220	}
4221
4222	for p.Next() {
4223		if !fn(p.Page().(*ListStackResourcesOutput), !p.HasNextPage()) {
4224			break
4225		}
4226	}
4227
4228	return p.Err()
4229}
4230
4231const opListStackSetOperationResults = "ListStackSetOperationResults"
4232
4233// ListStackSetOperationResultsRequest generates a "aws/request.Request" representing the
4234// client's request for the ListStackSetOperationResults operation. The "output" return
4235// value will be populated with the request's response once the request completes
4236// successfully.
4237//
4238// Use "Send" method on the returned Request to send the API call to the service.
4239// the "output" return value is not valid until after Send returns without error.
4240//
4241// See ListStackSetOperationResults for more information on using the ListStackSetOperationResults
4242// API call, and error handling.
4243//
4244// This method is useful when you want to inject custom logic or configuration
4245// into the SDK's request lifecycle. Such as custom headers, or retry logic.
4246//
4247//
4248//    // Example sending a request using the ListStackSetOperationResultsRequest method.
4249//    req, resp := client.ListStackSetOperationResultsRequest(params)
4250//
4251//    err := req.Send()
4252//    if err == nil { // resp is now filled
4253//        fmt.Println(resp)
4254//    }
4255//
4256// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/ListStackSetOperationResults
4257func (c *CloudFormation) ListStackSetOperationResultsRequest(input *ListStackSetOperationResultsInput) (req *request.Request, output *ListStackSetOperationResultsOutput) {
4258	op := &request.Operation{
4259		Name:       opListStackSetOperationResults,
4260		HTTPMethod: "POST",
4261		HTTPPath:   "/",
4262		Paginator: &request.Paginator{
4263			InputTokens:     []string{"NextToken"},
4264			OutputTokens:    []string{"NextToken"},
4265			LimitToken:      "MaxResults",
4266			TruncationToken: "",
4267		},
4268	}
4269
4270	if input == nil {
4271		input = &ListStackSetOperationResultsInput{}
4272	}
4273
4274	output = &ListStackSetOperationResultsOutput{}
4275	req = c.newRequest(op, input, output)
4276	return
4277}
4278
4279// ListStackSetOperationResults API operation for AWS CloudFormation.
4280//
4281// Returns summary information about the results of a stack set operation.
4282//
4283// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
4284// with awserr.Error's Code and Message methods to get detailed information about
4285// the error.
4286//
4287// See the AWS API reference guide for AWS CloudFormation's
4288// API operation ListStackSetOperationResults for usage and error information.
4289//
4290// Returned Error Codes:
4291//   * ErrCodeStackSetNotFoundException "StackSetNotFoundException"
4292//   The specified stack set doesn't exist.
4293//
4294//   * ErrCodeOperationNotFoundException "OperationNotFoundException"
4295//   The specified ID refers to an operation that doesn't exist.
4296//
4297// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/ListStackSetOperationResults
4298func (c *CloudFormation) ListStackSetOperationResults(input *ListStackSetOperationResultsInput) (*ListStackSetOperationResultsOutput, error) {
4299	req, out := c.ListStackSetOperationResultsRequest(input)
4300	return out, req.Send()
4301}
4302
4303// ListStackSetOperationResultsWithContext is the same as ListStackSetOperationResults with the addition of
4304// the ability to pass a context and additional request options.
4305//
4306// See ListStackSetOperationResults for details on how to use this API operation.
4307//
4308// The context must be non-nil and will be used for request cancellation. If
4309// the context is nil a panic will occur. In the future the SDK may create
4310// sub-contexts for http.Requests. See https://golang.org/pkg/context/
4311// for more information on using Contexts.
4312func (c *CloudFormation) ListStackSetOperationResultsWithContext(ctx aws.Context, input *ListStackSetOperationResultsInput, opts ...request.Option) (*ListStackSetOperationResultsOutput, error) {
4313	req, out := c.ListStackSetOperationResultsRequest(input)
4314	req.SetContext(ctx)
4315	req.ApplyOptions(opts...)
4316	return out, req.Send()
4317}
4318
4319// ListStackSetOperationResultsPages iterates over the pages of a ListStackSetOperationResults operation,
4320// calling the "fn" function with the response data for each page. To stop
4321// iterating, return false from the fn function.
4322//
4323// See ListStackSetOperationResults method for more information on how to use this operation.
4324//
4325// Note: This operation can generate multiple requests to a service.
4326//
4327//    // Example iterating over at most 3 pages of a ListStackSetOperationResults operation.
4328//    pageNum := 0
4329//    err := client.ListStackSetOperationResultsPages(params,
4330//        func(page *cloudformation.ListStackSetOperationResultsOutput, lastPage bool) bool {
4331//            pageNum++
4332//            fmt.Println(page)
4333//            return pageNum <= 3
4334//        })
4335//
4336func (c *CloudFormation) ListStackSetOperationResultsPages(input *ListStackSetOperationResultsInput, fn func(*ListStackSetOperationResultsOutput, bool) bool) error {
4337	return c.ListStackSetOperationResultsPagesWithContext(aws.BackgroundContext(), input, fn)
4338}
4339
4340// ListStackSetOperationResultsPagesWithContext same as ListStackSetOperationResultsPages except
4341// it takes a Context and allows setting request options on the pages.
4342//
4343// The context must be non-nil and will be used for request cancellation. If
4344// the context is nil a panic will occur. In the future the SDK may create
4345// sub-contexts for http.Requests. See https://golang.org/pkg/context/
4346// for more information on using Contexts.
4347func (c *CloudFormation) ListStackSetOperationResultsPagesWithContext(ctx aws.Context, input *ListStackSetOperationResultsInput, fn func(*ListStackSetOperationResultsOutput, bool) bool, opts ...request.Option) error {
4348	p := request.Pagination{
4349		NewRequest: func() (*request.Request, error) {
4350			var inCpy *ListStackSetOperationResultsInput
4351			if input != nil {
4352				tmp := *input
4353				inCpy = &tmp
4354			}
4355			req, _ := c.ListStackSetOperationResultsRequest(inCpy)
4356			req.SetContext(ctx)
4357			req.ApplyOptions(opts...)
4358			return req, nil
4359		},
4360	}
4361
4362	for p.Next() {
4363		if !fn(p.Page().(*ListStackSetOperationResultsOutput), !p.HasNextPage()) {
4364			break
4365		}
4366	}
4367
4368	return p.Err()
4369}
4370
4371const opListStackSetOperations = "ListStackSetOperations"
4372
4373// ListStackSetOperationsRequest generates a "aws/request.Request" representing the
4374// client's request for the ListStackSetOperations operation. The "output" return
4375// value will be populated with the request's response once the request completes
4376// successfully.
4377//
4378// Use "Send" method on the returned Request to send the API call to the service.
4379// the "output" return value is not valid until after Send returns without error.
4380//
4381// See ListStackSetOperations for more information on using the ListStackSetOperations
4382// API call, and error handling.
4383//
4384// This method is useful when you want to inject custom logic or configuration
4385// into the SDK's request lifecycle. Such as custom headers, or retry logic.
4386//
4387//
4388//    // Example sending a request using the ListStackSetOperationsRequest method.
4389//    req, resp := client.ListStackSetOperationsRequest(params)
4390//
4391//    err := req.Send()
4392//    if err == nil { // resp is now filled
4393//        fmt.Println(resp)
4394//    }
4395//
4396// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/ListStackSetOperations
4397func (c *CloudFormation) ListStackSetOperationsRequest(input *ListStackSetOperationsInput) (req *request.Request, output *ListStackSetOperationsOutput) {
4398	op := &request.Operation{
4399		Name:       opListStackSetOperations,
4400		HTTPMethod: "POST",
4401		HTTPPath:   "/",
4402		Paginator: &request.Paginator{
4403			InputTokens:     []string{"NextToken"},
4404			OutputTokens:    []string{"NextToken"},
4405			LimitToken:      "MaxResults",
4406			TruncationToken: "",
4407		},
4408	}
4409
4410	if input == nil {
4411		input = &ListStackSetOperationsInput{}
4412	}
4413
4414	output = &ListStackSetOperationsOutput{}
4415	req = c.newRequest(op, input, output)
4416	return
4417}
4418
4419// ListStackSetOperations API operation for AWS CloudFormation.
4420//
4421// Returns summary information about operations performed on a stack set.
4422//
4423// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
4424// with awserr.Error's Code and Message methods to get detailed information about
4425// the error.
4426//
4427// See the AWS API reference guide for AWS CloudFormation's
4428// API operation ListStackSetOperations for usage and error information.
4429//
4430// Returned Error Codes:
4431//   * ErrCodeStackSetNotFoundException "StackSetNotFoundException"
4432//   The specified stack set doesn't exist.
4433//
4434// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/ListStackSetOperations
4435func (c *CloudFormation) ListStackSetOperations(input *ListStackSetOperationsInput) (*ListStackSetOperationsOutput, error) {
4436	req, out := c.ListStackSetOperationsRequest(input)
4437	return out, req.Send()
4438}
4439
4440// ListStackSetOperationsWithContext is the same as ListStackSetOperations with the addition of
4441// the ability to pass a context and additional request options.
4442//
4443// See ListStackSetOperations for details on how to use this API operation.
4444//
4445// The context must be non-nil and will be used for request cancellation. If
4446// the context is nil a panic will occur. In the future the SDK may create
4447// sub-contexts for http.Requests. See https://golang.org/pkg/context/
4448// for more information on using Contexts.
4449func (c *CloudFormation) ListStackSetOperationsWithContext(ctx aws.Context, input *ListStackSetOperationsInput, opts ...request.Option) (*ListStackSetOperationsOutput, error) {
4450	req, out := c.ListStackSetOperationsRequest(input)
4451	req.SetContext(ctx)
4452	req.ApplyOptions(opts...)
4453	return out, req.Send()
4454}
4455
4456// ListStackSetOperationsPages iterates over the pages of a ListStackSetOperations operation,
4457// calling the "fn" function with the response data for each page. To stop
4458// iterating, return false from the fn function.
4459//
4460// See ListStackSetOperations method for more information on how to use this operation.
4461//
4462// Note: This operation can generate multiple requests to a service.
4463//
4464//    // Example iterating over at most 3 pages of a ListStackSetOperations operation.
4465//    pageNum := 0
4466//    err := client.ListStackSetOperationsPages(params,
4467//        func(page *cloudformation.ListStackSetOperationsOutput, lastPage bool) bool {
4468//            pageNum++
4469//            fmt.Println(page)
4470//            return pageNum <= 3
4471//        })
4472//
4473func (c *CloudFormation) ListStackSetOperationsPages(input *ListStackSetOperationsInput, fn func(*ListStackSetOperationsOutput, bool) bool) error {
4474	return c.ListStackSetOperationsPagesWithContext(aws.BackgroundContext(), input, fn)
4475}
4476
4477// ListStackSetOperationsPagesWithContext same as ListStackSetOperationsPages except
4478// it takes a Context and allows setting request options on the pages.
4479//
4480// The context must be non-nil and will be used for request cancellation. If
4481// the context is nil a panic will occur. In the future the SDK may create
4482// sub-contexts for http.Requests. See https://golang.org/pkg/context/
4483// for more information on using Contexts.
4484func (c *CloudFormation) ListStackSetOperationsPagesWithContext(ctx aws.Context, input *ListStackSetOperationsInput, fn func(*ListStackSetOperationsOutput, bool) bool, opts ...request.Option) error {
4485	p := request.Pagination{
4486		NewRequest: func() (*request.Request, error) {
4487			var inCpy *ListStackSetOperationsInput
4488			if input != nil {
4489				tmp := *input
4490				inCpy = &tmp
4491			}
4492			req, _ := c.ListStackSetOperationsRequest(inCpy)
4493			req.SetContext(ctx)
4494			req.ApplyOptions(opts...)
4495			return req, nil
4496		},
4497	}
4498
4499	for p.Next() {
4500		if !fn(p.Page().(*ListStackSetOperationsOutput), !p.HasNextPage()) {
4501			break
4502		}
4503	}
4504
4505	return p.Err()
4506}
4507
4508const opListStackSets = "ListStackSets"
4509
4510// ListStackSetsRequest generates a "aws/request.Request" representing the
4511// client's request for the ListStackSets operation. The "output" return
4512// value will be populated with the request's response once the request completes
4513// successfully.
4514//
4515// Use "Send" method on the returned Request to send the API call to the service.
4516// the "output" return value is not valid until after Send returns without error.
4517//
4518// See ListStackSets for more information on using the ListStackSets
4519// API call, and error handling.
4520//
4521// This method is useful when you want to inject custom logic or configuration
4522// into the SDK's request lifecycle. Such as custom headers, or retry logic.
4523//
4524//
4525//    // Example sending a request using the ListStackSetsRequest method.
4526//    req, resp := client.ListStackSetsRequest(params)
4527//
4528//    err := req.Send()
4529//    if err == nil { // resp is now filled
4530//        fmt.Println(resp)
4531//    }
4532//
4533// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/ListStackSets
4534func (c *CloudFormation) ListStackSetsRequest(input *ListStackSetsInput) (req *request.Request, output *ListStackSetsOutput) {
4535	op := &request.Operation{
4536		Name:       opListStackSets,
4537		HTTPMethod: "POST",
4538		HTTPPath:   "/",
4539		Paginator: &request.Paginator{
4540			InputTokens:     []string{"NextToken"},
4541			OutputTokens:    []string{"NextToken"},
4542			LimitToken:      "MaxResults",
4543			TruncationToken: "",
4544		},
4545	}
4546
4547	if input == nil {
4548		input = &ListStackSetsInput{}
4549	}
4550
4551	output = &ListStackSetsOutput{}
4552	req = c.newRequest(op, input, output)
4553	return
4554}
4555
4556// ListStackSets API operation for AWS CloudFormation.
4557//
4558// Returns summary information about stack sets that are associated with the
4559// user.
4560//
4561//    * [Self-managed permissions] If you set the CallAs parameter to SELF while
4562//    signed in to your account, ListStackSets returns all self-managed stack
4563//    sets in your account.
4564//
4565//    * [Service-managed permissions] If you set the CallAs parameter to SELF
4566//    while signed in to the organization's management account, ListStackSets
4567//    returns all stack sets in the management account.
4568//
4569//    * [Service-managed permissions] If you set the CallAs parameter to DELEGATED_ADMIN
4570//    while signed in to your member account, ListStackSets returns all stack
4571//    sets with service-managed permissions in the management account.
4572//
4573// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
4574// with awserr.Error's Code and Message methods to get detailed information about
4575// the error.
4576//
4577// See the AWS API reference guide for AWS CloudFormation's
4578// API operation ListStackSets for usage and error information.
4579// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/ListStackSets
4580func (c *CloudFormation) ListStackSets(input *ListStackSetsInput) (*ListStackSetsOutput, error) {
4581	req, out := c.ListStackSetsRequest(input)
4582	return out, req.Send()
4583}
4584
4585// ListStackSetsWithContext is the same as ListStackSets with the addition of
4586// the ability to pass a context and additional request options.
4587//
4588// See ListStackSets for details on how to use this API operation.
4589//
4590// The context must be non-nil and will be used for request cancellation. If
4591// the context is nil a panic will occur. In the future the SDK may create
4592// sub-contexts for http.Requests. See https://golang.org/pkg/context/
4593// for more information on using Contexts.
4594func (c *CloudFormation) ListStackSetsWithContext(ctx aws.Context, input *ListStackSetsInput, opts ...request.Option) (*ListStackSetsOutput, error) {
4595	req, out := c.ListStackSetsRequest(input)
4596	req.SetContext(ctx)
4597	req.ApplyOptions(opts...)
4598	return out, req.Send()
4599}
4600
4601// ListStackSetsPages iterates over the pages of a ListStackSets operation,
4602// calling the "fn" function with the response data for each page. To stop
4603// iterating, return false from the fn function.
4604//
4605// See ListStackSets method for more information on how to use this operation.
4606//
4607// Note: This operation can generate multiple requests to a service.
4608//
4609//    // Example iterating over at most 3 pages of a ListStackSets operation.
4610//    pageNum := 0
4611//    err := client.ListStackSetsPages(params,
4612//        func(page *cloudformation.ListStackSetsOutput, lastPage bool) bool {
4613//            pageNum++
4614//            fmt.Println(page)
4615//            return pageNum <= 3
4616//        })
4617//
4618func (c *CloudFormation) ListStackSetsPages(input *ListStackSetsInput, fn func(*ListStackSetsOutput, bool) bool) error {
4619	return c.ListStackSetsPagesWithContext(aws.BackgroundContext(), input, fn)
4620}
4621
4622// ListStackSetsPagesWithContext same as ListStackSetsPages except
4623// it takes a Context and allows setting request options on the pages.
4624//
4625// The context must be non-nil and will be used for request cancellation. If
4626// the context is nil a panic will occur. In the future the SDK may create
4627// sub-contexts for http.Requests. See https://golang.org/pkg/context/
4628// for more information on using Contexts.
4629func (c *CloudFormation) ListStackSetsPagesWithContext(ctx aws.Context, input *ListStackSetsInput, fn func(*ListStackSetsOutput, bool) bool, opts ...request.Option) error {
4630	p := request.Pagination{
4631		NewRequest: func() (*request.Request, error) {
4632			var inCpy *ListStackSetsInput
4633			if input != nil {
4634				tmp := *input
4635				inCpy = &tmp
4636			}
4637			req, _ := c.ListStackSetsRequest(inCpy)
4638			req.SetContext(ctx)
4639			req.ApplyOptions(opts...)
4640			return req, nil
4641		},
4642	}
4643
4644	for p.Next() {
4645		if !fn(p.Page().(*ListStackSetsOutput), !p.HasNextPage()) {
4646			break
4647		}
4648	}
4649
4650	return p.Err()
4651}
4652
4653const opListStacks = "ListStacks"
4654
4655// ListStacksRequest generates a "aws/request.Request" representing the
4656// client's request for the ListStacks operation. The "output" return
4657// value will be populated with the request's response once the request completes
4658// successfully.
4659//
4660// Use "Send" method on the returned Request to send the API call to the service.
4661// the "output" return value is not valid until after Send returns without error.
4662//
4663// See ListStacks for more information on using the ListStacks
4664// API call, and error handling.
4665//
4666// This method is useful when you want to inject custom logic or configuration
4667// into the SDK's request lifecycle. Such as custom headers, or retry logic.
4668//
4669//
4670//    // Example sending a request using the ListStacksRequest method.
4671//    req, resp := client.ListStacksRequest(params)
4672//
4673//    err := req.Send()
4674//    if err == nil { // resp is now filled
4675//        fmt.Println(resp)
4676//    }
4677//
4678// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/ListStacks
4679func (c *CloudFormation) ListStacksRequest(input *ListStacksInput) (req *request.Request, output *ListStacksOutput) {
4680	op := &request.Operation{
4681		Name:       opListStacks,
4682		HTTPMethod: "POST",
4683		HTTPPath:   "/",
4684		Paginator: &request.Paginator{
4685			InputTokens:     []string{"NextToken"},
4686			OutputTokens:    []string{"NextToken"},
4687			LimitToken:      "",
4688			TruncationToken: "",
4689		},
4690	}
4691
4692	if input == nil {
4693		input = &ListStacksInput{}
4694	}
4695
4696	output = &ListStacksOutput{}
4697	req = c.newRequest(op, input, output)
4698	return
4699}
4700
4701// ListStacks API operation for AWS CloudFormation.
4702//
4703// Returns the summary information for stacks whose status matches the specified
4704// StackStatusFilter. Summary information for stacks that have been deleted
4705// is kept for 90 days after the stack is deleted. If no StackStatusFilter is
4706// specified, summary information for all stacks is returned (including existing
4707// stacks and stacks that have been deleted).
4708//
4709// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
4710// with awserr.Error's Code and Message methods to get detailed information about
4711// the error.
4712//
4713// See the AWS API reference guide for AWS CloudFormation's
4714// API operation ListStacks for usage and error information.
4715// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/ListStacks
4716func (c *CloudFormation) ListStacks(input *ListStacksInput) (*ListStacksOutput, error) {
4717	req, out := c.ListStacksRequest(input)
4718	return out, req.Send()
4719}
4720
4721// ListStacksWithContext is the same as ListStacks with the addition of
4722// the ability to pass a context and additional request options.
4723//
4724// See ListStacks for details on how to use this API operation.
4725//
4726// The context must be non-nil and will be used for request cancellation. If
4727// the context is nil a panic will occur. In the future the SDK may create
4728// sub-contexts for http.Requests. See https://golang.org/pkg/context/
4729// for more information on using Contexts.
4730func (c *CloudFormation) ListStacksWithContext(ctx aws.Context, input *ListStacksInput, opts ...request.Option) (*ListStacksOutput, error) {
4731	req, out := c.ListStacksRequest(input)
4732	req.SetContext(ctx)
4733	req.ApplyOptions(opts...)
4734	return out, req.Send()
4735}
4736
4737// ListStacksPages iterates over the pages of a ListStacks operation,
4738// calling the "fn" function with the response data for each page. To stop
4739// iterating, return false from the fn function.
4740//
4741// See ListStacks method for more information on how to use this operation.
4742//
4743// Note: This operation can generate multiple requests to a service.
4744//
4745//    // Example iterating over at most 3 pages of a ListStacks operation.
4746//    pageNum := 0
4747//    err := client.ListStacksPages(params,
4748//        func(page *cloudformation.ListStacksOutput, lastPage bool) bool {
4749//            pageNum++
4750//            fmt.Println(page)
4751//            return pageNum <= 3
4752//        })
4753//
4754func (c *CloudFormation) ListStacksPages(input *ListStacksInput, fn func(*ListStacksOutput, bool) bool) error {
4755	return c.ListStacksPagesWithContext(aws.BackgroundContext(), input, fn)
4756}
4757
4758// ListStacksPagesWithContext same as ListStacksPages except
4759// it takes a Context and allows setting request options on the pages.
4760//
4761// The context must be non-nil and will be used for request cancellation. If
4762// the context is nil a panic will occur. In the future the SDK may create
4763// sub-contexts for http.Requests. See https://golang.org/pkg/context/
4764// for more information on using Contexts.
4765func (c *CloudFormation) ListStacksPagesWithContext(ctx aws.Context, input *ListStacksInput, fn func(*ListStacksOutput, bool) bool, opts ...request.Option) error {
4766	p := request.Pagination{
4767		NewRequest: func() (*request.Request, error) {
4768			var inCpy *ListStacksInput
4769			if input != nil {
4770				tmp := *input
4771				inCpy = &tmp
4772			}
4773			req, _ := c.ListStacksRequest(inCpy)
4774			req.SetContext(ctx)
4775			req.ApplyOptions(opts...)
4776			return req, nil
4777		},
4778	}
4779
4780	for p.Next() {
4781		if !fn(p.Page().(*ListStacksOutput), !p.HasNextPage()) {
4782			break
4783		}
4784	}
4785
4786	return p.Err()
4787}
4788
4789const opListTypeRegistrations = "ListTypeRegistrations"
4790
4791// ListTypeRegistrationsRequest generates a "aws/request.Request" representing the
4792// client's request for the ListTypeRegistrations operation. The "output" return
4793// value will be populated with the request's response once the request completes
4794// successfully.
4795//
4796// Use "Send" method on the returned Request to send the API call to the service.
4797// the "output" return value is not valid until after Send returns without error.
4798//
4799// See ListTypeRegistrations for more information on using the ListTypeRegistrations
4800// API call, and error handling.
4801//
4802// This method is useful when you want to inject custom logic or configuration
4803// into the SDK's request lifecycle. Such as custom headers, or retry logic.
4804//
4805//
4806//    // Example sending a request using the ListTypeRegistrationsRequest method.
4807//    req, resp := client.ListTypeRegistrationsRequest(params)
4808//
4809//    err := req.Send()
4810//    if err == nil { // resp is now filled
4811//        fmt.Println(resp)
4812//    }
4813//
4814// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/ListTypeRegistrations
4815func (c *CloudFormation) ListTypeRegistrationsRequest(input *ListTypeRegistrationsInput) (req *request.Request, output *ListTypeRegistrationsOutput) {
4816	op := &request.Operation{
4817		Name:       opListTypeRegistrations,
4818		HTTPMethod: "POST",
4819		HTTPPath:   "/",
4820		Paginator: &request.Paginator{
4821			InputTokens:     []string{"NextToken"},
4822			OutputTokens:    []string{"NextToken"},
4823			LimitToken:      "MaxResults",
4824			TruncationToken: "",
4825		},
4826	}
4827
4828	if input == nil {
4829		input = &ListTypeRegistrationsInput{}
4830	}
4831
4832	output = &ListTypeRegistrationsOutput{}
4833	req = c.newRequest(op, input, output)
4834	return
4835}
4836
4837// ListTypeRegistrations API operation for AWS CloudFormation.
4838//
4839// Returns a list of registration tokens for the specified extension(s).
4840//
4841// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
4842// with awserr.Error's Code and Message methods to get detailed information about
4843// the error.
4844//
4845// See the AWS API reference guide for AWS CloudFormation's
4846// API operation ListTypeRegistrations for usage and error information.
4847//
4848// Returned Error Codes:
4849//   * ErrCodeCFNRegistryException "CFNRegistryException"
4850//   An error occurred during a CloudFormation registry operation.
4851//
4852// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/ListTypeRegistrations
4853func (c *CloudFormation) ListTypeRegistrations(input *ListTypeRegistrationsInput) (*ListTypeRegistrationsOutput, error) {
4854	req, out := c.ListTypeRegistrationsRequest(input)
4855	return out, req.Send()
4856}
4857
4858// ListTypeRegistrationsWithContext is the same as ListTypeRegistrations with the addition of
4859// the ability to pass a context and additional request options.
4860//
4861// See ListTypeRegistrations for details on how to use this API operation.
4862//
4863// The context must be non-nil and will be used for request cancellation. If
4864// the context is nil a panic will occur. In the future the SDK may create
4865// sub-contexts for http.Requests. See https://golang.org/pkg/context/
4866// for more information on using Contexts.
4867func (c *CloudFormation) ListTypeRegistrationsWithContext(ctx aws.Context, input *ListTypeRegistrationsInput, opts ...request.Option) (*ListTypeRegistrationsOutput, error) {
4868	req, out := c.ListTypeRegistrationsRequest(input)
4869	req.SetContext(ctx)
4870	req.ApplyOptions(opts...)
4871	return out, req.Send()
4872}
4873
4874// ListTypeRegistrationsPages iterates over the pages of a ListTypeRegistrations operation,
4875// calling the "fn" function with the response data for each page. To stop
4876// iterating, return false from the fn function.
4877//
4878// See ListTypeRegistrations method for more information on how to use this operation.
4879//
4880// Note: This operation can generate multiple requests to a service.
4881//
4882//    // Example iterating over at most 3 pages of a ListTypeRegistrations operation.
4883//    pageNum := 0
4884//    err := client.ListTypeRegistrationsPages(params,
4885//        func(page *cloudformation.ListTypeRegistrationsOutput, lastPage bool) bool {
4886//            pageNum++
4887//            fmt.Println(page)
4888//            return pageNum <= 3
4889//        })
4890//
4891func (c *CloudFormation) ListTypeRegistrationsPages(input *ListTypeRegistrationsInput, fn func(*ListTypeRegistrationsOutput, bool) bool) error {
4892	return c.ListTypeRegistrationsPagesWithContext(aws.BackgroundContext(), input, fn)
4893}
4894
4895// ListTypeRegistrationsPagesWithContext same as ListTypeRegistrationsPages except
4896// it takes a Context and allows setting request options on the pages.
4897//
4898// The context must be non-nil and will be used for request cancellation. If
4899// the context is nil a panic will occur. In the future the SDK may create
4900// sub-contexts for http.Requests. See https://golang.org/pkg/context/
4901// for more information on using Contexts.
4902func (c *CloudFormation) ListTypeRegistrationsPagesWithContext(ctx aws.Context, input *ListTypeRegistrationsInput, fn func(*ListTypeRegistrationsOutput, bool) bool, opts ...request.Option) error {
4903	p := request.Pagination{
4904		NewRequest: func() (*request.Request, error) {
4905			var inCpy *ListTypeRegistrationsInput
4906			if input != nil {
4907				tmp := *input
4908				inCpy = &tmp
4909			}
4910			req, _ := c.ListTypeRegistrationsRequest(inCpy)
4911			req.SetContext(ctx)
4912			req.ApplyOptions(opts...)
4913			return req, nil
4914		},
4915	}
4916
4917	for p.Next() {
4918		if !fn(p.Page().(*ListTypeRegistrationsOutput), !p.HasNextPage()) {
4919			break
4920		}
4921	}
4922
4923	return p.Err()
4924}
4925
4926const opListTypeVersions = "ListTypeVersions"
4927
4928// ListTypeVersionsRequest generates a "aws/request.Request" representing the
4929// client's request for the ListTypeVersions operation. The "output" return
4930// value will be populated with the request's response once the request completes
4931// successfully.
4932//
4933// Use "Send" method on the returned Request to send the API call to the service.
4934// the "output" return value is not valid until after Send returns without error.
4935//
4936// See ListTypeVersions for more information on using the ListTypeVersions
4937// API call, and error handling.
4938//
4939// This method is useful when you want to inject custom logic or configuration
4940// into the SDK's request lifecycle. Such as custom headers, or retry logic.
4941//
4942//
4943//    // Example sending a request using the ListTypeVersionsRequest method.
4944//    req, resp := client.ListTypeVersionsRequest(params)
4945//
4946//    err := req.Send()
4947//    if err == nil { // resp is now filled
4948//        fmt.Println(resp)
4949//    }
4950//
4951// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/ListTypeVersions
4952func (c *CloudFormation) ListTypeVersionsRequest(input *ListTypeVersionsInput) (req *request.Request, output *ListTypeVersionsOutput) {
4953	op := &request.Operation{
4954		Name:       opListTypeVersions,
4955		HTTPMethod: "POST",
4956		HTTPPath:   "/",
4957		Paginator: &request.Paginator{
4958			InputTokens:     []string{"NextToken"},
4959			OutputTokens:    []string{"NextToken"},
4960			LimitToken:      "MaxResults",
4961			TruncationToken: "",
4962		},
4963	}
4964
4965	if input == nil {
4966		input = &ListTypeVersionsInput{}
4967	}
4968
4969	output = &ListTypeVersionsOutput{}
4970	req = c.newRequest(op, input, output)
4971	return
4972}
4973
4974// ListTypeVersions API operation for AWS CloudFormation.
4975//
4976// Returns summary information about the versions of an extension.
4977//
4978// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
4979// with awserr.Error's Code and Message methods to get detailed information about
4980// the error.
4981//
4982// See the AWS API reference guide for AWS CloudFormation's
4983// API operation ListTypeVersions for usage and error information.
4984//
4985// Returned Error Codes:
4986//   * ErrCodeCFNRegistryException "CFNRegistryException"
4987//   An error occurred during a CloudFormation registry operation.
4988//
4989// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/ListTypeVersions
4990func (c *CloudFormation) ListTypeVersions(input *ListTypeVersionsInput) (*ListTypeVersionsOutput, error) {
4991	req, out := c.ListTypeVersionsRequest(input)
4992	return out, req.Send()
4993}
4994
4995// ListTypeVersionsWithContext is the same as ListTypeVersions with the addition of
4996// the ability to pass a context and additional request options.
4997//
4998// See ListTypeVersions for details on how to use this API operation.
4999//
5000// The context must be non-nil and will be used for request cancellation. If
5001// the context is nil a panic will occur. In the future the SDK may create
5002// sub-contexts for http.Requests. See https://golang.org/pkg/context/
5003// for more information on using Contexts.
5004func (c *CloudFormation) ListTypeVersionsWithContext(ctx aws.Context, input *ListTypeVersionsInput, opts ...request.Option) (*ListTypeVersionsOutput, error) {
5005	req, out := c.ListTypeVersionsRequest(input)
5006	req.SetContext(ctx)
5007	req.ApplyOptions(opts...)
5008	return out, req.Send()
5009}
5010
5011// ListTypeVersionsPages iterates over the pages of a ListTypeVersions operation,
5012// calling the "fn" function with the response data for each page. To stop
5013// iterating, return false from the fn function.
5014//
5015// See ListTypeVersions method for more information on how to use this operation.
5016//
5017// Note: This operation can generate multiple requests to a service.
5018//
5019//    // Example iterating over at most 3 pages of a ListTypeVersions operation.
5020//    pageNum := 0
5021//    err := client.ListTypeVersionsPages(params,
5022//        func(page *cloudformation.ListTypeVersionsOutput, lastPage bool) bool {
5023//            pageNum++
5024//            fmt.Println(page)
5025//            return pageNum <= 3
5026//        })
5027//
5028func (c *CloudFormation) ListTypeVersionsPages(input *ListTypeVersionsInput, fn func(*ListTypeVersionsOutput, bool) bool) error {
5029	return c.ListTypeVersionsPagesWithContext(aws.BackgroundContext(), input, fn)
5030}
5031
5032// ListTypeVersionsPagesWithContext same as ListTypeVersionsPages except
5033// it takes a Context and allows setting request options on the pages.
5034//
5035// The context must be non-nil and will be used for request cancellation. If
5036// the context is nil a panic will occur. In the future the SDK may create
5037// sub-contexts for http.Requests. See https://golang.org/pkg/context/
5038// for more information on using Contexts.
5039func (c *CloudFormation) ListTypeVersionsPagesWithContext(ctx aws.Context, input *ListTypeVersionsInput, fn func(*ListTypeVersionsOutput, bool) bool, opts ...request.Option) error {
5040	p := request.Pagination{
5041		NewRequest: func() (*request.Request, error) {
5042			var inCpy *ListTypeVersionsInput
5043			if input != nil {
5044				tmp := *input
5045				inCpy = &tmp
5046			}
5047			req, _ := c.ListTypeVersionsRequest(inCpy)
5048			req.SetContext(ctx)
5049			req.ApplyOptions(opts...)
5050			return req, nil
5051		},
5052	}
5053
5054	for p.Next() {
5055		if !fn(p.Page().(*ListTypeVersionsOutput), !p.HasNextPage()) {
5056			break
5057		}
5058	}
5059
5060	return p.Err()
5061}
5062
5063const opListTypes = "ListTypes"
5064
5065// ListTypesRequest generates a "aws/request.Request" representing the
5066// client's request for the ListTypes operation. The "output" return
5067// value will be populated with the request's response once the request completes
5068// successfully.
5069//
5070// Use "Send" method on the returned Request to send the API call to the service.
5071// the "output" return value is not valid until after Send returns without error.
5072//
5073// See ListTypes for more information on using the ListTypes
5074// API call, and error handling.
5075//
5076// This method is useful when you want to inject custom logic or configuration
5077// into the SDK's request lifecycle. Such as custom headers, or retry logic.
5078//
5079//
5080//    // Example sending a request using the ListTypesRequest method.
5081//    req, resp := client.ListTypesRequest(params)
5082//
5083//    err := req.Send()
5084//    if err == nil { // resp is now filled
5085//        fmt.Println(resp)
5086//    }
5087//
5088// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/ListTypes
5089func (c *CloudFormation) ListTypesRequest(input *ListTypesInput) (req *request.Request, output *ListTypesOutput) {
5090	op := &request.Operation{
5091		Name:       opListTypes,
5092		HTTPMethod: "POST",
5093		HTTPPath:   "/",
5094		Paginator: &request.Paginator{
5095			InputTokens:     []string{"NextToken"},
5096			OutputTokens:    []string{"NextToken"},
5097			LimitToken:      "MaxResults",
5098			TruncationToken: "",
5099		},
5100	}
5101
5102	if input == nil {
5103		input = &ListTypesInput{}
5104	}
5105
5106	output = &ListTypesOutput{}
5107	req = c.newRequest(op, input, output)
5108	return
5109}
5110
5111// ListTypes API operation for AWS CloudFormation.
5112//
5113// Returns summary information about extension that have been registered with
5114// CloudFormation.
5115//
5116// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
5117// with awserr.Error's Code and Message methods to get detailed information about
5118// the error.
5119//
5120// See the AWS API reference guide for AWS CloudFormation's
5121// API operation ListTypes for usage and error information.
5122//
5123// Returned Error Codes:
5124//   * ErrCodeCFNRegistryException "CFNRegistryException"
5125//   An error occurred during a CloudFormation registry operation.
5126//
5127// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/ListTypes
5128func (c *CloudFormation) ListTypes(input *ListTypesInput) (*ListTypesOutput, error) {
5129	req, out := c.ListTypesRequest(input)
5130	return out, req.Send()
5131}
5132
5133// ListTypesWithContext is the same as ListTypes with the addition of
5134// the ability to pass a context and additional request options.
5135//
5136// See ListTypes for details on how to use this API operation.
5137//
5138// The context must be non-nil and will be used for request cancellation. If
5139// the context is nil a panic will occur. In the future the SDK may create
5140// sub-contexts for http.Requests. See https://golang.org/pkg/context/
5141// for more information on using Contexts.
5142func (c *CloudFormation) ListTypesWithContext(ctx aws.Context, input *ListTypesInput, opts ...request.Option) (*ListTypesOutput, error) {
5143	req, out := c.ListTypesRequest(input)
5144	req.SetContext(ctx)
5145	req.ApplyOptions(opts...)
5146	return out, req.Send()
5147}
5148
5149// ListTypesPages iterates over the pages of a ListTypes operation,
5150// calling the "fn" function with the response data for each page. To stop
5151// iterating, return false from the fn function.
5152//
5153// See ListTypes method for more information on how to use this operation.
5154//
5155// Note: This operation can generate multiple requests to a service.
5156//
5157//    // Example iterating over at most 3 pages of a ListTypes operation.
5158//    pageNum := 0
5159//    err := client.ListTypesPages(params,
5160//        func(page *cloudformation.ListTypesOutput, lastPage bool) bool {
5161//            pageNum++
5162//            fmt.Println(page)
5163//            return pageNum <= 3
5164//        })
5165//
5166func (c *CloudFormation) ListTypesPages(input *ListTypesInput, fn func(*ListTypesOutput, bool) bool) error {
5167	return c.ListTypesPagesWithContext(aws.BackgroundContext(), input, fn)
5168}
5169
5170// ListTypesPagesWithContext same as ListTypesPages except
5171// it takes a Context and allows setting request options on the pages.
5172//
5173// The context must be non-nil and will be used for request cancellation. If
5174// the context is nil a panic will occur. In the future the SDK may create
5175// sub-contexts for http.Requests. See https://golang.org/pkg/context/
5176// for more information on using Contexts.
5177func (c *CloudFormation) ListTypesPagesWithContext(ctx aws.Context, input *ListTypesInput, fn func(*ListTypesOutput, bool) bool, opts ...request.Option) error {
5178	p := request.Pagination{
5179		NewRequest: func() (*request.Request, error) {
5180			var inCpy *ListTypesInput
5181			if input != nil {
5182				tmp := *input
5183				inCpy = &tmp
5184			}
5185			req, _ := c.ListTypesRequest(inCpy)
5186			req.SetContext(ctx)
5187			req.ApplyOptions(opts...)
5188			return req, nil
5189		},
5190	}
5191
5192	for p.Next() {
5193		if !fn(p.Page().(*ListTypesOutput), !p.HasNextPage()) {
5194			break
5195		}
5196	}
5197
5198	return p.Err()
5199}
5200
5201const opPublishType = "PublishType"
5202
5203// PublishTypeRequest generates a "aws/request.Request" representing the
5204// client's request for the PublishType operation. The "output" return
5205// value will be populated with the request's response once the request completes
5206// successfully.
5207//
5208// Use "Send" method on the returned Request to send the API call to the service.
5209// the "output" return value is not valid until after Send returns without error.
5210//
5211// See PublishType for more information on using the PublishType
5212// API call, and error handling.
5213//
5214// This method is useful when you want to inject custom logic or configuration
5215// into the SDK's request lifecycle. Such as custom headers, or retry logic.
5216//
5217//
5218//    // Example sending a request using the PublishTypeRequest method.
5219//    req, resp := client.PublishTypeRequest(params)
5220//
5221//    err := req.Send()
5222//    if err == nil { // resp is now filled
5223//        fmt.Println(resp)
5224//    }
5225//
5226// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/PublishType
5227func (c *CloudFormation) PublishTypeRequest(input *PublishTypeInput) (req *request.Request, output *PublishTypeOutput) {
5228	op := &request.Operation{
5229		Name:       opPublishType,
5230		HTTPMethod: "POST",
5231		HTTPPath:   "/",
5232	}
5233
5234	if input == nil {
5235		input = &PublishTypeInput{}
5236	}
5237
5238	output = &PublishTypeOutput{}
5239	req = c.newRequest(op, input, output)
5240	return
5241}
5242
5243// PublishType API operation for AWS CloudFormation.
5244//
5245// Publishes the specified extension to the CloudFormation registry as a public
5246// extension in this region. Public extensions are available for use by all
5247// CloudFormation users. For more information on publishing extensions, see
5248// Publishing extensions to make them available for public use (https://docs.aws.amazon.com/cloudformation-cli/latest/userguide/publish-extension.html)
5249// in the CloudFormation CLI User Guide.
5250//
5251// To publish an extension, you must be registered as a publisher with CloudFormation.
5252// For more information, see RegisterPublisher (https://docs.aws.amazon.com/AWSCloudFormation/latest/APIReference/API_RegisterPublisher.html).
5253//
5254// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
5255// with awserr.Error's Code and Message methods to get detailed information about
5256// the error.
5257//
5258// See the AWS API reference guide for AWS CloudFormation's
5259// API operation PublishType for usage and error information.
5260//
5261// Returned Error Codes:
5262//   * ErrCodeCFNRegistryException "CFNRegistryException"
5263//   An error occurred during a CloudFormation registry operation.
5264//
5265//   * ErrCodeTypeNotFoundException "TypeNotFoundException"
5266//   The specified extension does not exist in the CloudFormation registry.
5267//
5268// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/PublishType
5269func (c *CloudFormation) PublishType(input *PublishTypeInput) (*PublishTypeOutput, error) {
5270	req, out := c.PublishTypeRequest(input)
5271	return out, req.Send()
5272}
5273
5274// PublishTypeWithContext is the same as PublishType with the addition of
5275// the ability to pass a context and additional request options.
5276//
5277// See PublishType for details on how to use this API operation.
5278//
5279// The context must be non-nil and will be used for request cancellation. If
5280// the context is nil a panic will occur. In the future the SDK may create
5281// sub-contexts for http.Requests. See https://golang.org/pkg/context/
5282// for more information on using Contexts.
5283func (c *CloudFormation) PublishTypeWithContext(ctx aws.Context, input *PublishTypeInput, opts ...request.Option) (*PublishTypeOutput, error) {
5284	req, out := c.PublishTypeRequest(input)
5285	req.SetContext(ctx)
5286	req.ApplyOptions(opts...)
5287	return out, req.Send()
5288}
5289
5290const opRecordHandlerProgress = "RecordHandlerProgress"
5291
5292// RecordHandlerProgressRequest generates a "aws/request.Request" representing the
5293// client's request for the RecordHandlerProgress operation. The "output" return
5294// value will be populated with the request's response once the request completes
5295// successfully.
5296//
5297// Use "Send" method on the returned Request to send the API call to the service.
5298// the "output" return value is not valid until after Send returns without error.
5299//
5300// See RecordHandlerProgress for more information on using the RecordHandlerProgress
5301// API call, and error handling.
5302//
5303// This method is useful when you want to inject custom logic or configuration
5304// into the SDK's request lifecycle. Such as custom headers, or retry logic.
5305//
5306//
5307//    // Example sending a request using the RecordHandlerProgressRequest method.
5308//    req, resp := client.RecordHandlerProgressRequest(params)
5309//
5310//    err := req.Send()
5311//    if err == nil { // resp is now filled
5312//        fmt.Println(resp)
5313//    }
5314//
5315// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/RecordHandlerProgress
5316func (c *CloudFormation) RecordHandlerProgressRequest(input *RecordHandlerProgressInput) (req *request.Request, output *RecordHandlerProgressOutput) {
5317	op := &request.Operation{
5318		Name:       opRecordHandlerProgress,
5319		HTTPMethod: "POST",
5320		HTTPPath:   "/",
5321	}
5322
5323	if input == nil {
5324		input = &RecordHandlerProgressInput{}
5325	}
5326
5327	output = &RecordHandlerProgressOutput{}
5328	req = c.newRequest(op, input, output)
5329	req.Handlers.Unmarshal.Swap(query.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
5330	return
5331}
5332
5333// RecordHandlerProgress API operation for AWS CloudFormation.
5334//
5335// Reports progress of a resource handler to CloudFormation.
5336//
5337// Reserved for use by the CloudFormation CLI (https://docs.aws.amazon.com/cloudformation-cli/latest/userguide/what-is-cloudformation-cli.html).
5338// Do not use this API in your code.
5339//
5340// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
5341// with awserr.Error's Code and Message methods to get detailed information about
5342// the error.
5343//
5344// See the AWS API reference guide for AWS CloudFormation's
5345// API operation RecordHandlerProgress for usage and error information.
5346//
5347// Returned Error Codes:
5348//   * ErrCodeInvalidStateTransitionException "InvalidStateTransition"
5349//   Error reserved for use by the CloudFormation CLI (https://docs.aws.amazon.com/cloudformation-cli/latest/userguide/what-is-cloudformation-cli.html).
5350//   CloudFormation does not return this error to users.
5351//
5352//   * ErrCodeOperationStatusCheckFailedException "ConditionalCheckFailed"
5353//   Error reserved for use by the CloudFormation CLI (https://docs.aws.amazon.com/cloudformation-cli/latest/userguide/what-is-cloudformation-cli.html).
5354//   CloudFormation does not return this error to users.
5355//
5356// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/RecordHandlerProgress
5357func (c *CloudFormation) RecordHandlerProgress(input *RecordHandlerProgressInput) (*RecordHandlerProgressOutput, error) {
5358	req, out := c.RecordHandlerProgressRequest(input)
5359	return out, req.Send()
5360}
5361
5362// RecordHandlerProgressWithContext is the same as RecordHandlerProgress with the addition of
5363// the ability to pass a context and additional request options.
5364//
5365// See RecordHandlerProgress for details on how to use this API operation.
5366//
5367// The context must be non-nil and will be used for request cancellation. If
5368// the context is nil a panic will occur. In the future the SDK may create
5369// sub-contexts for http.Requests. See https://golang.org/pkg/context/
5370// for more information on using Contexts.
5371func (c *CloudFormation) RecordHandlerProgressWithContext(ctx aws.Context, input *RecordHandlerProgressInput, opts ...request.Option) (*RecordHandlerProgressOutput, error) {
5372	req, out := c.RecordHandlerProgressRequest(input)
5373	req.SetContext(ctx)
5374	req.ApplyOptions(opts...)
5375	return out, req.Send()
5376}
5377
5378const opRegisterPublisher = "RegisterPublisher"
5379
5380// RegisterPublisherRequest generates a "aws/request.Request" representing the
5381// client's request for the RegisterPublisher operation. The "output" return
5382// value will be populated with the request's response once the request completes
5383// successfully.
5384//
5385// Use "Send" method on the returned Request to send the API call to the service.
5386// the "output" return value is not valid until after Send returns without error.
5387//
5388// See RegisterPublisher for more information on using the RegisterPublisher
5389// API call, and error handling.
5390//
5391// This method is useful when you want to inject custom logic or configuration
5392// into the SDK's request lifecycle. Such as custom headers, or retry logic.
5393//
5394//
5395//    // Example sending a request using the RegisterPublisherRequest method.
5396//    req, resp := client.RegisterPublisherRequest(params)
5397//
5398//    err := req.Send()
5399//    if err == nil { // resp is now filled
5400//        fmt.Println(resp)
5401//    }
5402//
5403// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/RegisterPublisher
5404func (c *CloudFormation) RegisterPublisherRequest(input *RegisterPublisherInput) (req *request.Request, output *RegisterPublisherOutput) {
5405	op := &request.Operation{
5406		Name:       opRegisterPublisher,
5407		HTTPMethod: "POST",
5408		HTTPPath:   "/",
5409	}
5410
5411	if input == nil {
5412		input = &RegisterPublisherInput{}
5413	}
5414
5415	output = &RegisterPublisherOutput{}
5416	req = c.newRequest(op, input, output)
5417	return
5418}
5419
5420// RegisterPublisher API operation for AWS CloudFormation.
5421//
5422// Registers your account as a publisher of public extensions in the CloudFormation
5423// registry. Public extensions are available for use by all CloudFormation users.
5424// This publisher ID applies to your account in all Regions.
5425//
5426// For information on requirements for registering as a public extension publisher,
5427// see Registering your account to publish CloudFormation extensions (https://docs.aws.amazon.com/cloudformation-cli/latest/userguide/publish-extension.html#publish-extension-prereqs)
5428// in the CloudFormation CLI User Guide.
5429//
5430// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
5431// with awserr.Error's Code and Message methods to get detailed information about
5432// the error.
5433//
5434// See the AWS API reference guide for AWS CloudFormation's
5435// API operation RegisterPublisher for usage and error information.
5436//
5437// Returned Error Codes:
5438//   * ErrCodeCFNRegistryException "CFNRegistryException"
5439//   An error occurred during a CloudFormation registry operation.
5440//
5441// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/RegisterPublisher
5442func (c *CloudFormation) RegisterPublisher(input *RegisterPublisherInput) (*RegisterPublisherOutput, error) {
5443	req, out := c.RegisterPublisherRequest(input)
5444	return out, req.Send()
5445}
5446
5447// RegisterPublisherWithContext is the same as RegisterPublisher with the addition of
5448// the ability to pass a context and additional request options.
5449//
5450// See RegisterPublisher for details on how to use this API operation.
5451//
5452// The context must be non-nil and will be used for request cancellation. If
5453// the context is nil a panic will occur. In the future the SDK may create
5454// sub-contexts for http.Requests. See https://golang.org/pkg/context/
5455// for more information on using Contexts.
5456func (c *CloudFormation) RegisterPublisherWithContext(ctx aws.Context, input *RegisterPublisherInput, opts ...request.Option) (*RegisterPublisherOutput, error) {
5457	req, out := c.RegisterPublisherRequest(input)
5458	req.SetContext(ctx)
5459	req.ApplyOptions(opts...)
5460	return out, req.Send()
5461}
5462
5463const opRegisterType = "RegisterType"
5464
5465// RegisterTypeRequest generates a "aws/request.Request" representing the
5466// client's request for the RegisterType operation. The "output" return
5467// value will be populated with the request's response once the request completes
5468// successfully.
5469//
5470// Use "Send" method on the returned Request to send the API call to the service.
5471// the "output" return value is not valid until after Send returns without error.
5472//
5473// See RegisterType for more information on using the RegisterType
5474// API call, and error handling.
5475//
5476// This method is useful when you want to inject custom logic or configuration
5477// into the SDK's request lifecycle. Such as custom headers, or retry logic.
5478//
5479//
5480//    // Example sending a request using the RegisterTypeRequest method.
5481//    req, resp := client.RegisterTypeRequest(params)
5482//
5483//    err := req.Send()
5484//    if err == nil { // resp is now filled
5485//        fmt.Println(resp)
5486//    }
5487//
5488// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/RegisterType
5489func (c *CloudFormation) RegisterTypeRequest(input *RegisterTypeInput) (req *request.Request, output *RegisterTypeOutput) {
5490	op := &request.Operation{
5491		Name:       opRegisterType,
5492		HTTPMethod: "POST",
5493		HTTPPath:   "/",
5494	}
5495
5496	if input == nil {
5497		input = &RegisterTypeInput{}
5498	}
5499
5500	output = &RegisterTypeOutput{}
5501	req = c.newRequest(op, input, output)
5502	return
5503}
5504
5505// RegisterType API operation for AWS CloudFormation.
5506//
5507// Registers an extension with the CloudFormation service. Registering an extension
5508// makes it available for use in CloudFormation templates in your account, and
5509// includes:
5510//
5511//    * Validating the extension schema
5512//
5513//    * Determining which handlers, if any, have been specified for the extension
5514//
5515//    * Making the extension available for use in your account
5516//
5517// For more information on how to develop extensions and ready them for registeration,
5518// see Creating Resource Providers (https://docs.aws.amazon.com/cloudformation-cli/latest/userguide/resource-types.html)
5519// in the CloudFormation CLI User Guide.
5520//
5521// You can have a maximum of 50 resource extension versions registered at a
5522// time. This maximum is per account and per region. Use DeregisterType (AWSCloudFormation/latest/APIReference/API_DeregisterType.html)
5523// to deregister specific extension versions if necessary.
5524//
5525// Once you have initiated a registration request using RegisterType , you can
5526// use DescribeTypeRegistration to monitor the progress of the registration
5527// request.
5528//
5529// Once you have registered a private extension in your account and region,
5530// use SetTypeConfiguration (AWSCloudFormation/latest/APIReference/API_SetTypeConfiguration.html)
5531// to specify configuration properties for the extension. For more information,
5532// see Configuring extensions at the account level (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/registry-register.html#registry-set-configuration)
5533// in the CloudFormation User Guide.
5534//
5535// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
5536// with awserr.Error's Code and Message methods to get detailed information about
5537// the error.
5538//
5539// See the AWS API reference guide for AWS CloudFormation's
5540// API operation RegisterType for usage and error information.
5541//
5542// Returned Error Codes:
5543//   * ErrCodeCFNRegistryException "CFNRegistryException"
5544//   An error occurred during a CloudFormation registry operation.
5545//
5546// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/RegisterType
5547func (c *CloudFormation) RegisterType(input *RegisterTypeInput) (*RegisterTypeOutput, error) {
5548	req, out := c.RegisterTypeRequest(input)
5549	return out, req.Send()
5550}
5551
5552// RegisterTypeWithContext is the same as RegisterType with the addition of
5553// the ability to pass a context and additional request options.
5554//
5555// See RegisterType for details on how to use this API operation.
5556//
5557// The context must be non-nil and will be used for request cancellation. If
5558// the context is nil a panic will occur. In the future the SDK may create
5559// sub-contexts for http.Requests. See https://golang.org/pkg/context/
5560// for more information on using Contexts.
5561func (c *CloudFormation) RegisterTypeWithContext(ctx aws.Context, input *RegisterTypeInput, opts ...request.Option) (*RegisterTypeOutput, error) {
5562	req, out := c.RegisterTypeRequest(input)
5563	req.SetContext(ctx)
5564	req.ApplyOptions(opts...)
5565	return out, req.Send()
5566}
5567
5568const opSetStackPolicy = "SetStackPolicy"
5569
5570// SetStackPolicyRequest generates a "aws/request.Request" representing the
5571// client's request for the SetStackPolicy operation. The "output" return
5572// value will be populated with the request's response once the request completes
5573// successfully.
5574//
5575// Use "Send" method on the returned Request to send the API call to the service.
5576// the "output" return value is not valid until after Send returns without error.
5577//
5578// See SetStackPolicy for more information on using the SetStackPolicy
5579// API call, and error handling.
5580//
5581// This method is useful when you want to inject custom logic or configuration
5582// into the SDK's request lifecycle. Such as custom headers, or retry logic.
5583//
5584//
5585//    // Example sending a request using the SetStackPolicyRequest method.
5586//    req, resp := client.SetStackPolicyRequest(params)
5587//
5588//    err := req.Send()
5589//    if err == nil { // resp is now filled
5590//        fmt.Println(resp)
5591//    }
5592//
5593// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/SetStackPolicy
5594func (c *CloudFormation) SetStackPolicyRequest(input *SetStackPolicyInput) (req *request.Request, output *SetStackPolicyOutput) {
5595	op := &request.Operation{
5596		Name:       opSetStackPolicy,
5597		HTTPMethod: "POST",
5598		HTTPPath:   "/",
5599	}
5600
5601	if input == nil {
5602		input = &SetStackPolicyInput{}
5603	}
5604
5605	output = &SetStackPolicyOutput{}
5606	req = c.newRequest(op, input, output)
5607	req.Handlers.Unmarshal.Swap(query.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
5608	return
5609}
5610
5611// SetStackPolicy API operation for AWS CloudFormation.
5612//
5613// Sets a stack policy for a specified stack.
5614//
5615// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
5616// with awserr.Error's Code and Message methods to get detailed information about
5617// the error.
5618//
5619// See the AWS API reference guide for AWS CloudFormation's
5620// API operation SetStackPolicy for usage and error information.
5621// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/SetStackPolicy
5622func (c *CloudFormation) SetStackPolicy(input *SetStackPolicyInput) (*SetStackPolicyOutput, error) {
5623	req, out := c.SetStackPolicyRequest(input)
5624	return out, req.Send()
5625}
5626
5627// SetStackPolicyWithContext is the same as SetStackPolicy with the addition of
5628// the ability to pass a context and additional request options.
5629//
5630// See SetStackPolicy for details on how to use this API operation.
5631//
5632// The context must be non-nil and will be used for request cancellation. If
5633// the context is nil a panic will occur. In the future the SDK may create
5634// sub-contexts for http.Requests. See https://golang.org/pkg/context/
5635// for more information on using Contexts.
5636func (c *CloudFormation) SetStackPolicyWithContext(ctx aws.Context, input *SetStackPolicyInput, opts ...request.Option) (*SetStackPolicyOutput, error) {
5637	req, out := c.SetStackPolicyRequest(input)
5638	req.SetContext(ctx)
5639	req.ApplyOptions(opts...)
5640	return out, req.Send()
5641}
5642
5643const opSetTypeConfiguration = "SetTypeConfiguration"
5644
5645// SetTypeConfigurationRequest generates a "aws/request.Request" representing the
5646// client's request for the SetTypeConfiguration operation. The "output" return
5647// value will be populated with the request's response once the request completes
5648// successfully.
5649//
5650// Use "Send" method on the returned Request to send the API call to the service.
5651// the "output" return value is not valid until after Send returns without error.
5652//
5653// See SetTypeConfiguration for more information on using the SetTypeConfiguration
5654// API call, and error handling.
5655//
5656// This method is useful when you want to inject custom logic or configuration
5657// into the SDK's request lifecycle. Such as custom headers, or retry logic.
5658//
5659//
5660//    // Example sending a request using the SetTypeConfigurationRequest method.
5661//    req, resp := client.SetTypeConfigurationRequest(params)
5662//
5663//    err := req.Send()
5664//    if err == nil { // resp is now filled
5665//        fmt.Println(resp)
5666//    }
5667//
5668// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/SetTypeConfiguration
5669func (c *CloudFormation) SetTypeConfigurationRequest(input *SetTypeConfigurationInput) (req *request.Request, output *SetTypeConfigurationOutput) {
5670	op := &request.Operation{
5671		Name:       opSetTypeConfiguration,
5672		HTTPMethod: "POST",
5673		HTTPPath:   "/",
5674	}
5675
5676	if input == nil {
5677		input = &SetTypeConfigurationInput{}
5678	}
5679
5680	output = &SetTypeConfigurationOutput{}
5681	req = c.newRequest(op, input, output)
5682	return
5683}
5684
5685// SetTypeConfiguration API operation for AWS CloudFormation.
5686//
5687// Specifies the configuration data for a registered CloudFormation extension,
5688// in the given account and region.
5689//
5690// To view the current configuration data for an extension, refer to the ConfigurationSchema
5691// element of DescribeType (AWSCloudFormation/latest/APIReference/API_DescribeType.html).
5692// For more information, see Configuring extensions at the account level (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/registry-register.html#registry-set-configuration)
5693// in the CloudFormation User Guide.
5694//
5695// It is strongly recommended that you use dynamic references to restrict sensitive
5696// configuration definitions, such as third-party credentials. For more details
5697// on dynamic references, see Using dynamic references to specify template values
5698// (https://docs.aws.amazon.com/) in the CloudFormation User Guide.
5699//
5700// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
5701// with awserr.Error's Code and Message methods to get detailed information about
5702// the error.
5703//
5704// See the AWS API reference guide for AWS CloudFormation's
5705// API operation SetTypeConfiguration for usage and error information.
5706//
5707// Returned Error Codes:
5708//   * ErrCodeCFNRegistryException "CFNRegistryException"
5709//   An error occurred during a CloudFormation registry operation.
5710//
5711//   * ErrCodeTypeNotFoundException "TypeNotFoundException"
5712//   The specified extension does not exist in the CloudFormation registry.
5713//
5714// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/SetTypeConfiguration
5715func (c *CloudFormation) SetTypeConfiguration(input *SetTypeConfigurationInput) (*SetTypeConfigurationOutput, error) {
5716	req, out := c.SetTypeConfigurationRequest(input)
5717	return out, req.Send()
5718}
5719
5720// SetTypeConfigurationWithContext is the same as SetTypeConfiguration with the addition of
5721// the ability to pass a context and additional request options.
5722//
5723// See SetTypeConfiguration for details on how to use this API operation.
5724//
5725// The context must be non-nil and will be used for request cancellation. If
5726// the context is nil a panic will occur. In the future the SDK may create
5727// sub-contexts for http.Requests. See https://golang.org/pkg/context/
5728// for more information on using Contexts.
5729func (c *CloudFormation) SetTypeConfigurationWithContext(ctx aws.Context, input *SetTypeConfigurationInput, opts ...request.Option) (*SetTypeConfigurationOutput, error) {
5730	req, out := c.SetTypeConfigurationRequest(input)
5731	req.SetContext(ctx)
5732	req.ApplyOptions(opts...)
5733	return out, req.Send()
5734}
5735
5736const opSetTypeDefaultVersion = "SetTypeDefaultVersion"
5737
5738// SetTypeDefaultVersionRequest generates a "aws/request.Request" representing the
5739// client's request for the SetTypeDefaultVersion operation. The "output" return
5740// value will be populated with the request's response once the request completes
5741// successfully.
5742//
5743// Use "Send" method on the returned Request to send the API call to the service.
5744// the "output" return value is not valid until after Send returns without error.
5745//
5746// See SetTypeDefaultVersion for more information on using the SetTypeDefaultVersion
5747// API call, and error handling.
5748//
5749// This method is useful when you want to inject custom logic or configuration
5750// into the SDK's request lifecycle. Such as custom headers, or retry logic.
5751//
5752//
5753//    // Example sending a request using the SetTypeDefaultVersionRequest method.
5754//    req, resp := client.SetTypeDefaultVersionRequest(params)
5755//
5756//    err := req.Send()
5757//    if err == nil { // resp is now filled
5758//        fmt.Println(resp)
5759//    }
5760//
5761// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/SetTypeDefaultVersion
5762func (c *CloudFormation) SetTypeDefaultVersionRequest(input *SetTypeDefaultVersionInput) (req *request.Request, output *SetTypeDefaultVersionOutput) {
5763	op := &request.Operation{
5764		Name:       opSetTypeDefaultVersion,
5765		HTTPMethod: "POST",
5766		HTTPPath:   "/",
5767	}
5768
5769	if input == nil {
5770		input = &SetTypeDefaultVersionInput{}
5771	}
5772
5773	output = &SetTypeDefaultVersionOutput{}
5774	req = c.newRequest(op, input, output)
5775	req.Handlers.Unmarshal.Swap(query.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
5776	return
5777}
5778
5779// SetTypeDefaultVersion API operation for AWS CloudFormation.
5780//
5781// Specify the default version of an extension. The default version of an extension
5782// will be used in CloudFormation operations.
5783//
5784// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
5785// with awserr.Error's Code and Message methods to get detailed information about
5786// the error.
5787//
5788// See the AWS API reference guide for AWS CloudFormation's
5789// API operation SetTypeDefaultVersion for usage and error information.
5790//
5791// Returned Error Codes:
5792//   * ErrCodeCFNRegistryException "CFNRegistryException"
5793//   An error occurred during a CloudFormation registry operation.
5794//
5795//   * ErrCodeTypeNotFoundException "TypeNotFoundException"
5796//   The specified extension does not exist in the CloudFormation registry.
5797//
5798// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/SetTypeDefaultVersion
5799func (c *CloudFormation) SetTypeDefaultVersion(input *SetTypeDefaultVersionInput) (*SetTypeDefaultVersionOutput, error) {
5800	req, out := c.SetTypeDefaultVersionRequest(input)
5801	return out, req.Send()
5802}
5803
5804// SetTypeDefaultVersionWithContext is the same as SetTypeDefaultVersion with the addition of
5805// the ability to pass a context and additional request options.
5806//
5807// See SetTypeDefaultVersion for details on how to use this API operation.
5808//
5809// The context must be non-nil and will be used for request cancellation. If
5810// the context is nil a panic will occur. In the future the SDK may create
5811// sub-contexts for http.Requests. See https://golang.org/pkg/context/
5812// for more information on using Contexts.
5813func (c *CloudFormation) SetTypeDefaultVersionWithContext(ctx aws.Context, input *SetTypeDefaultVersionInput, opts ...request.Option) (*SetTypeDefaultVersionOutput, error) {
5814	req, out := c.SetTypeDefaultVersionRequest(input)
5815	req.SetContext(ctx)
5816	req.ApplyOptions(opts...)
5817	return out, req.Send()
5818}
5819
5820const opSignalResource = "SignalResource"
5821
5822// SignalResourceRequest generates a "aws/request.Request" representing the
5823// client's request for the SignalResource operation. The "output" return
5824// value will be populated with the request's response once the request completes
5825// successfully.
5826//
5827// Use "Send" method on the returned Request to send the API call to the service.
5828// the "output" return value is not valid until after Send returns without error.
5829//
5830// See SignalResource for more information on using the SignalResource
5831// API call, and error handling.
5832//
5833// This method is useful when you want to inject custom logic or configuration
5834// into the SDK's request lifecycle. Such as custom headers, or retry logic.
5835//
5836//
5837//    // Example sending a request using the SignalResourceRequest method.
5838//    req, resp := client.SignalResourceRequest(params)
5839//
5840//    err := req.Send()
5841//    if err == nil { // resp is now filled
5842//        fmt.Println(resp)
5843//    }
5844//
5845// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/SignalResource
5846func (c *CloudFormation) SignalResourceRequest(input *SignalResourceInput) (req *request.Request, output *SignalResourceOutput) {
5847	op := &request.Operation{
5848		Name:       opSignalResource,
5849		HTTPMethod: "POST",
5850		HTTPPath:   "/",
5851	}
5852
5853	if input == nil {
5854		input = &SignalResourceInput{}
5855	}
5856
5857	output = &SignalResourceOutput{}
5858	req = c.newRequest(op, input, output)
5859	req.Handlers.Unmarshal.Swap(query.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
5860	return
5861}
5862
5863// SignalResource API operation for AWS CloudFormation.
5864//
5865// Sends a signal to the specified resource with a success or failure status.
5866// You can use the SignalResource API in conjunction with a creation policy
5867// or update policy. CloudFormation doesn't proceed with a stack creation or
5868// update until resources receive the required number of signals or the timeout
5869// period is exceeded. The SignalResource API is useful in cases where you want
5870// to send signals from anywhere other than an Amazon EC2 instance.
5871//
5872// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
5873// with awserr.Error's Code and Message methods to get detailed information about
5874// the error.
5875//
5876// See the AWS API reference guide for AWS CloudFormation's
5877// API operation SignalResource for usage and error information.
5878// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/SignalResource
5879func (c *CloudFormation) SignalResource(input *SignalResourceInput) (*SignalResourceOutput, error) {
5880	req, out := c.SignalResourceRequest(input)
5881	return out, req.Send()
5882}
5883
5884// SignalResourceWithContext is the same as SignalResource with the addition of
5885// the ability to pass a context and additional request options.
5886//
5887// See SignalResource for details on how to use this API operation.
5888//
5889// The context must be non-nil and will be used for request cancellation. If
5890// the context is nil a panic will occur. In the future the SDK may create
5891// sub-contexts for http.Requests. See https://golang.org/pkg/context/
5892// for more information on using Contexts.
5893func (c *CloudFormation) SignalResourceWithContext(ctx aws.Context, input *SignalResourceInput, opts ...request.Option) (*SignalResourceOutput, error) {
5894	req, out := c.SignalResourceRequest(input)
5895	req.SetContext(ctx)
5896	req.ApplyOptions(opts...)
5897	return out, req.Send()
5898}
5899
5900const opStopStackSetOperation = "StopStackSetOperation"
5901
5902// StopStackSetOperationRequest generates a "aws/request.Request" representing the
5903// client's request for the StopStackSetOperation operation. The "output" return
5904// value will be populated with the request's response once the request completes
5905// successfully.
5906//
5907// Use "Send" method on the returned Request to send the API call to the service.
5908// the "output" return value is not valid until after Send returns without error.
5909//
5910// See StopStackSetOperation for more information on using the StopStackSetOperation
5911// API call, and error handling.
5912//
5913// This method is useful when you want to inject custom logic or configuration
5914// into the SDK's request lifecycle. Such as custom headers, or retry logic.
5915//
5916//
5917//    // Example sending a request using the StopStackSetOperationRequest method.
5918//    req, resp := client.StopStackSetOperationRequest(params)
5919//
5920//    err := req.Send()
5921//    if err == nil { // resp is now filled
5922//        fmt.Println(resp)
5923//    }
5924//
5925// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/StopStackSetOperation
5926func (c *CloudFormation) StopStackSetOperationRequest(input *StopStackSetOperationInput) (req *request.Request, output *StopStackSetOperationOutput) {
5927	op := &request.Operation{
5928		Name:       opStopStackSetOperation,
5929		HTTPMethod: "POST",
5930		HTTPPath:   "/",
5931	}
5932
5933	if input == nil {
5934		input = &StopStackSetOperationInput{}
5935	}
5936
5937	output = &StopStackSetOperationOutput{}
5938	req = c.newRequest(op, input, output)
5939	req.Handlers.Unmarshal.Swap(query.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
5940	return
5941}
5942
5943// StopStackSetOperation API operation for AWS CloudFormation.
5944//
5945// Stops an in-progress operation on a stack set and its associated stack instances.
5946//
5947// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
5948// with awserr.Error's Code and Message methods to get detailed information about
5949// the error.
5950//
5951// See the AWS API reference guide for AWS CloudFormation's
5952// API operation StopStackSetOperation for usage and error information.
5953//
5954// Returned Error Codes:
5955//   * ErrCodeStackSetNotFoundException "StackSetNotFoundException"
5956//   The specified stack set doesn't exist.
5957//
5958//   * ErrCodeOperationNotFoundException "OperationNotFoundException"
5959//   The specified ID refers to an operation that doesn't exist.
5960//
5961//   * ErrCodeInvalidOperationException "InvalidOperationException"
5962//   The specified operation isn't valid.
5963//
5964// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/StopStackSetOperation
5965func (c *CloudFormation) StopStackSetOperation(input *StopStackSetOperationInput) (*StopStackSetOperationOutput, error) {
5966	req, out := c.StopStackSetOperationRequest(input)
5967	return out, req.Send()
5968}
5969
5970// StopStackSetOperationWithContext is the same as StopStackSetOperation with the addition of
5971// the ability to pass a context and additional request options.
5972//
5973// See StopStackSetOperation for details on how to use this API operation.
5974//
5975// The context must be non-nil and will be used for request cancellation. If
5976// the context is nil a panic will occur. In the future the SDK may create
5977// sub-contexts for http.Requests. See https://golang.org/pkg/context/
5978// for more information on using Contexts.
5979func (c *CloudFormation) StopStackSetOperationWithContext(ctx aws.Context, input *StopStackSetOperationInput, opts ...request.Option) (*StopStackSetOperationOutput, error) {
5980	req, out := c.StopStackSetOperationRequest(input)
5981	req.SetContext(ctx)
5982	req.ApplyOptions(opts...)
5983	return out, req.Send()
5984}
5985
5986const opTestType = "TestType"
5987
5988// TestTypeRequest generates a "aws/request.Request" representing the
5989// client's request for the TestType operation. The "output" return
5990// value will be populated with the request's response once the request completes
5991// successfully.
5992//
5993// Use "Send" method on the returned Request to send the API call to the service.
5994// the "output" return value is not valid until after Send returns without error.
5995//
5996// See TestType for more information on using the TestType
5997// API call, and error handling.
5998//
5999// This method is useful when you want to inject custom logic or configuration
6000// into the SDK's request lifecycle. Such as custom headers, or retry logic.
6001//
6002//
6003//    // Example sending a request using the TestTypeRequest method.
6004//    req, resp := client.TestTypeRequest(params)
6005//
6006//    err := req.Send()
6007//    if err == nil { // resp is now filled
6008//        fmt.Println(resp)
6009//    }
6010//
6011// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/TestType
6012func (c *CloudFormation) TestTypeRequest(input *TestTypeInput) (req *request.Request, output *TestTypeOutput) {
6013	op := &request.Operation{
6014		Name:       opTestType,
6015		HTTPMethod: "POST",
6016		HTTPPath:   "/",
6017	}
6018
6019	if input == nil {
6020		input = &TestTypeInput{}
6021	}
6022
6023	output = &TestTypeOutput{}
6024	req = c.newRequest(op, input, output)
6025	return
6026}
6027
6028// TestType API operation for AWS CloudFormation.
6029//
6030// Tests a registered extension to make sure it meets all necessary requirements
6031// for being published in the CloudFormation registry.
6032//
6033//    * For resource types, this includes passing all contracts tests defined
6034//    for the type.
6035//
6036//    * For modules, this includes determining if the module's model meets all
6037//    necessary requirements.
6038//
6039// For more information, see Testing your public extension prior to publishing
6040// (https://docs.aws.amazon.com/cloudformation-cli/latest/userguide/publish-extension.html#publish-extension-testing)
6041// in the CloudFormation CLI User Guide.
6042//
6043// If you do not specify a version, CloudFormation uses the default version
6044// of the extension in your account and region for testing.
6045//
6046// To perform testing, CloudFormation assumes the execution role specified when
6047// the type was registered. For more information, see RegisterType (AWSCloudFormation/latest/APIReference/API_RegisterType.html).
6048//
6049// Once you've initiated testing on an extension using TestType, you can use
6050// DescribeType (https://docs.aws.amazon.com/AWSCloudFormation/latest/APIReference/API_DescribeType.html)
6051// to monitor the current test status and test status description for the extension.
6052//
6053// An extension must have a test status of PASSED before it can be published.
6054// For more information, see Publishing extensions to make them available for
6055// public use (https://docs.aws.amazon.com/cloudformation-cli/latest/userguide/resource-type-publish.html)
6056// in the CloudFormation CLI User Guide.
6057//
6058// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
6059// with awserr.Error's Code and Message methods to get detailed information about
6060// the error.
6061//
6062// See the AWS API reference guide for AWS CloudFormation's
6063// API operation TestType for usage and error information.
6064//
6065// Returned Error Codes:
6066//   * ErrCodeCFNRegistryException "CFNRegistryException"
6067//   An error occurred during a CloudFormation registry operation.
6068//
6069//   * ErrCodeTypeNotFoundException "TypeNotFoundException"
6070//   The specified extension does not exist in the CloudFormation registry.
6071//
6072// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/TestType
6073func (c *CloudFormation) TestType(input *TestTypeInput) (*TestTypeOutput, error) {
6074	req, out := c.TestTypeRequest(input)
6075	return out, req.Send()
6076}
6077
6078// TestTypeWithContext is the same as TestType with the addition of
6079// the ability to pass a context and additional request options.
6080//
6081// See TestType for details on how to use this API operation.
6082//
6083// The context must be non-nil and will be used for request cancellation. If
6084// the context is nil a panic will occur. In the future the SDK may create
6085// sub-contexts for http.Requests. See https://golang.org/pkg/context/
6086// for more information on using Contexts.
6087func (c *CloudFormation) TestTypeWithContext(ctx aws.Context, input *TestTypeInput, opts ...request.Option) (*TestTypeOutput, error) {
6088	req, out := c.TestTypeRequest(input)
6089	req.SetContext(ctx)
6090	req.ApplyOptions(opts...)
6091	return out, req.Send()
6092}
6093
6094const opUpdateStack = "UpdateStack"
6095
6096// UpdateStackRequest generates a "aws/request.Request" representing the
6097// client's request for the UpdateStack operation. The "output" return
6098// value will be populated with the request's response once the request completes
6099// successfully.
6100//
6101// Use "Send" method on the returned Request to send the API call to the service.
6102// the "output" return value is not valid until after Send returns without error.
6103//
6104// See UpdateStack for more information on using the UpdateStack
6105// API call, and error handling.
6106//
6107// This method is useful when you want to inject custom logic or configuration
6108// into the SDK's request lifecycle. Such as custom headers, or retry logic.
6109//
6110//
6111//    // Example sending a request using the UpdateStackRequest method.
6112//    req, resp := client.UpdateStackRequest(params)
6113//
6114//    err := req.Send()
6115//    if err == nil { // resp is now filled
6116//        fmt.Println(resp)
6117//    }
6118//
6119// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/UpdateStack
6120func (c *CloudFormation) UpdateStackRequest(input *UpdateStackInput) (req *request.Request, output *UpdateStackOutput) {
6121	op := &request.Operation{
6122		Name:       opUpdateStack,
6123		HTTPMethod: "POST",
6124		HTTPPath:   "/",
6125	}
6126
6127	if input == nil {
6128		input = &UpdateStackInput{}
6129	}
6130
6131	output = &UpdateStackOutput{}
6132	req = c.newRequest(op, input, output)
6133	return
6134}
6135
6136// UpdateStack API operation for AWS CloudFormation.
6137//
6138// Updates a stack as specified in the template. After the call completes successfully,
6139// the stack update starts. You can check the status of the stack via the DescribeStacks
6140// action.
6141//
6142// To get a copy of the template for an existing stack, you can use the GetTemplate
6143// action.
6144//
6145// For more information about creating an update template, updating a stack,
6146// and monitoring the progress of the update, see Updating a Stack (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks.html).
6147//
6148// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
6149// with awserr.Error's Code and Message methods to get detailed information about
6150// the error.
6151//
6152// See the AWS API reference guide for AWS CloudFormation's
6153// API operation UpdateStack for usage and error information.
6154//
6155// Returned Error Codes:
6156//   * ErrCodeInsufficientCapabilitiesException "InsufficientCapabilitiesException"
6157//   The template contains resources with capabilities that weren't specified
6158//   in the Capabilities parameter.
6159//
6160//   * ErrCodeTokenAlreadyExistsException "TokenAlreadyExistsException"
6161//   A client request token already exists.
6162//
6163// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/UpdateStack
6164func (c *CloudFormation) UpdateStack(input *UpdateStackInput) (*UpdateStackOutput, error) {
6165	req, out := c.UpdateStackRequest(input)
6166	return out, req.Send()
6167}
6168
6169// UpdateStackWithContext is the same as UpdateStack with the addition of
6170// the ability to pass a context and additional request options.
6171//
6172// See UpdateStack for details on how to use this API operation.
6173//
6174// The context must be non-nil and will be used for request cancellation. If
6175// the context is nil a panic will occur. In the future the SDK may create
6176// sub-contexts for http.Requests. See https://golang.org/pkg/context/
6177// for more information on using Contexts.
6178func (c *CloudFormation) UpdateStackWithContext(ctx aws.Context, input *UpdateStackInput, opts ...request.Option) (*UpdateStackOutput, error) {
6179	req, out := c.UpdateStackRequest(input)
6180	req.SetContext(ctx)
6181	req.ApplyOptions(opts...)
6182	return out, req.Send()
6183}
6184
6185const opUpdateStackInstances = "UpdateStackInstances"
6186
6187// UpdateStackInstancesRequest generates a "aws/request.Request" representing the
6188// client's request for the UpdateStackInstances operation. The "output" return
6189// value will be populated with the request's response once the request completes
6190// successfully.
6191//
6192// Use "Send" method on the returned Request to send the API call to the service.
6193// the "output" return value is not valid until after Send returns without error.
6194//
6195// See UpdateStackInstances for more information on using the UpdateStackInstances
6196// API call, and error handling.
6197//
6198// This method is useful when you want to inject custom logic or configuration
6199// into the SDK's request lifecycle. Such as custom headers, or retry logic.
6200//
6201//
6202//    // Example sending a request using the UpdateStackInstancesRequest method.
6203//    req, resp := client.UpdateStackInstancesRequest(params)
6204//
6205//    err := req.Send()
6206//    if err == nil { // resp is now filled
6207//        fmt.Println(resp)
6208//    }
6209//
6210// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/UpdateStackInstances
6211func (c *CloudFormation) UpdateStackInstancesRequest(input *UpdateStackInstancesInput) (req *request.Request, output *UpdateStackInstancesOutput) {
6212	op := &request.Operation{
6213		Name:       opUpdateStackInstances,
6214		HTTPMethod: "POST",
6215		HTTPPath:   "/",
6216	}
6217
6218	if input == nil {
6219		input = &UpdateStackInstancesInput{}
6220	}
6221
6222	output = &UpdateStackInstancesOutput{}
6223	req = c.newRequest(op, input, output)
6224	return
6225}
6226
6227// UpdateStackInstances API operation for AWS CloudFormation.
6228//
6229// Updates the parameter values for stack instances for the specified accounts,
6230// within the specified Regions. A stack instance refers to a stack in a specific
6231// account and Region.
6232//
6233// You can only update stack instances in Regions and accounts where they already
6234// exist; to create additional stack instances, use CreateStackInstances (https://docs.aws.amazon.com/AWSCloudFormation/latest/APIReference/API_CreateStackInstances.html).
6235//
6236// During stack set updates, any parameters overridden for a stack instance
6237// are not updated, but retain their overridden value.
6238//
6239// You can only update the parameter values that are specified in the stack
6240// set; to add or delete a parameter itself, use UpdateStackSet (https://docs.aws.amazon.com/AWSCloudFormation/latest/APIReference/API_UpdateStackSet.html)
6241// to update the stack set template. If you add a parameter to a template, before
6242// you can override the parameter value specified in the stack set you must
6243// first use UpdateStackSet (https://docs.aws.amazon.com/AWSCloudFormation/latest/APIReference/API_UpdateStackSet.html)
6244// to update all stack instances with the updated template and parameter value
6245// specified in the stack set. Once a stack instance has been updated with the
6246// new parameter, you can then override the parameter value using UpdateStackInstances.
6247//
6248// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
6249// with awserr.Error's Code and Message methods to get detailed information about
6250// the error.
6251//
6252// See the AWS API reference guide for AWS CloudFormation's
6253// API operation UpdateStackInstances for usage and error information.
6254//
6255// Returned Error Codes:
6256//   * ErrCodeStackSetNotFoundException "StackSetNotFoundException"
6257//   The specified stack set doesn't exist.
6258//
6259//   * ErrCodeStackInstanceNotFoundException "StackInstanceNotFoundException"
6260//   The specified stack instance doesn't exist.
6261//
6262//   * ErrCodeOperationInProgressException "OperationInProgressException"
6263//   Another operation is currently in progress for this stack set. Only one operation
6264//   can be performed for a stack set at a given time.
6265//
6266//   * ErrCodeOperationIdAlreadyExistsException "OperationIdAlreadyExistsException"
6267//   The specified operation ID already exists.
6268//
6269//   * ErrCodeStaleRequestException "StaleRequestException"
6270//   Another operation has been performed on this stack set since the specified
6271//   operation was performed.
6272//
6273//   * ErrCodeInvalidOperationException "InvalidOperationException"
6274//   The specified operation isn't valid.
6275//
6276// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/UpdateStackInstances
6277func (c *CloudFormation) UpdateStackInstances(input *UpdateStackInstancesInput) (*UpdateStackInstancesOutput, error) {
6278	req, out := c.UpdateStackInstancesRequest(input)
6279	return out, req.Send()
6280}
6281
6282// UpdateStackInstancesWithContext is the same as UpdateStackInstances with the addition of
6283// the ability to pass a context and additional request options.
6284//
6285// See UpdateStackInstances for details on how to use this API operation.
6286//
6287// The context must be non-nil and will be used for request cancellation. If
6288// the context is nil a panic will occur. In the future the SDK may create
6289// sub-contexts for http.Requests. See https://golang.org/pkg/context/
6290// for more information on using Contexts.
6291func (c *CloudFormation) UpdateStackInstancesWithContext(ctx aws.Context, input *UpdateStackInstancesInput, opts ...request.Option) (*UpdateStackInstancesOutput, error) {
6292	req, out := c.UpdateStackInstancesRequest(input)
6293	req.SetContext(ctx)
6294	req.ApplyOptions(opts...)
6295	return out, req.Send()
6296}
6297
6298const opUpdateStackSet = "UpdateStackSet"
6299
6300// UpdateStackSetRequest generates a "aws/request.Request" representing the
6301// client's request for the UpdateStackSet operation. The "output" return
6302// value will be populated with the request's response once the request completes
6303// successfully.
6304//
6305// Use "Send" method on the returned Request to send the API call to the service.
6306// the "output" return value is not valid until after Send returns without error.
6307//
6308// See UpdateStackSet for more information on using the UpdateStackSet
6309// API call, and error handling.
6310//
6311// This method is useful when you want to inject custom logic or configuration
6312// into the SDK's request lifecycle. Such as custom headers, or retry logic.
6313//
6314//
6315//    // Example sending a request using the UpdateStackSetRequest method.
6316//    req, resp := client.UpdateStackSetRequest(params)
6317//
6318//    err := req.Send()
6319//    if err == nil { // resp is now filled
6320//        fmt.Println(resp)
6321//    }
6322//
6323// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/UpdateStackSet
6324func (c *CloudFormation) UpdateStackSetRequest(input *UpdateStackSetInput) (req *request.Request, output *UpdateStackSetOutput) {
6325	op := &request.Operation{
6326		Name:       opUpdateStackSet,
6327		HTTPMethod: "POST",
6328		HTTPPath:   "/",
6329	}
6330
6331	if input == nil {
6332		input = &UpdateStackSetInput{}
6333	}
6334
6335	output = &UpdateStackSetOutput{}
6336	req = c.newRequest(op, input, output)
6337	return
6338}
6339
6340// UpdateStackSet API operation for AWS CloudFormation.
6341//
6342// Updates the stack set, and associated stack instances in the specified accounts
6343// and Regions.
6344//
6345// Even if the stack set operation created by updating the stack set fails (completely
6346// or partially, below or above a specified failure tolerance), the stack set
6347// is updated with your changes. Subsequent CreateStackInstances calls on the
6348// specified stack set use the updated stack set.
6349//
6350// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
6351// with awserr.Error's Code and Message methods to get detailed information about
6352// the error.
6353//
6354// See the AWS API reference guide for AWS CloudFormation's
6355// API operation UpdateStackSet for usage and error information.
6356//
6357// Returned Error Codes:
6358//   * ErrCodeStackSetNotFoundException "StackSetNotFoundException"
6359//   The specified stack set doesn't exist.
6360//
6361//   * ErrCodeOperationInProgressException "OperationInProgressException"
6362//   Another operation is currently in progress for this stack set. Only one operation
6363//   can be performed for a stack set at a given time.
6364//
6365//   * ErrCodeOperationIdAlreadyExistsException "OperationIdAlreadyExistsException"
6366//   The specified operation ID already exists.
6367//
6368//   * ErrCodeStaleRequestException "StaleRequestException"
6369//   Another operation has been performed on this stack set since the specified
6370//   operation was performed.
6371//
6372//   * ErrCodeInvalidOperationException "InvalidOperationException"
6373//   The specified operation isn't valid.
6374//
6375//   * ErrCodeStackInstanceNotFoundException "StackInstanceNotFoundException"
6376//   The specified stack instance doesn't exist.
6377//
6378// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/UpdateStackSet
6379func (c *CloudFormation) UpdateStackSet(input *UpdateStackSetInput) (*UpdateStackSetOutput, error) {
6380	req, out := c.UpdateStackSetRequest(input)
6381	return out, req.Send()
6382}
6383
6384// UpdateStackSetWithContext is the same as UpdateStackSet with the addition of
6385// the ability to pass a context and additional request options.
6386//
6387// See UpdateStackSet for details on how to use this API operation.
6388//
6389// The context must be non-nil and will be used for request cancellation. If
6390// the context is nil a panic will occur. In the future the SDK may create
6391// sub-contexts for http.Requests. See https://golang.org/pkg/context/
6392// for more information on using Contexts.
6393func (c *CloudFormation) UpdateStackSetWithContext(ctx aws.Context, input *UpdateStackSetInput, opts ...request.Option) (*UpdateStackSetOutput, error) {
6394	req, out := c.UpdateStackSetRequest(input)
6395	req.SetContext(ctx)
6396	req.ApplyOptions(opts...)
6397	return out, req.Send()
6398}
6399
6400const opUpdateTerminationProtection = "UpdateTerminationProtection"
6401
6402// UpdateTerminationProtectionRequest generates a "aws/request.Request" representing the
6403// client's request for the UpdateTerminationProtection operation. The "output" return
6404// value will be populated with the request's response once the request completes
6405// successfully.
6406//
6407// Use "Send" method on the returned Request to send the API call to the service.
6408// the "output" return value is not valid until after Send returns without error.
6409//
6410// See UpdateTerminationProtection for more information on using the UpdateTerminationProtection
6411// API call, and error handling.
6412//
6413// This method is useful when you want to inject custom logic or configuration
6414// into the SDK's request lifecycle. Such as custom headers, or retry logic.
6415//
6416//
6417//    // Example sending a request using the UpdateTerminationProtectionRequest method.
6418//    req, resp := client.UpdateTerminationProtectionRequest(params)
6419//
6420//    err := req.Send()
6421//    if err == nil { // resp is now filled
6422//        fmt.Println(resp)
6423//    }
6424//
6425// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/UpdateTerminationProtection
6426func (c *CloudFormation) UpdateTerminationProtectionRequest(input *UpdateTerminationProtectionInput) (req *request.Request, output *UpdateTerminationProtectionOutput) {
6427	op := &request.Operation{
6428		Name:       opUpdateTerminationProtection,
6429		HTTPMethod: "POST",
6430		HTTPPath:   "/",
6431	}
6432
6433	if input == nil {
6434		input = &UpdateTerminationProtectionInput{}
6435	}
6436
6437	output = &UpdateTerminationProtectionOutput{}
6438	req = c.newRequest(op, input, output)
6439	return
6440}
6441
6442// UpdateTerminationProtection API operation for AWS CloudFormation.
6443//
6444// Updates termination protection for the specified stack. If a user attempts
6445// to delete a stack with termination protection enabled, the operation fails
6446// and the stack remains unchanged. For more information, see Protecting a Stack
6447// From Being Deleted (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-protect-stacks.html)
6448// in the CloudFormation User Guide.
6449//
6450// For nested stacks (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-nested-stacks.html),
6451// termination protection is set on the root stack and cannot be changed directly
6452// on the nested stack.
6453//
6454// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
6455// with awserr.Error's Code and Message methods to get detailed information about
6456// the error.
6457//
6458// See the AWS API reference guide for AWS CloudFormation's
6459// API operation UpdateTerminationProtection for usage and error information.
6460// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/UpdateTerminationProtection
6461func (c *CloudFormation) UpdateTerminationProtection(input *UpdateTerminationProtectionInput) (*UpdateTerminationProtectionOutput, error) {
6462	req, out := c.UpdateTerminationProtectionRequest(input)
6463	return out, req.Send()
6464}
6465
6466// UpdateTerminationProtectionWithContext is the same as UpdateTerminationProtection with the addition of
6467// the ability to pass a context and additional request options.
6468//
6469// See UpdateTerminationProtection for details on how to use this API operation.
6470//
6471// The context must be non-nil and will be used for request cancellation. If
6472// the context is nil a panic will occur. In the future the SDK may create
6473// sub-contexts for http.Requests. See https://golang.org/pkg/context/
6474// for more information on using Contexts.
6475func (c *CloudFormation) UpdateTerminationProtectionWithContext(ctx aws.Context, input *UpdateTerminationProtectionInput, opts ...request.Option) (*UpdateTerminationProtectionOutput, error) {
6476	req, out := c.UpdateTerminationProtectionRequest(input)
6477	req.SetContext(ctx)
6478	req.ApplyOptions(opts...)
6479	return out, req.Send()
6480}
6481
6482const opValidateTemplate = "ValidateTemplate"
6483
6484// ValidateTemplateRequest generates a "aws/request.Request" representing the
6485// client's request for the ValidateTemplate operation. The "output" return
6486// value will be populated with the request's response once the request completes
6487// successfully.
6488//
6489// Use "Send" method on the returned Request to send the API call to the service.
6490// the "output" return value is not valid until after Send returns without error.
6491//
6492// See ValidateTemplate for more information on using the ValidateTemplate
6493// API call, and error handling.
6494//
6495// This method is useful when you want to inject custom logic or configuration
6496// into the SDK's request lifecycle. Such as custom headers, or retry logic.
6497//
6498//
6499//    // Example sending a request using the ValidateTemplateRequest method.
6500//    req, resp := client.ValidateTemplateRequest(params)
6501//
6502//    err := req.Send()
6503//    if err == nil { // resp is now filled
6504//        fmt.Println(resp)
6505//    }
6506//
6507// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/ValidateTemplate
6508func (c *CloudFormation) ValidateTemplateRequest(input *ValidateTemplateInput) (req *request.Request, output *ValidateTemplateOutput) {
6509	op := &request.Operation{
6510		Name:       opValidateTemplate,
6511		HTTPMethod: "POST",
6512		HTTPPath:   "/",
6513	}
6514
6515	if input == nil {
6516		input = &ValidateTemplateInput{}
6517	}
6518
6519	output = &ValidateTemplateOutput{}
6520	req = c.newRequest(op, input, output)
6521	return
6522}
6523
6524// ValidateTemplate API operation for AWS CloudFormation.
6525//
6526// Validates a specified template. CloudFormation first checks if the template
6527// is valid JSON. If it isn't, CloudFormation checks if the template is valid
6528// YAML. If both these checks fail, CloudFormation returns a template validation
6529// error.
6530//
6531// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
6532// with awserr.Error's Code and Message methods to get detailed information about
6533// the error.
6534//
6535// See the AWS API reference guide for AWS CloudFormation's
6536// API operation ValidateTemplate for usage and error information.
6537// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/ValidateTemplate
6538func (c *CloudFormation) ValidateTemplate(input *ValidateTemplateInput) (*ValidateTemplateOutput, error) {
6539	req, out := c.ValidateTemplateRequest(input)
6540	return out, req.Send()
6541}
6542
6543// ValidateTemplateWithContext is the same as ValidateTemplate with the addition of
6544// the ability to pass a context and additional request options.
6545//
6546// See ValidateTemplate for details on how to use this API operation.
6547//
6548// The context must be non-nil and will be used for request cancellation. If
6549// the context is nil a panic will occur. In the future the SDK may create
6550// sub-contexts for http.Requests. See https://golang.org/pkg/context/
6551// for more information on using Contexts.
6552func (c *CloudFormation) ValidateTemplateWithContext(ctx aws.Context, input *ValidateTemplateInput, opts ...request.Option) (*ValidateTemplateOutput, error) {
6553	req, out := c.ValidateTemplateRequest(input)
6554	req.SetContext(ctx)
6555	req.ApplyOptions(opts...)
6556	return out, req.Send()
6557}
6558
6559// Structure that contains the results of the account gate function which CloudFormation
6560// invokes, if present, before proceeding with a stack set operation in an account
6561// and Region.
6562//
6563// For each account and Region, CloudFormation lets you specify a Lamdba function
6564// that encapsulates any requirements that must be met before CloudFormation
6565// can proceed with a stack set operation in that account and Region. CloudFormation
6566// invokes the function each time a stack set operation is requested for that
6567// account and Region; if the function returns FAILED, CloudFormation cancels
6568// the operation in that account and Region, and sets the stack set operation
6569// result status for that account and Region to FAILED.
6570//
6571// For more information, see Configuring a target account gate (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/stacksets-account-gating.html).
6572type AccountGateResult struct {
6573	_ struct{} `type:"structure"`
6574
6575	// The status of the account gate function.
6576	//
6577	//    * SUCCEEDED: The account gate function has determined that the account
6578	//    and Region passes any requirements for a stack set operation to occur.
6579	//    CloudFormation proceeds with the stack operation in that account and Region.
6580	//
6581	//    * FAILED: The account gate function has determined that the account and
6582	//    Region does not meet the requirements for a stack set operation to occur.
6583	//    AWS CloudFormation cancels the stack set operation in that account and
6584	//    Region, and sets the stack set operation result status for that account
6585	//    and Region to FAILED.
6586	//
6587	//    * SKIPPED: CloudFormation has skipped calling the account gate function
6588	//    for this account and Region, for one of the following reasons: An account
6589	//    gate function has not been specified for the account and Region. CloudFormation
6590	//    proceeds with the stack set operation in this account and Region. The
6591	//    AWSCloudFormationStackSetExecutionRole of the stack set adminstration
6592	//    account lacks permissions to invoke the function. CloudFormation proceeds
6593	//    with the stack set operation in this account and Region. Either no action
6594	//    is necessary, or no action is possible, on the stack. CloudFormation skips
6595	//    the stack set operation in this account and Region.
6596	Status *string `type:"string" enum:"AccountGateStatus"`
6597
6598	// The reason for the account gate status assigned to this account and Region
6599	// for the stack set operation.
6600	StatusReason *string `type:"string"`
6601}
6602
6603// String returns the string representation
6604func (s AccountGateResult) String() string {
6605	return awsutil.Prettify(s)
6606}
6607
6608// GoString returns the string representation
6609func (s AccountGateResult) GoString() string {
6610	return s.String()
6611}
6612
6613// SetStatus sets the Status field's value.
6614func (s *AccountGateResult) SetStatus(v string) *AccountGateResult {
6615	s.Status = &v
6616	return s
6617}
6618
6619// SetStatusReason sets the StatusReason field's value.
6620func (s *AccountGateResult) SetStatusReason(v string) *AccountGateResult {
6621	s.StatusReason = &v
6622	return s
6623}
6624
6625// The AccountLimit data type.
6626//
6627// CloudFormation has the following limits per account:
6628//
6629//    * Number of concurrent resources
6630//
6631//    * Number of stacks
6632//
6633//    * Number of stack outputs
6634//
6635// For more information about these account limits, and other CloudFormation
6636// limits, see CloudFormation Limits (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/cloudformation-limits.html)
6637// in the CloudFormation User Guide.
6638type AccountLimit struct {
6639	_ struct{} `type:"structure"`
6640
6641	// The name of the account limit.
6642	//
6643	// Values: ConcurrentResourcesLimit | StackLimit | StackOutputsLimit
6644	Name *string `type:"string"`
6645
6646	// The value that is associated with the account limit name.
6647	Value *int64 `type:"integer"`
6648}
6649
6650// String returns the string representation
6651func (s AccountLimit) String() string {
6652	return awsutil.Prettify(s)
6653}
6654
6655// GoString returns the string representation
6656func (s AccountLimit) GoString() string {
6657	return s.String()
6658}
6659
6660// SetName sets the Name field's value.
6661func (s *AccountLimit) SetName(v string) *AccountLimit {
6662	s.Name = &v
6663	return s
6664}
6665
6666// SetValue sets the Value field's value.
6667func (s *AccountLimit) SetValue(v int64) *AccountLimit {
6668	s.Value = &v
6669	return s
6670}
6671
6672type ActivateTypeInput struct {
6673	_ struct{} `type:"structure"`
6674
6675	// Whether to automatically update the extension in this account and region
6676	// when a new minor version is published by the extension publisher. Major versions
6677	// released by the publisher must be manually updated.
6678	//
6679	// The default is true.
6680	AutoUpdate *bool `type:"boolean"`
6681
6682	// The name of the IAM execution role to use to activate the extension.
6683	ExecutionRoleArn *string `min:"1" type:"string"`
6684
6685	// Contains logging configuration information for an extension.
6686	LoggingConfig *LoggingConfig `type:"structure"`
6687
6688	// The major version of this extension you want to activate, if multiple major
6689	// versions are available. The default is the latest major version. CloudFormation
6690	// uses the latest available minor version of the major version selected.
6691	//
6692	// You can specify MajorVersion or VersionBump, but not both.
6693	MajorVersion *int64 `min:"1" type:"long"`
6694
6695	// The Amazon Resource Number (ARN) of the public extension.
6696	//
6697	// Conditional: You must specify PublicTypeArn, or TypeName, Type, and PublisherId.
6698	PublicTypeArn *string `type:"string"`
6699
6700	// The ID of the extension publisher.
6701	//
6702	// Conditional: You must specify PublicTypeArn, or TypeName, Type, and PublisherId.
6703	PublisherId *string `min:"1" type:"string"`
6704
6705	// The extension type.
6706	//
6707	// Conditional: You must specify PublicTypeArn, or TypeName, Type, and PublisherId.
6708	Type *string `type:"string" enum:"ThirdPartyType"`
6709
6710	// The name of the extension.
6711	//
6712	// Conditional: You must specify PublicTypeArn, or TypeName, Type, and PublisherId.
6713	TypeName *string `min:"10" type:"string"`
6714
6715	// An alias to assign to the public extension, in this account and region. If
6716	// you specify an alias for the extension, CloudFormation treats the alias as
6717	// the extension type name within this account and region. You must use the
6718	// alias to refer to the extension in your templates, API calls, and CloudFormation
6719	// console.
6720	//
6721	// An extension alias must be unique within a given account and region. You
6722	// can activate the same public resource multiple times in the same account
6723	// and region, using different type name aliases.
6724	TypeNameAlias *string `min:"10" type:"string"`
6725
6726	// Manually updates a previously-activated type to a new major or minor version,
6727	// if available. You can also use this parameter to update the value of AutoUpdate.
6728	//
6729	//    * MAJOR: CloudFormation updates the extension to the newest major version,
6730	//    if one is available.
6731	//
6732	//    * MINOR: CloudFormation updates the extension to the newest minor version,
6733	//    if one is available.
6734	VersionBump *string `type:"string" enum:"VersionBump"`
6735}
6736
6737// String returns the string representation
6738func (s ActivateTypeInput) String() string {
6739	return awsutil.Prettify(s)
6740}
6741
6742// GoString returns the string representation
6743func (s ActivateTypeInput) GoString() string {
6744	return s.String()
6745}
6746
6747// Validate inspects the fields of the type to determine if they are valid.
6748func (s *ActivateTypeInput) Validate() error {
6749	invalidParams := request.ErrInvalidParams{Context: "ActivateTypeInput"}
6750	if s.ExecutionRoleArn != nil && len(*s.ExecutionRoleArn) < 1 {
6751		invalidParams.Add(request.NewErrParamMinLen("ExecutionRoleArn", 1))
6752	}
6753	if s.MajorVersion != nil && *s.MajorVersion < 1 {
6754		invalidParams.Add(request.NewErrParamMinValue("MajorVersion", 1))
6755	}
6756	if s.PublisherId != nil && len(*s.PublisherId) < 1 {
6757		invalidParams.Add(request.NewErrParamMinLen("PublisherId", 1))
6758	}
6759	if s.TypeName != nil && len(*s.TypeName) < 10 {
6760		invalidParams.Add(request.NewErrParamMinLen("TypeName", 10))
6761	}
6762	if s.TypeNameAlias != nil && len(*s.TypeNameAlias) < 10 {
6763		invalidParams.Add(request.NewErrParamMinLen("TypeNameAlias", 10))
6764	}
6765	if s.LoggingConfig != nil {
6766		if err := s.LoggingConfig.Validate(); err != nil {
6767			invalidParams.AddNested("LoggingConfig", err.(request.ErrInvalidParams))
6768		}
6769	}
6770
6771	if invalidParams.Len() > 0 {
6772		return invalidParams
6773	}
6774	return nil
6775}
6776
6777// SetAutoUpdate sets the AutoUpdate field's value.
6778func (s *ActivateTypeInput) SetAutoUpdate(v bool) *ActivateTypeInput {
6779	s.AutoUpdate = &v
6780	return s
6781}
6782
6783// SetExecutionRoleArn sets the ExecutionRoleArn field's value.
6784func (s *ActivateTypeInput) SetExecutionRoleArn(v string) *ActivateTypeInput {
6785	s.ExecutionRoleArn = &v
6786	return s
6787}
6788
6789// SetLoggingConfig sets the LoggingConfig field's value.
6790func (s *ActivateTypeInput) SetLoggingConfig(v *LoggingConfig) *ActivateTypeInput {
6791	s.LoggingConfig = v
6792	return s
6793}
6794
6795// SetMajorVersion sets the MajorVersion field's value.
6796func (s *ActivateTypeInput) SetMajorVersion(v int64) *ActivateTypeInput {
6797	s.MajorVersion = &v
6798	return s
6799}
6800
6801// SetPublicTypeArn sets the PublicTypeArn field's value.
6802func (s *ActivateTypeInput) SetPublicTypeArn(v string) *ActivateTypeInput {
6803	s.PublicTypeArn = &v
6804	return s
6805}
6806
6807// SetPublisherId sets the PublisherId field's value.
6808func (s *ActivateTypeInput) SetPublisherId(v string) *ActivateTypeInput {
6809	s.PublisherId = &v
6810	return s
6811}
6812
6813// SetType sets the Type field's value.
6814func (s *ActivateTypeInput) SetType(v string) *ActivateTypeInput {
6815	s.Type = &v
6816	return s
6817}
6818
6819// SetTypeName sets the TypeName field's value.
6820func (s *ActivateTypeInput) SetTypeName(v string) *ActivateTypeInput {
6821	s.TypeName = &v
6822	return s
6823}
6824
6825// SetTypeNameAlias sets the TypeNameAlias field's value.
6826func (s *ActivateTypeInput) SetTypeNameAlias(v string) *ActivateTypeInput {
6827	s.TypeNameAlias = &v
6828	return s
6829}
6830
6831// SetVersionBump sets the VersionBump field's value.
6832func (s *ActivateTypeInput) SetVersionBump(v string) *ActivateTypeInput {
6833	s.VersionBump = &v
6834	return s
6835}
6836
6837type ActivateTypeOutput struct {
6838	_ struct{} `type:"structure"`
6839
6840	// The Amazon Resource Number (ARN) of the activated extension, in this account
6841	// and region.
6842	Arn *string `type:"string"`
6843}
6844
6845// String returns the string representation
6846func (s ActivateTypeOutput) String() string {
6847	return awsutil.Prettify(s)
6848}
6849
6850// GoString returns the string representation
6851func (s ActivateTypeOutput) GoString() string {
6852	return s.String()
6853}
6854
6855// SetArn sets the Arn field's value.
6856func (s *ActivateTypeOutput) SetArn(v string) *ActivateTypeOutput {
6857	s.Arn = &v
6858	return s
6859}
6860
6861// [Service-managed permissions] Describes whether StackSets automatically deploys
6862// to Organizations accounts that are added to a target organization or organizational
6863// unit (OU).
6864type AutoDeployment struct {
6865	_ struct{} `type:"structure"`
6866
6867	// If set to true, StackSets automatically deploys additional stack instances
6868	// to Organizations accounts that are added to a target organization or organizational
6869	// unit (OU) in the specified Regions. If an account is removed from a target
6870	// organization or OU, StackSets deletes stack instances from the account in
6871	// the specified Regions.
6872	Enabled *bool `type:"boolean"`
6873
6874	// If set to true, stack resources are retained when an account is removed from
6875	// a target organization or OU. If set to false, stack resources are deleted.
6876	// Specify only if Enabled is set to True.
6877	RetainStacksOnAccountRemoval *bool `type:"boolean"`
6878}
6879
6880// String returns the string representation
6881func (s AutoDeployment) String() string {
6882	return awsutil.Prettify(s)
6883}
6884
6885// GoString returns the string representation
6886func (s AutoDeployment) GoString() string {
6887	return s.String()
6888}
6889
6890// SetEnabled sets the Enabled field's value.
6891func (s *AutoDeployment) SetEnabled(v bool) *AutoDeployment {
6892	s.Enabled = &v
6893	return s
6894}
6895
6896// SetRetainStacksOnAccountRemoval sets the RetainStacksOnAccountRemoval field's value.
6897func (s *AutoDeployment) SetRetainStacksOnAccountRemoval(v bool) *AutoDeployment {
6898	s.RetainStacksOnAccountRemoval = &v
6899	return s
6900}
6901
6902// Detailed information concerning an error generated during the setting of
6903// configuration data for a CloudFormation extension.
6904type BatchDescribeTypeConfigurationsError struct {
6905	_ struct{} `type:"structure"`
6906
6907	// The error code.
6908	ErrorCode *string `min:"3" type:"string"`
6909
6910	// The error message.
6911	ErrorMessage *string `min:"1" type:"string"`
6912
6913	// Identifying information for the configuration of a CloudFormation extension.
6914	TypeConfigurationIdentifier *TypeConfigurationIdentifier `type:"structure"`
6915}
6916
6917// String returns the string representation
6918func (s BatchDescribeTypeConfigurationsError) String() string {
6919	return awsutil.Prettify(s)
6920}
6921
6922// GoString returns the string representation
6923func (s BatchDescribeTypeConfigurationsError) GoString() string {
6924	return s.String()
6925}
6926
6927// SetErrorCode sets the ErrorCode field's value.
6928func (s *BatchDescribeTypeConfigurationsError) SetErrorCode(v string) *BatchDescribeTypeConfigurationsError {
6929	s.ErrorCode = &v
6930	return s
6931}
6932
6933// SetErrorMessage sets the ErrorMessage field's value.
6934func (s *BatchDescribeTypeConfigurationsError) SetErrorMessage(v string) *BatchDescribeTypeConfigurationsError {
6935	s.ErrorMessage = &v
6936	return s
6937}
6938
6939// SetTypeConfigurationIdentifier sets the TypeConfigurationIdentifier field's value.
6940func (s *BatchDescribeTypeConfigurationsError) SetTypeConfigurationIdentifier(v *TypeConfigurationIdentifier) *BatchDescribeTypeConfigurationsError {
6941	s.TypeConfigurationIdentifier = v
6942	return s
6943}
6944
6945type BatchDescribeTypeConfigurationsInput struct {
6946	_ struct{} `type:"structure"`
6947
6948	// The list of identifiers for the desired extension configurations.
6949	//
6950	// TypeConfigurationIdentifiers is a required field
6951	TypeConfigurationIdentifiers []*TypeConfigurationIdentifier `min:"1" type:"list" required:"true"`
6952}
6953
6954// String returns the string representation
6955func (s BatchDescribeTypeConfigurationsInput) String() string {
6956	return awsutil.Prettify(s)
6957}
6958
6959// GoString returns the string representation
6960func (s BatchDescribeTypeConfigurationsInput) GoString() string {
6961	return s.String()
6962}
6963
6964// Validate inspects the fields of the type to determine if they are valid.
6965func (s *BatchDescribeTypeConfigurationsInput) Validate() error {
6966	invalidParams := request.ErrInvalidParams{Context: "BatchDescribeTypeConfigurationsInput"}
6967	if s.TypeConfigurationIdentifiers == nil {
6968		invalidParams.Add(request.NewErrParamRequired("TypeConfigurationIdentifiers"))
6969	}
6970	if s.TypeConfigurationIdentifiers != nil && len(s.TypeConfigurationIdentifiers) < 1 {
6971		invalidParams.Add(request.NewErrParamMinLen("TypeConfigurationIdentifiers", 1))
6972	}
6973	if s.TypeConfigurationIdentifiers != nil {
6974		for i, v := range s.TypeConfigurationIdentifiers {
6975			if v == nil {
6976				continue
6977			}
6978			if err := v.Validate(); err != nil {
6979				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "TypeConfigurationIdentifiers", i), err.(request.ErrInvalidParams))
6980			}
6981		}
6982	}
6983
6984	if invalidParams.Len() > 0 {
6985		return invalidParams
6986	}
6987	return nil
6988}
6989
6990// SetTypeConfigurationIdentifiers sets the TypeConfigurationIdentifiers field's value.
6991func (s *BatchDescribeTypeConfigurationsInput) SetTypeConfigurationIdentifiers(v []*TypeConfigurationIdentifier) *BatchDescribeTypeConfigurationsInput {
6992	s.TypeConfigurationIdentifiers = v
6993	return s
6994}
6995
6996type BatchDescribeTypeConfigurationsOutput struct {
6997	_ struct{} `type:"structure"`
6998
6999	// A list of information concerning any errors generated during the setting
7000	// of the specified configurations.
7001	Errors []*BatchDescribeTypeConfigurationsError `type:"list"`
7002
7003	// A list of any of the specified extension configurations from the CloudFormation
7004	// registry.
7005	TypeConfigurations []*TypeConfigurationDetails `type:"list"`
7006
7007	// A list of any of the specified extension configurations that CloudFormation
7008	// could not process for any reason.
7009	UnprocessedTypeConfigurations []*TypeConfigurationIdentifier `type:"list"`
7010}
7011
7012// String returns the string representation
7013func (s BatchDescribeTypeConfigurationsOutput) String() string {
7014	return awsutil.Prettify(s)
7015}
7016
7017// GoString returns the string representation
7018func (s BatchDescribeTypeConfigurationsOutput) GoString() string {
7019	return s.String()
7020}
7021
7022// SetErrors sets the Errors field's value.
7023func (s *BatchDescribeTypeConfigurationsOutput) SetErrors(v []*BatchDescribeTypeConfigurationsError) *BatchDescribeTypeConfigurationsOutput {
7024	s.Errors = v
7025	return s
7026}
7027
7028// SetTypeConfigurations sets the TypeConfigurations field's value.
7029func (s *BatchDescribeTypeConfigurationsOutput) SetTypeConfigurations(v []*TypeConfigurationDetails) *BatchDescribeTypeConfigurationsOutput {
7030	s.TypeConfigurations = v
7031	return s
7032}
7033
7034// SetUnprocessedTypeConfigurations sets the UnprocessedTypeConfigurations field's value.
7035func (s *BatchDescribeTypeConfigurationsOutput) SetUnprocessedTypeConfigurations(v []*TypeConfigurationIdentifier) *BatchDescribeTypeConfigurationsOutput {
7036	s.UnprocessedTypeConfigurations = v
7037	return s
7038}
7039
7040// The input for the CancelUpdateStack action.
7041type CancelUpdateStackInput struct {
7042	_ struct{} `type:"structure"`
7043
7044	// A unique identifier for this CancelUpdateStack request. Specify this token
7045	// if you plan to retry requests so that CloudFormation knows that you're not
7046	// attempting to cancel an update on a stack with the same name. You might retry
7047	// CancelUpdateStack requests to ensure that CloudFormation successfully received
7048	// them.
7049	ClientRequestToken *string `min:"1" type:"string"`
7050
7051	// The name or the unique stack ID that is associated with the stack.
7052	//
7053	// StackName is a required field
7054	StackName *string `type:"string" required:"true"`
7055}
7056
7057// String returns the string representation
7058func (s CancelUpdateStackInput) String() string {
7059	return awsutil.Prettify(s)
7060}
7061
7062// GoString returns the string representation
7063func (s CancelUpdateStackInput) GoString() string {
7064	return s.String()
7065}
7066
7067// Validate inspects the fields of the type to determine if they are valid.
7068func (s *CancelUpdateStackInput) Validate() error {
7069	invalidParams := request.ErrInvalidParams{Context: "CancelUpdateStackInput"}
7070	if s.ClientRequestToken != nil && len(*s.ClientRequestToken) < 1 {
7071		invalidParams.Add(request.NewErrParamMinLen("ClientRequestToken", 1))
7072	}
7073	if s.StackName == nil {
7074		invalidParams.Add(request.NewErrParamRequired("StackName"))
7075	}
7076
7077	if invalidParams.Len() > 0 {
7078		return invalidParams
7079	}
7080	return nil
7081}
7082
7083// SetClientRequestToken sets the ClientRequestToken field's value.
7084func (s *CancelUpdateStackInput) SetClientRequestToken(v string) *CancelUpdateStackInput {
7085	s.ClientRequestToken = &v
7086	return s
7087}
7088
7089// SetStackName sets the StackName field's value.
7090func (s *CancelUpdateStackInput) SetStackName(v string) *CancelUpdateStackInput {
7091	s.StackName = &v
7092	return s
7093}
7094
7095type CancelUpdateStackOutput struct {
7096	_ struct{} `type:"structure"`
7097}
7098
7099// String returns the string representation
7100func (s CancelUpdateStackOutput) String() string {
7101	return awsutil.Prettify(s)
7102}
7103
7104// GoString returns the string representation
7105func (s CancelUpdateStackOutput) GoString() string {
7106	return s.String()
7107}
7108
7109// The Change structure describes the changes CloudFormation will perform if
7110// you execute the change set.
7111type Change struct {
7112	_ struct{} `type:"structure"`
7113
7114	// A ResourceChange structure that describes the resource and action that CloudFormation
7115	// will perform.
7116	ResourceChange *ResourceChange `type:"structure"`
7117
7118	// The type of entity that CloudFormation changes. Currently, the only entity
7119	// type is Resource.
7120	Type *string `type:"string" enum:"ChangeType"`
7121}
7122
7123// String returns the string representation
7124func (s Change) String() string {
7125	return awsutil.Prettify(s)
7126}
7127
7128// GoString returns the string representation
7129func (s Change) GoString() string {
7130	return s.String()
7131}
7132
7133// SetResourceChange sets the ResourceChange field's value.
7134func (s *Change) SetResourceChange(v *ResourceChange) *Change {
7135	s.ResourceChange = v
7136	return s
7137}
7138
7139// SetType sets the Type field's value.
7140func (s *Change) SetType(v string) *Change {
7141	s.Type = &v
7142	return s
7143}
7144
7145// The ChangeSetSummary structure describes a change set, its status, and the
7146// stack with which it's associated.
7147type ChangeSetSummary struct {
7148	_ struct{} `type:"structure"`
7149
7150	// The ID of the change set.
7151	ChangeSetId *string `min:"1" type:"string"`
7152
7153	// The name of the change set.
7154	ChangeSetName *string `min:"1" type:"string"`
7155
7156	// The start time when the change set was created, in UTC.
7157	CreationTime *time.Time `type:"timestamp"`
7158
7159	// Descriptive information about the change set.
7160	Description *string `min:"1" type:"string"`
7161
7162	// If the change set execution status is AVAILABLE, you can execute the change
7163	// set. If you can’t execute the change set, the status indicates why. For
7164	// example, a change set might be in an UNAVAILABLE state because CloudFormation
7165	// is still creating it or in an OBSOLETE state because the stack was already
7166	// updated.
7167	ExecutionStatus *string `type:"string" enum:"ExecutionStatus"`
7168
7169	// Specifies the current setting of IncludeNestedStacks for the change set.
7170	IncludeNestedStacks *bool `type:"boolean"`
7171
7172	// The parent change set ID.
7173	ParentChangeSetId *string `min:"1" type:"string"`
7174
7175	// The root change set ID.
7176	RootChangeSetId *string `min:"1" type:"string"`
7177
7178	// The ID of the stack with which the change set is associated.
7179	StackId *string `type:"string"`
7180
7181	// The name of the stack with which the change set is associated.
7182	StackName *string `type:"string"`
7183
7184	// The state of the change set, such as CREATE_IN_PROGRESS, CREATE_COMPLETE,
7185	// or FAILED.
7186	Status *string `type:"string" enum:"ChangeSetStatus"`
7187
7188	// A description of the change set's status. For example, if your change set
7189	// is in the FAILED state, CloudFormation shows the error message.
7190	StatusReason *string `type:"string"`
7191}
7192
7193// String returns the string representation
7194func (s ChangeSetSummary) String() string {
7195	return awsutil.Prettify(s)
7196}
7197
7198// GoString returns the string representation
7199func (s ChangeSetSummary) GoString() string {
7200	return s.String()
7201}
7202
7203// SetChangeSetId sets the ChangeSetId field's value.
7204func (s *ChangeSetSummary) SetChangeSetId(v string) *ChangeSetSummary {
7205	s.ChangeSetId = &v
7206	return s
7207}
7208
7209// SetChangeSetName sets the ChangeSetName field's value.
7210func (s *ChangeSetSummary) SetChangeSetName(v string) *ChangeSetSummary {
7211	s.ChangeSetName = &v
7212	return s
7213}
7214
7215// SetCreationTime sets the CreationTime field's value.
7216func (s *ChangeSetSummary) SetCreationTime(v time.Time) *ChangeSetSummary {
7217	s.CreationTime = &v
7218	return s
7219}
7220
7221// SetDescription sets the Description field's value.
7222func (s *ChangeSetSummary) SetDescription(v string) *ChangeSetSummary {
7223	s.Description = &v
7224	return s
7225}
7226
7227// SetExecutionStatus sets the ExecutionStatus field's value.
7228func (s *ChangeSetSummary) SetExecutionStatus(v string) *ChangeSetSummary {
7229	s.ExecutionStatus = &v
7230	return s
7231}
7232
7233// SetIncludeNestedStacks sets the IncludeNestedStacks field's value.
7234func (s *ChangeSetSummary) SetIncludeNestedStacks(v bool) *ChangeSetSummary {
7235	s.IncludeNestedStacks = &v
7236	return s
7237}
7238
7239// SetParentChangeSetId sets the ParentChangeSetId field's value.
7240func (s *ChangeSetSummary) SetParentChangeSetId(v string) *ChangeSetSummary {
7241	s.ParentChangeSetId = &v
7242	return s
7243}
7244
7245// SetRootChangeSetId sets the RootChangeSetId field's value.
7246func (s *ChangeSetSummary) SetRootChangeSetId(v string) *ChangeSetSummary {
7247	s.RootChangeSetId = &v
7248	return s
7249}
7250
7251// SetStackId sets the StackId field's value.
7252func (s *ChangeSetSummary) SetStackId(v string) *ChangeSetSummary {
7253	s.StackId = &v
7254	return s
7255}
7256
7257// SetStackName sets the StackName field's value.
7258func (s *ChangeSetSummary) SetStackName(v string) *ChangeSetSummary {
7259	s.StackName = &v
7260	return s
7261}
7262
7263// SetStatus sets the Status field's value.
7264func (s *ChangeSetSummary) SetStatus(v string) *ChangeSetSummary {
7265	s.Status = &v
7266	return s
7267}
7268
7269// SetStatusReason sets the StatusReason field's value.
7270func (s *ChangeSetSummary) SetStatusReason(v string) *ChangeSetSummary {
7271	s.StatusReason = &v
7272	return s
7273}
7274
7275// The input for the ContinueUpdateRollback action.
7276type ContinueUpdateRollbackInput struct {
7277	_ struct{} `type:"structure"`
7278
7279	// A unique identifier for this ContinueUpdateRollback request. Specify this
7280	// token if you plan to retry requests so that CloudFormationknows that you're
7281	// not attempting to continue the rollback to a stack with the same name. You
7282	// might retry ContinueUpdateRollback requests to ensure that CloudFormation
7283	// successfully received them.
7284	ClientRequestToken *string `min:"1" type:"string"`
7285
7286	// A list of the logical IDs of the resources that CloudFormation skips during
7287	// the continue update rollback operation. You can specify only resources that
7288	// are in the UPDATE_FAILED state because a rollback failed. You can't specify
7289	// resources that are in the UPDATE_FAILED state for other reasons, for example,
7290	// because an update was cancelled. To check why a resource update failed, use
7291	// the DescribeStackResources action, and view the resource status reason.
7292	//
7293	// Specify this property to skip rolling back resources that CloudFormation
7294	// 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)
7295	// resources before skipping them. CloudFormation sets the status of the specified
7296	// resources to UPDATE_COMPLETE and continues to roll back the stack. After
7297	// the rollback is complete, the state of the skipped resources will be inconsistent
7298	// with the state of the resources in the stack template. Before performing
7299	// another stack update, you must update the stack or resources to be consistent
7300	// with each other. If you don't, subsequent stack updates might fail, and the
7301	// stack will become unrecoverable.
7302	//
7303	// Specify the minimum number of resources required to successfully roll back
7304	// your stack. For example, a failed resource update might cause dependent resources
7305	// to fail. In this case, it might not be necessary to skip the dependent resources.
7306	//
7307	// To skip resources that are part of nested stacks, use the following format:
7308	// NestedStackName.ResourceLogicalID. If you want to specify the logical ID
7309	// of a stack resource (Type: AWS::CloudFormation::Stack) in the ResourcesToSkip
7310	// list, then its corresponding embedded stack must be in one of the following
7311	// states: DELETE_IN_PROGRESS, DELETE_COMPLETE, or DELETE_FAILED.
7312	//
7313	// Don't confuse a child stack's name with its corresponding logical ID defined
7314	// in the parent stack. For an example of a continue update rollback operation
7315	// with nested stacks, see Using ResourcesToSkip to recover a nested stacks
7316	// hierarchy (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-continueupdaterollback.html#nested-stacks).
7317	ResourcesToSkip []*string `type:"list"`
7318
7319	// The Amazon Resource Name (ARN) of an Identity and Access Management (IAM)
7320	// role that CloudFormation assumes to roll back the stack. CloudFormation uses
7321	// the role's credentials to make calls on your behalf. CloudFormation always
7322	// uses this role for all future operations on the stack. As long as users have
7323	// permission to operate on the stack, CloudFormation uses this role even if
7324	// the users don't have permission to pass it. Ensure that the role grants least
7325	// privilege.
7326	//
7327	// If you don't specify a value, CloudFormation uses the role that was previously
7328	// associated with the stack. If no role is available, CloudFormation uses a
7329	// temporary session that is generated from your user credentials.
7330	RoleARN *string `min:"20" type:"string"`
7331
7332	// The name or the unique ID of the stack that you want to continue rolling
7333	// back.
7334	//
7335	// Don't specify the name of a nested stack (a stack that was created by using
7336	// the AWS::CloudFormation::Stack resource). Instead, use this operation on
7337	// the parent stack (the stack that contains the AWS::CloudFormation::Stack
7338	// resource).
7339	//
7340	// StackName is a required field
7341	StackName *string `min:"1" type:"string" required:"true"`
7342}
7343
7344// String returns the string representation
7345func (s ContinueUpdateRollbackInput) String() string {
7346	return awsutil.Prettify(s)
7347}
7348
7349// GoString returns the string representation
7350func (s ContinueUpdateRollbackInput) GoString() string {
7351	return s.String()
7352}
7353
7354// Validate inspects the fields of the type to determine if they are valid.
7355func (s *ContinueUpdateRollbackInput) Validate() error {
7356	invalidParams := request.ErrInvalidParams{Context: "ContinueUpdateRollbackInput"}
7357	if s.ClientRequestToken != nil && len(*s.ClientRequestToken) < 1 {
7358		invalidParams.Add(request.NewErrParamMinLen("ClientRequestToken", 1))
7359	}
7360	if s.RoleARN != nil && len(*s.RoleARN) < 20 {
7361		invalidParams.Add(request.NewErrParamMinLen("RoleARN", 20))
7362	}
7363	if s.StackName == nil {
7364		invalidParams.Add(request.NewErrParamRequired("StackName"))
7365	}
7366	if s.StackName != nil && len(*s.StackName) < 1 {
7367		invalidParams.Add(request.NewErrParamMinLen("StackName", 1))
7368	}
7369
7370	if invalidParams.Len() > 0 {
7371		return invalidParams
7372	}
7373	return nil
7374}
7375
7376// SetClientRequestToken sets the ClientRequestToken field's value.
7377func (s *ContinueUpdateRollbackInput) SetClientRequestToken(v string) *ContinueUpdateRollbackInput {
7378	s.ClientRequestToken = &v
7379	return s
7380}
7381
7382// SetResourcesToSkip sets the ResourcesToSkip field's value.
7383func (s *ContinueUpdateRollbackInput) SetResourcesToSkip(v []*string) *ContinueUpdateRollbackInput {
7384	s.ResourcesToSkip = v
7385	return s
7386}
7387
7388// SetRoleARN sets the RoleARN field's value.
7389func (s *ContinueUpdateRollbackInput) SetRoleARN(v string) *ContinueUpdateRollbackInput {
7390	s.RoleARN = &v
7391	return s
7392}
7393
7394// SetStackName sets the StackName field's value.
7395func (s *ContinueUpdateRollbackInput) SetStackName(v string) *ContinueUpdateRollbackInput {
7396	s.StackName = &v
7397	return s
7398}
7399
7400// The output for a ContinueUpdateRollback action.
7401type ContinueUpdateRollbackOutput struct {
7402	_ struct{} `type:"structure"`
7403}
7404
7405// String returns the string representation
7406func (s ContinueUpdateRollbackOutput) String() string {
7407	return awsutil.Prettify(s)
7408}
7409
7410// GoString returns the string representation
7411func (s ContinueUpdateRollbackOutput) GoString() string {
7412	return s.String()
7413}
7414
7415// The input for the CreateChangeSet action.
7416type CreateChangeSetInput struct {
7417	_ struct{} `type:"structure"`
7418
7419	// In some cases, you must explicitly acknowledge that your stack template contains
7420	// certain capabilities in order for CloudFormation to create the stack.
7421	//
7422	//    * CAPABILITY_IAM and CAPABILITY_NAMED_IAM Some stack templates might include
7423	//    resources that can affect permissions in your account; for example, by
7424	//    creating new Identity and Access Management (IAM) users. For those stacks,
7425	//    you must explicitly acknowledge this by specifying one of these capabilities.
7426	//    The following IAM resources require you to specify either the CAPABILITY_IAM
7427	//    or CAPABILITY_NAMED_IAM capability. If you have IAM resources, you can
7428	//    specify either capability. If you have IAM resources with custom names,
7429	//    you must specify CAPABILITY_NAMED_IAM. If you don't specify either of
7430	//    these capabilities, CloudFormation returns an InsufficientCapabilities
7431	//    error. If your stack template contains these resources, we recommend that
7432	//    you review all permissions associated with them and edit their permissions
7433	//    if necessary. AWS::IAM::AccessKey (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iam-accesskey.html)
7434	//    AWS::IAM::Group (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iam-group.html)
7435	//    AWS::IAM::InstanceProfile (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iam-instanceprofile.html)
7436	//    AWS::IAM::Policy (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iam-policy.html)
7437	//    AWS::IAM::Role (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iam-role.html)
7438	//    AWS::IAM::User (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iam-user.html)
7439	//    AWS::IAM::UserToGroupAddition (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iam-addusertogroup.html)
7440	//    For more information, see Acknowledging IAM Resources in CloudFormation
7441	//    Templates (http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-iam-template.html#capabilities).
7442	//
7443	//    * CAPABILITY_AUTO_EXPAND Some template contain macros. Macros perform
7444	//    custom processing on templates; this can include simple actions like find-and-replace
7445	//    operations, all the way to extensive transformations of entire templates.
7446	//    Because of this, users typically create a change set from the processed
7447	//    template, so that they can review the changes resulting from the macros
7448	//    before actually creating the stack. If your stack template contains one
7449	//    or more macros, and you choose to create a stack directly from the processed
7450	//    template, without first reviewing the resulting changes in a change set,
7451	//    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)
7452	//    and AWS::Serverless (http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/transform-aws-serverless.html)
7453	//    transforms, which are macros hosted by CloudFormation. This capacity does
7454	//    not apply to creating change sets, and specifying it when creating change
7455	//    sets has no effect. If you want to create a stack from a stack template
7456	//    that contains macros and nested stacks, you must create or update the
7457	//    stack directly from the template using the CreateStack or UpdateStack
7458	//    action, and specifying this capability. For more information on macros,
7459	//    see Using CloudFormation Macros to Perform Custom Processing on Templates
7460	//    (http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/template-macros.html).
7461	Capabilities []*string `type:"list"`
7462
7463	// The name of the change set. The name must be unique among all change sets
7464	// that are associated with the specified stack.
7465	//
7466	// A change set name can contain only alphanumeric, case sensitive characters
7467	// and hyphens. It must start with an alphabetic character and cannot exceed
7468	// 128 characters.
7469	//
7470	// ChangeSetName is a required field
7471	ChangeSetName *string `min:"1" type:"string" required:"true"`
7472
7473	// The type of change set operation. To create a change set for a new stack,
7474	// specify CREATE. To create a change set for an existing stack, specify UPDATE.
7475	// To create a change set for an import operation, specify IMPORT.
7476	//
7477	// If you create a change set for a new stack, CloudFormation creates a stack
7478	// with a unique stack ID, but no template or resources. The stack will be in
7479	// the REVIEW_IN_PROGRESS (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-describing-stacks.html#d0e11995)
7480	// state until you execute the change set.
7481	//
7482	// By default, CloudFormation specifies UPDATE. You can't use the UPDATE type
7483	// to create a change set for a new stack or the CREATE type to create a change
7484	// set for an existing stack.
7485	ChangeSetType *string `type:"string" enum:"ChangeSetType"`
7486
7487	// A unique identifier for this CreateChangeSet request. Specify this token
7488	// if you plan to retry requests so that CloudFormation knows that you're not
7489	// attempting to create another change set with the same name. You might retry
7490	// CreateChangeSet requests to ensure that CloudFormation successfully received
7491	// them.
7492	ClientToken *string `min:"1" type:"string"`
7493
7494	// A description to help you identify this change set.
7495	Description *string `min:"1" type:"string"`
7496
7497	// Creates a change set for the all nested stacks specified in the template.
7498	// The default behavior of this action is set to False. To include nested sets
7499	// in a change set, specify True.
7500	IncludeNestedStacks *bool `type:"boolean"`
7501
7502	// The Amazon Resource Names (ARNs) of Amazon Simple Notification Service (Amazon
7503	// SNS) topics that CloudFormation associates with the stack. To remove all
7504	// associated notification topics, specify an empty list.
7505	NotificationARNs []*string `type:"list"`
7506
7507	// A list of Parameter structures that specify input parameters for the change
7508	// set. For more information, see the Parameter data type.
7509	Parameters []*Parameter `type:"list"`
7510
7511	// The template resource types that you have permissions to work with if you
7512	// execute this change set, such as AWS::EC2::Instance, AWS::EC2::*, or Custom::MyCustomInstance.
7513	//
7514	// If the list of resource types doesn't include a resource type that you're
7515	// updating, the stack update fails. By default, CloudFormation grants permissions
7516	// to all resource types. Identity and Access Management (IAM) uses this parameter
7517	// for condition keys in IAM policies for CloudFormation. For more information,
7518	// see Controlling Access with Identity and Access Management (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-iam-template.html)
7519	// in the CloudFormation User Guide.
7520	ResourceTypes []*string `type:"list"`
7521
7522	// The resources to import into your stack.
7523	ResourcesToImport []*ResourceToImport `type:"list"`
7524
7525	// The Amazon Resource Name (ARN) of an Identity and Access Management (IAM)
7526	// role that CloudFormation assumes when executing the change set. CloudFormation
7527	// uses the role's credentials to make calls on your behalf. CloudFormation
7528	// uses this role for all future operations on the stack. As long as users have
7529	// permission to operate on the stack, CloudFormation uses this role even if
7530	// the users don't have permission to pass it. Ensure that the role grants least
7531	// privilege.
7532	//
7533	// If you don't specify a value, CloudFormation uses the role that was previously
7534	// associated with the stack. If no role is available, CloudFormation uses a
7535	// temporary session that is generated from your user credentials.
7536	RoleARN *string `min:"20" type:"string"`
7537
7538	// The rollback triggers for CloudFormation to monitor during stack creation
7539	// and updating operations, and for the specified monitoring period afterwards.
7540	RollbackConfiguration *RollbackConfiguration `type:"structure"`
7541
7542	// The name or the unique ID of the stack for which you are creating a change
7543	// set. CloudFormation generates the change set by comparing this stack's information
7544	// with the information that you submit, such as a modified template or different
7545	// parameter input values.
7546	//
7547	// StackName is a required field
7548	StackName *string `min:"1" type:"string" required:"true"`
7549
7550	// Key-value pairs to associate with this stack. CloudFormation also propagates
7551	// these tags to resources in the stack. You can specify a maximum of 50 tags.
7552	Tags []*Tag `type:"list"`
7553
7554	// A structure that contains the body of the revised template, with a minimum
7555	// length of 1 byte and a maximum length of 51,200 bytes. CloudFormation generates
7556	// the change set by comparing this template with the template of the stack
7557	// that you specified.
7558	//
7559	// Conditional: You must specify only TemplateBody or TemplateURL.
7560	TemplateBody *string `min:"1" type:"string"`
7561
7562	// The location of the file that contains the revised template. The URL must
7563	// point to a template (max size: 460,800 bytes) that is located in an S3 bucket
7564	// or a Systems Manager document. CloudFormation generates the change set by
7565	// comparing this template with the stack that you specified.
7566	//
7567	// Conditional: You must specify only TemplateBody or TemplateURL.
7568	TemplateURL *string `min:"1" type:"string"`
7569
7570	// Whether to reuse the template that is associated with the stack to create
7571	// the change set.
7572	UsePreviousTemplate *bool `type:"boolean"`
7573}
7574
7575// String returns the string representation
7576func (s CreateChangeSetInput) String() string {
7577	return awsutil.Prettify(s)
7578}
7579
7580// GoString returns the string representation
7581func (s CreateChangeSetInput) GoString() string {
7582	return s.String()
7583}
7584
7585// Validate inspects the fields of the type to determine if they are valid.
7586func (s *CreateChangeSetInput) Validate() error {
7587	invalidParams := request.ErrInvalidParams{Context: "CreateChangeSetInput"}
7588	if s.ChangeSetName == nil {
7589		invalidParams.Add(request.NewErrParamRequired("ChangeSetName"))
7590	}
7591	if s.ChangeSetName != nil && len(*s.ChangeSetName) < 1 {
7592		invalidParams.Add(request.NewErrParamMinLen("ChangeSetName", 1))
7593	}
7594	if s.ClientToken != nil && len(*s.ClientToken) < 1 {
7595		invalidParams.Add(request.NewErrParamMinLen("ClientToken", 1))
7596	}
7597	if s.Description != nil && len(*s.Description) < 1 {
7598		invalidParams.Add(request.NewErrParamMinLen("Description", 1))
7599	}
7600	if s.RoleARN != nil && len(*s.RoleARN) < 20 {
7601		invalidParams.Add(request.NewErrParamMinLen("RoleARN", 20))
7602	}
7603	if s.StackName == nil {
7604		invalidParams.Add(request.NewErrParamRequired("StackName"))
7605	}
7606	if s.StackName != nil && len(*s.StackName) < 1 {
7607		invalidParams.Add(request.NewErrParamMinLen("StackName", 1))
7608	}
7609	if s.TemplateBody != nil && len(*s.TemplateBody) < 1 {
7610		invalidParams.Add(request.NewErrParamMinLen("TemplateBody", 1))
7611	}
7612	if s.TemplateURL != nil && len(*s.TemplateURL) < 1 {
7613		invalidParams.Add(request.NewErrParamMinLen("TemplateURL", 1))
7614	}
7615	if s.ResourcesToImport != nil {
7616		for i, v := range s.ResourcesToImport {
7617			if v == nil {
7618				continue
7619			}
7620			if err := v.Validate(); err != nil {
7621				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "ResourcesToImport", i), err.(request.ErrInvalidParams))
7622			}
7623		}
7624	}
7625	if s.RollbackConfiguration != nil {
7626		if err := s.RollbackConfiguration.Validate(); err != nil {
7627			invalidParams.AddNested("RollbackConfiguration", err.(request.ErrInvalidParams))
7628		}
7629	}
7630	if s.Tags != nil {
7631		for i, v := range s.Tags {
7632			if v == nil {
7633				continue
7634			}
7635			if err := v.Validate(); err != nil {
7636				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Tags", i), err.(request.ErrInvalidParams))
7637			}
7638		}
7639	}
7640
7641	if invalidParams.Len() > 0 {
7642		return invalidParams
7643	}
7644	return nil
7645}
7646
7647// SetCapabilities sets the Capabilities field's value.
7648func (s *CreateChangeSetInput) SetCapabilities(v []*string) *CreateChangeSetInput {
7649	s.Capabilities = v
7650	return s
7651}
7652
7653// SetChangeSetName sets the ChangeSetName field's value.
7654func (s *CreateChangeSetInput) SetChangeSetName(v string) *CreateChangeSetInput {
7655	s.ChangeSetName = &v
7656	return s
7657}
7658
7659// SetChangeSetType sets the ChangeSetType field's value.
7660func (s *CreateChangeSetInput) SetChangeSetType(v string) *CreateChangeSetInput {
7661	s.ChangeSetType = &v
7662	return s
7663}
7664
7665// SetClientToken sets the ClientToken field's value.
7666func (s *CreateChangeSetInput) SetClientToken(v string) *CreateChangeSetInput {
7667	s.ClientToken = &v
7668	return s
7669}
7670
7671// SetDescription sets the Description field's value.
7672func (s *CreateChangeSetInput) SetDescription(v string) *CreateChangeSetInput {
7673	s.Description = &v
7674	return s
7675}
7676
7677// SetIncludeNestedStacks sets the IncludeNestedStacks field's value.
7678func (s *CreateChangeSetInput) SetIncludeNestedStacks(v bool) *CreateChangeSetInput {
7679	s.IncludeNestedStacks = &v
7680	return s
7681}
7682
7683// SetNotificationARNs sets the NotificationARNs field's value.
7684func (s *CreateChangeSetInput) SetNotificationARNs(v []*string) *CreateChangeSetInput {
7685	s.NotificationARNs = v
7686	return s
7687}
7688
7689// SetParameters sets the Parameters field's value.
7690func (s *CreateChangeSetInput) SetParameters(v []*Parameter) *CreateChangeSetInput {
7691	s.Parameters = v
7692	return s
7693}
7694
7695// SetResourceTypes sets the ResourceTypes field's value.
7696func (s *CreateChangeSetInput) SetResourceTypes(v []*string) *CreateChangeSetInput {
7697	s.ResourceTypes = v
7698	return s
7699}
7700
7701// SetResourcesToImport sets the ResourcesToImport field's value.
7702func (s *CreateChangeSetInput) SetResourcesToImport(v []*ResourceToImport) *CreateChangeSetInput {
7703	s.ResourcesToImport = v
7704	return s
7705}
7706
7707// SetRoleARN sets the RoleARN field's value.
7708func (s *CreateChangeSetInput) SetRoleARN(v string) *CreateChangeSetInput {
7709	s.RoleARN = &v
7710	return s
7711}
7712
7713// SetRollbackConfiguration sets the RollbackConfiguration field's value.
7714func (s *CreateChangeSetInput) SetRollbackConfiguration(v *RollbackConfiguration) *CreateChangeSetInput {
7715	s.RollbackConfiguration = v
7716	return s
7717}
7718
7719// SetStackName sets the StackName field's value.
7720func (s *CreateChangeSetInput) SetStackName(v string) *CreateChangeSetInput {
7721	s.StackName = &v
7722	return s
7723}
7724
7725// SetTags sets the Tags field's value.
7726func (s *CreateChangeSetInput) SetTags(v []*Tag) *CreateChangeSetInput {
7727	s.Tags = v
7728	return s
7729}
7730
7731// SetTemplateBody sets the TemplateBody field's value.
7732func (s *CreateChangeSetInput) SetTemplateBody(v string) *CreateChangeSetInput {
7733	s.TemplateBody = &v
7734	return s
7735}
7736
7737// SetTemplateURL sets the TemplateURL field's value.
7738func (s *CreateChangeSetInput) SetTemplateURL(v string) *CreateChangeSetInput {
7739	s.TemplateURL = &v
7740	return s
7741}
7742
7743// SetUsePreviousTemplate sets the UsePreviousTemplate field's value.
7744func (s *CreateChangeSetInput) SetUsePreviousTemplate(v bool) *CreateChangeSetInput {
7745	s.UsePreviousTemplate = &v
7746	return s
7747}
7748
7749// The output for the CreateChangeSet action.
7750type CreateChangeSetOutput struct {
7751	_ struct{} `type:"structure"`
7752
7753	// The Amazon Resource Name (ARN) of the change set.
7754	Id *string `min:"1" type:"string"`
7755
7756	// The unique ID of the stack.
7757	StackId *string `type:"string"`
7758}
7759
7760// String returns the string representation
7761func (s CreateChangeSetOutput) String() string {
7762	return awsutil.Prettify(s)
7763}
7764
7765// GoString returns the string representation
7766func (s CreateChangeSetOutput) GoString() string {
7767	return s.String()
7768}
7769
7770// SetId sets the Id field's value.
7771func (s *CreateChangeSetOutput) SetId(v string) *CreateChangeSetOutput {
7772	s.Id = &v
7773	return s
7774}
7775
7776// SetStackId sets the StackId field's value.
7777func (s *CreateChangeSetOutput) SetStackId(v string) *CreateChangeSetOutput {
7778	s.StackId = &v
7779	return s
7780}
7781
7782// The input for CreateStack action.
7783type CreateStackInput struct {
7784	_ struct{} `type:"structure"`
7785
7786	// In some cases, you must explicitly acknowledge that your stack template contains
7787	// certain capabilities in order for CloudFormation to create the stack.
7788	//
7789	//    * CAPABILITY_IAM and CAPABILITY_NAMED_IAM Some stack templates might include
7790	//    resources that can affect permissions in your account; for example, by
7791	//    creating new Identity and Access Management (IAM) users. For those stacks,
7792	//    you must explicitly acknowledge this by specifying one of these capabilities.
7793	//    The following IAM resources require you to specify either the CAPABILITY_IAM
7794	//    or CAPABILITY_NAMED_IAM capability. If you have IAM resources, you can
7795	//    specify either capability. If you have IAM resources with custom names,
7796	//    you must specify CAPABILITY_NAMED_IAM. If you don't specify either of
7797	//    these capabilities, CloudFormation returns an InsufficientCapabilities
7798	//    error. If your stack template contains these resources, we recommend that
7799	//    you review all permissions associated with them and edit their permissions
7800	//    if necessary. AWS::IAM::AccessKey (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iam-accesskey.html)
7801	//    AWS::IAM::Group (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iam-group.html)
7802	//    AWS::IAM::InstanceProfile (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iam-instanceprofile.html)
7803	//    AWS::IAM::Policy (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iam-policy.html)
7804	//    AWS::IAM::Role (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iam-role.html)
7805	//    AWS::IAM::User (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iam-user.html)
7806	//    AWS::IAM::UserToGroupAddition (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iam-addusertogroup.html)
7807	//    For more information, see Acknowledging IAM Resources in CloudFormation
7808	//    Templates (http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-iam-template.html#capabilities).
7809	//
7810	//    * CAPABILITY_AUTO_EXPAND Some template contain macros. Macros perform
7811	//    custom processing on templates; this can include simple actions like find-and-replace
7812	//    operations, all the way to extensive transformations of entire templates.
7813	//    Because of this, users typically create a change set from the processed
7814	//    template, so that they can review the changes resulting from the macros
7815	//    before actually creating the stack. If your stack template contains one
7816	//    or more macros, and you choose to create a stack directly from the processed
7817	//    template, without first reviewing the resulting changes in a change set,
7818	//    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)
7819	//    and AWS::Serverless (http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/transform-aws-serverless.html)
7820	//    transforms, which are macros hosted by CloudFormation. If you want to
7821	//    create a stack from a stack template that contains macros and nested stacks,
7822	//    you must create the stack directly from the template using this capability.
7823	//    You should only create stacks directly from a stack template that contains
7824	//    macros if you know what processing the macro performs. Each macro relies
7825	//    on an underlying Lambda service function for processing stack templates.
7826	//    Be aware that the Lambda function owner can update the function operation
7827	//    without CloudFormation being notified. For more information, see Using
7828	//    CloudFormation Macros to Perform Custom Processing on Templates (http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/template-macros.html).
7829	Capabilities []*string `type:"list"`
7830
7831	// A unique identifier for this CreateStack request. Specify this token if you
7832	// plan to retry requests so that CloudFormation knows that you're not attempting
7833	// to create a stack with the same name. You might retry CreateStack requests
7834	// to ensure that CloudFormation successfully received them.
7835	//
7836	// All events triggered by a given stack operation are assigned the same client
7837	// request token, which you can use to track operations. For example, if you
7838	// execute a CreateStack operation with the token token1, then all the StackEvents
7839	// generated by that operation will have ClientRequestToken set as token1.
7840	//
7841	// In the console, stack operations display the client request token on the
7842	// Events tab. Stack operations that are initiated from the console use the
7843	// token format Console-StackOperation-ID, which helps you easily identify the
7844	// stack operation . For example, if you create a stack using the console, each
7845	// stack event would be assigned the same token in the following format: Console-CreateStack-7f59c3cf-00d2-40c7-b2ff-e75db0987002.
7846	ClientRequestToken *string `min:"1" type:"string"`
7847
7848	// Set to true to disable rollback of the stack if stack creation failed. You
7849	// can specify either DisableRollback or OnFailure, but not both.
7850	//
7851	// Default: false
7852	DisableRollback *bool `type:"boolean"`
7853
7854	// Whether to enable termination protection on the specified stack. If a user
7855	// attempts to delete a stack with termination protection enabled, the operation
7856	// fails and the stack remains unchanged. For more information, see Protecting
7857	// a Stack From Being Deleted (http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-protect-stacks.html)
7858	// in the CloudFormation User Guide. Termination protection is disabled on stacks
7859	// by default.
7860	//
7861	// For nested stacks (http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-nested-stacks.html),
7862	// termination protection is set on the root stack and cannot be changed directly
7863	// on the nested stack.
7864	EnableTerminationProtection *bool `type:"boolean"`
7865
7866	// The Simple Notification Service (SNS) topic ARNs to publish stack related
7867	// events. You can find your SNS topic ARNs using the SNS console or your Command
7868	// Line Interface (CLI).
7869	NotificationARNs []*string `type:"list"`
7870
7871	// Determines what action will be taken if stack creation fails. This must be
7872	// one of: DO_NOTHING, ROLLBACK, or DELETE. You can specify either OnFailure
7873	// or DisableRollback, but not both.
7874	//
7875	// Default: ROLLBACK
7876	OnFailure *string `type:"string" enum:"OnFailure"`
7877
7878	// A list of Parameter structures that specify input parameters for the stack.
7879	// For more information, see the Parameter (https://docs.aws.amazon.com/AWSCloudFormation/latest/APIReference/API_Parameter.html)
7880	// data type.
7881	Parameters []*Parameter `type:"list"`
7882
7883	// The template resource types that you have permissions to work with for this
7884	// create stack action, such as AWS::EC2::Instance, AWS::EC2::*, or Custom::MyCustomInstance.
7885	// Use the following syntax to describe template resource types: AWS::* (for
7886	// all Amazon Web Services resources), Custom::* (for all custom resources),
7887	// Custom::logical_ID (for a specific custom resource), AWS::service_name::*
7888	// (for all resources of a particular Amazon Web Services service), and AWS::service_name::resource_logical_ID
7889	// (for a specific Amazon Web Services resource).
7890	//
7891	// If the list of resource types doesn't include a resource that you're creating,
7892	// the stack creation fails. By default, CloudFormation grants permissions to
7893	// all resource types. Identity and Access Management (IAM) uses this parameter
7894	// for CloudFormation-specific condition keys in IAM policies. For more information,
7895	// see Controlling Access with Identity and Access Management (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-iam-template.html).
7896	ResourceTypes []*string `type:"list"`
7897
7898	// The Amazon Resource Name (ARN) of an Identity and Access Management (IAM)
7899	// role that CloudFormation assumes to create the stack. CloudFormation uses
7900	// the role's credentials to make calls on your behalf. CloudFormation always
7901	// uses this role for all future operations on the stack. As long as users have
7902	// permission to operate on the stack, CloudFormation uses this role even if
7903	// the users don't have permission to pass it. Ensure that the role grants least
7904	// privilege.
7905	//
7906	// If you don't specify a value, CloudFormation uses the role that was previously
7907	// associated with the stack. If no role is available, CloudFormation uses a
7908	// temporary session that is generated from your user credentials.
7909	RoleARN *string `min:"20" type:"string"`
7910
7911	// The rollback triggers for CloudFormation to monitor during stack creation
7912	// and updating operations, and for the specified monitoring period afterwards.
7913	RollbackConfiguration *RollbackConfiguration `type:"structure"`
7914
7915	// The name that is associated with the stack. The name must be unique in the
7916	// Region in which you are creating the stack.
7917	//
7918	// A stack name can contain only alphanumeric characters (case sensitive) and
7919	// hyphens. It must start with an alphabetic character and cannot be longer
7920	// than 128 characters.
7921	//
7922	// StackName is a required field
7923	StackName *string `type:"string" required:"true"`
7924
7925	// Structure containing the stack policy body. For more information, go to Prevent
7926	// Updates to Stack Resources (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/protect-stack-resources.html)
7927	// in the CloudFormation User Guide. You can specify either the StackPolicyBody
7928	// or the StackPolicyURL parameter, but not both.
7929	StackPolicyBody *string `min:"1" type:"string"`
7930
7931	// Location of a file containing the stack policy. The URL must point to a policy
7932	// (maximum size: 16 KB) located in an S3 bucket in the same Region as the stack.
7933	// You can specify either the StackPolicyBody or the StackPolicyURL parameter,
7934	// but not both.
7935	StackPolicyURL *string `min:"1" type:"string"`
7936
7937	// Key-value pairs to associate with this stack. CloudFormation also propagates
7938	// these tags to the resources created in the stack. A maximum number of 50
7939	// tags can be specified.
7940	Tags []*Tag `type:"list"`
7941
7942	// Structure containing the template body with a minimum length of 1 byte and
7943	// a maximum length of 51,200 bytes. For more information, go to Template Anatomy
7944	// (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/template-anatomy.html)
7945	// in the CloudFormation User Guide.
7946	//
7947	// Conditional: You must specify either the TemplateBody or the TemplateURL
7948	// parameter, but not both.
7949	TemplateBody *string `min:"1" type:"string"`
7950
7951	// Location of file containing the template body. The URL must point to a template
7952	// (max size: 460,800 bytes) that is located in an Amazon S3 bucket or a Systems
7953	// Manager document. For more information, go to the Template Anatomy (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/template-anatomy.html)
7954	// in the CloudFormation User Guide.
7955	//
7956	// Conditional: You must specify either the TemplateBody or the TemplateURL
7957	// parameter, but not both.
7958	TemplateURL *string `min:"1" type:"string"`
7959
7960	// The amount of time that can pass before the stack status becomes CREATE_FAILED;
7961	// if DisableRollback is not set or is set to false, the stack will be rolled
7962	// back.
7963	TimeoutInMinutes *int64 `min:"1" type:"integer"`
7964}
7965
7966// String returns the string representation
7967func (s CreateStackInput) String() string {
7968	return awsutil.Prettify(s)
7969}
7970
7971// GoString returns the string representation
7972func (s CreateStackInput) GoString() string {
7973	return s.String()
7974}
7975
7976// Validate inspects the fields of the type to determine if they are valid.
7977func (s *CreateStackInput) Validate() error {
7978	invalidParams := request.ErrInvalidParams{Context: "CreateStackInput"}
7979	if s.ClientRequestToken != nil && len(*s.ClientRequestToken) < 1 {
7980		invalidParams.Add(request.NewErrParamMinLen("ClientRequestToken", 1))
7981	}
7982	if s.RoleARN != nil && len(*s.RoleARN) < 20 {
7983		invalidParams.Add(request.NewErrParamMinLen("RoleARN", 20))
7984	}
7985	if s.StackName == nil {
7986		invalidParams.Add(request.NewErrParamRequired("StackName"))
7987	}
7988	if s.StackPolicyBody != nil && len(*s.StackPolicyBody) < 1 {
7989		invalidParams.Add(request.NewErrParamMinLen("StackPolicyBody", 1))
7990	}
7991	if s.StackPolicyURL != nil && len(*s.StackPolicyURL) < 1 {
7992		invalidParams.Add(request.NewErrParamMinLen("StackPolicyURL", 1))
7993	}
7994	if s.TemplateBody != nil && len(*s.TemplateBody) < 1 {
7995		invalidParams.Add(request.NewErrParamMinLen("TemplateBody", 1))
7996	}
7997	if s.TemplateURL != nil && len(*s.TemplateURL) < 1 {
7998		invalidParams.Add(request.NewErrParamMinLen("TemplateURL", 1))
7999	}
8000	if s.TimeoutInMinutes != nil && *s.TimeoutInMinutes < 1 {
8001		invalidParams.Add(request.NewErrParamMinValue("TimeoutInMinutes", 1))
8002	}
8003	if s.RollbackConfiguration != nil {
8004		if err := s.RollbackConfiguration.Validate(); err != nil {
8005			invalidParams.AddNested("RollbackConfiguration", err.(request.ErrInvalidParams))
8006		}
8007	}
8008	if s.Tags != nil {
8009		for i, v := range s.Tags {
8010			if v == nil {
8011				continue
8012			}
8013			if err := v.Validate(); err != nil {
8014				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Tags", i), err.(request.ErrInvalidParams))
8015			}
8016		}
8017	}
8018
8019	if invalidParams.Len() > 0 {
8020		return invalidParams
8021	}
8022	return nil
8023}
8024
8025// SetCapabilities sets the Capabilities field's value.
8026func (s *CreateStackInput) SetCapabilities(v []*string) *CreateStackInput {
8027	s.Capabilities = v
8028	return s
8029}
8030
8031// SetClientRequestToken sets the ClientRequestToken field's value.
8032func (s *CreateStackInput) SetClientRequestToken(v string) *CreateStackInput {
8033	s.ClientRequestToken = &v
8034	return s
8035}
8036
8037// SetDisableRollback sets the DisableRollback field's value.
8038func (s *CreateStackInput) SetDisableRollback(v bool) *CreateStackInput {
8039	s.DisableRollback = &v
8040	return s
8041}
8042
8043// SetEnableTerminationProtection sets the EnableTerminationProtection field's value.
8044func (s *CreateStackInput) SetEnableTerminationProtection(v bool) *CreateStackInput {
8045	s.EnableTerminationProtection = &v
8046	return s
8047}
8048
8049// SetNotificationARNs sets the NotificationARNs field's value.
8050func (s *CreateStackInput) SetNotificationARNs(v []*string) *CreateStackInput {
8051	s.NotificationARNs = v
8052	return s
8053}
8054
8055// SetOnFailure sets the OnFailure field's value.
8056func (s *CreateStackInput) SetOnFailure(v string) *CreateStackInput {
8057	s.OnFailure = &v
8058	return s
8059}
8060
8061// SetParameters sets the Parameters field's value.
8062func (s *CreateStackInput) SetParameters(v []*Parameter) *CreateStackInput {
8063	s.Parameters = v
8064	return s
8065}
8066
8067// SetResourceTypes sets the ResourceTypes field's value.
8068func (s *CreateStackInput) SetResourceTypes(v []*string) *CreateStackInput {
8069	s.ResourceTypes = v
8070	return s
8071}
8072
8073// SetRoleARN sets the RoleARN field's value.
8074func (s *CreateStackInput) SetRoleARN(v string) *CreateStackInput {
8075	s.RoleARN = &v
8076	return s
8077}
8078
8079// SetRollbackConfiguration sets the RollbackConfiguration field's value.
8080func (s *CreateStackInput) SetRollbackConfiguration(v *RollbackConfiguration) *CreateStackInput {
8081	s.RollbackConfiguration = v
8082	return s
8083}
8084
8085// SetStackName sets the StackName field's value.
8086func (s *CreateStackInput) SetStackName(v string) *CreateStackInput {
8087	s.StackName = &v
8088	return s
8089}
8090
8091// SetStackPolicyBody sets the StackPolicyBody field's value.
8092func (s *CreateStackInput) SetStackPolicyBody(v string) *CreateStackInput {
8093	s.StackPolicyBody = &v
8094	return s
8095}
8096
8097// SetStackPolicyURL sets the StackPolicyURL field's value.
8098func (s *CreateStackInput) SetStackPolicyURL(v string) *CreateStackInput {
8099	s.StackPolicyURL = &v
8100	return s
8101}
8102
8103// SetTags sets the Tags field's value.
8104func (s *CreateStackInput) SetTags(v []*Tag) *CreateStackInput {
8105	s.Tags = v
8106	return s
8107}
8108
8109// SetTemplateBody sets the TemplateBody field's value.
8110func (s *CreateStackInput) SetTemplateBody(v string) *CreateStackInput {
8111	s.TemplateBody = &v
8112	return s
8113}
8114
8115// SetTemplateURL sets the TemplateURL field's value.
8116func (s *CreateStackInput) SetTemplateURL(v string) *CreateStackInput {
8117	s.TemplateURL = &v
8118	return s
8119}
8120
8121// SetTimeoutInMinutes sets the TimeoutInMinutes field's value.
8122func (s *CreateStackInput) SetTimeoutInMinutes(v int64) *CreateStackInput {
8123	s.TimeoutInMinutes = &v
8124	return s
8125}
8126
8127type CreateStackInstancesInput struct {
8128	_ struct{} `type:"structure"`
8129
8130	// [Self-managed permissions] The names of one or more accounts that you want
8131	// to create stack instances in the specified Region(s) for.
8132	//
8133	// You can specify Accounts or DeploymentTargets, but not both.
8134	Accounts []*string `type:"list"`
8135
8136	// [Service-managed permissions] Specifies whether you are acting as an account
8137	// administrator in the organization's management account or as a delegated
8138	// administrator in a member account.
8139	//
8140	// By default, SELF is specified. Use SELF for stack sets with self-managed
8141	// permissions.
8142	//
8143	//    * If you are signed in to the management account, specify SELF.
8144	//
8145	//    * If you are signed in to a delegated administrator account, specify DELEGATED_ADMIN.
8146	//    Your account must be registered as a delegated administrator in the management
8147	//    account. For more information, see Register a delegated administrator
8148	//    (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/stacksets-orgs-delegated-admin.html)
8149	//    in the CloudFormation User Guide.
8150	CallAs *string `type:"string" enum:"CallAs"`
8151
8152	// [Service-managed permissions] The Organizations accounts for which to create
8153	// stack instances in the specified Regions.
8154	//
8155	// You can specify Accounts or DeploymentTargets, but not both.
8156	DeploymentTargets *DeploymentTargets `type:"structure"`
8157
8158	// The unique identifier for this stack set operation.
8159	//
8160	// The operation ID also functions as an idempotency token, to ensure that CloudFormation
8161	// performs the stack set operation only once, even if you retry the request
8162	// multiple times. You might retry stack set operation requests to ensure that
8163	// CloudFormation successfully received them.
8164	//
8165	// If you don't specify an operation ID, the SDK generates one automatically.
8166	//
8167	// Repeating this stack set operation with a new operation ID retries all stack
8168	// instances whose status is OUTDATED.
8169	OperationId *string `min:"1" type:"string" idempotencyToken:"true"`
8170
8171	// Preferences for how CloudFormation performs this stack set operation.
8172	OperationPreferences *StackSetOperationPreferences `type:"structure"`
8173
8174	// A list of stack set parameters whose values you want to override in the selected
8175	// stack instances.
8176	//
8177	// Any overridden parameter values will be applied to all stack instances in
8178	// the specified accounts and Regions. When specifying parameters and their
8179	// values, be aware of how CloudFormation sets parameter values during stack
8180	// instance operations:
8181	//
8182	//    * To override the current value for a parameter, include the parameter
8183	//    and specify its value.
8184	//
8185	//    * To leave an overridden parameter set to its present value, include the
8186	//    parameter and specify UsePreviousValue as true. (You cannot specify both
8187	//    a value and set UsePreviousValue to true.)
8188	//
8189	//    * To set an overridden parameter back to the value specified in the stack
8190	//    set, specify a parameter list but do not include the parameter in the
8191	//    list.
8192	//
8193	//    * To leave all parameters set to their present values, do not specify
8194	//    this property at all.
8195	//
8196	// During stack set updates, any parameter values overridden for a stack instance
8197	// are not updated, but retain their overridden value.
8198	//
8199	// You can only override the parameter values that are specified in the stack
8200	// set; to add or delete a parameter itself, use UpdateStackSet (https://docs.aws.amazon.com/AWSCloudFormation/latest/APIReference/API_UpdateStackSet.html)
8201	// to update the stack set template.
8202	ParameterOverrides []*Parameter `type:"list"`
8203
8204	// The names of one or more Regions where you want to create stack instances
8205	// using the specified accounts.
8206	//
8207	// Regions is a required field
8208	Regions []*string `type:"list" required:"true"`
8209
8210	// The name or unique ID of the stack set that you want to create stack instances
8211	// from.
8212	//
8213	// StackSetName is a required field
8214	StackSetName *string `type:"string" required:"true"`
8215}
8216
8217// String returns the string representation
8218func (s CreateStackInstancesInput) String() string {
8219	return awsutil.Prettify(s)
8220}
8221
8222// GoString returns the string representation
8223func (s CreateStackInstancesInput) GoString() string {
8224	return s.String()
8225}
8226
8227// Validate inspects the fields of the type to determine if they are valid.
8228func (s *CreateStackInstancesInput) Validate() error {
8229	invalidParams := request.ErrInvalidParams{Context: "CreateStackInstancesInput"}
8230	if s.OperationId != nil && len(*s.OperationId) < 1 {
8231		invalidParams.Add(request.NewErrParamMinLen("OperationId", 1))
8232	}
8233	if s.Regions == nil {
8234		invalidParams.Add(request.NewErrParamRequired("Regions"))
8235	}
8236	if s.StackSetName == nil {
8237		invalidParams.Add(request.NewErrParamRequired("StackSetName"))
8238	}
8239	if s.DeploymentTargets != nil {
8240		if err := s.DeploymentTargets.Validate(); err != nil {
8241			invalidParams.AddNested("DeploymentTargets", err.(request.ErrInvalidParams))
8242		}
8243	}
8244	if s.OperationPreferences != nil {
8245		if err := s.OperationPreferences.Validate(); err != nil {
8246			invalidParams.AddNested("OperationPreferences", err.(request.ErrInvalidParams))
8247		}
8248	}
8249
8250	if invalidParams.Len() > 0 {
8251		return invalidParams
8252	}
8253	return nil
8254}
8255
8256// SetAccounts sets the Accounts field's value.
8257func (s *CreateStackInstancesInput) SetAccounts(v []*string) *CreateStackInstancesInput {
8258	s.Accounts = v
8259	return s
8260}
8261
8262// SetCallAs sets the CallAs field's value.
8263func (s *CreateStackInstancesInput) SetCallAs(v string) *CreateStackInstancesInput {
8264	s.CallAs = &v
8265	return s
8266}
8267
8268// SetDeploymentTargets sets the DeploymentTargets field's value.
8269func (s *CreateStackInstancesInput) SetDeploymentTargets(v *DeploymentTargets) *CreateStackInstancesInput {
8270	s.DeploymentTargets = v
8271	return s
8272}
8273
8274// SetOperationId sets the OperationId field's value.
8275func (s *CreateStackInstancesInput) SetOperationId(v string) *CreateStackInstancesInput {
8276	s.OperationId = &v
8277	return s
8278}
8279
8280// SetOperationPreferences sets the OperationPreferences field's value.
8281func (s *CreateStackInstancesInput) SetOperationPreferences(v *StackSetOperationPreferences) *CreateStackInstancesInput {
8282	s.OperationPreferences = v
8283	return s
8284}
8285
8286// SetParameterOverrides sets the ParameterOverrides field's value.
8287func (s *CreateStackInstancesInput) SetParameterOverrides(v []*Parameter) *CreateStackInstancesInput {
8288	s.ParameterOverrides = v
8289	return s
8290}
8291
8292// SetRegions sets the Regions field's value.
8293func (s *CreateStackInstancesInput) SetRegions(v []*string) *CreateStackInstancesInput {
8294	s.Regions = v
8295	return s
8296}
8297
8298// SetStackSetName sets the StackSetName field's value.
8299func (s *CreateStackInstancesInput) SetStackSetName(v string) *CreateStackInstancesInput {
8300	s.StackSetName = &v
8301	return s
8302}
8303
8304type CreateStackInstancesOutput struct {
8305	_ struct{} `type:"structure"`
8306
8307	// The unique identifier for this stack set operation.
8308	OperationId *string `min:"1" type:"string"`
8309}
8310
8311// String returns the string representation
8312func (s CreateStackInstancesOutput) String() string {
8313	return awsutil.Prettify(s)
8314}
8315
8316// GoString returns the string representation
8317func (s CreateStackInstancesOutput) GoString() string {
8318	return s.String()
8319}
8320
8321// SetOperationId sets the OperationId field's value.
8322func (s *CreateStackInstancesOutput) SetOperationId(v string) *CreateStackInstancesOutput {
8323	s.OperationId = &v
8324	return s
8325}
8326
8327// The output for a CreateStack action.
8328type CreateStackOutput struct {
8329	_ struct{} `type:"structure"`
8330
8331	// Unique identifier of the stack.
8332	StackId *string `type:"string"`
8333}
8334
8335// String returns the string representation
8336func (s CreateStackOutput) String() string {
8337	return awsutil.Prettify(s)
8338}
8339
8340// GoString returns the string representation
8341func (s CreateStackOutput) GoString() string {
8342	return s.String()
8343}
8344
8345// SetStackId sets the StackId field's value.
8346func (s *CreateStackOutput) SetStackId(v string) *CreateStackOutput {
8347	s.StackId = &v
8348	return s
8349}
8350
8351type CreateStackSetInput struct {
8352	_ struct{} `type:"structure"`
8353
8354	// The Amazon Resource Number (ARN) of the IAM role to use to create this stack
8355	// set.
8356	//
8357	// Specify an IAM role only if you are using customized administrator roles
8358	// to control which users or groups can manage specific stack sets within the
8359	// same administrator account. For more information, see Prerequisites: Granting
8360	// Permissions for Stack Set Operations (http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/stacksets-prereqs.html)
8361	// in the CloudFormation User Guide.
8362	AdministrationRoleARN *string `min:"20" type:"string"`
8363
8364	// Describes whether StackSets automatically deploys to Organizations accounts
8365	// that are added to the target organization or organizational unit (OU). Specify
8366	// only if PermissionModel is SERVICE_MANAGED.
8367	AutoDeployment *AutoDeployment `type:"structure"`
8368
8369	// [Service-managed permissions] Specifies whether you are acting as an account
8370	// administrator in the organization's management account or as a delegated
8371	// administrator in a member account.
8372	//
8373	// By default, SELF is specified. Use SELF for stack sets with self-managed
8374	// permissions.
8375	//
8376	//    * To create a stack set with service-managed permissions while signed
8377	//    in to the management account, specify SELF.
8378	//
8379	//    * To create a stack set with service-managed permissions while signed
8380	//    in to a delegated administrator account, specify DELEGATED_ADMIN. Your
8381	//    account must be registered as a delegated admin in the management account.
8382	//    For more information, see Register a delegated administrator (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/stacksets-orgs-delegated-admin.html)
8383	//    in the CloudFormation User Guide.
8384	//
8385	// Stack sets with service-managed permissions are created in the management
8386	// account, including stack sets that are created by delegated administrators.
8387	CallAs *string `type:"string" enum:"CallAs"`
8388
8389	// In some cases, you must explicitly acknowledge that your stack set template
8390	// contains certain capabilities in order for CloudFormation to create the stack
8391	// set and related stack instances.
8392	//
8393	//    * CAPABILITY_IAM and CAPABILITY_NAMED_IAM Some stack templates might include
8394	//    resources that can affect permissions in your account; for example, by
8395	//    creating new Identity and Access Management (IAM) users. For those stack
8396	//    sets, you must explicitly acknowledge this by specifying one of these
8397	//    capabilities. The following IAM resources require you to specify either
8398	//    the CAPABILITY_IAM or CAPABILITY_NAMED_IAM capability. If you have IAM
8399	//    resources, you can specify either capability. If you have IAM resources
8400	//    with custom names, you must specify CAPABILITY_NAMED_IAM. If you don't
8401	//    specify either of these capabilities, CloudFormation returns an InsufficientCapabilities
8402	//    error. If your stack template contains these resources, we recommend that
8403	//    you review all permissions associated with them and edit their permissions
8404	//    if necessary. AWS::IAM::AccessKey (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iam-accesskey.html)
8405	//    AWS::IAM::Group (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iam-group.html)
8406	//    AWS::IAM::InstanceProfile (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iam-instanceprofile.html)
8407	//    AWS::IAM::Policy (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iam-policy.html)
8408	//    AWS::IAM::Role (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iam-role.html)
8409	//    AWS::IAM::User (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iam-user.html)
8410	//    AWS::IAM::UserToGroupAddition (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iam-addusertogroup.html)
8411	//    For more information, see Acknowledging IAM Resources in CloudFormation
8412	//    Templates (http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-iam-template.html#capabilities).
8413	//
8414	//    * CAPABILITY_AUTO_EXPAND Some templates reference macros. If your stack
8415	//    set template references one or more macros, you must create the stack
8416	//    set directly from the processed template, without first reviewing the
8417	//    resulting changes in a change set. To create the stack set directly, you
8418	//    must acknowledge this capability. For more information, see Using CloudFormation
8419	//    Macros to Perform Custom Processing on Templates (http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/template-macros.html).
8420	//    Stack sets with service-managed permissions do not currently support the
8421	//    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)
8422	//    and AWS::Serverless (http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/transform-aws-serverless.html)
8423	//    transforms, which are macros hosted by CloudFormation.) Even if you specify
8424	//    this capability for a stack set with service-managed permissions, if you
8425	//    reference a macro in your template the stack set operation will fail.
8426	Capabilities []*string `type:"list"`
8427
8428	// A unique identifier for this CreateStackSet request. Specify this token if
8429	// you plan to retry requests so that CloudFormation knows that you're not attempting
8430	// to create another stack set with the same name. You might retry CreateStackSet
8431	// requests to ensure that CloudFormation successfully received them.
8432	//
8433	// If you don't specify an operation ID, the SDK generates one automatically.
8434	ClientRequestToken *string `min:"1" type:"string" idempotencyToken:"true"`
8435
8436	// A description of the stack set. You can use the description to identify the
8437	// stack set's purpose or other important information.
8438	Description *string `min:"1" type:"string"`
8439
8440	// The name of the IAM execution role to use to create the stack set. If you
8441	// do not specify an execution role, CloudFormation uses the AWSCloudFormationStackSetExecutionRole
8442	// role for the stack set operation.
8443	//
8444	// Specify an IAM role only if you are using customized execution roles to control
8445	// which stack resources users and groups can include in their stack sets.
8446	ExecutionRoleName *string `min:"1" type:"string"`
8447
8448	// The input parameters for the stack set template.
8449	Parameters []*Parameter `type:"list"`
8450
8451	// Describes how the IAM roles required for stack set operations are created.
8452	// By default, SELF-MANAGED is specified.
8453	//
8454	//    * With self-managed permissions, you must create the administrator and
8455	//    execution roles required to deploy to target accounts. For more information,
8456	//    see Grant Self-Managed Stack Set Permissions (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/stacksets-prereqs-self-managed.html).
8457	//
8458	//    * With service-managed permissions, StackSets automatically creates the
8459	//    IAM roles required to deploy to accounts managed by Organizations. For
8460	//    more information, see Grant Service-Managed Stack Set Permissions (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/stacksets-prereqs-service-managed.html).
8461	PermissionModel *string `type:"string" enum:"PermissionModels"`
8462
8463	// The stack ID you are importing into a new stack set. Specify the Amazon Resource
8464	// Number (ARN) of the stack.
8465	StackId *string `type:"string"`
8466
8467	// The name to associate with the stack set. The name must be unique in the
8468	// Region where you create your stack set.
8469	//
8470	// A stack name can contain only alphanumeric characters (case-sensitive) and
8471	// hyphens. It must start with an alphabetic character and can't be longer than
8472	// 128 characters.
8473	//
8474	// StackSetName is a required field
8475	StackSetName *string `type:"string" required:"true"`
8476
8477	// The key-value pairs to associate with this stack set and the stacks created
8478	// from it. CloudFormation also propagates these tags to supported resources
8479	// that are created in the stacks. A maximum number of 50 tags can be specified.
8480	//
8481	// If you specify tags as part of a CreateStackSet action, CloudFormation checks
8482	// to see if you have the required IAM permission to tag resources. If you don't,
8483	// the entire CreateStackSet action fails with an access denied error, and the
8484	// stack set is not created.
8485	Tags []*Tag `type:"list"`
8486
8487	// The structure that contains the template body, with a minimum length of 1
8488	// byte and a maximum length of 51,200 bytes. For more information, see Template
8489	// Anatomy (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/template-anatomy.html)
8490	// in the CloudFormation User Guide.
8491	//
8492	// Conditional: You must specify either the TemplateBody or the TemplateURL
8493	// parameter, but not both.
8494	TemplateBody *string `min:"1" type:"string"`
8495
8496	// The location of the file that contains the template body. The URL must point
8497	// to a template (maximum size: 460,800 bytes) that's located in an Amazon S3
8498	// bucket or a Systems Manager document. For more information, see Template
8499	// Anatomy (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/template-anatomy.html)
8500	// in the CloudFormation User Guide.
8501	//
8502	// Conditional: You must specify either the TemplateBody or the TemplateURL
8503	// parameter, but not both.
8504	TemplateURL *string `min:"1" type:"string"`
8505}
8506
8507// String returns the string representation
8508func (s CreateStackSetInput) String() string {
8509	return awsutil.Prettify(s)
8510}
8511
8512// GoString returns the string representation
8513func (s CreateStackSetInput) GoString() string {
8514	return s.String()
8515}
8516
8517// Validate inspects the fields of the type to determine if they are valid.
8518func (s *CreateStackSetInput) Validate() error {
8519	invalidParams := request.ErrInvalidParams{Context: "CreateStackSetInput"}
8520	if s.AdministrationRoleARN != nil && len(*s.AdministrationRoleARN) < 20 {
8521		invalidParams.Add(request.NewErrParamMinLen("AdministrationRoleARN", 20))
8522	}
8523	if s.ClientRequestToken != nil && len(*s.ClientRequestToken) < 1 {
8524		invalidParams.Add(request.NewErrParamMinLen("ClientRequestToken", 1))
8525	}
8526	if s.Description != nil && len(*s.Description) < 1 {
8527		invalidParams.Add(request.NewErrParamMinLen("Description", 1))
8528	}
8529	if s.ExecutionRoleName != nil && len(*s.ExecutionRoleName) < 1 {
8530		invalidParams.Add(request.NewErrParamMinLen("ExecutionRoleName", 1))
8531	}
8532	if s.StackSetName == nil {
8533		invalidParams.Add(request.NewErrParamRequired("StackSetName"))
8534	}
8535	if s.TemplateBody != nil && len(*s.TemplateBody) < 1 {
8536		invalidParams.Add(request.NewErrParamMinLen("TemplateBody", 1))
8537	}
8538	if s.TemplateURL != nil && len(*s.TemplateURL) < 1 {
8539		invalidParams.Add(request.NewErrParamMinLen("TemplateURL", 1))
8540	}
8541	if s.Tags != nil {
8542		for i, v := range s.Tags {
8543			if v == nil {
8544				continue
8545			}
8546			if err := v.Validate(); err != nil {
8547				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Tags", i), err.(request.ErrInvalidParams))
8548			}
8549		}
8550	}
8551
8552	if invalidParams.Len() > 0 {
8553		return invalidParams
8554	}
8555	return nil
8556}
8557
8558// SetAdministrationRoleARN sets the AdministrationRoleARN field's value.
8559func (s *CreateStackSetInput) SetAdministrationRoleARN(v string) *CreateStackSetInput {
8560	s.AdministrationRoleARN = &v
8561	return s
8562}
8563
8564// SetAutoDeployment sets the AutoDeployment field's value.
8565func (s *CreateStackSetInput) SetAutoDeployment(v *AutoDeployment) *CreateStackSetInput {
8566	s.AutoDeployment = v
8567	return s
8568}
8569
8570// SetCallAs sets the CallAs field's value.
8571func (s *CreateStackSetInput) SetCallAs(v string) *CreateStackSetInput {
8572	s.CallAs = &v
8573	return s
8574}
8575
8576// SetCapabilities sets the Capabilities field's value.
8577func (s *CreateStackSetInput) SetCapabilities(v []*string) *CreateStackSetInput {
8578	s.Capabilities = v
8579	return s
8580}
8581
8582// SetClientRequestToken sets the ClientRequestToken field's value.
8583func (s *CreateStackSetInput) SetClientRequestToken(v string) *CreateStackSetInput {
8584	s.ClientRequestToken = &v
8585	return s
8586}
8587
8588// SetDescription sets the Description field's value.
8589func (s *CreateStackSetInput) SetDescription(v string) *CreateStackSetInput {
8590	s.Description = &v
8591	return s
8592}
8593
8594// SetExecutionRoleName sets the ExecutionRoleName field's value.
8595func (s *CreateStackSetInput) SetExecutionRoleName(v string) *CreateStackSetInput {
8596	s.ExecutionRoleName = &v
8597	return s
8598}
8599
8600// SetParameters sets the Parameters field's value.
8601func (s *CreateStackSetInput) SetParameters(v []*Parameter) *CreateStackSetInput {
8602	s.Parameters = v
8603	return s
8604}
8605
8606// SetPermissionModel sets the PermissionModel field's value.
8607func (s *CreateStackSetInput) SetPermissionModel(v string) *CreateStackSetInput {
8608	s.PermissionModel = &v
8609	return s
8610}
8611
8612// SetStackId sets the StackId field's value.
8613func (s *CreateStackSetInput) SetStackId(v string) *CreateStackSetInput {
8614	s.StackId = &v
8615	return s
8616}
8617
8618// SetStackSetName sets the StackSetName field's value.
8619func (s *CreateStackSetInput) SetStackSetName(v string) *CreateStackSetInput {
8620	s.StackSetName = &v
8621	return s
8622}
8623
8624// SetTags sets the Tags field's value.
8625func (s *CreateStackSetInput) SetTags(v []*Tag) *CreateStackSetInput {
8626	s.Tags = v
8627	return s
8628}
8629
8630// SetTemplateBody sets the TemplateBody field's value.
8631func (s *CreateStackSetInput) SetTemplateBody(v string) *CreateStackSetInput {
8632	s.TemplateBody = &v
8633	return s
8634}
8635
8636// SetTemplateURL sets the TemplateURL field's value.
8637func (s *CreateStackSetInput) SetTemplateURL(v string) *CreateStackSetInput {
8638	s.TemplateURL = &v
8639	return s
8640}
8641
8642type CreateStackSetOutput struct {
8643	_ struct{} `type:"structure"`
8644
8645	// The ID of the stack set that you're creating.
8646	StackSetId *string `type:"string"`
8647}
8648
8649// String returns the string representation
8650func (s CreateStackSetOutput) String() string {
8651	return awsutil.Prettify(s)
8652}
8653
8654// GoString returns the string representation
8655func (s CreateStackSetOutput) GoString() string {
8656	return s.String()
8657}
8658
8659// SetStackSetId sets the StackSetId field's value.
8660func (s *CreateStackSetOutput) SetStackSetId(v string) *CreateStackSetOutput {
8661	s.StackSetId = &v
8662	return s
8663}
8664
8665type DeactivateTypeInput struct {
8666	_ struct{} `type:"structure"`
8667
8668	// The Amazon Resource Name (ARN) for the extension, in this account and region.
8669	//
8670	// Conditional: You must specify either Arn, or TypeName and Type.
8671	Arn *string `type:"string"`
8672
8673	// The extension type.
8674	//
8675	// Conditional: You must specify either Arn, or TypeName and Type.
8676	Type *string `type:"string" enum:"ThirdPartyType"`
8677
8678	// The type name of the extension, in this account and region. If you specified
8679	// a type name alias when enabling the extension, use the type name alias.
8680	//
8681	// Conditional: You must specify either Arn, or TypeName and Type.
8682	TypeName *string `min:"10" type:"string"`
8683}
8684
8685// String returns the string representation
8686func (s DeactivateTypeInput) String() string {
8687	return awsutil.Prettify(s)
8688}
8689
8690// GoString returns the string representation
8691func (s DeactivateTypeInput) GoString() string {
8692	return s.String()
8693}
8694
8695// Validate inspects the fields of the type to determine if they are valid.
8696func (s *DeactivateTypeInput) Validate() error {
8697	invalidParams := request.ErrInvalidParams{Context: "DeactivateTypeInput"}
8698	if s.TypeName != nil && len(*s.TypeName) < 10 {
8699		invalidParams.Add(request.NewErrParamMinLen("TypeName", 10))
8700	}
8701
8702	if invalidParams.Len() > 0 {
8703		return invalidParams
8704	}
8705	return nil
8706}
8707
8708// SetArn sets the Arn field's value.
8709func (s *DeactivateTypeInput) SetArn(v string) *DeactivateTypeInput {
8710	s.Arn = &v
8711	return s
8712}
8713
8714// SetType sets the Type field's value.
8715func (s *DeactivateTypeInput) SetType(v string) *DeactivateTypeInput {
8716	s.Type = &v
8717	return s
8718}
8719
8720// SetTypeName sets the TypeName field's value.
8721func (s *DeactivateTypeInput) SetTypeName(v string) *DeactivateTypeInput {
8722	s.TypeName = &v
8723	return s
8724}
8725
8726type DeactivateTypeOutput struct {
8727	_ struct{} `type:"structure"`
8728}
8729
8730// String returns the string representation
8731func (s DeactivateTypeOutput) String() string {
8732	return awsutil.Prettify(s)
8733}
8734
8735// GoString returns the string representation
8736func (s DeactivateTypeOutput) GoString() string {
8737	return s.String()
8738}
8739
8740// The input for the DeleteChangeSet action.
8741type DeleteChangeSetInput struct {
8742	_ struct{} `type:"structure"`
8743
8744	// The name or Amazon Resource Name (ARN) of the change set that you want to
8745	// delete.
8746	//
8747	// ChangeSetName is a required field
8748	ChangeSetName *string `min:"1" type:"string" required:"true"`
8749
8750	// If you specified the name of a change set to delete, specify the stack name
8751	// or ID (ARN) that is associated with it.
8752	StackName *string `min:"1" type:"string"`
8753}
8754
8755// String returns the string representation
8756func (s DeleteChangeSetInput) String() string {
8757	return awsutil.Prettify(s)
8758}
8759
8760// GoString returns the string representation
8761func (s DeleteChangeSetInput) GoString() string {
8762	return s.String()
8763}
8764
8765// Validate inspects the fields of the type to determine if they are valid.
8766func (s *DeleteChangeSetInput) Validate() error {
8767	invalidParams := request.ErrInvalidParams{Context: "DeleteChangeSetInput"}
8768	if s.ChangeSetName == nil {
8769		invalidParams.Add(request.NewErrParamRequired("ChangeSetName"))
8770	}
8771	if s.ChangeSetName != nil && len(*s.ChangeSetName) < 1 {
8772		invalidParams.Add(request.NewErrParamMinLen("ChangeSetName", 1))
8773	}
8774	if s.StackName != nil && len(*s.StackName) < 1 {
8775		invalidParams.Add(request.NewErrParamMinLen("StackName", 1))
8776	}
8777
8778	if invalidParams.Len() > 0 {
8779		return invalidParams
8780	}
8781	return nil
8782}
8783
8784// SetChangeSetName sets the ChangeSetName field's value.
8785func (s *DeleteChangeSetInput) SetChangeSetName(v string) *DeleteChangeSetInput {
8786	s.ChangeSetName = &v
8787	return s
8788}
8789
8790// SetStackName sets the StackName field's value.
8791func (s *DeleteChangeSetInput) SetStackName(v string) *DeleteChangeSetInput {
8792	s.StackName = &v
8793	return s
8794}
8795
8796// The output for the DeleteChangeSet action.
8797type DeleteChangeSetOutput struct {
8798	_ struct{} `type:"structure"`
8799}
8800
8801// String returns the string representation
8802func (s DeleteChangeSetOutput) String() string {
8803	return awsutil.Prettify(s)
8804}
8805
8806// GoString returns the string representation
8807func (s DeleteChangeSetOutput) GoString() string {
8808	return s.String()
8809}
8810
8811// The input for DeleteStack action.
8812type DeleteStackInput struct {
8813	_ struct{} `type:"structure"`
8814
8815	// A unique identifier for this DeleteStack request. Specify this token if you
8816	// plan to retry requests so that CloudFormation knows that you're not attempting
8817	// to delete a stack with the same name. You might retry DeleteStack requests
8818	// to ensure that CloudFormation successfully received them.
8819	//
8820	// All events triggered by a given stack operation are assigned the same client
8821	// request token, which you can use to track operations. For example, if you
8822	// execute a CreateStack operation with the token token1, then all the StackEvents
8823	// generated by that operation will have ClientRequestToken set as token1.
8824	//
8825	// In the console, stack operations display the client request token on the
8826	// Events tab. Stack operations that are initiated from the console use the
8827	// token format Console-StackOperation-ID, which helps you easily identify the
8828	// stack operation . For example, if you create a stack using the console, each
8829	// stack event would be assigned the same token in the following format: Console-CreateStack-7f59c3cf-00d2-40c7-b2ff-e75db0987002.
8830	ClientRequestToken *string `min:"1" type:"string"`
8831
8832	// For stacks in the DELETE_FAILED state, a list of resource logical IDs that
8833	// are associated with the resources you want to retain. During deletion, CloudFormation
8834	// deletes the stack but does not delete the retained resources.
8835	//
8836	// Retaining resources is useful when you cannot delete a resource, such as
8837	// a non-empty S3 bucket, but you want to delete the stack.
8838	RetainResources []*string `type:"list"`
8839
8840	// The Amazon Resource Name (ARN) of an Identity and Access Management (IAM)
8841	// role that CloudFormation assumes to delete the stack. CloudFormation uses
8842	// the role's credentials to make calls on your behalf.
8843	//
8844	// If you don't specify a value, CloudFormation uses the role that was previously
8845	// associated with the stack. If no role is available, CloudFormation uses a
8846	// temporary session that is generated from your user credentials.
8847	RoleARN *string `min:"20" type:"string"`
8848
8849	// The name or the unique stack ID that is associated with the stack.
8850	//
8851	// StackName is a required field
8852	StackName *string `type:"string" required:"true"`
8853}
8854
8855// String returns the string representation
8856func (s DeleteStackInput) String() string {
8857	return awsutil.Prettify(s)
8858}
8859
8860// GoString returns the string representation
8861func (s DeleteStackInput) GoString() string {
8862	return s.String()
8863}
8864
8865// Validate inspects the fields of the type to determine if they are valid.
8866func (s *DeleteStackInput) Validate() error {
8867	invalidParams := request.ErrInvalidParams{Context: "DeleteStackInput"}
8868	if s.ClientRequestToken != nil && len(*s.ClientRequestToken) < 1 {
8869		invalidParams.Add(request.NewErrParamMinLen("ClientRequestToken", 1))
8870	}
8871	if s.RoleARN != nil && len(*s.RoleARN) < 20 {
8872		invalidParams.Add(request.NewErrParamMinLen("RoleARN", 20))
8873	}
8874	if s.StackName == nil {
8875		invalidParams.Add(request.NewErrParamRequired("StackName"))
8876	}
8877
8878	if invalidParams.Len() > 0 {
8879		return invalidParams
8880	}
8881	return nil
8882}
8883
8884// SetClientRequestToken sets the ClientRequestToken field's value.
8885func (s *DeleteStackInput) SetClientRequestToken(v string) *DeleteStackInput {
8886	s.ClientRequestToken = &v
8887	return s
8888}
8889
8890// SetRetainResources sets the RetainResources field's value.
8891func (s *DeleteStackInput) SetRetainResources(v []*string) *DeleteStackInput {
8892	s.RetainResources = v
8893	return s
8894}
8895
8896// SetRoleARN sets the RoleARN field's value.
8897func (s *DeleteStackInput) SetRoleARN(v string) *DeleteStackInput {
8898	s.RoleARN = &v
8899	return s
8900}
8901
8902// SetStackName sets the StackName field's value.
8903func (s *DeleteStackInput) SetStackName(v string) *DeleteStackInput {
8904	s.StackName = &v
8905	return s
8906}
8907
8908type DeleteStackInstancesInput struct {
8909	_ struct{} `type:"structure"`
8910
8911	// [Self-managed permissions] The names of the accounts that you want to delete
8912	// stack instances for.
8913	//
8914	// You can specify Accounts or DeploymentTargets, but not both.
8915	Accounts []*string `type:"list"`
8916
8917	// [Service-managed permissions] Specifies whether you are acting as an account
8918	// administrator in the organization's management account or as a delegated
8919	// administrator in a member account.
8920	//
8921	// By default, SELF is specified. Use SELF for stack sets with self-managed
8922	// permissions.
8923	//
8924	//    * If you are signed in to the management account, specify SELF.
8925	//
8926	//    * If you are signed in to a delegated administrator account, specify DELEGATED_ADMIN.
8927	//    Your account must be registered as a delegated administrator in the management
8928	//    account. For more information, see Register a delegated administrator
8929	//    (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/stacksets-orgs-delegated-admin.html)
8930	//    in the CloudFormation User Guide.
8931	CallAs *string `type:"string" enum:"CallAs"`
8932
8933	// [Service-managed permissions] The Organizations accounts from which to delete
8934	// stack instances.
8935	//
8936	// You can specify Accounts or DeploymentTargets, but not both.
8937	DeploymentTargets *DeploymentTargets `type:"structure"`
8938
8939	// The unique identifier for this stack set operation.
8940	//
8941	// If you don't specify an operation ID, the SDK generates one automatically.
8942	//
8943	// The operation ID also functions as an idempotency token, to ensure that CloudFormation
8944	// performs the stack set operation only once, even if you retry the request
8945	// multiple times. You can retry stack set operation requests to ensure that
8946	// CloudFormation successfully received them.
8947	//
8948	// Repeating this stack set operation with a new operation ID retries all stack
8949	// instances whose status is OUTDATED.
8950	OperationId *string `min:"1" type:"string" idempotencyToken:"true"`
8951
8952	// Preferences for how CloudFormation performs this stack set operation.
8953	OperationPreferences *StackSetOperationPreferences `type:"structure"`
8954
8955	// The Regions where you want to delete stack set instances.
8956	//
8957	// Regions is a required field
8958	Regions []*string `type:"list" required:"true"`
8959
8960	// Removes the stack instances from the specified stack set, but doesn't delete
8961	// the stacks. You can't reassociate a retained stack or add an existing, saved
8962	// stack to a new stack set.
8963	//
8964	// For more information, see Stack set operation options (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/stacksets-concepts.html#stackset-ops-options).
8965	//
8966	// RetainStacks is a required field
8967	RetainStacks *bool `type:"boolean" required:"true"`
8968
8969	// The name or unique ID of the stack set that you want to delete stack instances
8970	// for.
8971	//
8972	// StackSetName is a required field
8973	StackSetName *string `type:"string" required:"true"`
8974}
8975
8976// String returns the string representation
8977func (s DeleteStackInstancesInput) String() string {
8978	return awsutil.Prettify(s)
8979}
8980
8981// GoString returns the string representation
8982func (s DeleteStackInstancesInput) GoString() string {
8983	return s.String()
8984}
8985
8986// Validate inspects the fields of the type to determine if they are valid.
8987func (s *DeleteStackInstancesInput) Validate() error {
8988	invalidParams := request.ErrInvalidParams{Context: "DeleteStackInstancesInput"}
8989	if s.OperationId != nil && len(*s.OperationId) < 1 {
8990		invalidParams.Add(request.NewErrParamMinLen("OperationId", 1))
8991	}
8992	if s.Regions == nil {
8993		invalidParams.Add(request.NewErrParamRequired("Regions"))
8994	}
8995	if s.RetainStacks == nil {
8996		invalidParams.Add(request.NewErrParamRequired("RetainStacks"))
8997	}
8998	if s.StackSetName == nil {
8999		invalidParams.Add(request.NewErrParamRequired("StackSetName"))
9000	}
9001	if s.DeploymentTargets != nil {
9002		if err := s.DeploymentTargets.Validate(); err != nil {
9003			invalidParams.AddNested("DeploymentTargets", err.(request.ErrInvalidParams))
9004		}
9005	}
9006	if s.OperationPreferences != nil {
9007		if err := s.OperationPreferences.Validate(); err != nil {
9008			invalidParams.AddNested("OperationPreferences", err.(request.ErrInvalidParams))
9009		}
9010	}
9011
9012	if invalidParams.Len() > 0 {
9013		return invalidParams
9014	}
9015	return nil
9016}
9017
9018// SetAccounts sets the Accounts field's value.
9019func (s *DeleteStackInstancesInput) SetAccounts(v []*string) *DeleteStackInstancesInput {
9020	s.Accounts = v
9021	return s
9022}
9023
9024// SetCallAs sets the CallAs field's value.
9025func (s *DeleteStackInstancesInput) SetCallAs(v string) *DeleteStackInstancesInput {
9026	s.CallAs = &v
9027	return s
9028}
9029
9030// SetDeploymentTargets sets the DeploymentTargets field's value.
9031func (s *DeleteStackInstancesInput) SetDeploymentTargets(v *DeploymentTargets) *DeleteStackInstancesInput {
9032	s.DeploymentTargets = v
9033	return s
9034}
9035
9036// SetOperationId sets the OperationId field's value.
9037func (s *DeleteStackInstancesInput) SetOperationId(v string) *DeleteStackInstancesInput {
9038	s.OperationId = &v
9039	return s
9040}
9041
9042// SetOperationPreferences sets the OperationPreferences field's value.
9043func (s *DeleteStackInstancesInput) SetOperationPreferences(v *StackSetOperationPreferences) *DeleteStackInstancesInput {
9044	s.OperationPreferences = v
9045	return s
9046}
9047
9048// SetRegions sets the Regions field's value.
9049func (s *DeleteStackInstancesInput) SetRegions(v []*string) *DeleteStackInstancesInput {
9050	s.Regions = v
9051	return s
9052}
9053
9054// SetRetainStacks sets the RetainStacks field's value.
9055func (s *DeleteStackInstancesInput) SetRetainStacks(v bool) *DeleteStackInstancesInput {
9056	s.RetainStacks = &v
9057	return s
9058}
9059
9060// SetStackSetName sets the StackSetName field's value.
9061func (s *DeleteStackInstancesInput) SetStackSetName(v string) *DeleteStackInstancesInput {
9062	s.StackSetName = &v
9063	return s
9064}
9065
9066type DeleteStackInstancesOutput struct {
9067	_ struct{} `type:"structure"`
9068
9069	// The unique identifier for this stack set operation.
9070	OperationId *string `min:"1" type:"string"`
9071}
9072
9073// String returns the string representation
9074func (s DeleteStackInstancesOutput) String() string {
9075	return awsutil.Prettify(s)
9076}
9077
9078// GoString returns the string representation
9079func (s DeleteStackInstancesOutput) GoString() string {
9080	return s.String()
9081}
9082
9083// SetOperationId sets the OperationId field's value.
9084func (s *DeleteStackInstancesOutput) SetOperationId(v string) *DeleteStackInstancesOutput {
9085	s.OperationId = &v
9086	return s
9087}
9088
9089type DeleteStackOutput struct {
9090	_ struct{} `type:"structure"`
9091}
9092
9093// String returns the string representation
9094func (s DeleteStackOutput) String() string {
9095	return awsutil.Prettify(s)
9096}
9097
9098// GoString returns the string representation
9099func (s DeleteStackOutput) GoString() string {
9100	return s.String()
9101}
9102
9103type DeleteStackSetInput 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 account must be registered as a delegated administrator in the management
9117	//    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 CloudFormation User Guide.
9120	CallAs *string `type:"string" enum:"CallAs"`
9121
9122	// The name or unique ID of the stack set that you're deleting. You can obtain
9123	// this value by running ListStackSets.
9124	//
9125	// StackSetName is a required field
9126	StackSetName *string `type:"string" required:"true"`
9127}
9128
9129// String returns the string representation
9130func (s DeleteStackSetInput) String() string {
9131	return awsutil.Prettify(s)
9132}
9133
9134// GoString returns the string representation
9135func (s DeleteStackSetInput) GoString() string {
9136	return s.String()
9137}
9138
9139// Validate inspects the fields of the type to determine if they are valid.
9140func (s *DeleteStackSetInput) Validate() error {
9141	invalidParams := request.ErrInvalidParams{Context: "DeleteStackSetInput"}
9142	if s.StackSetName == nil {
9143		invalidParams.Add(request.NewErrParamRequired("StackSetName"))
9144	}
9145
9146	if invalidParams.Len() > 0 {
9147		return invalidParams
9148	}
9149	return nil
9150}
9151
9152// SetCallAs sets the CallAs field's value.
9153func (s *DeleteStackSetInput) SetCallAs(v string) *DeleteStackSetInput {
9154	s.CallAs = &v
9155	return s
9156}
9157
9158// SetStackSetName sets the StackSetName field's value.
9159func (s *DeleteStackSetInput) SetStackSetName(v string) *DeleteStackSetInput {
9160	s.StackSetName = &v
9161	return s
9162}
9163
9164type DeleteStackSetOutput struct {
9165	_ struct{} `type:"structure"`
9166}
9167
9168// String returns the string representation
9169func (s DeleteStackSetOutput) String() string {
9170	return awsutil.Prettify(s)
9171}
9172
9173// GoString returns the string representation
9174func (s DeleteStackSetOutput) GoString() string {
9175	return s.String()
9176}
9177
9178// [Service-managed permissions] The Organizations accounts to which StackSets
9179// deploys. StackSets does not deploy stack instances to the organization management
9180// account, even if the organization management account is in your organization
9181// or in an OU in your organization.
9182//
9183// For update operations, you can specify either Accounts or OrganizationalUnitIds.
9184// For create and delete operations, specify OrganizationalUnitIds.
9185type DeploymentTargets struct {
9186	_ struct{} `type:"structure"`
9187
9188	// The names of one or more accounts for which you want to deploy stack set
9189	// updates.
9190	Accounts []*string `type:"list"`
9191
9192	// Returns the value of the AccountsUrl property.
9193	AccountsUrl *string `min:"1" type:"string"`
9194
9195	// The organization root ID or organizational unit (OU) IDs to which StackSets
9196	// deploys.
9197	OrganizationalUnitIds []*string `type:"list"`
9198}
9199
9200// String returns the string representation
9201func (s DeploymentTargets) String() string {
9202	return awsutil.Prettify(s)
9203}
9204
9205// GoString returns the string representation
9206func (s DeploymentTargets) GoString() string {
9207	return s.String()
9208}
9209
9210// Validate inspects the fields of the type to determine if they are valid.
9211func (s *DeploymentTargets) Validate() error {
9212	invalidParams := request.ErrInvalidParams{Context: "DeploymentTargets"}
9213	if s.AccountsUrl != nil && len(*s.AccountsUrl) < 1 {
9214		invalidParams.Add(request.NewErrParamMinLen("AccountsUrl", 1))
9215	}
9216
9217	if invalidParams.Len() > 0 {
9218		return invalidParams
9219	}
9220	return nil
9221}
9222
9223// SetAccounts sets the Accounts field's value.
9224func (s *DeploymentTargets) SetAccounts(v []*string) *DeploymentTargets {
9225	s.Accounts = v
9226	return s
9227}
9228
9229// SetAccountsUrl sets the AccountsUrl field's value.
9230func (s *DeploymentTargets) SetAccountsUrl(v string) *DeploymentTargets {
9231	s.AccountsUrl = &v
9232	return s
9233}
9234
9235// SetOrganizationalUnitIds sets the OrganizationalUnitIds field's value.
9236func (s *DeploymentTargets) SetOrganizationalUnitIds(v []*string) *DeploymentTargets {
9237	s.OrganizationalUnitIds = v
9238	return s
9239}
9240
9241type DeregisterTypeInput struct {
9242	_ struct{} `type:"structure"`
9243
9244	// The Amazon Resource Name (ARN) of the extension.
9245	//
9246	// Conditional: You must specify either TypeName and Type, or Arn.
9247	Arn *string `type:"string"`
9248
9249	// The kind of extension.
9250	//
9251	// Conditional: You must specify either TypeName and Type, or Arn.
9252	Type *string `type:"string" enum:"RegistryType"`
9253
9254	// The name of the extension.
9255	//
9256	// Conditional: You must specify either TypeName and Type, or Arn.
9257	TypeName *string `min:"10" type:"string"`
9258
9259	// The ID of a specific version of the extension. The version ID is the value
9260	// at the end of the Amazon Resource Name (ARN) assigned to the extension version
9261	// when it is registered.
9262	VersionId *string `min:"1" type:"string"`
9263}
9264
9265// String returns the string representation
9266func (s DeregisterTypeInput) String() string {
9267	return awsutil.Prettify(s)
9268}
9269
9270// GoString returns the string representation
9271func (s DeregisterTypeInput) GoString() string {
9272	return s.String()
9273}
9274
9275// Validate inspects the fields of the type to determine if they are valid.
9276func (s *DeregisterTypeInput) Validate() error {
9277	invalidParams := request.ErrInvalidParams{Context: "DeregisterTypeInput"}
9278	if s.TypeName != nil && len(*s.TypeName) < 10 {
9279		invalidParams.Add(request.NewErrParamMinLen("TypeName", 10))
9280	}
9281	if s.VersionId != nil && len(*s.VersionId) < 1 {
9282		invalidParams.Add(request.NewErrParamMinLen("VersionId", 1))
9283	}
9284
9285	if invalidParams.Len() > 0 {
9286		return invalidParams
9287	}
9288	return nil
9289}
9290
9291// SetArn sets the Arn field's value.
9292func (s *DeregisterTypeInput) SetArn(v string) *DeregisterTypeInput {
9293	s.Arn = &v
9294	return s
9295}
9296
9297// SetType sets the Type field's value.
9298func (s *DeregisterTypeInput) SetType(v string) *DeregisterTypeInput {
9299	s.Type = &v
9300	return s
9301}
9302
9303// SetTypeName sets the TypeName field's value.
9304func (s *DeregisterTypeInput) SetTypeName(v string) *DeregisterTypeInput {
9305	s.TypeName = &v
9306	return s
9307}
9308
9309// SetVersionId sets the VersionId field's value.
9310func (s *DeregisterTypeInput) SetVersionId(v string) *DeregisterTypeInput {
9311	s.VersionId = &v
9312	return s
9313}
9314
9315type DeregisterTypeOutput struct {
9316	_ struct{} `type:"structure"`
9317}
9318
9319// String returns the string representation
9320func (s DeregisterTypeOutput) String() string {
9321	return awsutil.Prettify(s)
9322}
9323
9324// GoString returns the string representation
9325func (s DeregisterTypeOutput) GoString() string {
9326	return s.String()
9327}
9328
9329// The input for the DescribeAccountLimits action.
9330type DescribeAccountLimitsInput struct {
9331	_ struct{} `type:"structure"`
9332
9333	// A string that identifies the next page of limits that you want to retrieve.
9334	NextToken *string `min:"1" type:"string"`
9335}
9336
9337// String returns the string representation
9338func (s DescribeAccountLimitsInput) String() string {
9339	return awsutil.Prettify(s)
9340}
9341
9342// GoString returns the string representation
9343func (s DescribeAccountLimitsInput) GoString() string {
9344	return s.String()
9345}
9346
9347// Validate inspects the fields of the type to determine if they are valid.
9348func (s *DescribeAccountLimitsInput) Validate() error {
9349	invalidParams := request.ErrInvalidParams{Context: "DescribeAccountLimitsInput"}
9350	if s.NextToken != nil && len(*s.NextToken) < 1 {
9351		invalidParams.Add(request.NewErrParamMinLen("NextToken", 1))
9352	}
9353
9354	if invalidParams.Len() > 0 {
9355		return invalidParams
9356	}
9357	return nil
9358}
9359
9360// SetNextToken sets the NextToken field's value.
9361func (s *DescribeAccountLimitsInput) SetNextToken(v string) *DescribeAccountLimitsInput {
9362	s.NextToken = &v
9363	return s
9364}
9365
9366// The output for the DescribeAccountLimits action.
9367type DescribeAccountLimitsOutput struct {
9368	_ struct{} `type:"structure"`
9369
9370	// An account limit structure that contain a list of CloudFormation account
9371	// limits and their values.
9372	AccountLimits []*AccountLimit `type:"list"`
9373
9374	// If the output exceeds 1 MB in size, a string that identifies the next page
9375	// of limits. If no additional page exists, this value is null.
9376	NextToken *string `min:"1" type:"string"`
9377}
9378
9379// String returns the string representation
9380func (s DescribeAccountLimitsOutput) String() string {
9381	return awsutil.Prettify(s)
9382}
9383
9384// GoString returns the string representation
9385func (s DescribeAccountLimitsOutput) GoString() string {
9386	return s.String()
9387}
9388
9389// SetAccountLimits sets the AccountLimits field's value.
9390func (s *DescribeAccountLimitsOutput) SetAccountLimits(v []*AccountLimit) *DescribeAccountLimitsOutput {
9391	s.AccountLimits = v
9392	return s
9393}
9394
9395// SetNextToken sets the NextToken field's value.
9396func (s *DescribeAccountLimitsOutput) SetNextToken(v string) *DescribeAccountLimitsOutput {
9397	s.NextToken = &v
9398	return s
9399}
9400
9401// The input for the DescribeChangeSet action.
9402type DescribeChangeSetInput struct {
9403	_ struct{} `type:"structure"`
9404
9405	// The name or Amazon Resource Name (ARN) of the change set that you want to
9406	// describe.
9407	//
9408	// ChangeSetName is a required field
9409	ChangeSetName *string `min:"1" type:"string" required:"true"`
9410
9411	// A string (provided by the DescribeChangeSet response output) that identifies
9412	// the next page of information that you want to retrieve.
9413	NextToken *string `min:"1" type:"string"`
9414
9415	// If you specified the name of a change set, specify the stack name or ID (ARN)
9416	// of the change set you want to describe.
9417	StackName *string `min:"1" type:"string"`
9418}
9419
9420// String returns the string representation
9421func (s DescribeChangeSetInput) String() string {
9422	return awsutil.Prettify(s)
9423}
9424
9425// GoString returns the string representation
9426func (s DescribeChangeSetInput) GoString() string {
9427	return s.String()
9428}
9429
9430// Validate inspects the fields of the type to determine if they are valid.
9431func (s *DescribeChangeSetInput) Validate() error {
9432	invalidParams := request.ErrInvalidParams{Context: "DescribeChangeSetInput"}
9433	if s.ChangeSetName == nil {
9434		invalidParams.Add(request.NewErrParamRequired("ChangeSetName"))
9435	}
9436	if s.ChangeSetName != nil && len(*s.ChangeSetName) < 1 {
9437		invalidParams.Add(request.NewErrParamMinLen("ChangeSetName", 1))
9438	}
9439	if s.NextToken != nil && len(*s.NextToken) < 1 {
9440		invalidParams.Add(request.NewErrParamMinLen("NextToken", 1))
9441	}
9442	if s.StackName != nil && len(*s.StackName) < 1 {
9443		invalidParams.Add(request.NewErrParamMinLen("StackName", 1))
9444	}
9445
9446	if invalidParams.Len() > 0 {
9447		return invalidParams
9448	}
9449	return nil
9450}
9451
9452// SetChangeSetName sets the ChangeSetName field's value.
9453func (s *DescribeChangeSetInput) SetChangeSetName(v string) *DescribeChangeSetInput {
9454	s.ChangeSetName = &v
9455	return s
9456}
9457
9458// SetNextToken sets the NextToken field's value.
9459func (s *DescribeChangeSetInput) SetNextToken(v string) *DescribeChangeSetInput {
9460	s.NextToken = &v
9461	return s
9462}
9463
9464// SetStackName sets the StackName field's value.
9465func (s *DescribeChangeSetInput) SetStackName(v string) *DescribeChangeSetInput {
9466	s.StackName = &v
9467	return s
9468}
9469
9470// The output for the DescribeChangeSet action.
9471type DescribeChangeSetOutput struct {
9472	_ struct{} `type:"structure"`
9473
9474	// If you execute the change set, the list of capabilities that were explicitly
9475	// acknowledged when the change set was created.
9476	Capabilities []*string `type:"list"`
9477
9478	// The ARN of the change set.
9479	ChangeSetId *string `min:"1" type:"string"`
9480
9481	// The name of the change set.
9482	ChangeSetName *string `min:"1" type:"string"`
9483
9484	// A list of Change structures that describes the resources CloudFormation changes
9485	// if you execute the change set.
9486	Changes []*Change `type:"list"`
9487
9488	// The start time when the change set was created, in UTC.
9489	CreationTime *time.Time `type:"timestamp"`
9490
9491	// Information about the change set.
9492	Description *string `min:"1" type:"string"`
9493
9494	// If the change set execution status is AVAILABLE, you can execute the change
9495	// set. If you can’t execute the change set, the status indicates why. For
9496	// example, a change set might be in an UNAVAILABLE state because CloudFormation
9497	// is still creating it or in an OBSOLETE state because the stack was already
9498	// updated.
9499	ExecutionStatus *string `type:"string" enum:"ExecutionStatus"`
9500
9501	// Verifies if IncludeNestedStacks is set to True.
9502	IncludeNestedStacks *bool `type:"boolean"`
9503
9504	// If the output exceeds 1 MB, a string that identifies the next page of changes.
9505	// If there is no additional page, this value is null.
9506	NextToken *string `min:"1" type:"string"`
9507
9508	// The ARNs of the Amazon Simple Notification Service (Amazon SNS) topics that
9509	// will be associated with the stack if you execute the change set.
9510	NotificationARNs []*string `type:"list"`
9511
9512	// A list of Parameter structures that describes the input parameters and their
9513	// values used to create the change set. For more information, see the Parameter
9514	// (https://docs.aws.amazon.com/AWSCloudFormation/latest/APIReference/API_Parameter.html)
9515	// data type.
9516	Parameters []*Parameter `type:"list"`
9517
9518	// Specifies the change set ID of the parent change set in the current nested
9519	// change set hierarchy.
9520	ParentChangeSetId *string `min:"1" type:"string"`
9521
9522	// The rollback triggers for CloudFormation to monitor during stack creation
9523	// and updating operations, and for the specified monitoring period afterwards.
9524	RollbackConfiguration *RollbackConfiguration `type:"structure"`
9525
9526	// Specifies the change set ID of the root change set in the current nested
9527	// change set hierarchy.
9528	RootChangeSetId *string `min:"1" type:"string"`
9529
9530	// The ARN of the stack that is associated with the change set.
9531	StackId *string `type:"string"`
9532
9533	// The name of the stack that is associated with the change set.
9534	StackName *string `type:"string"`
9535
9536	// The current status of the change set, such as CREATE_IN_PROGRESS, CREATE_COMPLETE,
9537	// or FAILED.
9538	Status *string `type:"string" enum:"ChangeSetStatus"`
9539
9540	// A description of the change set's status. For example, if your attempt to
9541	// create a change set failed, CloudFormation shows the error message.
9542	StatusReason *string `type:"string"`
9543
9544	// If you execute the change set, the tags that will be associated with the
9545	// stack.
9546	Tags []*Tag `type:"list"`
9547}
9548
9549// String returns the string representation
9550func (s DescribeChangeSetOutput) String() string {
9551	return awsutil.Prettify(s)
9552}
9553
9554// GoString returns the string representation
9555func (s DescribeChangeSetOutput) GoString() string {
9556	return s.String()
9557}
9558
9559// SetCapabilities sets the Capabilities field's value.
9560func (s *DescribeChangeSetOutput) SetCapabilities(v []*string) *DescribeChangeSetOutput {
9561	s.Capabilities = v
9562	return s
9563}
9564
9565// SetChangeSetId sets the ChangeSetId field's value.
9566func (s *DescribeChangeSetOutput) SetChangeSetId(v string) *DescribeChangeSetOutput {
9567	s.ChangeSetId = &v
9568	return s
9569}
9570
9571// SetChangeSetName sets the ChangeSetName field's value.
9572func (s *DescribeChangeSetOutput) SetChangeSetName(v string) *DescribeChangeSetOutput {
9573	s.ChangeSetName = &v
9574	return s
9575}
9576
9577// SetChanges sets the Changes field's value.
9578func (s *DescribeChangeSetOutput) SetChanges(v []*Change) *DescribeChangeSetOutput {
9579	s.Changes = v
9580	return s
9581}
9582
9583// SetCreationTime sets the CreationTime field's value.
9584func (s *DescribeChangeSetOutput) SetCreationTime(v time.Time) *DescribeChangeSetOutput {
9585	s.CreationTime = &v
9586	return s
9587}
9588
9589// SetDescription sets the Description field's value.
9590func (s *DescribeChangeSetOutput) SetDescription(v string) *DescribeChangeSetOutput {
9591	s.Description = &v
9592	return s
9593}
9594
9595// SetExecutionStatus sets the ExecutionStatus field's value.
9596func (s *DescribeChangeSetOutput) SetExecutionStatus(v string) *DescribeChangeSetOutput {
9597	s.ExecutionStatus = &v
9598	return s
9599}
9600
9601// SetIncludeNestedStacks sets the IncludeNestedStacks field's value.
9602func (s *DescribeChangeSetOutput) SetIncludeNestedStacks(v bool) *DescribeChangeSetOutput {
9603	s.IncludeNestedStacks = &v
9604	return s
9605}
9606
9607// SetNextToken sets the NextToken field's value.
9608func (s *DescribeChangeSetOutput) SetNextToken(v string) *DescribeChangeSetOutput {
9609	s.NextToken = &v
9610	return s
9611}
9612
9613// SetNotificationARNs sets the NotificationARNs field's value.
9614func (s *DescribeChangeSetOutput) SetNotificationARNs(v []*string) *DescribeChangeSetOutput {
9615	s.NotificationARNs = v
9616	return s
9617}
9618
9619// SetParameters sets the Parameters field's value.
9620func (s *DescribeChangeSetOutput) SetParameters(v []*Parameter) *DescribeChangeSetOutput {
9621	s.Parameters = v
9622	return s
9623}
9624
9625// SetParentChangeSetId sets the ParentChangeSetId field's value.
9626func (s *DescribeChangeSetOutput) SetParentChangeSetId(v string) *DescribeChangeSetOutput {
9627	s.ParentChangeSetId = &v
9628	return s
9629}
9630
9631// SetRollbackConfiguration sets the RollbackConfiguration field's value.
9632func (s *DescribeChangeSetOutput) SetRollbackConfiguration(v *RollbackConfiguration) *DescribeChangeSetOutput {
9633	s.RollbackConfiguration = v
9634	return s
9635}
9636
9637// SetRootChangeSetId sets the RootChangeSetId field's value.
9638func (s *DescribeChangeSetOutput) SetRootChangeSetId(v string) *DescribeChangeSetOutput {
9639	s.RootChangeSetId = &v
9640	return s
9641}
9642
9643// SetStackId sets the StackId field's value.
9644func (s *DescribeChangeSetOutput) SetStackId(v string) *DescribeChangeSetOutput {
9645	s.StackId = &v
9646	return s
9647}
9648
9649// SetStackName sets the StackName field's value.
9650func (s *DescribeChangeSetOutput) SetStackName(v string) *DescribeChangeSetOutput {
9651	s.StackName = &v
9652	return s
9653}
9654
9655// SetStatus sets the Status field's value.
9656func (s *DescribeChangeSetOutput) SetStatus(v string) *DescribeChangeSetOutput {
9657	s.Status = &v
9658	return s
9659}
9660
9661// SetStatusReason sets the StatusReason field's value.
9662func (s *DescribeChangeSetOutput) SetStatusReason(v string) *DescribeChangeSetOutput {
9663	s.StatusReason = &v
9664	return s
9665}
9666
9667// SetTags sets the Tags field's value.
9668func (s *DescribeChangeSetOutput) SetTags(v []*Tag) *DescribeChangeSetOutput {
9669	s.Tags = v
9670	return s
9671}
9672
9673type DescribePublisherInput struct {
9674	_ struct{} `type:"structure"`
9675
9676	// The ID of the extension publisher.
9677	//
9678	// If you do not supply a PublisherId, and you have registered as an extension
9679	// publisher, DescribePublisher returns information about your own publisher
9680	// account.
9681	PublisherId *string `min:"1" type:"string"`
9682}
9683
9684// String returns the string representation
9685func (s DescribePublisherInput) String() string {
9686	return awsutil.Prettify(s)
9687}
9688
9689// GoString returns the string representation
9690func (s DescribePublisherInput) GoString() string {
9691	return s.String()
9692}
9693
9694// Validate inspects the fields of the type to determine if they are valid.
9695func (s *DescribePublisherInput) Validate() error {
9696	invalidParams := request.ErrInvalidParams{Context: "DescribePublisherInput"}
9697	if s.PublisherId != nil && len(*s.PublisherId) < 1 {
9698		invalidParams.Add(request.NewErrParamMinLen("PublisherId", 1))
9699	}
9700
9701	if invalidParams.Len() > 0 {
9702		return invalidParams
9703	}
9704	return nil
9705}
9706
9707// SetPublisherId sets the PublisherId field's value.
9708func (s *DescribePublisherInput) SetPublisherId(v string) *DescribePublisherInput {
9709	s.PublisherId = &v
9710	return s
9711}
9712
9713type DescribePublisherOutput struct {
9714	_ struct{} `type:"structure"`
9715
9716	// The type of account used as the identity provider when registering this publisher
9717	// with CloudFormation.
9718	IdentityProvider *string `type:"string" enum:"IdentityProvider"`
9719
9720	// The ID of the extension publisher.
9721	PublisherId *string `min:"1" type:"string"`
9722
9723	// The URL to the publisher's profile with the identity provider.
9724	PublisherProfile *string `type:"string"`
9725
9726	// Whether the publisher is verified. Currently, all registered publishers are
9727	// verified.
9728	PublisherStatus *string `type:"string" enum:"PublisherStatus"`
9729}
9730
9731// String returns the string representation
9732func (s DescribePublisherOutput) String() string {
9733	return awsutil.Prettify(s)
9734}
9735
9736// GoString returns the string representation
9737func (s DescribePublisherOutput) GoString() string {
9738	return s.String()
9739}
9740
9741// SetIdentityProvider sets the IdentityProvider field's value.
9742func (s *DescribePublisherOutput) SetIdentityProvider(v string) *DescribePublisherOutput {
9743	s.IdentityProvider = &v
9744	return s
9745}
9746
9747// SetPublisherId sets the PublisherId field's value.
9748func (s *DescribePublisherOutput) SetPublisherId(v string) *DescribePublisherOutput {
9749	s.PublisherId = &v
9750	return s
9751}
9752
9753// SetPublisherProfile sets the PublisherProfile field's value.
9754func (s *DescribePublisherOutput) SetPublisherProfile(v string) *DescribePublisherOutput {
9755	s.PublisherProfile = &v
9756	return s
9757}
9758
9759// SetPublisherStatus sets the PublisherStatus field's value.
9760func (s *DescribePublisherOutput) SetPublisherStatus(v string) *DescribePublisherOutput {
9761	s.PublisherStatus = &v
9762	return s
9763}
9764
9765type DescribeStackDriftDetectionStatusInput struct {
9766	_ struct{} `type:"structure"`
9767
9768	// The ID of the drift detection results of this operation.
9769	//
9770	// CloudFormation generates new results, with a new drift detection ID, each
9771	// time this operation is run. However, the number of drift results CloudFormation
9772	// retains for any given stack, and for how long, may vary.
9773	//
9774	// StackDriftDetectionId is a required field
9775	StackDriftDetectionId *string `min:"1" type:"string" required:"true"`
9776}
9777
9778// String returns the string representation
9779func (s DescribeStackDriftDetectionStatusInput) String() string {
9780	return awsutil.Prettify(s)
9781}
9782
9783// GoString returns the string representation
9784func (s DescribeStackDriftDetectionStatusInput) GoString() string {
9785	return s.String()
9786}
9787
9788// Validate inspects the fields of the type to determine if they are valid.
9789func (s *DescribeStackDriftDetectionStatusInput) Validate() error {
9790	invalidParams := request.ErrInvalidParams{Context: "DescribeStackDriftDetectionStatusInput"}
9791	if s.StackDriftDetectionId == nil {
9792		invalidParams.Add(request.NewErrParamRequired("StackDriftDetectionId"))
9793	}
9794	if s.StackDriftDetectionId != nil && len(*s.StackDriftDetectionId) < 1 {
9795		invalidParams.Add(request.NewErrParamMinLen("StackDriftDetectionId", 1))
9796	}
9797
9798	if invalidParams.Len() > 0 {
9799		return invalidParams
9800	}
9801	return nil
9802}
9803
9804// SetStackDriftDetectionId sets the StackDriftDetectionId field's value.
9805func (s *DescribeStackDriftDetectionStatusInput) SetStackDriftDetectionId(v string) *DescribeStackDriftDetectionStatusInput {
9806	s.StackDriftDetectionId = &v
9807	return s
9808}
9809
9810type DescribeStackDriftDetectionStatusOutput struct {
9811	_ struct{} `type:"structure"`
9812
9813	// The status of the stack drift detection operation.
9814	//
9815	//    * DETECTION_COMPLETE: The stack drift detection operation has successfully
9816	//    completed for all resources in the stack that support drift detection.
9817	//    (Resources that do not currently support stack detection remain unchecked.)
9818	//    If you specified logical resource IDs for CloudFormation to use as a filter
9819	//    for the stack drift detection operation, only the resources with those
9820	//    logical IDs are checked for drift.
9821	//
9822	//    * DETECTION_FAILED: The stack drift detection operation has failed for
9823	//    at least one resource in the stack. Results will be available for resources
9824	//    on which CloudFormation successfully completed drift detection.
9825	//
9826	//    * DETECTION_IN_PROGRESS: The stack drift detection operation is currently
9827	//    in progress.
9828	//
9829	// DetectionStatus is a required field
9830	DetectionStatus *string `type:"string" required:"true" enum:"StackDriftDetectionStatus"`
9831
9832	// The reason the stack drift detection operation has its current status.
9833	DetectionStatusReason *string `type:"string"`
9834
9835	// Total number of stack resources that have drifted. This is NULL until the
9836	// drift detection operation reaches a status of DETECTION_COMPLETE. This value
9837	// will be 0 for stacks whose drift status is IN_SYNC.
9838	DriftedStackResourceCount *int64 `type:"integer"`
9839
9840	// The ID of the drift detection results of this operation.
9841	//
9842	// CloudFormation generates new results, with a new drift detection ID, each
9843	// time this operation is run. However, the number of reports CloudFormation
9844	// retains for any given stack, and for how long, may vary.
9845	//
9846	// StackDriftDetectionId is a required field
9847	StackDriftDetectionId *string `min:"1" type:"string" required:"true"`
9848
9849	// Status of the stack's actual configuration compared to its expected configuration.
9850	//
9851	//    * DRIFTED: The stack differs from its expected template configuration.
9852	//    A stack is considered to have drifted if one or more of its resources
9853	//    have drifted.
9854	//
9855	//    * NOT_CHECKED: CloudFormation has not checked if the stack differs from
9856	//    its expected template configuration.
9857	//
9858	//    * IN_SYNC: The stack's actual configuration matches its expected template
9859	//    configuration.
9860	//
9861	//    * UNKNOWN: This value is reserved for future use.
9862	StackDriftStatus *string `type:"string" enum:"StackDriftStatus"`
9863
9864	// The ID of the stack.
9865	//
9866	// StackId is a required field
9867	StackId *string `type:"string" required:"true"`
9868
9869	// Time at which the stack drift detection operation was initiated.
9870	//
9871	// Timestamp is a required field
9872	Timestamp *time.Time `type:"timestamp" required:"true"`
9873}
9874
9875// String returns the string representation
9876func (s DescribeStackDriftDetectionStatusOutput) String() string {
9877	return awsutil.Prettify(s)
9878}
9879
9880// GoString returns the string representation
9881func (s DescribeStackDriftDetectionStatusOutput) GoString() string {
9882	return s.String()
9883}
9884
9885// SetDetectionStatus sets the DetectionStatus field's value.
9886func (s *DescribeStackDriftDetectionStatusOutput) SetDetectionStatus(v string) *DescribeStackDriftDetectionStatusOutput {
9887	s.DetectionStatus = &v
9888	return s
9889}
9890
9891// SetDetectionStatusReason sets the DetectionStatusReason field's value.
9892func (s *DescribeStackDriftDetectionStatusOutput) SetDetectionStatusReason(v string) *DescribeStackDriftDetectionStatusOutput {
9893	s.DetectionStatusReason = &v
9894	return s
9895}
9896
9897// SetDriftedStackResourceCount sets the DriftedStackResourceCount field's value.
9898func (s *DescribeStackDriftDetectionStatusOutput) SetDriftedStackResourceCount(v int64) *DescribeStackDriftDetectionStatusOutput {
9899	s.DriftedStackResourceCount = &v
9900	return s
9901}
9902
9903// SetStackDriftDetectionId sets the StackDriftDetectionId field's value.
9904func (s *DescribeStackDriftDetectionStatusOutput) SetStackDriftDetectionId(v string) *DescribeStackDriftDetectionStatusOutput {
9905	s.StackDriftDetectionId = &v
9906	return s
9907}
9908
9909// SetStackDriftStatus sets the StackDriftStatus field's value.
9910func (s *DescribeStackDriftDetectionStatusOutput) SetStackDriftStatus(v string) *DescribeStackDriftDetectionStatusOutput {
9911	s.StackDriftStatus = &v
9912	return s
9913}
9914
9915// SetStackId sets the StackId field's value.
9916func (s *DescribeStackDriftDetectionStatusOutput) SetStackId(v string) *DescribeStackDriftDetectionStatusOutput {
9917	s.StackId = &v
9918	return s
9919}
9920
9921// SetTimestamp sets the Timestamp field's value.
9922func (s *DescribeStackDriftDetectionStatusOutput) SetTimestamp(v time.Time) *DescribeStackDriftDetectionStatusOutput {
9923	s.Timestamp = &v
9924	return s
9925}
9926
9927// The input for DescribeStackEvents action.
9928type DescribeStackEventsInput struct {
9929	_ struct{} `type:"structure"`
9930
9931	// A string that identifies the next page of events that you want to retrieve.
9932	NextToken *string `min:"1" type:"string"`
9933
9934	// The name or the unique stack ID that is associated with the stack, which
9935	// are not always interchangeable:
9936	//
9937	//    * Running stacks: You can specify either the stack's name or its unique
9938	//    stack ID.
9939	//
9940	//    * Deleted stacks: You must specify the unique stack ID.
9941	//
9942	// Default: There is no default value.
9943	StackName *string `type:"string"`
9944}
9945
9946// String returns the string representation
9947func (s DescribeStackEventsInput) String() string {
9948	return awsutil.Prettify(s)
9949}
9950
9951// GoString returns the string representation
9952func (s DescribeStackEventsInput) GoString() string {
9953	return s.String()
9954}
9955
9956// Validate inspects the fields of the type to determine if they are valid.
9957func (s *DescribeStackEventsInput) Validate() error {
9958	invalidParams := request.ErrInvalidParams{Context: "DescribeStackEventsInput"}
9959	if s.NextToken != nil && len(*s.NextToken) < 1 {
9960		invalidParams.Add(request.NewErrParamMinLen("NextToken", 1))
9961	}
9962
9963	if invalidParams.Len() > 0 {
9964		return invalidParams
9965	}
9966	return nil
9967}
9968
9969// SetNextToken sets the NextToken field's value.
9970func (s *DescribeStackEventsInput) SetNextToken(v string) *DescribeStackEventsInput {
9971	s.NextToken = &v
9972	return s
9973}
9974
9975// SetStackName sets the StackName field's value.
9976func (s *DescribeStackEventsInput) SetStackName(v string) *DescribeStackEventsInput {
9977	s.StackName = &v
9978	return s
9979}
9980
9981// The output for a DescribeStackEvents action.
9982type DescribeStackEventsOutput struct {
9983	_ struct{} `type:"structure"`
9984
9985	// If the output exceeds 1 MB in size, a string that identifies the next page
9986	// of events. If no additional page exists, this value is null.
9987	NextToken *string `min:"1" type:"string"`
9988
9989	// A list of StackEvents structures.
9990	StackEvents []*StackEvent `type:"list"`
9991}
9992
9993// String returns the string representation
9994func (s DescribeStackEventsOutput) String() string {
9995	return awsutil.Prettify(s)
9996}
9997
9998// GoString returns the string representation
9999func (s DescribeStackEventsOutput) GoString() string {
10000	return s.String()
10001}
10002
10003// SetNextToken sets the NextToken field's value.
10004func (s *DescribeStackEventsOutput) SetNextToken(v string) *DescribeStackEventsOutput {
10005	s.NextToken = &v
10006	return s
10007}
10008
10009// SetStackEvents sets the StackEvents field's value.
10010func (s *DescribeStackEventsOutput) SetStackEvents(v []*StackEvent) *DescribeStackEventsOutput {
10011	s.StackEvents = v
10012	return s
10013}
10014
10015type DescribeStackInstanceInput struct {
10016	_ struct{} `type:"structure"`
10017
10018	// [Service-managed permissions] Specifies whether you are acting as an account
10019	// administrator in the organization's management account or as a delegated
10020	// administrator in a member account.
10021	//
10022	// By default, SELF is specified. Use SELF for stack sets with self-managed
10023	// permissions.
10024	//
10025	//    * If you are signed in to the management account, specify SELF.
10026	//
10027	//    * If you are signed in to a delegated administrator account, specify DELEGATED_ADMIN.
10028	//    Your account must be registered as a delegated administrator in the management
10029	//    account. For more information, see Register a delegated administrator
10030	//    (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/stacksets-orgs-delegated-admin.html)
10031	//    in the CloudFormation User Guide.
10032	CallAs *string `type:"string" enum:"CallAs"`
10033
10034	// The ID of an account that's associated with this stack instance.
10035	//
10036	// StackInstanceAccount is a required field
10037	StackInstanceAccount *string `type:"string" required:"true"`
10038
10039	// The name of a Region that's associated with this stack instance.
10040	//
10041	// StackInstanceRegion is a required field
10042	StackInstanceRegion *string `type:"string" required:"true"`
10043
10044	// The name or the unique stack ID of the stack set that you want to get stack
10045	// instance information for.
10046	//
10047	// StackSetName is a required field
10048	StackSetName *string `type:"string" required:"true"`
10049}
10050
10051// String returns the string representation
10052func (s DescribeStackInstanceInput) String() string {
10053	return awsutil.Prettify(s)
10054}
10055
10056// GoString returns the string representation
10057func (s DescribeStackInstanceInput) GoString() string {
10058	return s.String()
10059}
10060
10061// Validate inspects the fields of the type to determine if they are valid.
10062func (s *DescribeStackInstanceInput) Validate() error {
10063	invalidParams := request.ErrInvalidParams{Context: "DescribeStackInstanceInput"}
10064	if s.StackInstanceAccount == nil {
10065		invalidParams.Add(request.NewErrParamRequired("StackInstanceAccount"))
10066	}
10067	if s.StackInstanceRegion == nil {
10068		invalidParams.Add(request.NewErrParamRequired("StackInstanceRegion"))
10069	}
10070	if s.StackSetName == nil {
10071		invalidParams.Add(request.NewErrParamRequired("StackSetName"))
10072	}
10073
10074	if invalidParams.Len() > 0 {
10075		return invalidParams
10076	}
10077	return nil
10078}
10079
10080// SetCallAs sets the CallAs field's value.
10081func (s *DescribeStackInstanceInput) SetCallAs(v string) *DescribeStackInstanceInput {
10082	s.CallAs = &v
10083	return s
10084}
10085
10086// SetStackInstanceAccount sets the StackInstanceAccount field's value.
10087func (s *DescribeStackInstanceInput) SetStackInstanceAccount(v string) *DescribeStackInstanceInput {
10088	s.StackInstanceAccount = &v
10089	return s
10090}
10091
10092// SetStackInstanceRegion sets the StackInstanceRegion field's value.
10093func (s *DescribeStackInstanceInput) SetStackInstanceRegion(v string) *DescribeStackInstanceInput {
10094	s.StackInstanceRegion = &v
10095	return s
10096}
10097
10098// SetStackSetName sets the StackSetName field's value.
10099func (s *DescribeStackInstanceInput) SetStackSetName(v string) *DescribeStackInstanceInput {
10100	s.StackSetName = &v
10101	return s
10102}
10103
10104type DescribeStackInstanceOutput struct {
10105	_ struct{} `type:"structure"`
10106
10107	// The stack instance that matches the specified request parameters.
10108	StackInstance *StackInstance `type:"structure"`
10109}
10110
10111// String returns the string representation
10112func (s DescribeStackInstanceOutput) String() string {
10113	return awsutil.Prettify(s)
10114}
10115
10116// GoString returns the string representation
10117func (s DescribeStackInstanceOutput) GoString() string {
10118	return s.String()
10119}
10120
10121// SetStackInstance sets the StackInstance field's value.
10122func (s *DescribeStackInstanceOutput) SetStackInstance(v *StackInstance) *DescribeStackInstanceOutput {
10123	s.StackInstance = v
10124	return s
10125}
10126
10127type DescribeStackResourceDriftsInput struct {
10128	_ struct{} `type:"structure"`
10129
10130	// The maximum number of results to be returned with a single call. If the number
10131	// of available results exceeds this maximum, the response includes a NextToken
10132	// value that you can assign to the NextToken request parameter to get the next
10133	// set of results.
10134	MaxResults *int64 `min:"1" type:"integer"`
10135
10136	// A string that identifies the next page of stack resource drift results.
10137	NextToken *string `min:"1" type:"string"`
10138
10139	// The name of the stack for which you want drift information.
10140	//
10141	// StackName is a required field
10142	StackName *string `min:"1" type:"string" required:"true"`
10143
10144	// The resource drift status values to use as filters for the resource drift
10145	// results returned.
10146	//
10147	//    * DELETED: The resource differs from its expected template configuration
10148	//    in that the resource has been deleted.
10149	//
10150	//    * MODIFIED: One or more resource properties differ from their expected
10151	//    template values.
10152	//
10153	//    * IN_SYNC: The resources's actual configuration matches its expected template
10154	//    configuration.
10155	//
10156	//    * NOT_CHECKED: CloudFormation does not currently return this value.
10157	StackResourceDriftStatusFilters []*string `min:"1" type:"list"`
10158}
10159
10160// String returns the string representation
10161func (s DescribeStackResourceDriftsInput) String() string {
10162	return awsutil.Prettify(s)
10163}
10164
10165// GoString returns the string representation
10166func (s DescribeStackResourceDriftsInput) GoString() string {
10167	return s.String()
10168}
10169
10170// Validate inspects the fields of the type to determine if they are valid.
10171func (s *DescribeStackResourceDriftsInput) Validate() error {
10172	invalidParams := request.ErrInvalidParams{Context: "DescribeStackResourceDriftsInput"}
10173	if s.MaxResults != nil && *s.MaxResults < 1 {
10174		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
10175	}
10176	if s.NextToken != nil && len(*s.NextToken) < 1 {
10177		invalidParams.Add(request.NewErrParamMinLen("NextToken", 1))
10178	}
10179	if s.StackName == nil {
10180		invalidParams.Add(request.NewErrParamRequired("StackName"))
10181	}
10182	if s.StackName != nil && len(*s.StackName) < 1 {
10183		invalidParams.Add(request.NewErrParamMinLen("StackName", 1))
10184	}
10185	if s.StackResourceDriftStatusFilters != nil && len(s.StackResourceDriftStatusFilters) < 1 {
10186		invalidParams.Add(request.NewErrParamMinLen("StackResourceDriftStatusFilters", 1))
10187	}
10188
10189	if invalidParams.Len() > 0 {
10190		return invalidParams
10191	}
10192	return nil
10193}
10194
10195// SetMaxResults sets the MaxResults field's value.
10196func (s *DescribeStackResourceDriftsInput) SetMaxResults(v int64) *DescribeStackResourceDriftsInput {
10197	s.MaxResults = &v
10198	return s
10199}
10200
10201// SetNextToken sets the NextToken field's value.
10202func (s *DescribeStackResourceDriftsInput) SetNextToken(v string) *DescribeStackResourceDriftsInput {
10203	s.NextToken = &v
10204	return s
10205}
10206
10207// SetStackName sets the StackName field's value.
10208func (s *DescribeStackResourceDriftsInput) SetStackName(v string) *DescribeStackResourceDriftsInput {
10209	s.StackName = &v
10210	return s
10211}
10212
10213// SetStackResourceDriftStatusFilters sets the StackResourceDriftStatusFilters field's value.
10214func (s *DescribeStackResourceDriftsInput) SetStackResourceDriftStatusFilters(v []*string) *DescribeStackResourceDriftsInput {
10215	s.StackResourceDriftStatusFilters = v
10216	return s
10217}
10218
10219type DescribeStackResourceDriftsOutput struct {
10220	_ struct{} `type:"structure"`
10221
10222	// If the request doesn't return all of the remaining results, NextToken is
10223	// set to a token. To retrieve the next set of results, call DescribeStackResourceDrifts
10224	// again and assign that token to the request object's NextToken parameter.
10225	// If the request returns all results, NextToken is set to null.
10226	NextToken *string `min:"1" type:"string"`
10227
10228	// Drift information for the resources that have been checked for drift in the
10229	// specified stack. This includes actual and expected configuration values for
10230	// resources where CloudFormation detects drift.
10231	//
10232	// For a given stack, there will be one StackResourceDrift for each stack resource
10233	// that has been checked for drift. Resources that have not yet been checked
10234	// for drift are not included. Resources that do not currently support drift
10235	// detection are not checked, and so not included. For a list of resources that
10236	// support drift detection, see Resources that Support Drift Detection (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-stack-drift-resource-list.html).
10237	//
10238	// StackResourceDrifts is a required field
10239	StackResourceDrifts []*StackResourceDrift `type:"list" required:"true"`
10240}
10241
10242// String returns the string representation
10243func (s DescribeStackResourceDriftsOutput) String() string {
10244	return awsutil.Prettify(s)
10245}
10246
10247// GoString returns the string representation
10248func (s DescribeStackResourceDriftsOutput) GoString() string {
10249	return s.String()
10250}
10251
10252// SetNextToken sets the NextToken field's value.
10253func (s *DescribeStackResourceDriftsOutput) SetNextToken(v string) *DescribeStackResourceDriftsOutput {
10254	s.NextToken = &v
10255	return s
10256}
10257
10258// SetStackResourceDrifts sets the StackResourceDrifts field's value.
10259func (s *DescribeStackResourceDriftsOutput) SetStackResourceDrifts(v []*StackResourceDrift) *DescribeStackResourceDriftsOutput {
10260	s.StackResourceDrifts = v
10261	return s
10262}
10263
10264// The input for DescribeStackResource action.
10265type DescribeStackResourceInput struct {
10266	_ struct{} `type:"structure"`
10267
10268	// The logical name of the resource as specified in the template.
10269	//
10270	// Default: There is no default value.
10271	//
10272	// LogicalResourceId is a required field
10273	LogicalResourceId *string `type:"string" required:"true"`
10274
10275	// The name or the unique stack ID that is associated with the stack, which
10276	// are not always interchangeable:
10277	//
10278	//    * Running stacks: You can specify either the stack's name or its unique
10279	//    stack ID.
10280	//
10281	//    * Deleted stacks: You must specify the unique stack ID.
10282	//
10283	// Default: There is no default value.
10284	//
10285	// StackName is a required field
10286	StackName *string `type:"string" required:"true"`
10287}
10288
10289// String returns the string representation
10290func (s DescribeStackResourceInput) String() string {
10291	return awsutil.Prettify(s)
10292}
10293
10294// GoString returns the string representation
10295func (s DescribeStackResourceInput) GoString() string {
10296	return s.String()
10297}
10298
10299// Validate inspects the fields of the type to determine if they are valid.
10300func (s *DescribeStackResourceInput) Validate() error {
10301	invalidParams := request.ErrInvalidParams{Context: "DescribeStackResourceInput"}
10302	if s.LogicalResourceId == nil {
10303		invalidParams.Add(request.NewErrParamRequired("LogicalResourceId"))
10304	}
10305	if s.StackName == nil {
10306		invalidParams.Add(request.NewErrParamRequired("StackName"))
10307	}
10308
10309	if invalidParams.Len() > 0 {
10310		return invalidParams
10311	}
10312	return nil
10313}
10314
10315// SetLogicalResourceId sets the LogicalResourceId field's value.
10316func (s *DescribeStackResourceInput) SetLogicalResourceId(v string) *DescribeStackResourceInput {
10317	s.LogicalResourceId = &v
10318	return s
10319}
10320
10321// SetStackName sets the StackName field's value.
10322func (s *DescribeStackResourceInput) SetStackName(v string) *DescribeStackResourceInput {
10323	s.StackName = &v
10324	return s
10325}
10326
10327// The output for a DescribeStackResource action.
10328type DescribeStackResourceOutput struct {
10329	_ struct{} `type:"structure"`
10330
10331	// A StackResourceDetail structure containing the description of the specified
10332	// resource in the specified stack.
10333	StackResourceDetail *StackResourceDetail `type:"structure"`
10334}
10335
10336// String returns the string representation
10337func (s DescribeStackResourceOutput) String() string {
10338	return awsutil.Prettify(s)
10339}
10340
10341// GoString returns the string representation
10342func (s DescribeStackResourceOutput) GoString() string {
10343	return s.String()
10344}
10345
10346// SetStackResourceDetail sets the StackResourceDetail field's value.
10347func (s *DescribeStackResourceOutput) SetStackResourceDetail(v *StackResourceDetail) *DescribeStackResourceOutput {
10348	s.StackResourceDetail = v
10349	return s
10350}
10351
10352// The input for DescribeStackResources action.
10353type DescribeStackResourcesInput struct {
10354	_ struct{} `type:"structure"`
10355
10356	// The logical name of the resource as specified in the template.
10357	//
10358	// Default: There is no default value.
10359	LogicalResourceId *string `type:"string"`
10360
10361	// The name or unique identifier that corresponds to a physical instance ID
10362	// of a resource supported by CloudFormation.
10363	//
10364	// For example, for an Amazon Elastic Compute Cloud (EC2) instance, PhysicalResourceId
10365	// corresponds to the InstanceId. You can pass the EC2 InstanceId to DescribeStackResources
10366	// to find which stack the instance belongs to and what other resources are
10367	// part of the stack.
10368	//
10369	// Required: Conditional. If you do not specify PhysicalResourceId, you must
10370	// specify StackName.
10371	//
10372	// Default: There is no default value.
10373	PhysicalResourceId *string `type:"string"`
10374
10375	// The name or the unique stack ID that is associated with the stack, which
10376	// are not always interchangeable:
10377	//
10378	//    * Running stacks: You can specify either the stack's name or its unique
10379	//    stack ID.
10380	//
10381	//    * Deleted stacks: You must specify the unique stack ID.
10382	//
10383	// Default: There is no default value.
10384	//
10385	// Required: Conditional. If you do not specify StackName, you must specify
10386	// PhysicalResourceId.
10387	StackName *string `type:"string"`
10388}
10389
10390// String returns the string representation
10391func (s DescribeStackResourcesInput) String() string {
10392	return awsutil.Prettify(s)
10393}
10394
10395// GoString returns the string representation
10396func (s DescribeStackResourcesInput) GoString() string {
10397	return s.String()
10398}
10399
10400// SetLogicalResourceId sets the LogicalResourceId field's value.
10401func (s *DescribeStackResourcesInput) SetLogicalResourceId(v string) *DescribeStackResourcesInput {
10402	s.LogicalResourceId = &v
10403	return s
10404}
10405
10406// SetPhysicalResourceId sets the PhysicalResourceId field's value.
10407func (s *DescribeStackResourcesInput) SetPhysicalResourceId(v string) *DescribeStackResourcesInput {
10408	s.PhysicalResourceId = &v
10409	return s
10410}
10411
10412// SetStackName sets the StackName field's value.
10413func (s *DescribeStackResourcesInput) SetStackName(v string) *DescribeStackResourcesInput {
10414	s.StackName = &v
10415	return s
10416}
10417
10418// The output for a DescribeStackResources action.
10419type DescribeStackResourcesOutput struct {
10420	_ struct{} `type:"structure"`
10421
10422	// A list of StackResource structures.
10423	StackResources []*StackResource `type:"list"`
10424}
10425
10426// String returns the string representation
10427func (s DescribeStackResourcesOutput) String() string {
10428	return awsutil.Prettify(s)
10429}
10430
10431// GoString returns the string representation
10432func (s DescribeStackResourcesOutput) GoString() string {
10433	return s.String()
10434}
10435
10436// SetStackResources sets the StackResources field's value.
10437func (s *DescribeStackResourcesOutput) SetStackResources(v []*StackResource) *DescribeStackResourcesOutput {
10438	s.StackResources = v
10439	return s
10440}
10441
10442type DescribeStackSetInput struct {
10443	_ struct{} `type:"structure"`
10444
10445	// [Service-managed permissions] Specifies whether you are acting as an account
10446	// administrator in the organization's management account or as a delegated
10447	// administrator in a member account.
10448	//
10449	// By default, SELF is specified. Use SELF for stack sets with self-managed
10450	// permissions.
10451	//
10452	//    * If you are signed in to the management account, specify SELF.
10453	//
10454	//    * If you are signed in to a delegated administrator account, specify DELEGATED_ADMIN.
10455	//    Your account must be registered as a delegated administrator in the management
10456	//    account. For more information, see Register a delegated administrator
10457	//    (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/stacksets-orgs-delegated-admin.html)
10458	//    in the CloudFormation User Guide.
10459	CallAs *string `type:"string" enum:"CallAs"`
10460
10461	// The name or unique ID of the stack set whose description you want.
10462	//
10463	// StackSetName is a required field
10464	StackSetName *string `type:"string" required:"true"`
10465}
10466
10467// String returns the string representation
10468func (s DescribeStackSetInput) String() string {
10469	return awsutil.Prettify(s)
10470}
10471
10472// GoString returns the string representation
10473func (s DescribeStackSetInput) GoString() string {
10474	return s.String()
10475}
10476
10477// Validate inspects the fields of the type to determine if they are valid.
10478func (s *DescribeStackSetInput) Validate() error {
10479	invalidParams := request.ErrInvalidParams{Context: "DescribeStackSetInput"}
10480	if s.StackSetName == nil {
10481		invalidParams.Add(request.NewErrParamRequired("StackSetName"))
10482	}
10483
10484	if invalidParams.Len() > 0 {
10485		return invalidParams
10486	}
10487	return nil
10488}
10489
10490// SetCallAs sets the CallAs field's value.
10491func (s *DescribeStackSetInput) SetCallAs(v string) *DescribeStackSetInput {
10492	s.CallAs = &v
10493	return s
10494}
10495
10496// SetStackSetName sets the StackSetName field's value.
10497func (s *DescribeStackSetInput) SetStackSetName(v string) *DescribeStackSetInput {
10498	s.StackSetName = &v
10499	return s
10500}
10501
10502type DescribeStackSetOperationInput struct {
10503	_ struct{} `type:"structure"`
10504
10505	// [Service-managed permissions] Specifies whether you are acting as an account
10506	// administrator in the organization's management account or as a delegated
10507	// administrator in a member account.
10508	//
10509	// By default, SELF is specified. Use SELF for stack sets with self-managed
10510	// permissions.
10511	//
10512	//    * If you are signed in to the management account, specify SELF.
10513	//
10514	//    * If you are signed in to a delegated administrator account, specify DELEGATED_ADMIN.
10515	//    Your account must be registered as a delegated administrator in the management
10516	//    account. For more information, see Register a delegated administrator
10517	//    (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/stacksets-orgs-delegated-admin.html)
10518	//    in the CloudFormation User Guide.
10519	CallAs *string `type:"string" enum:"CallAs"`
10520
10521	// The unique ID of the stack set operation.
10522	//
10523	// OperationId is a required field
10524	OperationId *string `min:"1" type:"string" required:"true"`
10525
10526	// The name or the unique stack ID of the stack set for the stack operation.
10527	//
10528	// StackSetName is a required field
10529	StackSetName *string `type:"string" required:"true"`
10530}
10531
10532// String returns the string representation
10533func (s DescribeStackSetOperationInput) String() string {
10534	return awsutil.Prettify(s)
10535}
10536
10537// GoString returns the string representation
10538func (s DescribeStackSetOperationInput) GoString() string {
10539	return s.String()
10540}
10541
10542// Validate inspects the fields of the type to determine if they are valid.
10543func (s *DescribeStackSetOperationInput) Validate() error {
10544	invalidParams := request.ErrInvalidParams{Context: "DescribeStackSetOperationInput"}
10545	if s.OperationId == nil {
10546		invalidParams.Add(request.NewErrParamRequired("OperationId"))
10547	}
10548	if s.OperationId != nil && len(*s.OperationId) < 1 {
10549		invalidParams.Add(request.NewErrParamMinLen("OperationId", 1))
10550	}
10551	if s.StackSetName == nil {
10552		invalidParams.Add(request.NewErrParamRequired("StackSetName"))
10553	}
10554
10555	if invalidParams.Len() > 0 {
10556		return invalidParams
10557	}
10558	return nil
10559}
10560
10561// SetCallAs sets the CallAs field's value.
10562func (s *DescribeStackSetOperationInput) SetCallAs(v string) *DescribeStackSetOperationInput {
10563	s.CallAs = &v
10564	return s
10565}
10566
10567// SetOperationId sets the OperationId field's value.
10568func (s *DescribeStackSetOperationInput) SetOperationId(v string) *DescribeStackSetOperationInput {
10569	s.OperationId = &v
10570	return s
10571}
10572
10573// SetStackSetName sets the StackSetName field's value.
10574func (s *DescribeStackSetOperationInput) SetStackSetName(v string) *DescribeStackSetOperationInput {
10575	s.StackSetName = &v
10576	return s
10577}
10578
10579type DescribeStackSetOperationOutput struct {
10580	_ struct{} `type:"structure"`
10581
10582	// The specified stack set operation.
10583	StackSetOperation *StackSetOperation `type:"structure"`
10584}
10585
10586// String returns the string representation
10587func (s DescribeStackSetOperationOutput) String() string {
10588	return awsutil.Prettify(s)
10589}
10590
10591// GoString returns the string representation
10592func (s DescribeStackSetOperationOutput) GoString() string {
10593	return s.String()
10594}
10595
10596// SetStackSetOperation sets the StackSetOperation field's value.
10597func (s *DescribeStackSetOperationOutput) SetStackSetOperation(v *StackSetOperation) *DescribeStackSetOperationOutput {
10598	s.StackSetOperation = v
10599	return s
10600}
10601
10602type DescribeStackSetOutput struct {
10603	_ struct{} `type:"structure"`
10604
10605	// The specified stack set.
10606	StackSet *StackSet `type:"structure"`
10607}
10608
10609// String returns the string representation
10610func (s DescribeStackSetOutput) String() string {
10611	return awsutil.Prettify(s)
10612}
10613
10614// GoString returns the string representation
10615func (s DescribeStackSetOutput) GoString() string {
10616	return s.String()
10617}
10618
10619// SetStackSet sets the StackSet field's value.
10620func (s *DescribeStackSetOutput) SetStackSet(v *StackSet) *DescribeStackSetOutput {
10621	s.StackSet = v
10622	return s
10623}
10624
10625// The input for DescribeStacks action.
10626type DescribeStacksInput struct {
10627	_ struct{} `type:"structure"`
10628
10629	// A string that identifies the next page of stacks that you want to retrieve.
10630	NextToken *string `min:"1" type:"string"`
10631
10632	// The name or the unique stack ID that is associated with the stack, which
10633	// are not always interchangeable:
10634	//
10635	//    * Running stacks: You can specify either the stack's name or its unique
10636	//    stack ID.
10637	//
10638	//    * Deleted stacks: You must specify the unique stack ID.
10639	//
10640	// Default: There is no default value.
10641	StackName *string `type:"string"`
10642}
10643
10644// String returns the string representation
10645func (s DescribeStacksInput) String() string {
10646	return awsutil.Prettify(s)
10647}
10648
10649// GoString returns the string representation
10650func (s DescribeStacksInput) GoString() string {
10651	return s.String()
10652}
10653
10654// Validate inspects the fields of the type to determine if they are valid.
10655func (s *DescribeStacksInput) Validate() error {
10656	invalidParams := request.ErrInvalidParams{Context: "DescribeStacksInput"}
10657	if s.NextToken != nil && len(*s.NextToken) < 1 {
10658		invalidParams.Add(request.NewErrParamMinLen("NextToken", 1))
10659	}
10660
10661	if invalidParams.Len() > 0 {
10662		return invalidParams
10663	}
10664	return nil
10665}
10666
10667// SetNextToken sets the NextToken field's value.
10668func (s *DescribeStacksInput) SetNextToken(v string) *DescribeStacksInput {
10669	s.NextToken = &v
10670	return s
10671}
10672
10673// SetStackName sets the StackName field's value.
10674func (s *DescribeStacksInput) SetStackName(v string) *DescribeStacksInput {
10675	s.StackName = &v
10676	return s
10677}
10678
10679// The output for a DescribeStacks action.
10680type DescribeStacksOutput struct {
10681	_ struct{} `type:"structure"`
10682
10683	// If the output exceeds 1 MB in size, a string that identifies the next page
10684	// of stacks. If no additional page exists, this value is null.
10685	NextToken *string `min:"1" type:"string"`
10686
10687	// A list of stack structures.
10688	Stacks []*Stack `type:"list"`
10689}
10690
10691// String returns the string representation
10692func (s DescribeStacksOutput) String() string {
10693	return awsutil.Prettify(s)
10694}
10695
10696// GoString returns the string representation
10697func (s DescribeStacksOutput) GoString() string {
10698	return s.String()
10699}
10700
10701// SetNextToken sets the NextToken field's value.
10702func (s *DescribeStacksOutput) SetNextToken(v string) *DescribeStacksOutput {
10703	s.NextToken = &v
10704	return s
10705}
10706
10707// SetStacks sets the Stacks field's value.
10708func (s *DescribeStacksOutput) SetStacks(v []*Stack) *DescribeStacksOutput {
10709	s.Stacks = v
10710	return s
10711}
10712
10713type DescribeTypeInput struct {
10714	_ struct{} `type:"structure"`
10715
10716	// The Amazon Resource Name (ARN) of the extension.
10717	//
10718	// Conditional: You must specify either TypeName and Type, or Arn.
10719	Arn *string `type:"string"`
10720
10721	// The version number of a public third-party extension.
10722	PublicVersionNumber *string `min:"5" type:"string"`
10723
10724	// The publisher ID of the extension publisher.
10725	//
10726	// Extensions provided by Amazon are not assigned a publisher ID.
10727	PublisherId *string `min:"1" type:"string"`
10728
10729	// The kind of extension.
10730	//
10731	// Conditional: You must specify either TypeName and Type, or Arn.
10732	Type *string `type:"string" enum:"RegistryType"`
10733
10734	// The name of the extension.
10735	//
10736	// Conditional: You must specify either TypeName and Type, or Arn.
10737	TypeName *string `min:"10" type:"string"`
10738
10739	// The ID of a specific version of the extension. The version ID is the value
10740	// at the end of the Amazon Resource Name (ARN) assigned to the extension version
10741	// when it is registered.
10742	//
10743	// If you specify a VersionId, DescribeType returns information about that specific
10744	// extension version. Otherwise, it returns information about the default extension
10745	// version.
10746	VersionId *string `min:"1" type:"string"`
10747}
10748
10749// String returns the string representation
10750func (s DescribeTypeInput) String() string {
10751	return awsutil.Prettify(s)
10752}
10753
10754// GoString returns the string representation
10755func (s DescribeTypeInput) GoString() string {
10756	return s.String()
10757}
10758
10759// Validate inspects the fields of the type to determine if they are valid.
10760func (s *DescribeTypeInput) Validate() error {
10761	invalidParams := request.ErrInvalidParams{Context: "DescribeTypeInput"}
10762	if s.PublicVersionNumber != nil && len(*s.PublicVersionNumber) < 5 {
10763		invalidParams.Add(request.NewErrParamMinLen("PublicVersionNumber", 5))
10764	}
10765	if s.PublisherId != nil && len(*s.PublisherId) < 1 {
10766		invalidParams.Add(request.NewErrParamMinLen("PublisherId", 1))
10767	}
10768	if s.TypeName != nil && len(*s.TypeName) < 10 {
10769		invalidParams.Add(request.NewErrParamMinLen("TypeName", 10))
10770	}
10771	if s.VersionId != nil && len(*s.VersionId) < 1 {
10772		invalidParams.Add(request.NewErrParamMinLen("VersionId", 1))
10773	}
10774
10775	if invalidParams.Len() > 0 {
10776		return invalidParams
10777	}
10778	return nil
10779}
10780
10781// SetArn sets the Arn field's value.
10782func (s *DescribeTypeInput) SetArn(v string) *DescribeTypeInput {
10783	s.Arn = &v
10784	return s
10785}
10786
10787// SetPublicVersionNumber sets the PublicVersionNumber field's value.
10788func (s *DescribeTypeInput) SetPublicVersionNumber(v string) *DescribeTypeInput {
10789	s.PublicVersionNumber = &v
10790	return s
10791}
10792
10793// SetPublisherId sets the PublisherId field's value.
10794func (s *DescribeTypeInput) SetPublisherId(v string) *DescribeTypeInput {
10795	s.PublisherId = &v
10796	return s
10797}
10798
10799// SetType sets the Type field's value.
10800func (s *DescribeTypeInput) SetType(v string) *DescribeTypeInput {
10801	s.Type = &v
10802	return s
10803}
10804
10805// SetTypeName sets the TypeName field's value.
10806func (s *DescribeTypeInput) SetTypeName(v string) *DescribeTypeInput {
10807	s.TypeName = &v
10808	return s
10809}
10810
10811// SetVersionId sets the VersionId field's value.
10812func (s *DescribeTypeInput) SetVersionId(v string) *DescribeTypeInput {
10813	s.VersionId = &v
10814	return s
10815}
10816
10817type DescribeTypeOutput struct {
10818	_ struct{} `type:"structure"`
10819
10820	// The Amazon Resource Name (ARN) of the extension.
10821	Arn *string `type:"string"`
10822
10823	// Whether CloudFormation automatically updates the extension in this account
10824	// and region when a new minor version is published by the extension publisher.
10825	// Major versions released by the publisher must be manually updated. For more
10826	// information, see Activating public extensions for use in your account (AWSCloudFormation/latest/UserGuide/registry-public.html#registry-public-enable)
10827	// in the CloudFormation User Guide.
10828	AutoUpdate *bool `type:"boolean"`
10829
10830	// A JSON string that represent the current configuration data for the extension
10831	// in this account and region.
10832	//
10833	// To set the configuration data for an extension, use SetTypeConfiguration
10834	// (https://docs.aws.amazon.com/AWSCloudFormation/latest/APIReference/API_SetTypeConfiguration.html).
10835	// For more information, see Configuring extensions at the account level (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/registry-register.html#registry-set-configuration)
10836	// in the CloudFormation User Guide.
10837	ConfigurationSchema *string `min:"1" type:"string"`
10838
10839	// The ID of the default version of the extension. The default version is used
10840	// when the extension version is not specified.
10841	//
10842	// This applies only to private extensions you have registered in your account.
10843	// For public extensions, both those provided by Amazon and published by third
10844	// parties, CloudFormation returns null. For more information, see RegisterType
10845	// (https://docs.aws.amazon.com/AWSCloudFormation/latest/APIReference/API_RegisterType.html).
10846	//
10847	// To set the default version of an extension, use SetTypeDefaultVersion .
10848	DefaultVersionId *string `min:"1" type:"string"`
10849
10850	// The deprecation status of the extension version.
10851	//
10852	// Valid values include:
10853	//
10854	//    * LIVE: The extension is activated or registered and can be used in CloudFormation
10855	//    operations, dependent on its provisioning behavior and visibility scope.
10856	//
10857	//    * DEPRECATED: The extension has been deactivated or deregistered and can
10858	//    no longer be used in CloudFormation operations.
10859	//
10860	// For public third-party extensions, CloudFormation returns null.
10861	DeprecatedStatus *string `type:"string" enum:"DeprecatedStatus"`
10862
10863	// The description of the extension.
10864	Description *string `min:"1" type:"string"`
10865
10866	// The URL of a page providing detailed documentation for this extension.
10867	DocumentationUrl *string `type:"string"`
10868
10869	// The Amazon Resource Name (ARN) of the IAM execution role used to register
10870	// the extension. This applies only to private extensions you have registered
10871	// in your account. For more information, see RegisterType (https://docs.aws.amazon.com/AWSCloudFormation/latest/APIReference/API_RegisterType.html).
10872	//
10873	// If the registered extension calls any Amazon Web Services APIs, you must
10874	// create an IAM execution role (https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles.html)
10875	// that includes the necessary permissions to call those Amazon Web Services
10876	// APIs, and provision that execution role in your account. CloudFormation then
10877	// assumes that execution role to provide your extension with the appropriate
10878	// credentials.
10879	ExecutionRoleArn *string `min:"1" type:"string"`
10880
10881	// Whether or not the extension is activated in the account and region.
10882	//
10883	// This only applies to public third-party extensions. For all other extensions,
10884	// CloudFormation returns null.
10885	IsActivated *bool `type:"boolean"`
10886
10887	// Whether the specified extension version is set as the default version.
10888	//
10889	// This applies only to private extensions you have registered in your account,
10890	// and extensions published by Amazon. For public third-party extensions, whether
10891	// or not they are activated in your account, CloudFormation returns null.
10892	IsDefaultVersion *bool `type:"boolean"`
10893
10894	// When the specified extension version was registered. This applies only to:
10895	//
10896	//    * Private extensions you have registered in your account. For more information,
10897	//    see RegisterType (https://docs.aws.amazon.com/AWSCloudFormation/latest/APIReference/API_RegisterType.html).
10898	//
10899	//    * Public extensions you have activated in your account with auto-update
10900	//    specified. For more information, see ActivateType (https://docs.aws.amazon.com/AWSCloudFormation/latest/APIReference/API_ActivateType.html).
10901	LastUpdated *time.Time `type:"timestamp"`
10902
10903	// The latest version of a public extension that is available for use.
10904	//
10905	// This only applies if you specify a public extension, and you do not specify
10906	// a version. For all other requests, CloudFormation returns null.
10907	LatestPublicVersion *string `min:"5" type:"string"`
10908
10909	// Contains logging configuration information for private extensions. This applies
10910	// only to private extensions you have registered in your account. For public
10911	// extensions, both those provided by Amazon and published by third parties,
10912	// CloudFormation returns null. For more information, see RegisterType (https://docs.aws.amazon.com/AWSCloudFormation/latest/APIReference/API_RegisterType.html).
10913	LoggingConfig *LoggingConfig `type:"structure"`
10914
10915	// For public extensions that have been activated for this account and region,
10916	// the Amazon Resource Name (ARN) of the public extension.
10917	OriginalTypeArn *string `type:"string"`
10918
10919	// For public extensions that have been activated for this account and region,
10920	// the type name of the public extension.
10921	//
10922	// If you specified a TypeNameAlias when enabling the extension in this account
10923	// and region, CloudFormation treats that alias as the extension's type name
10924	// within the account and region, not the type name of the public extension.
10925	// For more information, see Specifying aliases to refer to extensions (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/registry-public.html#registry-public-enable-alias)
10926	// in the CloudFormation User Guide.
10927	OriginalTypeName *string `min:"10" type:"string"`
10928
10929	// For resource type extensions, the provisioning behavior of the resource type.
10930	// CloudFormation determines the provisioning type during registration, based
10931	// on the types of handlers in the schema handler package submitted.
10932	//
10933	// Valid values include:
10934	//
10935	//    * FULLY_MUTABLE: The resource type includes an update handler to process
10936	//    updates to the type during stack update operations.
10937	//
10938	//    * IMMUTABLE: The resource type does not include an update handler, so
10939	//    the type cannot be updated and must instead be replaced during stack update
10940	//    operations.
10941	//
10942	//    * NON_PROVISIONABLE: The resource type does not include all of the following
10943	//    handlers, and therefore cannot actually be provisioned. create read delete
10944	ProvisioningType *string `type:"string" enum:"ProvisioningType"`
10945
10946	// The version number of a public third-party extension.
10947	//
10948	// This applies only if you specify a public extension you have activated in
10949	// your account, or specify a public extension without specifying a version.
10950	// For all other extensions, CloudFormation returns null.
10951	PublicVersionNumber *string `min:"5" type:"string"`
10952
10953	// The publisher ID of the extension publisher.
10954	//
10955	// This applies only to public third-party extensions. For private registered
10956	// extensions, and extensions provided by Amazon, CloudFormation returns null.
10957	PublisherId *string `min:"1" type:"string"`
10958
10959	// For extensions that are modules, the public third-party extensions that must
10960	// be activated in your account in order for the module itself to be activated.
10961	RequiredActivatedTypes []*RequiredActivatedType `type:"list"`
10962
10963	// The schema that defines the extension.
10964	//
10965	// For more information on extension schemas, see Resource Provider Schema (https://docs.aws.amazon.com/cloudformation-cli/latest/userguide/resource-type-schema.html)
10966	// in the CloudFormation CLI User Guide.
10967	Schema *string `min:"1" type:"string"`
10968
10969	// The URL of the source code for the extension.
10970	SourceUrl *string `type:"string"`
10971
10972	// When the specified private extension version was registered or activated
10973	// in your account.
10974	TimeCreated *time.Time `type:"timestamp"`
10975
10976	// The kind of extension.
10977	Type *string `type:"string" enum:"RegistryType"`
10978
10979	// The name of the extension.
10980	//
10981	// If the extension is a public third-party type you have activated with a type
10982	// name alias, CloudFormation returns the type name alias. For more information,
10983	// see ActivateType (https://docs.aws.amazon.com/AWSCloudFormation/latest/APIReference/API_ActivateType.html).
10984	TypeName *string `min:"10" type:"string"`
10985
10986	// The contract test status of the registered extension version. To return the
10987	// extension test status of a specifc extension version, you must specify VersionId.
10988	//
10989	// This applies only to registered private extension versions. CloudFormation
10990	// does not return this information for public extensions, whether or not they
10991	// are activated in your account.
10992	//
10993	//    * PASSED: The extension has passed all its contract tests. An extension
10994	//    must have a test status of PASSED before it can be published. For more
10995	//    information, see Publishing extensions to make them available for public
10996	//    use (https://docs.aws.amazon.com/cloudformation-cli/latest/userguide/resource-type-publish.html)
10997	//    in the CloudFormation Command Line Interface User Guide.
10998	//
10999	//    * FAILED: The extension has failed one or more contract tests.
11000	//
11001	//    * IN_PROGRESS: Contract tests are currently being performed on the extension.
11002	//
11003	//    * NOT_TESTED: Contract tests have not been performed on the extension.
11004	TypeTestsStatus *string `type:"string" enum:"TypeTestsStatus"`
11005
11006	// The description of the test status. To return the extension test status of
11007	// a specifc extension version, you must specify VersionId.
11008	//
11009	// This applies only to registered private extension versions. CloudFormation
11010	// does not return this information for public extensions, whether or not they
11011	// are activated in your account.
11012	TypeTestsStatusDescription *string `min:"1" type:"string"`
11013
11014	// The scope at which the extension is visible and usable in CloudFormation
11015	// operations.
11016	//
11017	// Valid values include:
11018	//
11019	//    * PRIVATE: The extension is only visible and usable within the account
11020	//    in which it is registered. CloudFormation marks any extensions you register
11021	//    as PRIVATE.
11022	//
11023	//    * PUBLIC: The extension is publically visible and usable within any Amazon
11024	//    account.
11025	Visibility *string `type:"string" enum:"Visibility"`
11026}
11027
11028// String returns the string representation
11029func (s DescribeTypeOutput) String() string {
11030	return awsutil.Prettify(s)
11031}
11032
11033// GoString returns the string representation
11034func (s DescribeTypeOutput) GoString() string {
11035	return s.String()
11036}
11037
11038// SetArn sets the Arn field's value.
11039func (s *DescribeTypeOutput) SetArn(v string) *DescribeTypeOutput {
11040	s.Arn = &v
11041	return s
11042}
11043
11044// SetAutoUpdate sets the AutoUpdate field's value.
11045func (s *DescribeTypeOutput) SetAutoUpdate(v bool) *DescribeTypeOutput {
11046	s.AutoUpdate = &v
11047	return s
11048}
11049
11050// SetConfigurationSchema sets the ConfigurationSchema field's value.
11051func (s *DescribeTypeOutput) SetConfigurationSchema(v string) *DescribeTypeOutput {
11052	s.ConfigurationSchema = &v
11053	return s
11054}
11055
11056// SetDefaultVersionId sets the DefaultVersionId field's value.
11057func (s *DescribeTypeOutput) SetDefaultVersionId(v string) *DescribeTypeOutput {
11058	s.DefaultVersionId = &v
11059	return s
11060}
11061
11062// SetDeprecatedStatus sets the DeprecatedStatus field's value.
11063func (s *DescribeTypeOutput) SetDeprecatedStatus(v string) *DescribeTypeOutput {
11064	s.DeprecatedStatus = &v
11065	return s
11066}
11067
11068// SetDescription sets the Description field's value.
11069func (s *DescribeTypeOutput) SetDescription(v string) *DescribeTypeOutput {
11070	s.Description = &v
11071	return s
11072}
11073
11074// SetDocumentationUrl sets the DocumentationUrl field's value.
11075func (s *DescribeTypeOutput) SetDocumentationUrl(v string) *DescribeTypeOutput {
11076	s.DocumentationUrl = &v
11077	return s
11078}
11079
11080// SetExecutionRoleArn sets the ExecutionRoleArn field's value.
11081func (s *DescribeTypeOutput) SetExecutionRoleArn(v string) *DescribeTypeOutput {
11082	s.ExecutionRoleArn = &v
11083	return s
11084}
11085
11086// SetIsActivated sets the IsActivated field's value.
11087func (s *DescribeTypeOutput) SetIsActivated(v bool) *DescribeTypeOutput {
11088	s.IsActivated = &v
11089	return s
11090}
11091
11092// SetIsDefaultVersion sets the IsDefaultVersion field's value.
11093func (s *DescribeTypeOutput) SetIsDefaultVersion(v bool) *DescribeTypeOutput {
11094	s.IsDefaultVersion = &v
11095	return s
11096}
11097
11098// SetLastUpdated sets the LastUpdated field's value.
11099func (s *DescribeTypeOutput) SetLastUpdated(v time.Time) *DescribeTypeOutput {
11100	s.LastUpdated = &v
11101	return s
11102}
11103
11104// SetLatestPublicVersion sets the LatestPublicVersion field's value.
11105func (s *DescribeTypeOutput) SetLatestPublicVersion(v string) *DescribeTypeOutput {
11106	s.LatestPublicVersion = &v
11107	return s
11108}
11109
11110// SetLoggingConfig sets the LoggingConfig field's value.
11111func (s *DescribeTypeOutput) SetLoggingConfig(v *LoggingConfig) *DescribeTypeOutput {
11112	s.LoggingConfig = v
11113	return s
11114}
11115
11116// SetOriginalTypeArn sets the OriginalTypeArn field's value.
11117func (s *DescribeTypeOutput) SetOriginalTypeArn(v string) *DescribeTypeOutput {
11118	s.OriginalTypeArn = &v
11119	return s
11120}
11121
11122// SetOriginalTypeName sets the OriginalTypeName field's value.
11123func (s *DescribeTypeOutput) SetOriginalTypeName(v string) *DescribeTypeOutput {
11124	s.OriginalTypeName = &v
11125	return s
11126}
11127
11128// SetProvisioningType sets the ProvisioningType field's value.
11129func (s *DescribeTypeOutput) SetProvisioningType(v string) *DescribeTypeOutput {
11130	s.ProvisioningType = &v
11131	return s
11132}
11133
11134// SetPublicVersionNumber sets the PublicVersionNumber field's value.
11135func (s *DescribeTypeOutput) SetPublicVersionNumber(v string) *DescribeTypeOutput {
11136	s.PublicVersionNumber = &v
11137	return s
11138}
11139
11140// SetPublisherId sets the PublisherId field's value.
11141func (s *DescribeTypeOutput) SetPublisherId(v string) *DescribeTypeOutput {
11142	s.PublisherId = &v
11143	return s
11144}
11145
11146// SetRequiredActivatedTypes sets the RequiredActivatedTypes field's value.
11147func (s *DescribeTypeOutput) SetRequiredActivatedTypes(v []*RequiredActivatedType) *DescribeTypeOutput {
11148	s.RequiredActivatedTypes = v
11149	return s
11150}
11151
11152// SetSchema sets the Schema field's value.
11153func (s *DescribeTypeOutput) SetSchema(v string) *DescribeTypeOutput {
11154	s.Schema = &v
11155	return s
11156}
11157
11158// SetSourceUrl sets the SourceUrl field's value.
11159func (s *DescribeTypeOutput) SetSourceUrl(v string) *DescribeTypeOutput {
11160	s.SourceUrl = &v
11161	return s
11162}
11163
11164// SetTimeCreated sets the TimeCreated field's value.
11165func (s *DescribeTypeOutput) SetTimeCreated(v time.Time) *DescribeTypeOutput {
11166	s.TimeCreated = &v
11167	return s
11168}
11169
11170// SetType sets the Type field's value.
11171func (s *DescribeTypeOutput) SetType(v string) *DescribeTypeOutput {
11172	s.Type = &v
11173	return s
11174}
11175
11176// SetTypeName sets the TypeName field's value.
11177func (s *DescribeTypeOutput) SetTypeName(v string) *DescribeTypeOutput {
11178	s.TypeName = &v
11179	return s
11180}
11181
11182// SetTypeTestsStatus sets the TypeTestsStatus field's value.
11183func (s *DescribeTypeOutput) SetTypeTestsStatus(v string) *DescribeTypeOutput {
11184	s.TypeTestsStatus = &v
11185	return s
11186}
11187
11188// SetTypeTestsStatusDescription sets the TypeTestsStatusDescription field's value.
11189func (s *DescribeTypeOutput) SetTypeTestsStatusDescription(v string) *DescribeTypeOutput {
11190	s.TypeTestsStatusDescription = &v
11191	return s
11192}
11193
11194// SetVisibility sets the Visibility field's value.
11195func (s *DescribeTypeOutput) SetVisibility(v string) *DescribeTypeOutput {
11196	s.Visibility = &v
11197	return s
11198}
11199
11200type DescribeTypeRegistrationInput struct {
11201	_ struct{} `type:"structure"`
11202
11203	// The identifier for this registration request.
11204	//
11205	// This registration token is generated by CloudFormation when you initiate
11206	// a registration request using RegisterType .
11207	//
11208	// RegistrationToken is a required field
11209	RegistrationToken *string `min:"1" type:"string" required:"true"`
11210}
11211
11212// String returns the string representation
11213func (s DescribeTypeRegistrationInput) String() string {
11214	return awsutil.Prettify(s)
11215}
11216
11217// GoString returns the string representation
11218func (s DescribeTypeRegistrationInput) GoString() string {
11219	return s.String()
11220}
11221
11222// Validate inspects the fields of the type to determine if they are valid.
11223func (s *DescribeTypeRegistrationInput) Validate() error {
11224	invalidParams := request.ErrInvalidParams{Context: "DescribeTypeRegistrationInput"}
11225	if s.RegistrationToken == nil {
11226		invalidParams.Add(request.NewErrParamRequired("RegistrationToken"))
11227	}
11228	if s.RegistrationToken != nil && len(*s.RegistrationToken) < 1 {
11229		invalidParams.Add(request.NewErrParamMinLen("RegistrationToken", 1))
11230	}
11231
11232	if invalidParams.Len() > 0 {
11233		return invalidParams
11234	}
11235	return nil
11236}
11237
11238// SetRegistrationToken sets the RegistrationToken field's value.
11239func (s *DescribeTypeRegistrationInput) SetRegistrationToken(v string) *DescribeTypeRegistrationInput {
11240	s.RegistrationToken = &v
11241	return s
11242}
11243
11244type DescribeTypeRegistrationOutput struct {
11245	_ struct{} `type:"structure"`
11246
11247	// The description of the extension registration request.
11248	Description *string `min:"1" type:"string"`
11249
11250	// The current status of the extension registration request.
11251	ProgressStatus *string `type:"string" enum:"RegistrationStatus"`
11252
11253	// The Amazon Resource Name (ARN) of the extension being registered.
11254	//
11255	// For registration requests with a ProgressStatus of other than COMPLETE, this
11256	// will be null.
11257	TypeArn *string `type:"string"`
11258
11259	// The Amazon Resource Name (ARN) of this specific version of the extension
11260	// being registered.
11261	//
11262	// For registration requests with a ProgressStatus of other than COMPLETE, this
11263	// will be null.
11264	TypeVersionArn *string `type:"string"`
11265}
11266
11267// String returns the string representation
11268func (s DescribeTypeRegistrationOutput) String() string {
11269	return awsutil.Prettify(s)
11270}
11271
11272// GoString returns the string representation
11273func (s DescribeTypeRegistrationOutput) GoString() string {
11274	return s.String()
11275}
11276
11277// SetDescription sets the Description field's value.
11278func (s *DescribeTypeRegistrationOutput) SetDescription(v string) *DescribeTypeRegistrationOutput {
11279	s.Description = &v
11280	return s
11281}
11282
11283// SetProgressStatus sets the ProgressStatus field's value.
11284func (s *DescribeTypeRegistrationOutput) SetProgressStatus(v string) *DescribeTypeRegistrationOutput {
11285	s.ProgressStatus = &v
11286	return s
11287}
11288
11289// SetTypeArn sets the TypeArn field's value.
11290func (s *DescribeTypeRegistrationOutput) SetTypeArn(v string) *DescribeTypeRegistrationOutput {
11291	s.TypeArn = &v
11292	return s
11293}
11294
11295// SetTypeVersionArn sets the TypeVersionArn field's value.
11296func (s *DescribeTypeRegistrationOutput) SetTypeVersionArn(v string) *DescribeTypeRegistrationOutput {
11297	s.TypeVersionArn = &v
11298	return s
11299}
11300
11301type DetectStackDriftInput struct {
11302	_ struct{} `type:"structure"`
11303
11304	// The logical names of any resources you want to use as filters.
11305	LogicalResourceIds []*string `min:"1" type:"list"`
11306
11307	// The name of the stack for which you want to detect drift.
11308	//
11309	// StackName is a required field
11310	StackName *string `min:"1" type:"string" required:"true"`
11311}
11312
11313// String returns the string representation
11314func (s DetectStackDriftInput) String() string {
11315	return awsutil.Prettify(s)
11316}
11317
11318// GoString returns the string representation
11319func (s DetectStackDriftInput) GoString() string {
11320	return s.String()
11321}
11322
11323// Validate inspects the fields of the type to determine if they are valid.
11324func (s *DetectStackDriftInput) Validate() error {
11325	invalidParams := request.ErrInvalidParams{Context: "DetectStackDriftInput"}
11326	if s.LogicalResourceIds != nil && len(s.LogicalResourceIds) < 1 {
11327		invalidParams.Add(request.NewErrParamMinLen("LogicalResourceIds", 1))
11328	}
11329	if s.StackName == nil {
11330		invalidParams.Add(request.NewErrParamRequired("StackName"))
11331	}
11332	if s.StackName != nil && len(*s.StackName) < 1 {
11333		invalidParams.Add(request.NewErrParamMinLen("StackName", 1))
11334	}
11335
11336	if invalidParams.Len() > 0 {
11337		return invalidParams
11338	}
11339	return nil
11340}
11341
11342// SetLogicalResourceIds sets the LogicalResourceIds field's value.
11343func (s *DetectStackDriftInput) SetLogicalResourceIds(v []*string) *DetectStackDriftInput {
11344	s.LogicalResourceIds = v
11345	return s
11346}
11347
11348// SetStackName sets the StackName field's value.
11349func (s *DetectStackDriftInput) SetStackName(v string) *DetectStackDriftInput {
11350	s.StackName = &v
11351	return s
11352}
11353
11354type DetectStackDriftOutput struct {
11355	_ struct{} `type:"structure"`
11356
11357	// The ID of the drift detection results of this operation.
11358	//
11359	// CloudFormation generates new results, with a new drift detection ID, each
11360	// time this operation is run. However, the number of drift results CloudFormation
11361	// retains for any given stack, and for how long, may vary.
11362	//
11363	// StackDriftDetectionId is a required field
11364	StackDriftDetectionId *string `min:"1" type:"string" required:"true"`
11365}
11366
11367// String returns the string representation
11368func (s DetectStackDriftOutput) String() string {
11369	return awsutil.Prettify(s)
11370}
11371
11372// GoString returns the string representation
11373func (s DetectStackDriftOutput) GoString() string {
11374	return s.String()
11375}
11376
11377// SetStackDriftDetectionId sets the StackDriftDetectionId field's value.
11378func (s *DetectStackDriftOutput) SetStackDriftDetectionId(v string) *DetectStackDriftOutput {
11379	s.StackDriftDetectionId = &v
11380	return s
11381}
11382
11383type DetectStackResourceDriftInput struct {
11384	_ struct{} `type:"structure"`
11385
11386	// The logical name of the resource for which to return drift information.
11387	//
11388	// LogicalResourceId is a required field
11389	LogicalResourceId *string `type:"string" required:"true"`
11390
11391	// The name of the stack to which the resource belongs.
11392	//
11393	// StackName is a required field
11394	StackName *string `min:"1" type:"string" required:"true"`
11395}
11396
11397// String returns the string representation
11398func (s DetectStackResourceDriftInput) String() string {
11399	return awsutil.Prettify(s)
11400}
11401
11402// GoString returns the string representation
11403func (s DetectStackResourceDriftInput) GoString() string {
11404	return s.String()
11405}
11406
11407// Validate inspects the fields of the type to determine if they are valid.
11408func (s *DetectStackResourceDriftInput) Validate() error {
11409	invalidParams := request.ErrInvalidParams{Context: "DetectStackResourceDriftInput"}
11410	if s.LogicalResourceId == nil {
11411		invalidParams.Add(request.NewErrParamRequired("LogicalResourceId"))
11412	}
11413	if s.StackName == nil {
11414		invalidParams.Add(request.NewErrParamRequired("StackName"))
11415	}
11416	if s.StackName != nil && len(*s.StackName) < 1 {
11417		invalidParams.Add(request.NewErrParamMinLen("StackName", 1))
11418	}
11419
11420	if invalidParams.Len() > 0 {
11421		return invalidParams
11422	}
11423	return nil
11424}
11425
11426// SetLogicalResourceId sets the LogicalResourceId field's value.
11427func (s *DetectStackResourceDriftInput) SetLogicalResourceId(v string) *DetectStackResourceDriftInput {
11428	s.LogicalResourceId = &v
11429	return s
11430}
11431
11432// SetStackName sets the StackName field's value.
11433func (s *DetectStackResourceDriftInput) SetStackName(v string) *DetectStackResourceDriftInput {
11434	s.StackName = &v
11435	return s
11436}
11437
11438type DetectStackResourceDriftOutput struct {
11439	_ struct{} `type:"structure"`
11440
11441	// Information about whether the resource's actual configuration has drifted
11442	// from its expected template configuration, including actual and expected property
11443	// values and any differences detected.
11444	//
11445	// StackResourceDrift is a required field
11446	StackResourceDrift *StackResourceDrift `type:"structure" required:"true"`
11447}
11448
11449// String returns the string representation
11450func (s DetectStackResourceDriftOutput) String() string {
11451	return awsutil.Prettify(s)
11452}
11453
11454// GoString returns the string representation
11455func (s DetectStackResourceDriftOutput) GoString() string {
11456	return s.String()
11457}
11458
11459// SetStackResourceDrift sets the StackResourceDrift field's value.
11460func (s *DetectStackResourceDriftOutput) SetStackResourceDrift(v *StackResourceDrift) *DetectStackResourceDriftOutput {
11461	s.StackResourceDrift = v
11462	return s
11463}
11464
11465type DetectStackSetDriftInput struct {
11466	_ struct{} `type:"structure"`
11467
11468	// [Service-managed permissions] Specifies whether you are acting as an account
11469	// administrator in the organization's management account or as a delegated
11470	// administrator in a member account.
11471	//
11472	// By default, SELF is specified. Use SELF for stack sets with self-managed
11473	// permissions.
11474	//
11475	//    * If you are signed in to the management account, specify SELF.
11476	//
11477	//    * If you are signed in to a delegated administrator account, specify DELEGATED_ADMIN.
11478	//    Your account must be registered as a delegated administrator in the management
11479	//    account. For more information, see Register a delegated administrator
11480	//    (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/stacksets-orgs-delegated-admin.html)
11481	//    in the CloudFormation User Guide.
11482	CallAs *string `type:"string" enum:"CallAs"`
11483
11484	// The ID of the stack set operation.
11485	OperationId *string `min:"1" type:"string" idempotencyToken:"true"`
11486
11487	// The user-specified preferences for how CloudFormation performs a stack set
11488	// operation.
11489	//
11490	// For more information on maximum concurrent accounts and failure tolerance,
11491	// see Stack set operation options (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/stacksets-concepts.html#stackset-ops-options).
11492	OperationPreferences *StackSetOperationPreferences `type:"structure"`
11493
11494	// The name of the stack set on which to perform the drift detection operation.
11495	//
11496	// StackSetName is a required field
11497	StackSetName *string `type:"string" required:"true"`
11498}
11499
11500// String returns the string representation
11501func (s DetectStackSetDriftInput) String() string {
11502	return awsutil.Prettify(s)
11503}
11504
11505// GoString returns the string representation
11506func (s DetectStackSetDriftInput) GoString() string {
11507	return s.String()
11508}
11509
11510// Validate inspects the fields of the type to determine if they are valid.
11511func (s *DetectStackSetDriftInput) Validate() error {
11512	invalidParams := request.ErrInvalidParams{Context: "DetectStackSetDriftInput"}
11513	if s.OperationId != nil && len(*s.OperationId) < 1 {
11514		invalidParams.Add(request.NewErrParamMinLen("OperationId", 1))
11515	}
11516	if s.StackSetName == nil {
11517		invalidParams.Add(request.NewErrParamRequired("StackSetName"))
11518	}
11519	if s.OperationPreferences != nil {
11520		if err := s.OperationPreferences.Validate(); err != nil {
11521			invalidParams.AddNested("OperationPreferences", err.(request.ErrInvalidParams))
11522		}
11523	}
11524
11525	if invalidParams.Len() > 0 {
11526		return invalidParams
11527	}
11528	return nil
11529}
11530
11531// SetCallAs sets the CallAs field's value.
11532func (s *DetectStackSetDriftInput) SetCallAs(v string) *DetectStackSetDriftInput {
11533	s.CallAs = &v
11534	return s
11535}
11536
11537// SetOperationId sets the OperationId field's value.
11538func (s *DetectStackSetDriftInput) SetOperationId(v string) *DetectStackSetDriftInput {
11539	s.OperationId = &v
11540	return s
11541}
11542
11543// SetOperationPreferences sets the OperationPreferences field's value.
11544func (s *DetectStackSetDriftInput) SetOperationPreferences(v *StackSetOperationPreferences) *DetectStackSetDriftInput {
11545	s.OperationPreferences = v
11546	return s
11547}
11548
11549// SetStackSetName sets the StackSetName field's value.
11550func (s *DetectStackSetDriftInput) SetStackSetName(v string) *DetectStackSetDriftInput {
11551	s.StackSetName = &v
11552	return s
11553}
11554
11555type DetectStackSetDriftOutput struct {
11556	_ struct{} `type:"structure"`
11557
11558	// The ID of the drift detection stack set operation.
11559	//
11560	// you can use this operation id with DescribeStackSetOperation to monitor the
11561	// progress of the drift detection operation.
11562	OperationId *string `min:"1" type:"string"`
11563}
11564
11565// String returns the string representation
11566func (s DetectStackSetDriftOutput) String() string {
11567	return awsutil.Prettify(s)
11568}
11569
11570// GoString returns the string representation
11571func (s DetectStackSetDriftOutput) GoString() string {
11572	return s.String()
11573}
11574
11575// SetOperationId sets the OperationId field's value.
11576func (s *DetectStackSetDriftOutput) SetOperationId(v string) *DetectStackSetDriftOutput {
11577	s.OperationId = &v
11578	return s
11579}
11580
11581// The input for an EstimateTemplateCost action.
11582type EstimateTemplateCostInput struct {
11583	_ struct{} `type:"structure"`
11584
11585	// A list of Parameter structures that specify input parameters.
11586	Parameters []*Parameter `type:"list"`
11587
11588	// Structure containing the template body with a minimum length of 1 byte and
11589	// a maximum length of 51,200 bytes. (For more information, go to Template Anatomy
11590	// (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/template-anatomy.html)
11591	// in the CloudFormation User Guide.)
11592	//
11593	// Conditional: You must pass TemplateBody or TemplateURL. If both are passed,
11594	// only TemplateBody is used.
11595	TemplateBody *string `min:"1" type:"string"`
11596
11597	// Location of file containing the template body. The URL must point to a template
11598	// that is located in an Amazon S3 bucket or a Systems Manager document. For
11599	// more information, go to Template Anatomy (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/template-anatomy.html)
11600	// in the CloudFormation User Guide.
11601	//
11602	// Conditional: You must pass TemplateURL or TemplateBody. If both are passed,
11603	// only TemplateBody is used.
11604	TemplateURL *string `min:"1" type:"string"`
11605}
11606
11607// String returns the string representation
11608func (s EstimateTemplateCostInput) String() string {
11609	return awsutil.Prettify(s)
11610}
11611
11612// GoString returns the string representation
11613func (s EstimateTemplateCostInput) GoString() string {
11614	return s.String()
11615}
11616
11617// Validate inspects the fields of the type to determine if they are valid.
11618func (s *EstimateTemplateCostInput) Validate() error {
11619	invalidParams := request.ErrInvalidParams{Context: "EstimateTemplateCostInput"}
11620	if s.TemplateBody != nil && len(*s.TemplateBody) < 1 {
11621		invalidParams.Add(request.NewErrParamMinLen("TemplateBody", 1))
11622	}
11623	if s.TemplateURL != nil && len(*s.TemplateURL) < 1 {
11624		invalidParams.Add(request.NewErrParamMinLen("TemplateURL", 1))
11625	}
11626
11627	if invalidParams.Len() > 0 {
11628		return invalidParams
11629	}
11630	return nil
11631}
11632
11633// SetParameters sets the Parameters field's value.
11634func (s *EstimateTemplateCostInput) SetParameters(v []*Parameter) *EstimateTemplateCostInput {
11635	s.Parameters = v
11636	return s
11637}
11638
11639// SetTemplateBody sets the TemplateBody field's value.
11640func (s *EstimateTemplateCostInput) SetTemplateBody(v string) *EstimateTemplateCostInput {
11641	s.TemplateBody = &v
11642	return s
11643}
11644
11645// SetTemplateURL sets the TemplateURL field's value.
11646func (s *EstimateTemplateCostInput) SetTemplateURL(v string) *EstimateTemplateCostInput {
11647	s.TemplateURL = &v
11648	return s
11649}
11650
11651// The output for a EstimateTemplateCost action.
11652type EstimateTemplateCostOutput struct {
11653	_ struct{} `type:"structure"`
11654
11655	// An Amazon Web Services Simple Monthly Calculator URL with a query string
11656	// that describes the resources required to run the template.
11657	Url *string `type:"string"`
11658}
11659
11660// String returns the string representation
11661func (s EstimateTemplateCostOutput) String() string {
11662	return awsutil.Prettify(s)
11663}
11664
11665// GoString returns the string representation
11666func (s EstimateTemplateCostOutput) GoString() string {
11667	return s.String()
11668}
11669
11670// SetUrl sets the Url field's value.
11671func (s *EstimateTemplateCostOutput) SetUrl(v string) *EstimateTemplateCostOutput {
11672	s.Url = &v
11673	return s
11674}
11675
11676// The input for the ExecuteChangeSet action.
11677type ExecuteChangeSetInput struct {
11678	_ struct{} `type:"structure"`
11679
11680	// The name or ARN of the change set that you want use to update the specified
11681	// stack.
11682	//
11683	// ChangeSetName is a required field
11684	ChangeSetName *string `min:"1" type:"string" required:"true"`
11685
11686	// A unique identifier for this ExecuteChangeSet request. Specify this token
11687	// if you plan to retry requests so that CloudFormation knows that you're not
11688	// attempting to execute a change set to update a stack with the same name.
11689	// You might retry ExecuteChangeSet requests to ensure that CloudFormation successfully
11690	// received them.
11691	ClientRequestToken *string `min:"1" type:"string"`
11692
11693	// If you specified the name of a change set, specify the stack name or ID (ARN)
11694	// that is associated with the change set you want to execute.
11695	StackName *string `min:"1" type:"string"`
11696}
11697
11698// String returns the string representation
11699func (s ExecuteChangeSetInput) String() string {
11700	return awsutil.Prettify(s)
11701}
11702
11703// GoString returns the string representation
11704func (s ExecuteChangeSetInput) GoString() string {
11705	return s.String()
11706}
11707
11708// Validate inspects the fields of the type to determine if they are valid.
11709func (s *ExecuteChangeSetInput) Validate() error {
11710	invalidParams := request.ErrInvalidParams{Context: "ExecuteChangeSetInput"}
11711	if s.ChangeSetName == nil {
11712		invalidParams.Add(request.NewErrParamRequired("ChangeSetName"))
11713	}
11714	if s.ChangeSetName != nil && len(*s.ChangeSetName) < 1 {
11715		invalidParams.Add(request.NewErrParamMinLen("ChangeSetName", 1))
11716	}
11717	if s.ClientRequestToken != nil && len(*s.ClientRequestToken) < 1 {
11718		invalidParams.Add(request.NewErrParamMinLen("ClientRequestToken", 1))
11719	}
11720	if s.StackName != nil && len(*s.StackName) < 1 {
11721		invalidParams.Add(request.NewErrParamMinLen("StackName", 1))
11722	}
11723
11724	if invalidParams.Len() > 0 {
11725		return invalidParams
11726	}
11727	return nil
11728}
11729
11730// SetChangeSetName sets the ChangeSetName field's value.
11731func (s *ExecuteChangeSetInput) SetChangeSetName(v string) *ExecuteChangeSetInput {
11732	s.ChangeSetName = &v
11733	return s
11734}
11735
11736// SetClientRequestToken sets the ClientRequestToken field's value.
11737func (s *ExecuteChangeSetInput) SetClientRequestToken(v string) *ExecuteChangeSetInput {
11738	s.ClientRequestToken = &v
11739	return s
11740}
11741
11742// SetStackName sets the StackName field's value.
11743func (s *ExecuteChangeSetInput) SetStackName(v string) *ExecuteChangeSetInput {
11744	s.StackName = &v
11745	return s
11746}
11747
11748// The output for the ExecuteChangeSet action.
11749type ExecuteChangeSetOutput struct {
11750	_ struct{} `type:"structure"`
11751}
11752
11753// String returns the string representation
11754func (s ExecuteChangeSetOutput) String() string {
11755	return awsutil.Prettify(s)
11756}
11757
11758// GoString returns the string representation
11759func (s ExecuteChangeSetOutput) GoString() string {
11760	return s.String()
11761}
11762
11763// The Export structure describes the exported output values for a stack.
11764type Export struct {
11765	_ struct{} `type:"structure"`
11766
11767	// The stack that contains the exported output name and value.
11768	ExportingStackId *string `type:"string"`
11769
11770	// The name of exported output value. Use this name and the Fn::ImportValue
11771	// function to import the associated value into other stacks. The name is defined
11772	// in the Export field in the associated stack's Outputs section.
11773	Name *string `type:"string"`
11774
11775	// The value of the exported output, such as a resource physical ID. This value
11776	// is defined in the Export field in the associated stack's Outputs section.
11777	Value *string `type:"string"`
11778}
11779
11780// String returns the string representation
11781func (s Export) String() string {
11782	return awsutil.Prettify(s)
11783}
11784
11785// GoString returns the string representation
11786func (s Export) GoString() string {
11787	return s.String()
11788}
11789
11790// SetExportingStackId sets the ExportingStackId field's value.
11791func (s *Export) SetExportingStackId(v string) *Export {
11792	s.ExportingStackId = &v
11793	return s
11794}
11795
11796// SetName sets the Name field's value.
11797func (s *Export) SetName(v string) *Export {
11798	s.Name = &v
11799	return s
11800}
11801
11802// SetValue sets the Value field's value.
11803func (s *Export) SetValue(v string) *Export {
11804	s.Value = &v
11805	return s
11806}
11807
11808// The input for the GetStackPolicy action.
11809type GetStackPolicyInput struct {
11810	_ struct{} `type:"structure"`
11811
11812	// The name or unique stack ID that is associated with the stack whose policy
11813	// you want to get.
11814	//
11815	// StackName is a required field
11816	StackName *string `type:"string" required:"true"`
11817}
11818
11819// String returns the string representation
11820func (s GetStackPolicyInput) String() string {
11821	return awsutil.Prettify(s)
11822}
11823
11824// GoString returns the string representation
11825func (s GetStackPolicyInput) GoString() string {
11826	return s.String()
11827}
11828
11829// Validate inspects the fields of the type to determine if they are valid.
11830func (s *GetStackPolicyInput) Validate() error {
11831	invalidParams := request.ErrInvalidParams{Context: "GetStackPolicyInput"}
11832	if s.StackName == nil {
11833		invalidParams.Add(request.NewErrParamRequired("StackName"))
11834	}
11835
11836	if invalidParams.Len() > 0 {
11837		return invalidParams
11838	}
11839	return nil
11840}
11841
11842// SetStackName sets the StackName field's value.
11843func (s *GetStackPolicyInput) SetStackName(v string) *GetStackPolicyInput {
11844	s.StackName = &v
11845	return s
11846}
11847
11848// The output for the GetStackPolicy action.
11849type GetStackPolicyOutput struct {
11850	_ struct{} `type:"structure"`
11851
11852	// Structure containing the stack policy body. (For more information, go to
11853	// Prevent Updates to Stack Resources (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/protect-stack-resources.html)
11854	// in the CloudFormation User Guide.)
11855	StackPolicyBody *string `min:"1" type:"string"`
11856}
11857
11858// String returns the string representation
11859func (s GetStackPolicyOutput) String() string {
11860	return awsutil.Prettify(s)
11861}
11862
11863// GoString returns the string representation
11864func (s GetStackPolicyOutput) GoString() string {
11865	return s.String()
11866}
11867
11868// SetStackPolicyBody sets the StackPolicyBody field's value.
11869func (s *GetStackPolicyOutput) SetStackPolicyBody(v string) *GetStackPolicyOutput {
11870	s.StackPolicyBody = &v
11871	return s
11872}
11873
11874// The input for a GetTemplate action.
11875type GetTemplateInput struct {
11876	_ struct{} `type:"structure"`
11877
11878	// The name or Amazon Resource Name (ARN) of a change set for which CloudFormation
11879	// returns the associated template. If you specify a name, you must also specify
11880	// the StackName.
11881	ChangeSetName *string `min:"1" type:"string"`
11882
11883	// The name or the unique stack ID that is associated with the stack, which
11884	// are not always interchangeable:
11885	//
11886	//    * Running stacks: You can specify either the stack's name or its unique
11887	//    stack ID.
11888	//
11889	//    * Deleted stacks: You must specify the unique stack ID.
11890	//
11891	// Default: There is no default value.
11892	StackName *string `type:"string"`
11893
11894	// For templates that include transforms, the stage of the template that CloudFormation
11895	// returns. To get the user-submitted template, specify Original. To get the
11896	// template after CloudFormation has processed all transforms, specify Processed.
11897	//
11898	// If the template doesn't include transforms, Original and Processed return
11899	// the same template. By default, CloudFormation specifies Processed.
11900	TemplateStage *string `type:"string" enum:"TemplateStage"`
11901}
11902
11903// String returns the string representation
11904func (s GetTemplateInput) String() string {
11905	return awsutil.Prettify(s)
11906}
11907
11908// GoString returns the string representation
11909func (s GetTemplateInput) GoString() string {
11910	return s.String()
11911}
11912
11913// Validate inspects the fields of the type to determine if they are valid.
11914func (s *GetTemplateInput) Validate() error {
11915	invalidParams := request.ErrInvalidParams{Context: "GetTemplateInput"}
11916	if s.ChangeSetName != nil && len(*s.ChangeSetName) < 1 {
11917		invalidParams.Add(request.NewErrParamMinLen("ChangeSetName", 1))
11918	}
11919
11920	if invalidParams.Len() > 0 {
11921		return invalidParams
11922	}
11923	return nil
11924}
11925
11926// SetChangeSetName sets the ChangeSetName field's value.
11927func (s *GetTemplateInput) SetChangeSetName(v string) *GetTemplateInput {
11928	s.ChangeSetName = &v
11929	return s
11930}
11931
11932// SetStackName sets the StackName field's value.
11933func (s *GetTemplateInput) SetStackName(v string) *GetTemplateInput {
11934	s.StackName = &v
11935	return s
11936}
11937
11938// SetTemplateStage sets the TemplateStage field's value.
11939func (s *GetTemplateInput) SetTemplateStage(v string) *GetTemplateInput {
11940	s.TemplateStage = &v
11941	return s
11942}
11943
11944// The output for GetTemplate action.
11945type GetTemplateOutput struct {
11946	_ struct{} `type:"structure"`
11947
11948	// The stage of the template that you can retrieve. For stacks, the Original
11949	// and Processed templates are always available. For change sets, the Original
11950	// template is always available. After CloudFormation finishes creating the
11951	// change set, the Processed template becomes available.
11952	StagesAvailable []*string `type:"list"`
11953
11954	// Structure containing the template body. (For more information, go to Template
11955	// Anatomy (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/template-anatomy.html)
11956	// in the CloudFormation User Guide.)
11957	//
11958	// CloudFormation returns the same template that was used when the stack was
11959	// created.
11960	TemplateBody *string `min:"1" type:"string"`
11961}
11962
11963// String returns the string representation
11964func (s GetTemplateOutput) String() string {
11965	return awsutil.Prettify(s)
11966}
11967
11968// GoString returns the string representation
11969func (s GetTemplateOutput) GoString() string {
11970	return s.String()
11971}
11972
11973// SetStagesAvailable sets the StagesAvailable field's value.
11974func (s *GetTemplateOutput) SetStagesAvailable(v []*string) *GetTemplateOutput {
11975	s.StagesAvailable = v
11976	return s
11977}
11978
11979// SetTemplateBody sets the TemplateBody field's value.
11980func (s *GetTemplateOutput) SetTemplateBody(v string) *GetTemplateOutput {
11981	s.TemplateBody = &v
11982	return s
11983}
11984
11985// The input for the GetTemplateSummary action.
11986type GetTemplateSummaryInput struct {
11987	_ struct{} `type:"structure"`
11988
11989	// [Service-managed permissions] Specifies whether you are acting as an account
11990	// administrator in the organization's management account or as a delegated
11991	// administrator in a member account.
11992	//
11993	// By default, SELF is specified. Use SELF for stack sets with self-managed
11994	// permissions.
11995	//
11996	//    * If you are signed in to the management account, specify SELF.
11997	//
11998	//    * If you are signed in to a delegated administrator account, specify DELEGATED_ADMIN.
11999	//    Your account must be registered as a delegated administrator in the management
12000	//    account. For more information, see Register a delegated administrator
12001	//    (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/stacksets-orgs-delegated-admin.html)
12002	//    in the CloudFormation User Guide.
12003	CallAs *string `type:"string" enum:"CallAs"`
12004
12005	// The name or the stack ID that is associated with the stack, which are not
12006	// always interchangeable. For running stacks, you can specify either the stack's
12007	// name or its unique stack ID. For deleted stack, you must specify the unique
12008	// stack ID.
12009	//
12010	// Conditional: You must specify only one of the following parameters: StackName,
12011	// StackSetName, TemplateBody, or TemplateURL.
12012	StackName *string `min:"1" type:"string"`
12013
12014	// The name or unique ID of the stack set from which the stack was created.
12015	//
12016	// Conditional: You must specify only one of the following parameters: StackName,
12017	// StackSetName, TemplateBody, or TemplateURL.
12018	StackSetName *string `type:"string"`
12019
12020	// Structure containing the template body with a minimum length of 1 byte and
12021	// a maximum length of 51,200 bytes. For more information about templates, see
12022	// Template Anatomy (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/template-anatomy.html)
12023	// in the CloudFormation User Guide.
12024	//
12025	// Conditional: You must specify only one of the following parameters: StackName,
12026	// StackSetName, TemplateBody, or TemplateURL.
12027	TemplateBody *string `min:"1" type:"string"`
12028
12029	// Location of file containing the template body. The URL must point to a template
12030	// (max size: 460,800 bytes) that is located in an Amazon S3 bucket or a Systems
12031	// Manager document. For more information about templates, see Template Anatomy
12032	// (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/template-anatomy.html)
12033	// in the CloudFormation User Guide.
12034	//
12035	// Conditional: You must specify only one of the following parameters: StackName,
12036	// StackSetName, TemplateBody, or TemplateURL.
12037	TemplateURL *string `min:"1" type:"string"`
12038}
12039
12040// String returns the string representation
12041func (s GetTemplateSummaryInput) String() string {
12042	return awsutil.Prettify(s)
12043}
12044
12045// GoString returns the string representation
12046func (s GetTemplateSummaryInput) GoString() string {
12047	return s.String()
12048}
12049
12050// Validate inspects the fields of the type to determine if they are valid.
12051func (s *GetTemplateSummaryInput) Validate() error {
12052	invalidParams := request.ErrInvalidParams{Context: "GetTemplateSummaryInput"}
12053	if s.StackName != nil && len(*s.StackName) < 1 {
12054		invalidParams.Add(request.NewErrParamMinLen("StackName", 1))
12055	}
12056	if s.TemplateBody != nil && len(*s.TemplateBody) < 1 {
12057		invalidParams.Add(request.NewErrParamMinLen("TemplateBody", 1))
12058	}
12059	if s.TemplateURL != nil && len(*s.TemplateURL) < 1 {
12060		invalidParams.Add(request.NewErrParamMinLen("TemplateURL", 1))
12061	}
12062
12063	if invalidParams.Len() > 0 {
12064		return invalidParams
12065	}
12066	return nil
12067}
12068
12069// SetCallAs sets the CallAs field's value.
12070func (s *GetTemplateSummaryInput) SetCallAs(v string) *GetTemplateSummaryInput {
12071	s.CallAs = &v
12072	return s
12073}
12074
12075// SetStackName sets the StackName field's value.
12076func (s *GetTemplateSummaryInput) SetStackName(v string) *GetTemplateSummaryInput {
12077	s.StackName = &v
12078	return s
12079}
12080
12081// SetStackSetName sets the StackSetName field's value.
12082func (s *GetTemplateSummaryInput) SetStackSetName(v string) *GetTemplateSummaryInput {
12083	s.StackSetName = &v
12084	return s
12085}
12086
12087// SetTemplateBody sets the TemplateBody field's value.
12088func (s *GetTemplateSummaryInput) SetTemplateBody(v string) *GetTemplateSummaryInput {
12089	s.TemplateBody = &v
12090	return s
12091}
12092
12093// SetTemplateURL sets the TemplateURL field's value.
12094func (s *GetTemplateSummaryInput) SetTemplateURL(v string) *GetTemplateSummaryInput {
12095	s.TemplateURL = &v
12096	return s
12097}
12098
12099// The output for the GetTemplateSummary action.
12100type GetTemplateSummaryOutput struct {
12101	_ struct{} `type:"structure"`
12102
12103	// The capabilities found within the template. If your template contains IAM
12104	// resources, you must specify the CAPABILITY_IAM or CAPABILITY_NAMED_IAM value
12105	// for this parameter when you use the CreateStack or UpdateStack actions with
12106	// your template; otherwise, those actions return an InsufficientCapabilities
12107	// error.
12108	//
12109	// For more information, see Acknowledging IAM Resources in CloudFormation Templates
12110	// (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-iam-template.html#capabilities).
12111	Capabilities []*string `type:"list"`
12112
12113	// The list of resources that generated the values in the Capabilities response
12114	// element.
12115	CapabilitiesReason *string `type:"string"`
12116
12117	// A list of the transforms that are declared in the template.
12118	DeclaredTransforms []*string `type:"list"`
12119
12120	// The value that is defined in the Description property of the template.
12121	Description *string `min:"1" type:"string"`
12122
12123	// The value that is defined for the Metadata property of the template.
12124	Metadata *string `type:"string"`
12125
12126	// A list of parameter declarations that describe various properties for each
12127	// parameter.
12128	Parameters []*ParameterDeclaration `type:"list"`
12129
12130	// A list of resource identifier summaries that describe the target resources
12131	// of an import operation and the properties you can provide during the import
12132	// to identify the target resources. For example, BucketName is a possible identifier
12133	// property for an AWS::S3::Bucket resource.
12134	ResourceIdentifierSummaries []*ResourceIdentifierSummary `type:"list"`
12135
12136	// A list of all the template resource types that are defined in the template,
12137	// such as AWS::EC2::Instance, AWS::Dynamo::Table, and Custom::MyCustomInstance.
12138	ResourceTypes []*string `type:"list"`
12139
12140	// The Amazon Web Services template format version, which identifies the capabilities
12141	// of the template.
12142	Version *string `type:"string"`
12143}
12144
12145// String returns the string representation
12146func (s GetTemplateSummaryOutput) String() string {
12147	return awsutil.Prettify(s)
12148}
12149
12150// GoString returns the string representation
12151func (s GetTemplateSummaryOutput) GoString() string {
12152	return s.String()
12153}
12154
12155// SetCapabilities sets the Capabilities field's value.
12156func (s *GetTemplateSummaryOutput) SetCapabilities(v []*string) *GetTemplateSummaryOutput {
12157	s.Capabilities = v
12158	return s
12159}
12160
12161// SetCapabilitiesReason sets the CapabilitiesReason field's value.
12162func (s *GetTemplateSummaryOutput) SetCapabilitiesReason(v string) *GetTemplateSummaryOutput {
12163	s.CapabilitiesReason = &v
12164	return s
12165}
12166
12167// SetDeclaredTransforms sets the DeclaredTransforms field's value.
12168func (s *GetTemplateSummaryOutput) SetDeclaredTransforms(v []*string) *GetTemplateSummaryOutput {
12169	s.DeclaredTransforms = v
12170	return s
12171}
12172
12173// SetDescription sets the Description field's value.
12174func (s *GetTemplateSummaryOutput) SetDescription(v string) *GetTemplateSummaryOutput {
12175	s.Description = &v
12176	return s
12177}
12178
12179// SetMetadata sets the Metadata field's value.
12180func (s *GetTemplateSummaryOutput) SetMetadata(v string) *GetTemplateSummaryOutput {
12181	s.Metadata = &v
12182	return s
12183}
12184
12185// SetParameters sets the Parameters field's value.
12186func (s *GetTemplateSummaryOutput) SetParameters(v []*ParameterDeclaration) *GetTemplateSummaryOutput {
12187	s.Parameters = v
12188	return s
12189}
12190
12191// SetResourceIdentifierSummaries sets the ResourceIdentifierSummaries field's value.
12192func (s *GetTemplateSummaryOutput) SetResourceIdentifierSummaries(v []*ResourceIdentifierSummary) *GetTemplateSummaryOutput {
12193	s.ResourceIdentifierSummaries = v
12194	return s
12195}
12196
12197// SetResourceTypes sets the ResourceTypes field's value.
12198func (s *GetTemplateSummaryOutput) SetResourceTypes(v []*string) *GetTemplateSummaryOutput {
12199	s.ResourceTypes = v
12200	return s
12201}
12202
12203// SetVersion sets the Version field's value.
12204func (s *GetTemplateSummaryOutput) SetVersion(v string) *GetTemplateSummaryOutput {
12205	s.Version = &v
12206	return s
12207}
12208
12209type ImportStacksToStackSetInput struct {
12210	_ struct{} `type:"structure"`
12211
12212	// By default, SELF is specified. Use SELF for stack sets with self-managed
12213	// permissions.
12214	//
12215	//    * If you are signed in to the management account, specify SELF.
12216	//
12217	//    * For service managed stack sets, specify DELEGATED_ADMIN.
12218	CallAs *string `type:"string" enum:"CallAs"`
12219
12220	// A unique, user defined, identifier for the stack set operation.
12221	OperationId *string `min:"1" type:"string" idempotencyToken:"true"`
12222
12223	// The user-specified preferences for how CloudFormation performs a stack set
12224	// operation.
12225	//
12226	// For more information on maximum concurrent accounts and failure tolerance,
12227	// see Stack set operation options (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/stacksets-concepts.html#stackset-ops-options).
12228	OperationPreferences *StackSetOperationPreferences `type:"structure"`
12229
12230	// The IDs of the stacks you are importing into a stack set. You import up to
12231	// 10 stacks per stack set at a time.
12232	//
12233	// StackIds is a required field
12234	StackIds []*string `type:"list" required:"true"`
12235
12236	// The name of the stack set. The name must be unique in the Region where you
12237	// create your stack set.
12238	//
12239	// StackSetName is a required field
12240	StackSetName *string `type:"string" required:"true"`
12241}
12242
12243// String returns the string representation
12244func (s ImportStacksToStackSetInput) String() string {
12245	return awsutil.Prettify(s)
12246}
12247
12248// GoString returns the string representation
12249func (s ImportStacksToStackSetInput) GoString() string {
12250	return s.String()
12251}
12252
12253// Validate inspects the fields of the type to determine if they are valid.
12254func (s *ImportStacksToStackSetInput) Validate() error {
12255	invalidParams := request.ErrInvalidParams{Context: "ImportStacksToStackSetInput"}
12256	if s.OperationId != nil && len(*s.OperationId) < 1 {
12257		invalidParams.Add(request.NewErrParamMinLen("OperationId", 1))
12258	}
12259	if s.StackIds == nil {
12260		invalidParams.Add(request.NewErrParamRequired("StackIds"))
12261	}
12262	if s.StackSetName == nil {
12263		invalidParams.Add(request.NewErrParamRequired("StackSetName"))
12264	}
12265	if s.OperationPreferences != nil {
12266		if err := s.OperationPreferences.Validate(); err != nil {
12267			invalidParams.AddNested("OperationPreferences", err.(request.ErrInvalidParams))
12268		}
12269	}
12270
12271	if invalidParams.Len() > 0 {
12272		return invalidParams
12273	}
12274	return nil
12275}
12276
12277// SetCallAs sets the CallAs field's value.
12278func (s *ImportStacksToStackSetInput) SetCallAs(v string) *ImportStacksToStackSetInput {
12279	s.CallAs = &v
12280	return s
12281}
12282
12283// SetOperationId sets the OperationId field's value.
12284func (s *ImportStacksToStackSetInput) SetOperationId(v string) *ImportStacksToStackSetInput {
12285	s.OperationId = &v
12286	return s
12287}
12288
12289// SetOperationPreferences sets the OperationPreferences field's value.
12290func (s *ImportStacksToStackSetInput) SetOperationPreferences(v *StackSetOperationPreferences) *ImportStacksToStackSetInput {
12291	s.OperationPreferences = v
12292	return s
12293}
12294
12295// SetStackIds sets the StackIds field's value.
12296func (s *ImportStacksToStackSetInput) SetStackIds(v []*string) *ImportStacksToStackSetInput {
12297	s.StackIds = v
12298	return s
12299}
12300
12301// SetStackSetName sets the StackSetName field's value.
12302func (s *ImportStacksToStackSetInput) SetStackSetName(v string) *ImportStacksToStackSetInput {
12303	s.StackSetName = &v
12304	return s
12305}
12306
12307type ImportStacksToStackSetOutput struct {
12308	_ struct{} `type:"structure"`
12309
12310	// The unique identifier for the stack set operation.
12311	OperationId *string `min:"1" type:"string"`
12312}
12313
12314// String returns the string representation
12315func (s ImportStacksToStackSetOutput) String() string {
12316	return awsutil.Prettify(s)
12317}
12318
12319// GoString returns the string representation
12320func (s ImportStacksToStackSetOutput) GoString() string {
12321	return s.String()
12322}
12323
12324// SetOperationId sets the OperationId field's value.
12325func (s *ImportStacksToStackSetOutput) SetOperationId(v string) *ImportStacksToStackSetOutput {
12326	s.OperationId = &v
12327	return s
12328}
12329
12330// The input for the ListChangeSets action.
12331type ListChangeSetsInput struct {
12332	_ struct{} `type:"structure"`
12333
12334	// A string (provided by the ListChangeSets response output) that identifies
12335	// the next page of change sets that you want to retrieve.
12336	NextToken *string `min:"1" type:"string"`
12337
12338	// The name or the Amazon Resource Name (ARN) of the stack for which you want
12339	// to list change sets.
12340	//
12341	// StackName is a required field
12342	StackName *string `min:"1" type:"string" required:"true"`
12343}
12344
12345// String returns the string representation
12346func (s ListChangeSetsInput) String() string {
12347	return awsutil.Prettify(s)
12348}
12349
12350// GoString returns the string representation
12351func (s ListChangeSetsInput) GoString() string {
12352	return s.String()
12353}
12354
12355// Validate inspects the fields of the type to determine if they are valid.
12356func (s *ListChangeSetsInput) Validate() error {
12357	invalidParams := request.ErrInvalidParams{Context: "ListChangeSetsInput"}
12358	if s.NextToken != nil && len(*s.NextToken) < 1 {
12359		invalidParams.Add(request.NewErrParamMinLen("NextToken", 1))
12360	}
12361	if s.StackName == nil {
12362		invalidParams.Add(request.NewErrParamRequired("StackName"))
12363	}
12364	if s.StackName != nil && len(*s.StackName) < 1 {
12365		invalidParams.Add(request.NewErrParamMinLen("StackName", 1))
12366	}
12367
12368	if invalidParams.Len() > 0 {
12369		return invalidParams
12370	}
12371	return nil
12372}
12373
12374// SetNextToken sets the NextToken field's value.
12375func (s *ListChangeSetsInput) SetNextToken(v string) *ListChangeSetsInput {
12376	s.NextToken = &v
12377	return s
12378}
12379
12380// SetStackName sets the StackName field's value.
12381func (s *ListChangeSetsInput) SetStackName(v string) *ListChangeSetsInput {
12382	s.StackName = &v
12383	return s
12384}
12385
12386// The output for the ListChangeSets action.
12387type ListChangeSetsOutput struct {
12388	_ struct{} `type:"structure"`
12389
12390	// If the output exceeds 1 MB, a string that identifies the next page of change
12391	// sets. If there is no additional page, this value is null.
12392	NextToken *string `min:"1" type:"string"`
12393
12394	// A list of ChangeSetSummary structures that provides the ID and status of
12395	// each change set for the specified stack.
12396	Summaries []*ChangeSetSummary `type:"list"`
12397}
12398
12399// String returns the string representation
12400func (s ListChangeSetsOutput) String() string {
12401	return awsutil.Prettify(s)
12402}
12403
12404// GoString returns the string representation
12405func (s ListChangeSetsOutput) GoString() string {
12406	return s.String()
12407}
12408
12409// SetNextToken sets the NextToken field's value.
12410func (s *ListChangeSetsOutput) SetNextToken(v string) *ListChangeSetsOutput {
12411	s.NextToken = &v
12412	return s
12413}
12414
12415// SetSummaries sets the Summaries field's value.
12416func (s *ListChangeSetsOutput) SetSummaries(v []*ChangeSetSummary) *ListChangeSetsOutput {
12417	s.Summaries = v
12418	return s
12419}
12420
12421type ListExportsInput struct {
12422	_ struct{} `type:"structure"`
12423
12424	// A string (provided by the ListExports response output) that identifies the
12425	// next page of exported output values that you asked to retrieve.
12426	NextToken *string `min:"1" type:"string"`
12427}
12428
12429// String returns the string representation
12430func (s ListExportsInput) String() string {
12431	return awsutil.Prettify(s)
12432}
12433
12434// GoString returns the string representation
12435func (s ListExportsInput) GoString() string {
12436	return s.String()
12437}
12438
12439// Validate inspects the fields of the type to determine if they are valid.
12440func (s *ListExportsInput) Validate() error {
12441	invalidParams := request.ErrInvalidParams{Context: "ListExportsInput"}
12442	if s.NextToken != nil && len(*s.NextToken) < 1 {
12443		invalidParams.Add(request.NewErrParamMinLen("NextToken", 1))
12444	}
12445
12446	if invalidParams.Len() > 0 {
12447		return invalidParams
12448	}
12449	return nil
12450}
12451
12452// SetNextToken sets the NextToken field's value.
12453func (s *ListExportsInput) SetNextToken(v string) *ListExportsInput {
12454	s.NextToken = &v
12455	return s
12456}
12457
12458type ListExportsOutput struct {
12459	_ struct{} `type:"structure"`
12460
12461	// The output for the ListExports action.
12462	Exports []*Export `type:"list"`
12463
12464	// If the output exceeds 100 exported output values, a string that identifies
12465	// the next page of exports. If there is no additional page, this value is null.
12466	NextToken *string `min:"1" type:"string"`
12467}
12468
12469// String returns the string representation
12470func (s ListExportsOutput) String() string {
12471	return awsutil.Prettify(s)
12472}
12473
12474// GoString returns the string representation
12475func (s ListExportsOutput) GoString() string {
12476	return s.String()
12477}
12478
12479// SetExports sets the Exports field's value.
12480func (s *ListExportsOutput) SetExports(v []*Export) *ListExportsOutput {
12481	s.Exports = v
12482	return s
12483}
12484
12485// SetNextToken sets the NextToken field's value.
12486func (s *ListExportsOutput) SetNextToken(v string) *ListExportsOutput {
12487	s.NextToken = &v
12488	return s
12489}
12490
12491type ListImportsInput struct {
12492	_ struct{} `type:"structure"`
12493
12494	// The name of the exported output value. CloudFormation returns the stack names
12495	// that are importing this value.
12496	//
12497	// ExportName is a required field
12498	ExportName *string `type:"string" required:"true"`
12499
12500	// A string (provided by the ListImports response output) that identifies the
12501	// next page of stacks that are importing the specified exported output value.
12502	NextToken *string `min:"1" type:"string"`
12503}
12504
12505// String returns the string representation
12506func (s ListImportsInput) String() string {
12507	return awsutil.Prettify(s)
12508}
12509
12510// GoString returns the string representation
12511func (s ListImportsInput) GoString() string {
12512	return s.String()
12513}
12514
12515// Validate inspects the fields of the type to determine if they are valid.
12516func (s *ListImportsInput) Validate() error {
12517	invalidParams := request.ErrInvalidParams{Context: "ListImportsInput"}
12518	if s.ExportName == nil {
12519		invalidParams.Add(request.NewErrParamRequired("ExportName"))
12520	}
12521	if s.NextToken != nil && len(*s.NextToken) < 1 {
12522		invalidParams.Add(request.NewErrParamMinLen("NextToken", 1))
12523	}
12524
12525	if invalidParams.Len() > 0 {
12526		return invalidParams
12527	}
12528	return nil
12529}
12530
12531// SetExportName sets the ExportName field's value.
12532func (s *ListImportsInput) SetExportName(v string) *ListImportsInput {
12533	s.ExportName = &v
12534	return s
12535}
12536
12537// SetNextToken sets the NextToken field's value.
12538func (s *ListImportsInput) SetNextToken(v string) *ListImportsInput {
12539	s.NextToken = &v
12540	return s
12541}
12542
12543type ListImportsOutput struct {
12544	_ struct{} `type:"structure"`
12545
12546	// A list of stack names that are importing the specified exported output value.
12547	Imports []*string `type:"list"`
12548
12549	// A string that identifies the next page of exports. If there is no additional
12550	// page, this value is null.
12551	NextToken *string `min:"1" type:"string"`
12552}
12553
12554// String returns the string representation
12555func (s ListImportsOutput) String() string {
12556	return awsutil.Prettify(s)
12557}
12558
12559// GoString returns the string representation
12560func (s ListImportsOutput) GoString() string {
12561	return s.String()
12562}
12563
12564// SetImports sets the Imports field's value.
12565func (s *ListImportsOutput) SetImports(v []*string) *ListImportsOutput {
12566	s.Imports = v
12567	return s
12568}
12569
12570// SetNextToken sets the NextToken field's value.
12571func (s *ListImportsOutput) SetNextToken(v string) *ListImportsOutput {
12572	s.NextToken = &v
12573	return s
12574}
12575
12576type ListStackInstancesInput struct {
12577	_ struct{} `type:"structure"`
12578
12579	// [Service-managed permissions] Specifies whether you are acting as an account
12580	// administrator in the organization's management account or as a delegated
12581	// administrator in a member account.
12582	//
12583	// By default, SELF is specified. Use SELF for stack sets with self-managed
12584	// permissions.
12585	//
12586	//    * If you are signed in to the management account, specify SELF.
12587	//
12588	//    * If you are signed in to a delegated administrator account, specify DELEGATED_ADMIN.
12589	//    Your account must be registered as a delegated administrator in the management
12590	//    account. For more information, see Register a delegated administrator
12591	//    (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/stacksets-orgs-delegated-admin.html)
12592	//    in the CloudFormation User Guide.
12593	CallAs *string `type:"string" enum:"CallAs"`
12594
12595	// The status that stack instances are filtered by.
12596	Filters []*StackInstanceFilter `type:"list"`
12597
12598	// The maximum number of results to be returned with a single call. If the number
12599	// of available results exceeds this maximum, the response includes a NextToken
12600	// value that you can assign to the NextToken request parameter to get the next
12601	// set of results.
12602	MaxResults *int64 `min:"1" type:"integer"`
12603
12604	// If the previous request didn't return all of the remaining results, the response's
12605	// NextToken parameter value is set to a token. To retrieve the next set of
12606	// results, call ListStackInstances again and assign that token to the request
12607	// object's NextToken parameter. If there are no remaining results, the previous
12608	// response object's NextToken parameter is set to null.
12609	NextToken *string `min:"1" type:"string"`
12610
12611	// The name of the account that you want to list stack instances for.
12612	StackInstanceAccount *string `type:"string"`
12613
12614	// The name of the Region where you want to list stack instances.
12615	StackInstanceRegion *string `type:"string"`
12616
12617	// The name or unique ID of the stack set that you want to list stack instances
12618	// for.
12619	//
12620	// StackSetName is a required field
12621	StackSetName *string `type:"string" required:"true"`
12622}
12623
12624// String returns the string representation
12625func (s ListStackInstancesInput) String() string {
12626	return awsutil.Prettify(s)
12627}
12628
12629// GoString returns the string representation
12630func (s ListStackInstancesInput) GoString() string {
12631	return s.String()
12632}
12633
12634// Validate inspects the fields of the type to determine if they are valid.
12635func (s *ListStackInstancesInput) Validate() error {
12636	invalidParams := request.ErrInvalidParams{Context: "ListStackInstancesInput"}
12637	if s.MaxResults != nil && *s.MaxResults < 1 {
12638		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
12639	}
12640	if s.NextToken != nil && len(*s.NextToken) < 1 {
12641		invalidParams.Add(request.NewErrParamMinLen("NextToken", 1))
12642	}
12643	if s.StackSetName == nil {
12644		invalidParams.Add(request.NewErrParamRequired("StackSetName"))
12645	}
12646	if s.Filters != nil {
12647		for i, v := range s.Filters {
12648			if v == nil {
12649				continue
12650			}
12651			if err := v.Validate(); err != nil {
12652				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Filters", i), err.(request.ErrInvalidParams))
12653			}
12654		}
12655	}
12656
12657	if invalidParams.Len() > 0 {
12658		return invalidParams
12659	}
12660	return nil
12661}
12662
12663// SetCallAs sets the CallAs field's value.
12664func (s *ListStackInstancesInput) SetCallAs(v string) *ListStackInstancesInput {
12665	s.CallAs = &v
12666	return s
12667}
12668
12669// SetFilters sets the Filters field's value.
12670func (s *ListStackInstancesInput) SetFilters(v []*StackInstanceFilter) *ListStackInstancesInput {
12671	s.Filters = v
12672	return s
12673}
12674
12675// SetMaxResults sets the MaxResults field's value.
12676func (s *ListStackInstancesInput) SetMaxResults(v int64) *ListStackInstancesInput {
12677	s.MaxResults = &v
12678	return s
12679}
12680
12681// SetNextToken sets the NextToken field's value.
12682func (s *ListStackInstancesInput) SetNextToken(v string) *ListStackInstancesInput {
12683	s.NextToken = &v
12684	return s
12685}
12686
12687// SetStackInstanceAccount sets the StackInstanceAccount field's value.
12688func (s *ListStackInstancesInput) SetStackInstanceAccount(v string) *ListStackInstancesInput {
12689	s.StackInstanceAccount = &v
12690	return s
12691}
12692
12693// SetStackInstanceRegion sets the StackInstanceRegion field's value.
12694func (s *ListStackInstancesInput) SetStackInstanceRegion(v string) *ListStackInstancesInput {
12695	s.StackInstanceRegion = &v
12696	return s
12697}
12698
12699// SetStackSetName sets the StackSetName field's value.
12700func (s *ListStackInstancesInput) SetStackSetName(v string) *ListStackInstancesInput {
12701	s.StackSetName = &v
12702	return s
12703}
12704
12705type ListStackInstancesOutput struct {
12706	_ struct{} `type:"structure"`
12707
12708	// If the request doesn't return all of the remaining results, NextToken is
12709	// set to a token. To retrieve the next set of results, call ListStackInstances
12710	// again and assign that token to the request object's NextToken parameter.
12711	// If the request returns all results, NextToken is set to null.
12712	NextToken *string `min:"1" type:"string"`
12713
12714	// A list of StackInstanceSummary structures that contain information about
12715	// the specified stack instances.
12716	Summaries []*StackInstanceSummary `type:"list"`
12717}
12718
12719// String returns the string representation
12720func (s ListStackInstancesOutput) String() string {
12721	return awsutil.Prettify(s)
12722}
12723
12724// GoString returns the string representation
12725func (s ListStackInstancesOutput) GoString() string {
12726	return s.String()
12727}
12728
12729// SetNextToken sets the NextToken field's value.
12730func (s *ListStackInstancesOutput) SetNextToken(v string) *ListStackInstancesOutput {
12731	s.NextToken = &v
12732	return s
12733}
12734
12735// SetSummaries sets the Summaries field's value.
12736func (s *ListStackInstancesOutput) SetSummaries(v []*StackInstanceSummary) *ListStackInstancesOutput {
12737	s.Summaries = v
12738	return s
12739}
12740
12741// The input for the ListStackResource action.
12742type ListStackResourcesInput struct {
12743	_ struct{} `type:"structure"`
12744
12745	// A string that identifies the next page of stack resources that you want to
12746	// retrieve.
12747	NextToken *string `min:"1" type:"string"`
12748
12749	// The name or the unique stack ID that is associated with the stack, which
12750	// are not always interchangeable:
12751	//
12752	//    * Running stacks: You can specify either the stack's name or its unique
12753	//    stack ID.
12754	//
12755	//    * Deleted stacks: You must specify the unique stack ID.
12756	//
12757	// Default: There is no default value.
12758	//
12759	// StackName is a required field
12760	StackName *string `type:"string" required:"true"`
12761}
12762
12763// String returns the string representation
12764func (s ListStackResourcesInput) String() string {
12765	return awsutil.Prettify(s)
12766}
12767
12768// GoString returns the string representation
12769func (s ListStackResourcesInput) GoString() string {
12770	return s.String()
12771}
12772
12773// Validate inspects the fields of the type to determine if they are valid.
12774func (s *ListStackResourcesInput) Validate() error {
12775	invalidParams := request.ErrInvalidParams{Context: "ListStackResourcesInput"}
12776	if s.NextToken != nil && len(*s.NextToken) < 1 {
12777		invalidParams.Add(request.NewErrParamMinLen("NextToken", 1))
12778	}
12779	if s.StackName == nil {
12780		invalidParams.Add(request.NewErrParamRequired("StackName"))
12781	}
12782
12783	if invalidParams.Len() > 0 {
12784		return invalidParams
12785	}
12786	return nil
12787}
12788
12789// SetNextToken sets the NextToken field's value.
12790func (s *ListStackResourcesInput) SetNextToken(v string) *ListStackResourcesInput {
12791	s.NextToken = &v
12792	return s
12793}
12794
12795// SetStackName sets the StackName field's value.
12796func (s *ListStackResourcesInput) SetStackName(v string) *ListStackResourcesInput {
12797	s.StackName = &v
12798	return s
12799}
12800
12801// The output for a ListStackResources action.
12802type ListStackResourcesOutput struct {
12803	_ struct{} `type:"structure"`
12804
12805	// If the output exceeds 1 MB, a string that identifies the next page of stack
12806	// resources. If no additional page exists, this value is null.
12807	NextToken *string `min:"1" type:"string"`
12808
12809	// A list of StackResourceSummary structures.
12810	StackResourceSummaries []*StackResourceSummary `type:"list"`
12811}
12812
12813// String returns the string representation
12814func (s ListStackResourcesOutput) String() string {
12815	return awsutil.Prettify(s)
12816}
12817
12818// GoString returns the string representation
12819func (s ListStackResourcesOutput) GoString() string {
12820	return s.String()
12821}
12822
12823// SetNextToken sets the NextToken field's value.
12824func (s *ListStackResourcesOutput) SetNextToken(v string) *ListStackResourcesOutput {
12825	s.NextToken = &v
12826	return s
12827}
12828
12829// SetStackResourceSummaries sets the StackResourceSummaries field's value.
12830func (s *ListStackResourcesOutput) SetStackResourceSummaries(v []*StackResourceSummary) *ListStackResourcesOutput {
12831	s.StackResourceSummaries = v
12832	return s
12833}
12834
12835type ListStackSetOperationResultsInput struct {
12836	_ struct{} `type:"structure"`
12837
12838	// [Service-managed permissions] Specifies whether you are acting as an account
12839	// administrator in the organization's management account or as a delegated
12840	// administrator in a member account.
12841	//
12842	// By default, SELF is specified. Use SELF for stack sets with self-managed
12843	// permissions.
12844	//
12845	//    * If you are signed in to the management account, specify SELF.
12846	//
12847	//    * If you are signed in to a delegated administrator account, specify DELEGATED_ADMIN.
12848	//    Your account must be registered as a delegated administrator in the management
12849	//    account. For more information, see Register a delegated administrator
12850	//    (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/stacksets-orgs-delegated-admin.html)
12851	//    in the CloudFormation User Guide.
12852	CallAs *string `type:"string" enum:"CallAs"`
12853
12854	// The maximum number of results to be returned with a single call. If the number
12855	// of available results exceeds this maximum, the response includes a NextToken
12856	// value that you can assign to the NextToken request parameter to get the next
12857	// set of results.
12858	MaxResults *int64 `min:"1" type:"integer"`
12859
12860	// If the previous request didn't return all of the remaining results, the response
12861	// object's NextToken parameter value is set to a token. To retrieve the next
12862	// set of results, call ListStackSetOperationResults again and assign that token
12863	// to the request object's NextToken parameter. If there are no remaining results,
12864	// the previous response object's NextToken parameter is set to null.
12865	NextToken *string `min:"1" type:"string"`
12866
12867	// The ID of the stack set operation.
12868	//
12869	// OperationId is a required field
12870	OperationId *string `min:"1" type:"string" required:"true"`
12871
12872	// The name or unique ID of the stack set that you want to get operation results
12873	// for.
12874	//
12875	// StackSetName is a required field
12876	StackSetName *string `type:"string" required:"true"`
12877}
12878
12879// String returns the string representation
12880func (s ListStackSetOperationResultsInput) String() string {
12881	return awsutil.Prettify(s)
12882}
12883
12884// GoString returns the string representation
12885func (s ListStackSetOperationResultsInput) GoString() string {
12886	return s.String()
12887}
12888
12889// Validate inspects the fields of the type to determine if they are valid.
12890func (s *ListStackSetOperationResultsInput) Validate() error {
12891	invalidParams := request.ErrInvalidParams{Context: "ListStackSetOperationResultsInput"}
12892	if s.MaxResults != nil && *s.MaxResults < 1 {
12893		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
12894	}
12895	if s.NextToken != nil && len(*s.NextToken) < 1 {
12896		invalidParams.Add(request.NewErrParamMinLen("NextToken", 1))
12897	}
12898	if s.OperationId == nil {
12899		invalidParams.Add(request.NewErrParamRequired("OperationId"))
12900	}
12901	if s.OperationId != nil && len(*s.OperationId) < 1 {
12902		invalidParams.Add(request.NewErrParamMinLen("OperationId", 1))
12903	}
12904	if s.StackSetName == nil {
12905		invalidParams.Add(request.NewErrParamRequired("StackSetName"))
12906	}
12907
12908	if invalidParams.Len() > 0 {
12909		return invalidParams
12910	}
12911	return nil
12912}
12913
12914// SetCallAs sets the CallAs field's value.
12915func (s *ListStackSetOperationResultsInput) SetCallAs(v string) *ListStackSetOperationResultsInput {
12916	s.CallAs = &v
12917	return s
12918}
12919
12920// SetMaxResults sets the MaxResults field's value.
12921func (s *ListStackSetOperationResultsInput) SetMaxResults(v int64) *ListStackSetOperationResultsInput {
12922	s.MaxResults = &v
12923	return s
12924}
12925
12926// SetNextToken sets the NextToken field's value.
12927func (s *ListStackSetOperationResultsInput) SetNextToken(v string) *ListStackSetOperationResultsInput {
12928	s.NextToken = &v
12929	return s
12930}
12931
12932// SetOperationId sets the OperationId field's value.
12933func (s *ListStackSetOperationResultsInput) SetOperationId(v string) *ListStackSetOperationResultsInput {
12934	s.OperationId = &v
12935	return s
12936}
12937
12938// SetStackSetName sets the StackSetName field's value.
12939func (s *ListStackSetOperationResultsInput) SetStackSetName(v string) *ListStackSetOperationResultsInput {
12940	s.StackSetName = &v
12941	return s
12942}
12943
12944type ListStackSetOperationResultsOutput struct {
12945	_ struct{} `type:"structure"`
12946
12947	// If the request doesn't return all results, NextToken is set to a token. To
12948	// retrieve the next set of results, call ListOperationResults again and assign
12949	// that token to the request object's NextToken parameter. If there are no remaining
12950	// results, NextToken is set to null.
12951	NextToken *string `min:"1" type:"string"`
12952
12953	// A list of StackSetOperationResultSummary structures that contain information
12954	// about the specified operation results, for accounts and Regions that are
12955	// included in the operation.
12956	Summaries []*StackSetOperationResultSummary `type:"list"`
12957}
12958
12959// String returns the string representation
12960func (s ListStackSetOperationResultsOutput) String() string {
12961	return awsutil.Prettify(s)
12962}
12963
12964// GoString returns the string representation
12965func (s ListStackSetOperationResultsOutput) GoString() string {
12966	return s.String()
12967}
12968
12969// SetNextToken sets the NextToken field's value.
12970func (s *ListStackSetOperationResultsOutput) SetNextToken(v string) *ListStackSetOperationResultsOutput {
12971	s.NextToken = &v
12972	return s
12973}
12974
12975// SetSummaries sets the Summaries field's value.
12976func (s *ListStackSetOperationResultsOutput) SetSummaries(v []*StackSetOperationResultSummary) *ListStackSetOperationResultsOutput {
12977	s.Summaries = v
12978	return s
12979}
12980
12981type ListStackSetOperationsInput struct {
12982	_ struct{} `type:"structure"`
12983
12984	// [Service-managed permissions] Specifies whether you are acting as an account
12985	// administrator in the organization's management account or as a delegated
12986	// administrator in a member account.
12987	//
12988	// By default, SELF is specified. Use SELF for stack sets with self-managed
12989	// permissions.
12990	//
12991	//    * If you are signed in to the management account, specify SELF.
12992	//
12993	//    * If you are signed in to a delegated administrator account, specify DELEGATED_ADMIN.
12994	//    Your account must be registered as a delegated administrator in the management
12995	//    account. For more information, see Register a delegated administrator
12996	//    (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/stacksets-orgs-delegated-admin.html)
12997	//    in the CloudFormation User Guide.
12998	CallAs *string `type:"string" enum:"CallAs"`
12999
13000	// The maximum number of results to be returned with a single call. If the number
13001	// of available results exceeds this maximum, the response includes a NextToken
13002	// value that you can assign to the NextToken request parameter to get the next
13003	// set of results.
13004	MaxResults *int64 `min:"1" type:"integer"`
13005
13006	// If the previous paginated request didn't return all of the remaining results,
13007	// the response object's NextToken parameter value is set to a token. To retrieve
13008	// the next set of results, call ListStackSetOperations again and assign that
13009	// token to the request object's NextToken parameter. If there are no remaining
13010	// results, the previous response object's NextToken parameter is set to null.
13011	NextToken *string `min:"1" type:"string"`
13012
13013	// The name or unique ID of the stack set that you want to get operation summaries
13014	// for.
13015	//
13016	// StackSetName is a required field
13017	StackSetName *string `type:"string" required:"true"`
13018}
13019
13020// String returns the string representation
13021func (s ListStackSetOperationsInput) String() string {
13022	return awsutil.Prettify(s)
13023}
13024
13025// GoString returns the string representation
13026func (s ListStackSetOperationsInput) GoString() string {
13027	return s.String()
13028}
13029
13030// Validate inspects the fields of the type to determine if they are valid.
13031func (s *ListStackSetOperationsInput) Validate() error {
13032	invalidParams := request.ErrInvalidParams{Context: "ListStackSetOperationsInput"}
13033	if s.MaxResults != nil && *s.MaxResults < 1 {
13034		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
13035	}
13036	if s.NextToken != nil && len(*s.NextToken) < 1 {
13037		invalidParams.Add(request.NewErrParamMinLen("NextToken", 1))
13038	}
13039	if s.StackSetName == nil {
13040		invalidParams.Add(request.NewErrParamRequired("StackSetName"))
13041	}
13042
13043	if invalidParams.Len() > 0 {
13044		return invalidParams
13045	}
13046	return nil
13047}
13048
13049// SetCallAs sets the CallAs field's value.
13050func (s *ListStackSetOperationsInput) SetCallAs(v string) *ListStackSetOperationsInput {
13051	s.CallAs = &v
13052	return s
13053}
13054
13055// SetMaxResults sets the MaxResults field's value.
13056func (s *ListStackSetOperationsInput) SetMaxResults(v int64) *ListStackSetOperationsInput {
13057	s.MaxResults = &v
13058	return s
13059}
13060
13061// SetNextToken sets the NextToken field's value.
13062func (s *ListStackSetOperationsInput) SetNextToken(v string) *ListStackSetOperationsInput {
13063	s.NextToken = &v
13064	return s
13065}
13066
13067// SetStackSetName sets the StackSetName field's value.
13068func (s *ListStackSetOperationsInput) SetStackSetName(v string) *ListStackSetOperationsInput {
13069	s.StackSetName = &v
13070	return s
13071}
13072
13073type ListStackSetOperationsOutput struct {
13074	_ struct{} `type:"structure"`
13075
13076	// If the request doesn't return all results, NextToken is set to a token. To
13077	// retrieve the next set of results, call ListOperationResults again and assign
13078	// that token to the request object's NextToken parameter. If there are no remaining
13079	// results, NextToken is set to null.
13080	NextToken *string `min:"1" type:"string"`
13081
13082	// A list of StackSetOperationSummary structures that contain summary information
13083	// about operations for the specified stack set.
13084	Summaries []*StackSetOperationSummary `type:"list"`
13085}
13086
13087// String returns the string representation
13088func (s ListStackSetOperationsOutput) String() string {
13089	return awsutil.Prettify(s)
13090}
13091
13092// GoString returns the string representation
13093func (s ListStackSetOperationsOutput) GoString() string {
13094	return s.String()
13095}
13096
13097// SetNextToken sets the NextToken field's value.
13098func (s *ListStackSetOperationsOutput) SetNextToken(v string) *ListStackSetOperationsOutput {
13099	s.NextToken = &v
13100	return s
13101}
13102
13103// SetSummaries sets the Summaries field's value.
13104func (s *ListStackSetOperationsOutput) SetSummaries(v []*StackSetOperationSummary) *ListStackSetOperationsOutput {
13105	s.Summaries = v
13106	return s
13107}
13108
13109type ListStackSetsInput struct {
13110	_ struct{} `type:"structure"`
13111
13112	// [Service-managed permissions] Specifies whether you are acting as an account
13113	// administrator in the management account or as a delegated administrator in
13114	// a member account.
13115	//
13116	// By default, SELF is specified. Use SELF for stack sets with self-managed
13117	// permissions.
13118	//
13119	//    * If you are signed in to the management account, specify SELF.
13120	//
13121	//    * If you are signed in to a delegated administrator account, specify DELEGATED_ADMIN.
13122	//    Your account must be registered as a delegated administrator in the management
13123	//    account. For more information, see Register a delegated administrator
13124	//    (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/stacksets-orgs-delegated-admin.html)
13125	//    in the CloudFormation User Guide.
13126	CallAs *string `type:"string" enum:"CallAs"`
13127
13128	// The maximum number of results to be returned with a single call. If the number
13129	// of available results exceeds this maximum, the response includes a NextToken
13130	// value that you can assign to the NextToken request parameter to get the next
13131	// set of results.
13132	MaxResults *int64 `min:"1" type:"integer"`
13133
13134	// If the previous paginated request didn't return all of the remaining results,
13135	// the response object's NextToken parameter value is set to a token. To retrieve
13136	// the next set of results, call ListStackSets again and assign that token to
13137	// the request object's NextToken parameter. If there are no remaining results,
13138	// the previous response object's NextToken parameter is set to null.
13139	NextToken *string `min:"1" type:"string"`
13140
13141	// The status of the stack sets that you want to get summary information about.
13142	Status *string `type:"string" enum:"StackSetStatus"`
13143}
13144
13145// String returns the string representation
13146func (s ListStackSetsInput) String() string {
13147	return awsutil.Prettify(s)
13148}
13149
13150// GoString returns the string representation
13151func (s ListStackSetsInput) GoString() string {
13152	return s.String()
13153}
13154
13155// Validate inspects the fields of the type to determine if they are valid.
13156func (s *ListStackSetsInput) Validate() error {
13157	invalidParams := request.ErrInvalidParams{Context: "ListStackSetsInput"}
13158	if s.MaxResults != nil && *s.MaxResults < 1 {
13159		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
13160	}
13161	if s.NextToken != nil && len(*s.NextToken) < 1 {
13162		invalidParams.Add(request.NewErrParamMinLen("NextToken", 1))
13163	}
13164
13165	if invalidParams.Len() > 0 {
13166		return invalidParams
13167	}
13168	return nil
13169}
13170
13171// SetCallAs sets the CallAs field's value.
13172func (s *ListStackSetsInput) SetCallAs(v string) *ListStackSetsInput {
13173	s.CallAs = &v
13174	return s
13175}
13176
13177// SetMaxResults sets the MaxResults field's value.
13178func (s *ListStackSetsInput) SetMaxResults(v int64) *ListStackSetsInput {
13179	s.MaxResults = &v
13180	return s
13181}
13182
13183// SetNextToken sets the NextToken field's value.
13184func (s *ListStackSetsInput) SetNextToken(v string) *ListStackSetsInput {
13185	s.NextToken = &v
13186	return s
13187}
13188
13189// SetStatus sets the Status field's value.
13190func (s *ListStackSetsInput) SetStatus(v string) *ListStackSetsInput {
13191	s.Status = &v
13192	return s
13193}
13194
13195type ListStackSetsOutput struct {
13196	_ struct{} `type:"structure"`
13197
13198	// If the request doesn't return all of the remaining results, NextToken is
13199	// set to a token. To retrieve the next set of results, call ListStackInstances
13200	// again and assign that token to the request object's NextToken parameter.
13201	// If the request returns all results, NextToken is set to null.
13202	NextToken *string `min:"1" type:"string"`
13203
13204	// A list of StackSetSummary structures that contain information about the user's
13205	// stack sets.
13206	Summaries []*StackSetSummary `type:"list"`
13207}
13208
13209// String returns the string representation
13210func (s ListStackSetsOutput) String() string {
13211	return awsutil.Prettify(s)
13212}
13213
13214// GoString returns the string representation
13215func (s ListStackSetsOutput) GoString() string {
13216	return s.String()
13217}
13218
13219// SetNextToken sets the NextToken field's value.
13220func (s *ListStackSetsOutput) SetNextToken(v string) *ListStackSetsOutput {
13221	s.NextToken = &v
13222	return s
13223}
13224
13225// SetSummaries sets the Summaries field's value.
13226func (s *ListStackSetsOutput) SetSummaries(v []*StackSetSummary) *ListStackSetsOutput {
13227	s.Summaries = v
13228	return s
13229}
13230
13231// The input for ListStacks action.
13232type ListStacksInput struct {
13233	_ struct{} `type:"structure"`
13234
13235	// A string that identifies the next page of stacks that you want to retrieve.
13236	NextToken *string `min:"1" type:"string"`
13237
13238	// Stack status to use as a filter. Specify one or more stack status codes to
13239	// list only stacks with the specified status codes. For a complete list of
13240	// stack status codes, see the StackStatus parameter of the Stack data type.
13241	StackStatusFilter []*string `type:"list"`
13242}
13243
13244// String returns the string representation
13245func (s ListStacksInput) String() string {
13246	return awsutil.Prettify(s)
13247}
13248
13249// GoString returns the string representation
13250func (s ListStacksInput) GoString() string {
13251	return s.String()
13252}
13253
13254// Validate inspects the fields of the type to determine if they are valid.
13255func (s *ListStacksInput) Validate() error {
13256	invalidParams := request.ErrInvalidParams{Context: "ListStacksInput"}
13257	if s.NextToken != nil && len(*s.NextToken) < 1 {
13258		invalidParams.Add(request.NewErrParamMinLen("NextToken", 1))
13259	}
13260
13261	if invalidParams.Len() > 0 {
13262		return invalidParams
13263	}
13264	return nil
13265}
13266
13267// SetNextToken sets the NextToken field's value.
13268func (s *ListStacksInput) SetNextToken(v string) *ListStacksInput {
13269	s.NextToken = &v
13270	return s
13271}
13272
13273// SetStackStatusFilter sets the StackStatusFilter field's value.
13274func (s *ListStacksInput) SetStackStatusFilter(v []*string) *ListStacksInput {
13275	s.StackStatusFilter = v
13276	return s
13277}
13278
13279// The output for ListStacks action.
13280type ListStacksOutput struct {
13281	_ struct{} `type:"structure"`
13282
13283	// If the output exceeds 1 MB in size, a string that identifies the next page
13284	// of stacks. If no additional page exists, this value is null.
13285	NextToken *string `min:"1" type:"string"`
13286
13287	// A list of StackSummary structures containing information about the specified
13288	// stacks.
13289	StackSummaries []*StackSummary `type:"list"`
13290}
13291
13292// String returns the string representation
13293func (s ListStacksOutput) String() string {
13294	return awsutil.Prettify(s)
13295}
13296
13297// GoString returns the string representation
13298func (s ListStacksOutput) GoString() string {
13299	return s.String()
13300}
13301
13302// SetNextToken sets the NextToken field's value.
13303func (s *ListStacksOutput) SetNextToken(v string) *ListStacksOutput {
13304	s.NextToken = &v
13305	return s
13306}
13307
13308// SetStackSummaries sets the StackSummaries field's value.
13309func (s *ListStacksOutput) SetStackSummaries(v []*StackSummary) *ListStacksOutput {
13310	s.StackSummaries = v
13311	return s
13312}
13313
13314type ListTypeRegistrationsInput struct {
13315	_ struct{} `type:"structure"`
13316
13317	// The maximum number of results to be returned with a single call. If the number
13318	// of available results exceeds this maximum, the response includes a NextToken
13319	// value that you can assign to the NextToken request parameter to get the next
13320	// set of results.
13321	MaxResults *int64 `min:"1" type:"integer"`
13322
13323	// If the previous paginated request didn't return all of the remaining results,
13324	// the response object's NextToken parameter value is set to a token. To retrieve
13325	// the next set of results, call this action again and assign that token to
13326	// the request object's NextToken parameter. If there are no remaining results,
13327	// the previous response object's NextToken parameter is set to null.
13328	NextToken *string `min:"1" type:"string"`
13329
13330	// The current status of the extension registration request.
13331	//
13332	// The default is IN_PROGRESS.
13333	RegistrationStatusFilter *string `type:"string" enum:"RegistrationStatus"`
13334
13335	// The kind of extension.
13336	//
13337	// Conditional: You must specify either TypeName and Type, or Arn.
13338	Type *string `type:"string" enum:"RegistryType"`
13339
13340	// The Amazon Resource Name (ARN) of the extension.
13341	//
13342	// Conditional: You must specify either TypeName and Type, or Arn.
13343	TypeArn *string `type:"string"`
13344
13345	// The name of the extension.
13346	//
13347	// Conditional: You must specify either TypeName and Type, or Arn.
13348	TypeName *string `min:"10" type:"string"`
13349}
13350
13351// String returns the string representation
13352func (s ListTypeRegistrationsInput) String() string {
13353	return awsutil.Prettify(s)
13354}
13355
13356// GoString returns the string representation
13357func (s ListTypeRegistrationsInput) GoString() string {
13358	return s.String()
13359}
13360
13361// Validate inspects the fields of the type to determine if they are valid.
13362func (s *ListTypeRegistrationsInput) Validate() error {
13363	invalidParams := request.ErrInvalidParams{Context: "ListTypeRegistrationsInput"}
13364	if s.MaxResults != nil && *s.MaxResults < 1 {
13365		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
13366	}
13367	if s.NextToken != nil && len(*s.NextToken) < 1 {
13368		invalidParams.Add(request.NewErrParamMinLen("NextToken", 1))
13369	}
13370	if s.TypeName != nil && len(*s.TypeName) < 10 {
13371		invalidParams.Add(request.NewErrParamMinLen("TypeName", 10))
13372	}
13373
13374	if invalidParams.Len() > 0 {
13375		return invalidParams
13376	}
13377	return nil
13378}
13379
13380// SetMaxResults sets the MaxResults field's value.
13381func (s *ListTypeRegistrationsInput) SetMaxResults(v int64) *ListTypeRegistrationsInput {
13382	s.MaxResults = &v
13383	return s
13384}
13385
13386// SetNextToken sets the NextToken field's value.
13387func (s *ListTypeRegistrationsInput) SetNextToken(v string) *ListTypeRegistrationsInput {
13388	s.NextToken = &v
13389	return s
13390}
13391
13392// SetRegistrationStatusFilter sets the RegistrationStatusFilter field's value.
13393func (s *ListTypeRegistrationsInput) SetRegistrationStatusFilter(v string) *ListTypeRegistrationsInput {
13394	s.RegistrationStatusFilter = &v
13395	return s
13396}
13397
13398// SetType sets the Type field's value.
13399func (s *ListTypeRegistrationsInput) SetType(v string) *ListTypeRegistrationsInput {
13400	s.Type = &v
13401	return s
13402}
13403
13404// SetTypeArn sets the TypeArn field's value.
13405func (s *ListTypeRegistrationsInput) SetTypeArn(v string) *ListTypeRegistrationsInput {
13406	s.TypeArn = &v
13407	return s
13408}
13409
13410// SetTypeName sets the TypeName field's value.
13411func (s *ListTypeRegistrationsInput) SetTypeName(v string) *ListTypeRegistrationsInput {
13412	s.TypeName = &v
13413	return s
13414}
13415
13416type ListTypeRegistrationsOutput struct {
13417	_ struct{} `type:"structure"`
13418
13419	// If the request doesn't return all of the remaining results, NextToken is
13420	// set to a token. To retrieve the next set of results, call this action again
13421	// and assign that token to the request object's NextToken parameter. If the
13422	// request returns all results, NextToken is set to null.
13423	NextToken *string `min:"1" type:"string"`
13424
13425	// A list of extension registration tokens.
13426	//
13427	// Use DescribeTypeRegistration to return detailed information about a type
13428	// registration request.
13429	RegistrationTokenList []*string `type:"list"`
13430}
13431
13432// String returns the string representation
13433func (s ListTypeRegistrationsOutput) String() string {
13434	return awsutil.Prettify(s)
13435}
13436
13437// GoString returns the string representation
13438func (s ListTypeRegistrationsOutput) GoString() string {
13439	return s.String()
13440}
13441
13442// SetNextToken sets the NextToken field's value.
13443func (s *ListTypeRegistrationsOutput) SetNextToken(v string) *ListTypeRegistrationsOutput {
13444	s.NextToken = &v
13445	return s
13446}
13447
13448// SetRegistrationTokenList sets the RegistrationTokenList field's value.
13449func (s *ListTypeRegistrationsOutput) SetRegistrationTokenList(v []*string) *ListTypeRegistrationsOutput {
13450	s.RegistrationTokenList = v
13451	return s
13452}
13453
13454type ListTypeVersionsInput struct {
13455	_ struct{} `type:"structure"`
13456
13457	// The Amazon Resource Name (ARN) of the extension for which you want version
13458	// summary information.
13459	//
13460	// Conditional: You must specify either TypeName and Type, or Arn.
13461	Arn *string `type:"string"`
13462
13463	// The deprecation status of the extension versions that you want to get summary
13464	// information about.
13465	//
13466	// Valid values include:
13467	//
13468	//    * LIVE: The extension version is registered and can be used in CloudFormation
13469	//    operations, dependent on its provisioning behavior and visibility scope.
13470	//
13471	//    * DEPRECATED: The extension version has been deregistered and can no longer
13472	//    be used in CloudFormation operations.
13473	//
13474	// The default is LIVE.
13475	DeprecatedStatus *string `type:"string" enum:"DeprecatedStatus"`
13476
13477	// The maximum number of results to be returned with a single call. If the number
13478	// of available results exceeds this maximum, the response includes a NextToken
13479	// value that you can assign to the NextToken request parameter to get the next
13480	// set of results.
13481	MaxResults *int64 `min:"1" type:"integer"`
13482
13483	// If the previous paginated request didn't return all of the remaining results,
13484	// the response object's NextToken parameter value is set to a token. To retrieve
13485	// the next set of results, call this action again and assign that token to
13486	// the request object's NextToken parameter. If there are no remaining results,
13487	// the previous response object's NextToken parameter is set to null.
13488	NextToken *string `min:"1" type:"string"`
13489
13490	// The publisher ID of the extension publisher.
13491	//
13492	// Extensions published by Amazon are not assigned a publisher ID.
13493	PublisherId *string `min:"1" type:"string"`
13494
13495	// The kind of the extension.
13496	//
13497	// Conditional: You must specify either TypeName and Type, or Arn.
13498	Type *string `type:"string" enum:"RegistryType"`
13499
13500	// The name of the extension for which you want version summary information.
13501	//
13502	// Conditional: You must specify either TypeName and Type, or Arn.
13503	TypeName *string `min:"10" type:"string"`
13504}
13505
13506// String returns the string representation
13507func (s ListTypeVersionsInput) String() string {
13508	return awsutil.Prettify(s)
13509}
13510
13511// GoString returns the string representation
13512func (s ListTypeVersionsInput) GoString() string {
13513	return s.String()
13514}
13515
13516// Validate inspects the fields of the type to determine if they are valid.
13517func (s *ListTypeVersionsInput) Validate() error {
13518	invalidParams := request.ErrInvalidParams{Context: "ListTypeVersionsInput"}
13519	if s.MaxResults != nil && *s.MaxResults < 1 {
13520		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
13521	}
13522	if s.NextToken != nil && len(*s.NextToken) < 1 {
13523		invalidParams.Add(request.NewErrParamMinLen("NextToken", 1))
13524	}
13525	if s.PublisherId != nil && len(*s.PublisherId) < 1 {
13526		invalidParams.Add(request.NewErrParamMinLen("PublisherId", 1))
13527	}
13528	if s.TypeName != nil && len(*s.TypeName) < 10 {
13529		invalidParams.Add(request.NewErrParamMinLen("TypeName", 10))
13530	}
13531
13532	if invalidParams.Len() > 0 {
13533		return invalidParams
13534	}
13535	return nil
13536}
13537
13538// SetArn sets the Arn field's value.
13539func (s *ListTypeVersionsInput) SetArn(v string) *ListTypeVersionsInput {
13540	s.Arn = &v
13541	return s
13542}
13543
13544// SetDeprecatedStatus sets the DeprecatedStatus field's value.
13545func (s *ListTypeVersionsInput) SetDeprecatedStatus(v string) *ListTypeVersionsInput {
13546	s.DeprecatedStatus = &v
13547	return s
13548}
13549
13550// SetMaxResults sets the MaxResults field's value.
13551func (s *ListTypeVersionsInput) SetMaxResults(v int64) *ListTypeVersionsInput {
13552	s.MaxResults = &v
13553	return s
13554}
13555
13556// SetNextToken sets the NextToken field's value.
13557func (s *ListTypeVersionsInput) SetNextToken(v string) *ListTypeVersionsInput {
13558	s.NextToken = &v
13559	return s
13560}
13561
13562// SetPublisherId sets the PublisherId field's value.
13563func (s *ListTypeVersionsInput) SetPublisherId(v string) *ListTypeVersionsInput {
13564	s.PublisherId = &v
13565	return s
13566}
13567
13568// SetType sets the Type field's value.
13569func (s *ListTypeVersionsInput) SetType(v string) *ListTypeVersionsInput {
13570	s.Type = &v
13571	return s
13572}
13573
13574// SetTypeName sets the TypeName field's value.
13575func (s *ListTypeVersionsInput) SetTypeName(v string) *ListTypeVersionsInput {
13576	s.TypeName = &v
13577	return s
13578}
13579
13580type ListTypeVersionsOutput struct {
13581	_ struct{} `type:"structure"`
13582
13583	// If the request doesn't return all of the remaining results, NextToken is
13584	// set to a token. To retrieve the next set of results, call this action again
13585	// and assign that token to the request object's NextToken parameter. If the
13586	// request returns all results, NextToken is set to null.
13587	NextToken *string `min:"1" type:"string"`
13588
13589	// A list of TypeVersionSummary structures that contain information about the
13590	// specified extension's versions.
13591	TypeVersionSummaries []*TypeVersionSummary `type:"list"`
13592}
13593
13594// String returns the string representation
13595func (s ListTypeVersionsOutput) String() string {
13596	return awsutil.Prettify(s)
13597}
13598
13599// GoString returns the string representation
13600func (s ListTypeVersionsOutput) GoString() string {
13601	return s.String()
13602}
13603
13604// SetNextToken sets the NextToken field's value.
13605func (s *ListTypeVersionsOutput) SetNextToken(v string) *ListTypeVersionsOutput {
13606	s.NextToken = &v
13607	return s
13608}
13609
13610// SetTypeVersionSummaries sets the TypeVersionSummaries field's value.
13611func (s *ListTypeVersionsOutput) SetTypeVersionSummaries(v []*TypeVersionSummary) *ListTypeVersionsOutput {
13612	s.TypeVersionSummaries = v
13613	return s
13614}
13615
13616type ListTypesInput struct {
13617	_ struct{} `type:"structure"`
13618
13619	// The deprecation status of the extension that you want to get summary information
13620	// about.
13621	//
13622	// Valid values include:
13623	//
13624	//    * LIVE: The extension is registered for use in CloudFormation operations.
13625	//
13626	//    * DEPRECATED: The extension has been deregistered and can no longer be
13627	//    used in CloudFormation operations.
13628	DeprecatedStatus *string `type:"string" enum:"DeprecatedStatus"`
13629
13630	// Filter criteria to use in determining which extensions to return.
13631	//
13632	// If you specify a filter, CloudFormation ignores any specified Visibility
13633	// value when returning the list of types.
13634	Filters *TypeFilters `type:"structure"`
13635
13636	// The maximum number of results to be returned with a single call. If the number
13637	// of available results exceeds this maximum, the response includes a NextToken
13638	// value that you can assign to the NextToken request parameter to get the next
13639	// set of results.
13640	MaxResults *int64 `min:"1" type:"integer"`
13641
13642	// If the previous paginated request didn't return all of the remaining results,
13643	// the response object's NextToken parameter value is set to a token. To retrieve
13644	// the next set of results, call this action again and assign that token to
13645	// the request object's NextToken parameter. If there are no remaining results,
13646	// the previous response object's NextToken parameter is set to null.
13647	NextToken *string `min:"1" type:"string"`
13648
13649	// For resource types, the provisioning behavior of the resource type. CloudFormation
13650	// determines the provisioning type during registration, based on the types
13651	// of handlers in the schema handler package submitted.
13652	//
13653	// Valid values include:
13654	//
13655	//    * FULLY_MUTABLE: The resource type includes an update handler to process
13656	//    updates to the type during stack update operations.
13657	//
13658	//    * IMMUTABLE: The resource type does not include an update handler, so
13659	//    the type cannot be updated and must instead be replaced during stack update
13660	//    operations.
13661	//
13662	//    * NON_PROVISIONABLE: The resource type does not include create, read,
13663	//    and delete handlers, and therefore cannot actually be provisioned.
13664	//
13665	// The default is FULLY_MUTABLE.
13666	ProvisioningType *string `type:"string" enum:"ProvisioningType"`
13667
13668	// The type of extension.
13669	Type *string `type:"string" enum:"RegistryType"`
13670
13671	// The scope at which the extensions are visible and usable in CloudFormation
13672	// operations.
13673	//
13674	// Valid values include:
13675	//
13676	//    * PRIVATE: Extensions that are visible and usable within this account
13677	//    and region. This includes: Private extensions you have registered in this
13678	//    account and region. Public extensions that you have activated in this
13679	//    account and region.
13680	//
13681	//    * PUBLIC: Extensions that are publicly visible and available to be activated
13682	//    within any Amazon account. This includes extensions from Amazon, as well
13683	//    as third-party publishers.
13684	//
13685	// The default is PRIVATE.
13686	Visibility *string `type:"string" enum:"Visibility"`
13687}
13688
13689// String returns the string representation
13690func (s ListTypesInput) String() string {
13691	return awsutil.Prettify(s)
13692}
13693
13694// GoString returns the string representation
13695func (s ListTypesInput) GoString() string {
13696	return s.String()
13697}
13698
13699// Validate inspects the fields of the type to determine if they are valid.
13700func (s *ListTypesInput) Validate() error {
13701	invalidParams := request.ErrInvalidParams{Context: "ListTypesInput"}
13702	if s.MaxResults != nil && *s.MaxResults < 1 {
13703		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
13704	}
13705	if s.NextToken != nil && len(*s.NextToken) < 1 {
13706		invalidParams.Add(request.NewErrParamMinLen("NextToken", 1))
13707	}
13708	if s.Filters != nil {
13709		if err := s.Filters.Validate(); err != nil {
13710			invalidParams.AddNested("Filters", err.(request.ErrInvalidParams))
13711		}
13712	}
13713
13714	if invalidParams.Len() > 0 {
13715		return invalidParams
13716	}
13717	return nil
13718}
13719
13720// SetDeprecatedStatus sets the DeprecatedStatus field's value.
13721func (s *ListTypesInput) SetDeprecatedStatus(v string) *ListTypesInput {
13722	s.DeprecatedStatus = &v
13723	return s
13724}
13725
13726// SetFilters sets the Filters field's value.
13727func (s *ListTypesInput) SetFilters(v *TypeFilters) *ListTypesInput {
13728	s.Filters = v
13729	return s
13730}
13731
13732// SetMaxResults sets the MaxResults field's value.
13733func (s *ListTypesInput) SetMaxResults(v int64) *ListTypesInput {
13734	s.MaxResults = &v
13735	return s
13736}
13737
13738// SetNextToken sets the NextToken field's value.
13739func (s *ListTypesInput) SetNextToken(v string) *ListTypesInput {
13740	s.NextToken = &v
13741	return s
13742}
13743
13744// SetProvisioningType sets the ProvisioningType field's value.
13745func (s *ListTypesInput) SetProvisioningType(v string) *ListTypesInput {
13746	s.ProvisioningType = &v
13747	return s
13748}
13749
13750// SetType sets the Type field's value.
13751func (s *ListTypesInput) SetType(v string) *ListTypesInput {
13752	s.Type = &v
13753	return s
13754}
13755
13756// SetVisibility sets the Visibility field's value.
13757func (s *ListTypesInput) SetVisibility(v string) *ListTypesInput {
13758	s.Visibility = &v
13759	return s
13760}
13761
13762type ListTypesOutput struct {
13763	_ struct{} `type:"structure"`
13764
13765	// If the request doesn't return all of the remaining results, NextToken is
13766	// set to a token. To retrieve the next set of results, call this action again
13767	// and assign that token to the request object's NextToken parameter. If the
13768	// request returns all results, NextToken is set to null.
13769	NextToken *string `min:"1" type:"string"`
13770
13771	// A list of TypeSummary structures that contain information about the specified
13772	// extensions.
13773	TypeSummaries []*TypeSummary `type:"list"`
13774}
13775
13776// String returns the string representation
13777func (s ListTypesOutput) String() string {
13778	return awsutil.Prettify(s)
13779}
13780
13781// GoString returns the string representation
13782func (s ListTypesOutput) GoString() string {
13783	return s.String()
13784}
13785
13786// SetNextToken sets the NextToken field's value.
13787func (s *ListTypesOutput) SetNextToken(v string) *ListTypesOutput {
13788	s.NextToken = &v
13789	return s
13790}
13791
13792// SetTypeSummaries sets the TypeSummaries field's value.
13793func (s *ListTypesOutput) SetTypeSummaries(v []*TypeSummary) *ListTypesOutput {
13794	s.TypeSummaries = v
13795	return s
13796}
13797
13798// Contains logging configuration information for an extension.
13799type LoggingConfig struct {
13800	_ struct{} `type:"structure"`
13801
13802	// The Amazon CloudWatch log group to which CloudFormation sends error logging
13803	// information when invoking the extension's handlers.
13804	//
13805	// LogGroupName is a required field
13806	LogGroupName *string `min:"1" type:"string" required:"true"`
13807
13808	// The ARN of the role that CloudFormation should assume when sending log entries
13809	// to CloudWatch logs.
13810	//
13811	// LogRoleArn is a required field
13812	LogRoleArn *string `min:"1" type:"string" required:"true"`
13813}
13814
13815// String returns the string representation
13816func (s LoggingConfig) String() string {
13817	return awsutil.Prettify(s)
13818}
13819
13820// GoString returns the string representation
13821func (s LoggingConfig) GoString() string {
13822	return s.String()
13823}
13824
13825// Validate inspects the fields of the type to determine if they are valid.
13826func (s *LoggingConfig) Validate() error {
13827	invalidParams := request.ErrInvalidParams{Context: "LoggingConfig"}
13828	if s.LogGroupName == nil {
13829		invalidParams.Add(request.NewErrParamRequired("LogGroupName"))
13830	}
13831	if s.LogGroupName != nil && len(*s.LogGroupName) < 1 {
13832		invalidParams.Add(request.NewErrParamMinLen("LogGroupName", 1))
13833	}
13834	if s.LogRoleArn == nil {
13835		invalidParams.Add(request.NewErrParamRequired("LogRoleArn"))
13836	}
13837	if s.LogRoleArn != nil && len(*s.LogRoleArn) < 1 {
13838		invalidParams.Add(request.NewErrParamMinLen("LogRoleArn", 1))
13839	}
13840
13841	if invalidParams.Len() > 0 {
13842		return invalidParams
13843	}
13844	return nil
13845}
13846
13847// SetLogGroupName sets the LogGroupName field's value.
13848func (s *LoggingConfig) SetLogGroupName(v string) *LoggingConfig {
13849	s.LogGroupName = &v
13850	return s
13851}
13852
13853// SetLogRoleArn sets the LogRoleArn field's value.
13854func (s *LoggingConfig) SetLogRoleArn(v string) *LoggingConfig {
13855	s.LogRoleArn = &v
13856	return s
13857}
13858
13859// Contains information about the module from which the resource was created,
13860// if the resource was created from a module included in the stack template.
13861//
13862// For more information on modules, see Using modules to encapsulate and reuse
13863// resource configurations (AWSCloudFormation/latest/UserGuide/modules.html)
13864// in the CloudFormation User Guide.
13865type ModuleInfo struct {
13866	_ struct{} `type:"structure"`
13867
13868	// A concantenated list of the logical IDs of the module or modules containing
13869	// the resource. Modules are listed starting with the inner-most nested module,
13870	// and separated by /.
13871	//
13872	// In the following example, the resource was created from a module, moduleA,
13873	// that is nested inside a parent module, moduleB.
13874	//
13875	// moduleA/moduleB
13876	//
13877	// For more information, see Referencing resources in a module (AWSCloudFormation/latest/UserGuide/modules.html#module-ref-resources)
13878	// in the CloudFormation User Guide.
13879	LogicalIdHierarchy *string `type:"string"`
13880
13881	// A concantenated list of the the module type or types containing the resource.
13882	// Module types are listed starting with the inner-most nested module, and separated
13883	// by /.
13884	//
13885	// In the following example, the resource was created from a module of type
13886	// AWS::First::Example::MODULE, that is nested inside a parent module of type
13887	// AWS::Second::Example::MODULE.
13888	//
13889	// AWS::First::Example::MODULE/AWS::Second::Example::MODULE
13890	TypeHierarchy *string `type:"string"`
13891}
13892
13893// String returns the string representation
13894func (s ModuleInfo) String() string {
13895	return awsutil.Prettify(s)
13896}
13897
13898// GoString returns the string representation
13899func (s ModuleInfo) GoString() string {
13900	return s.String()
13901}
13902
13903// SetLogicalIdHierarchy sets the LogicalIdHierarchy field's value.
13904func (s *ModuleInfo) SetLogicalIdHierarchy(v string) *ModuleInfo {
13905	s.LogicalIdHierarchy = &v
13906	return s
13907}
13908
13909// SetTypeHierarchy sets the TypeHierarchy field's value.
13910func (s *ModuleInfo) SetTypeHierarchy(v string) *ModuleInfo {
13911	s.TypeHierarchy = &v
13912	return s
13913}
13914
13915// The Output data type.
13916type Output struct {
13917	_ struct{} `type:"structure"`
13918
13919	// User defined description associated with the output.
13920	Description *string `min:"1" type:"string"`
13921
13922	// The name of the export associated with the output.
13923	ExportName *string `type:"string"`
13924
13925	// The key associated with the output.
13926	OutputKey *string `type:"string"`
13927
13928	// The value associated with the output.
13929	OutputValue *string `type:"string"`
13930}
13931
13932// String returns the string representation
13933func (s Output) String() string {
13934	return awsutil.Prettify(s)
13935}
13936
13937// GoString returns the string representation
13938func (s Output) GoString() string {
13939	return s.String()
13940}
13941
13942// SetDescription sets the Description field's value.
13943func (s *Output) SetDescription(v string) *Output {
13944	s.Description = &v
13945	return s
13946}
13947
13948// SetExportName sets the ExportName field's value.
13949func (s *Output) SetExportName(v string) *Output {
13950	s.ExportName = &v
13951	return s
13952}
13953
13954// SetOutputKey sets the OutputKey field's value.
13955func (s *Output) SetOutputKey(v string) *Output {
13956	s.OutputKey = &v
13957	return s
13958}
13959
13960// SetOutputValue sets the OutputValue field's value.
13961func (s *Output) SetOutputValue(v string) *Output {
13962	s.OutputValue = &v
13963	return s
13964}
13965
13966// The Parameter data type.
13967type Parameter struct {
13968	_ struct{} `type:"structure"`
13969
13970	// The key associated with the parameter. If you don't specify a key and value
13971	// for a particular parameter, CloudFormation uses the default value that is
13972	// specified in your template.
13973	ParameterKey *string `type:"string"`
13974
13975	// The input value associated with the parameter.
13976	ParameterValue *string `type:"string"`
13977
13978	// Read-only. The value that corresponds to a Systems Manager parameter key.
13979	// 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)
13980	// in the template.
13981	ResolvedValue *string `type:"string"`
13982
13983	// During a stack update, use the existing parameter value that the stack is
13984	// using for a given parameter key. If you specify true, do not specify a parameter
13985	// value.
13986	UsePreviousValue *bool `type:"boolean"`
13987}
13988
13989// String returns the string representation
13990func (s Parameter) String() string {
13991	return awsutil.Prettify(s)
13992}
13993
13994// GoString returns the string representation
13995func (s Parameter) GoString() string {
13996	return s.String()
13997}
13998
13999// SetParameterKey sets the ParameterKey field's value.
14000func (s *Parameter) SetParameterKey(v string) *Parameter {
14001	s.ParameterKey = &v
14002	return s
14003}
14004
14005// SetParameterValue sets the ParameterValue field's value.
14006func (s *Parameter) SetParameterValue(v string) *Parameter {
14007	s.ParameterValue = &v
14008	return s
14009}
14010
14011// SetResolvedValue sets the ResolvedValue field's value.
14012func (s *Parameter) SetResolvedValue(v string) *Parameter {
14013	s.ResolvedValue = &v
14014	return s
14015}
14016
14017// SetUsePreviousValue sets the UsePreviousValue field's value.
14018func (s *Parameter) SetUsePreviousValue(v bool) *Parameter {
14019	s.UsePreviousValue = &v
14020	return s
14021}
14022
14023// A set of criteria that CloudFormation uses to validate parameter values.
14024// Although other constraints might be defined in the stack template, CloudFormation
14025// returns only the AllowedValues property.
14026type ParameterConstraints struct {
14027	_ struct{} `type:"structure"`
14028
14029	// A list of values that are permitted for a parameter.
14030	AllowedValues []*string `type:"list"`
14031}
14032
14033// String returns the string representation
14034func (s ParameterConstraints) String() string {
14035	return awsutil.Prettify(s)
14036}
14037
14038// GoString returns the string representation
14039func (s ParameterConstraints) GoString() string {
14040	return s.String()
14041}
14042
14043// SetAllowedValues sets the AllowedValues field's value.
14044func (s *ParameterConstraints) SetAllowedValues(v []*string) *ParameterConstraints {
14045	s.AllowedValues = v
14046	return s
14047}
14048
14049// The ParameterDeclaration data type.
14050type ParameterDeclaration struct {
14051	_ struct{} `type:"structure"`
14052
14053	// The default value of the parameter.
14054	DefaultValue *string `type:"string"`
14055
14056	// The description that is associate with the parameter.
14057	Description *string `min:"1" type:"string"`
14058
14059	// Flag that indicates whether the parameter value is shown as plain text in
14060	// logs and in the Management Console.
14061	NoEcho *bool `type:"boolean"`
14062
14063	// The criteria that CloudFormation uses to validate parameter values.
14064	ParameterConstraints *ParameterConstraints `type:"structure"`
14065
14066	// The name that is associated with the parameter.
14067	ParameterKey *string `type:"string"`
14068
14069	// The type of parameter.
14070	ParameterType *string `type:"string"`
14071}
14072
14073// String returns the string representation
14074func (s ParameterDeclaration) String() string {
14075	return awsutil.Prettify(s)
14076}
14077
14078// GoString returns the string representation
14079func (s ParameterDeclaration) GoString() string {
14080	return s.String()
14081}
14082
14083// SetDefaultValue sets the DefaultValue field's value.
14084func (s *ParameterDeclaration) SetDefaultValue(v string) *ParameterDeclaration {
14085	s.DefaultValue = &v
14086	return s
14087}
14088
14089// SetDescription sets the Description field's value.
14090func (s *ParameterDeclaration) SetDescription(v string) *ParameterDeclaration {
14091	s.Description = &v
14092	return s
14093}
14094
14095// SetNoEcho sets the NoEcho field's value.
14096func (s *ParameterDeclaration) SetNoEcho(v bool) *ParameterDeclaration {
14097	s.NoEcho = &v
14098	return s
14099}
14100
14101// SetParameterConstraints sets the ParameterConstraints field's value.
14102func (s *ParameterDeclaration) SetParameterConstraints(v *ParameterConstraints) *ParameterDeclaration {
14103	s.ParameterConstraints = v
14104	return s
14105}
14106
14107// SetParameterKey sets the ParameterKey field's value.
14108func (s *ParameterDeclaration) SetParameterKey(v string) *ParameterDeclaration {
14109	s.ParameterKey = &v
14110	return s
14111}
14112
14113// SetParameterType sets the ParameterType field's value.
14114func (s *ParameterDeclaration) SetParameterType(v string) *ParameterDeclaration {
14115	s.ParameterType = &v
14116	return s
14117}
14118
14119// Context information that enables CloudFormation to uniquely identify a resource.
14120// CloudFormation uses context key-value pairs in cases where a resource's logical
14121// and physical IDs are not enough to uniquely identify that resource. Each
14122// context key-value pair specifies a resource that contains the targeted resource.
14123type PhysicalResourceIdContextKeyValuePair struct {
14124	_ struct{} `type:"structure"`
14125
14126	// The resource context key.
14127	//
14128	// Key is a required field
14129	Key *string `type:"string" required:"true"`
14130
14131	// The resource context value.
14132	//
14133	// Value is a required field
14134	Value *string `type:"string" required:"true"`
14135}
14136
14137// String returns the string representation
14138func (s PhysicalResourceIdContextKeyValuePair) String() string {
14139	return awsutil.Prettify(s)
14140}
14141
14142// GoString returns the string representation
14143func (s PhysicalResourceIdContextKeyValuePair) GoString() string {
14144	return s.String()
14145}
14146
14147// SetKey sets the Key field's value.
14148func (s *PhysicalResourceIdContextKeyValuePair) SetKey(v string) *PhysicalResourceIdContextKeyValuePair {
14149	s.Key = &v
14150	return s
14151}
14152
14153// SetValue sets the Value field's value.
14154func (s *PhysicalResourceIdContextKeyValuePair) SetValue(v string) *PhysicalResourceIdContextKeyValuePair {
14155	s.Value = &v
14156	return s
14157}
14158
14159// Information about a resource property whose actual value differs from its
14160// expected value, as defined in the stack template and any values specified
14161// as template parameters. These will be present only for resources whose StackResourceDriftStatus
14162// is MODIFIED. For more information, see Detecting Unregulated Configuration
14163// Changes to Stacks and Resources (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-stack-drift.html).
14164type PropertyDifference struct {
14165	_ struct{} `type:"structure"`
14166
14167	// The actual property value of the resource property.
14168	//
14169	// ActualValue is a required field
14170	ActualValue *string `type:"string" required:"true"`
14171
14172	// The type of property difference.
14173	//
14174	//    * ADD: A value has been added to a resource property that is an array
14175	//    or list data type.
14176	//
14177	//    * REMOVE: The property has been removed from the current resource configuration.
14178	//
14179	//    * NOT_EQUAL: The current property value differs from its expected value
14180	//    (as defined in the stack template and any values specified as template
14181	//    parameters).
14182	//
14183	// DifferenceType is a required field
14184	DifferenceType *string `type:"string" required:"true" enum:"DifferenceType"`
14185
14186	// The expected property value of the resource property, as defined in the stack
14187	// template and any values specified as template parameters.
14188	//
14189	// ExpectedValue is a required field
14190	ExpectedValue *string `type:"string" required:"true"`
14191
14192	// The fully-qualified path to the resource property.
14193	//
14194	// PropertyPath is a required field
14195	PropertyPath *string `type:"string" required:"true"`
14196}
14197
14198// String returns the string representation
14199func (s PropertyDifference) String() string {
14200	return awsutil.Prettify(s)
14201}
14202
14203// GoString returns the string representation
14204func (s PropertyDifference) GoString() string {
14205	return s.String()
14206}
14207
14208// SetActualValue sets the ActualValue field's value.
14209func (s *PropertyDifference) SetActualValue(v string) *PropertyDifference {
14210	s.ActualValue = &v
14211	return s
14212}
14213
14214// SetDifferenceType sets the DifferenceType field's value.
14215func (s *PropertyDifference) SetDifferenceType(v string) *PropertyDifference {
14216	s.DifferenceType = &v
14217	return s
14218}
14219
14220// SetExpectedValue sets the ExpectedValue field's value.
14221func (s *PropertyDifference) SetExpectedValue(v string) *PropertyDifference {
14222	s.ExpectedValue = &v
14223	return s
14224}
14225
14226// SetPropertyPath sets the PropertyPath field's value.
14227func (s *PropertyDifference) SetPropertyPath(v string) *PropertyDifference {
14228	s.PropertyPath = &v
14229	return s
14230}
14231
14232type PublishTypeInput struct {
14233	_ struct{} `type:"structure"`
14234
14235	// The Amazon Resource Number (ARN) of the extension.
14236	//
14237	// Conditional: You must specify Arn, or TypeName and Type.
14238	Arn *string `type:"string"`
14239
14240	// The version number to assign to this version of the extension.
14241	//
14242	// Use the following format, and adhere to semantic versioning when assigning
14243	// a version number to your extension:
14244	//
14245	// MAJOR.MINOR.PATCH
14246	//
14247	// For more information, see Semantic Versioning 2.0.0 (https://semver.org/).
14248	//
14249	// If you do not specify a version number, CloudFormation increments the version
14250	// number by one minor version release.
14251	//
14252	// The first time you publish a type, CloudFormation sets the version number
14253	// to 1.0.0, regardless of the value you specify.
14254	PublicVersionNumber *string `min:"5" type:"string"`
14255
14256	// The type of the extension.
14257	//
14258	// Conditional: You must specify Arn, or TypeName and Type.
14259	Type *string `type:"string" enum:"ThirdPartyType"`
14260
14261	// The name of the extension.
14262	//
14263	// Conditional: You must specify Arn, or TypeName and Type.
14264	TypeName *string `min:"10" type:"string"`
14265}
14266
14267// String returns the string representation
14268func (s PublishTypeInput) String() string {
14269	return awsutil.Prettify(s)
14270}
14271
14272// GoString returns the string representation
14273func (s PublishTypeInput) GoString() string {
14274	return s.String()
14275}
14276
14277// Validate inspects the fields of the type to determine if they are valid.
14278func (s *PublishTypeInput) Validate() error {
14279	invalidParams := request.ErrInvalidParams{Context: "PublishTypeInput"}
14280	if s.PublicVersionNumber != nil && len(*s.PublicVersionNumber) < 5 {
14281		invalidParams.Add(request.NewErrParamMinLen("PublicVersionNumber", 5))
14282	}
14283	if s.TypeName != nil && len(*s.TypeName) < 10 {
14284		invalidParams.Add(request.NewErrParamMinLen("TypeName", 10))
14285	}
14286
14287	if invalidParams.Len() > 0 {
14288		return invalidParams
14289	}
14290	return nil
14291}
14292
14293// SetArn sets the Arn field's value.
14294func (s *PublishTypeInput) SetArn(v string) *PublishTypeInput {
14295	s.Arn = &v
14296	return s
14297}
14298
14299// SetPublicVersionNumber sets the PublicVersionNumber field's value.
14300func (s *PublishTypeInput) SetPublicVersionNumber(v string) *PublishTypeInput {
14301	s.PublicVersionNumber = &v
14302	return s
14303}
14304
14305// SetType sets the Type field's value.
14306func (s *PublishTypeInput) SetType(v string) *PublishTypeInput {
14307	s.Type = &v
14308	return s
14309}
14310
14311// SetTypeName sets the TypeName field's value.
14312func (s *PublishTypeInput) SetTypeName(v string) *PublishTypeInput {
14313	s.TypeName = &v
14314	return s
14315}
14316
14317type PublishTypeOutput struct {
14318	_ struct{} `type:"structure"`
14319
14320	// The Amazon Resource Number (ARN) assigned to the public extension upon publication.
14321	PublicTypeArn *string `type:"string"`
14322}
14323
14324// String returns the string representation
14325func (s PublishTypeOutput) String() string {
14326	return awsutil.Prettify(s)
14327}
14328
14329// GoString returns the string representation
14330func (s PublishTypeOutput) GoString() string {
14331	return s.String()
14332}
14333
14334// SetPublicTypeArn sets the PublicTypeArn field's value.
14335func (s *PublishTypeOutput) SetPublicTypeArn(v string) *PublishTypeOutput {
14336	s.PublicTypeArn = &v
14337	return s
14338}
14339
14340type RecordHandlerProgressInput struct {
14341	_ struct{} `type:"structure"`
14342
14343	// Reserved for use by the CloudFormation CLI (https://docs.aws.amazon.com/cloudformation-cli/latest/userguide/what-is-cloudformation-cli.html).
14344	//
14345	// BearerToken is a required field
14346	BearerToken *string `min:"1" type:"string" required:"true"`
14347
14348	// Reserved for use by the CloudFormation CLI (https://docs.aws.amazon.com/cloudformation-cli/latest/userguide/what-is-cloudformation-cli.html).
14349	ClientRequestToken *string `min:"1" type:"string"`
14350
14351	// Reserved for use by the CloudFormation CLI (https://docs.aws.amazon.com/cloudformation-cli/latest/userguide/what-is-cloudformation-cli.html).
14352	CurrentOperationStatus *string `type:"string" enum:"OperationStatus"`
14353
14354	// Reserved for use by the CloudFormation CLI (https://docs.aws.amazon.com/cloudformation-cli/latest/userguide/what-is-cloudformation-cli.html).
14355	ErrorCode *string `type:"string" enum:"HandlerErrorCode"`
14356
14357	// Reserved for use by the CloudFormation CLI (https://docs.aws.amazon.com/cloudformation-cli/latest/userguide/what-is-cloudformation-cli.html).
14358	//
14359	// OperationStatus is a required field
14360	OperationStatus *string `type:"string" required:"true" enum:"OperationStatus"`
14361
14362	// Reserved for use by the CloudFormation CLI (https://docs.aws.amazon.com/cloudformation-cli/latest/userguide/what-is-cloudformation-cli.html).
14363	ResourceModel *string `min:"1" type:"string"`
14364
14365	// Reserved for use by the CloudFormation CLI (https://docs.aws.amazon.com/cloudformation-cli/latest/userguide/what-is-cloudformation-cli.html).
14366	StatusMessage *string `type:"string"`
14367}
14368
14369// String returns the string representation
14370func (s RecordHandlerProgressInput) String() string {
14371	return awsutil.Prettify(s)
14372}
14373
14374// GoString returns the string representation
14375func (s RecordHandlerProgressInput) GoString() string {
14376	return s.String()
14377}
14378
14379// Validate inspects the fields of the type to determine if they are valid.
14380func (s *RecordHandlerProgressInput) Validate() error {
14381	invalidParams := request.ErrInvalidParams{Context: "RecordHandlerProgressInput"}
14382	if s.BearerToken == nil {
14383		invalidParams.Add(request.NewErrParamRequired("BearerToken"))
14384	}
14385	if s.BearerToken != nil && len(*s.BearerToken) < 1 {
14386		invalidParams.Add(request.NewErrParamMinLen("BearerToken", 1))
14387	}
14388	if s.ClientRequestToken != nil && len(*s.ClientRequestToken) < 1 {
14389		invalidParams.Add(request.NewErrParamMinLen("ClientRequestToken", 1))
14390	}
14391	if s.OperationStatus == nil {
14392		invalidParams.Add(request.NewErrParamRequired("OperationStatus"))
14393	}
14394	if s.ResourceModel != nil && len(*s.ResourceModel) < 1 {
14395		invalidParams.Add(request.NewErrParamMinLen("ResourceModel", 1))
14396	}
14397
14398	if invalidParams.Len() > 0 {
14399		return invalidParams
14400	}
14401	return nil
14402}
14403
14404// SetBearerToken sets the BearerToken field's value.
14405func (s *RecordHandlerProgressInput) SetBearerToken(v string) *RecordHandlerProgressInput {
14406	s.BearerToken = &v
14407	return s
14408}
14409
14410// SetClientRequestToken sets the ClientRequestToken field's value.
14411func (s *RecordHandlerProgressInput) SetClientRequestToken(v string) *RecordHandlerProgressInput {
14412	s.ClientRequestToken = &v
14413	return s
14414}
14415
14416// SetCurrentOperationStatus sets the CurrentOperationStatus field's value.
14417func (s *RecordHandlerProgressInput) SetCurrentOperationStatus(v string) *RecordHandlerProgressInput {
14418	s.CurrentOperationStatus = &v
14419	return s
14420}
14421
14422// SetErrorCode sets the ErrorCode field's value.
14423func (s *RecordHandlerProgressInput) SetErrorCode(v string) *RecordHandlerProgressInput {
14424	s.ErrorCode = &v
14425	return s
14426}
14427
14428// SetOperationStatus sets the OperationStatus field's value.
14429func (s *RecordHandlerProgressInput) SetOperationStatus(v string) *RecordHandlerProgressInput {
14430	s.OperationStatus = &v
14431	return s
14432}
14433
14434// SetResourceModel sets the ResourceModel field's value.
14435func (s *RecordHandlerProgressInput) SetResourceModel(v string) *RecordHandlerProgressInput {
14436	s.ResourceModel = &v
14437	return s
14438}
14439
14440// SetStatusMessage sets the StatusMessage field's value.
14441func (s *RecordHandlerProgressInput) SetStatusMessage(v string) *RecordHandlerProgressInput {
14442	s.StatusMessage = &v
14443	return s
14444}
14445
14446type RecordHandlerProgressOutput struct {
14447	_ struct{} `type:"structure"`
14448}
14449
14450// String returns the string representation
14451func (s RecordHandlerProgressOutput) String() string {
14452	return awsutil.Prettify(s)
14453}
14454
14455// GoString returns the string representation
14456func (s RecordHandlerProgressOutput) GoString() string {
14457	return s.String()
14458}
14459
14460type RegisterPublisherInput struct {
14461	_ struct{} `type:"structure"`
14462
14463	// Whether you accept the Terms and Conditions (https://cloudformation-registry-documents.s3.amazonaws.com/Terms_and_Conditions_for_AWS_CloudFormation_Registry_Publishers.pdf)
14464	// for publishing extensions in the CloudFormation registry. You must accept
14465	// the terms and conditions in order to register to publish public extensions
14466	// to the CloudFormation registry.
14467	//
14468	// The default is false.
14469	AcceptTermsAndConditions *bool `type:"boolean"`
14470
14471	// If you are using a Bitbucket or GitHub account for identity verification,
14472	// the Amazon Resource Name (ARN) for your connection to that account.
14473	//
14474	// For more information, see Registering your account to publish CloudFormation
14475	// extensions (https://docs.aws.amazon.com/cloudformation-cli/latest/userguide/publish-extension.html#publish-extension-prereqs)
14476	// in the CloudFormation CLI User Guide.
14477	ConnectionArn *string `min:"1" type:"string"`
14478}
14479
14480// String returns the string representation
14481func (s RegisterPublisherInput) String() string {
14482	return awsutil.Prettify(s)
14483}
14484
14485// GoString returns the string representation
14486func (s RegisterPublisherInput) GoString() string {
14487	return s.String()
14488}
14489
14490// Validate inspects the fields of the type to determine if they are valid.
14491func (s *RegisterPublisherInput) Validate() error {
14492	invalidParams := request.ErrInvalidParams{Context: "RegisterPublisherInput"}
14493	if s.ConnectionArn != nil && len(*s.ConnectionArn) < 1 {
14494		invalidParams.Add(request.NewErrParamMinLen("ConnectionArn", 1))
14495	}
14496
14497	if invalidParams.Len() > 0 {
14498		return invalidParams
14499	}
14500	return nil
14501}
14502
14503// SetAcceptTermsAndConditions sets the AcceptTermsAndConditions field's value.
14504func (s *RegisterPublisherInput) SetAcceptTermsAndConditions(v bool) *RegisterPublisherInput {
14505	s.AcceptTermsAndConditions = &v
14506	return s
14507}
14508
14509// SetConnectionArn sets the ConnectionArn field's value.
14510func (s *RegisterPublisherInput) SetConnectionArn(v string) *RegisterPublisherInput {
14511	s.ConnectionArn = &v
14512	return s
14513}
14514
14515type RegisterPublisherOutput struct {
14516	_ struct{} `type:"structure"`
14517
14518	// The ID assigned this account by CloudFormation for publishing extensions.
14519	PublisherId *string `min:"1" type:"string"`
14520}
14521
14522// String returns the string representation
14523func (s RegisterPublisherOutput) String() string {
14524	return awsutil.Prettify(s)
14525}
14526
14527// GoString returns the string representation
14528func (s RegisterPublisherOutput) GoString() string {
14529	return s.String()
14530}
14531
14532// SetPublisherId sets the PublisherId field's value.
14533func (s *RegisterPublisherOutput) SetPublisherId(v string) *RegisterPublisherOutput {
14534	s.PublisherId = &v
14535	return s
14536}
14537
14538type RegisterTypeInput struct {
14539	_ struct{} `type:"structure"`
14540
14541	// A unique identifier that acts as an idempotency key for this registration
14542	// request. Specifying a client request token prevents CloudFormation from generating
14543	// more than one version of an extension from the same registeration request,
14544	// even if the request is submitted multiple times.
14545	ClientRequestToken *string `min:"1" type:"string"`
14546
14547	// The Amazon Resource Name (ARN) of the IAM role for CloudFormation to assume
14548	// when invoking the extension.
14549	//
14550	// For CloudFormation to assume the specified execution role, the role must
14551	// contain a trust relationship with the CloudFormation service principle (resources.cloudformation.amazonaws.com).
14552	// For more information on adding trust relationships, see Modifying a role
14553	// trust policy (IAM/latest/UserGuide/roles-managingrole-editing-console.html#roles-managingrole_edit-trust-policy)
14554	// in the Identity and Access Management User Guide.
14555	//
14556	// If your extension calls Amazon Web Services APIs in any of its handlers,
14557	// you must create an IAM execution role (https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles.html)
14558	// that includes the necessary permissions to call those Amazon Web Services
14559	// APIs, and provision that execution role in your account. When CloudFormation
14560	// needs to invoke the resource type handler, CloudFormation assumes this execution
14561	// role to create a temporary session token, which it then passes to the resource
14562	// type handler, thereby supplying your resource type with the appropriate credentials.
14563	ExecutionRoleArn *string `min:"1" type:"string"`
14564
14565	// Specifies logging configuration information for an extension.
14566	LoggingConfig *LoggingConfig `type:"structure"`
14567
14568	// A url to the S3 bucket containing the extension project package that contains
14569	// the neccessary files for the extension you want to register.
14570	//
14571	// For information on generating a schema handler package for the extension
14572	// you want to register, see submit (https://docs.aws.amazon.com/cloudformation-cli/latest/userguide/resource-type-cli-submit.html)
14573	// in the CloudFormation CLI User Guide.
14574	//
14575	// The user registering the extension must be able to access the package in
14576	// the S3 bucket. That is, the user needs to have GetObject (https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetObject.html)
14577	// permissions for the schema handler package. For more information, see Actions,
14578	// Resources, and Condition Keys for Amazon S3 (https://docs.aws.amazon.com/IAM/latest/UserGuide/list_amazons3.html)
14579	// in the Identity and Access Management User Guide.
14580	//
14581	// SchemaHandlerPackage is a required field
14582	SchemaHandlerPackage *string `min:"1" type:"string" required:"true"`
14583
14584	// The kind of extension.
14585	Type *string `type:"string" enum:"RegistryType"`
14586
14587	// The name of the extension being registered.
14588	//
14589	// We recommend that extension names adhere to the following patterns:
14590	//
14591	//    * For resource types, company_or_organization::service::type.
14592	//
14593	//    * For modules, company_or_organization::service::type::MODULE.
14594	//
14595	// The following organization namespaces are reserved and cannot be used in
14596	// your extension names:
14597	//
14598	//    * Alexa
14599	//
14600	//    * AMZN
14601	//
14602	//    * Amazon
14603	//
14604	//    * AWS
14605	//
14606	//    * Custom
14607	//
14608	//    * Dev
14609	//
14610	// TypeName is a required field
14611	TypeName *string `min:"10" type:"string" required:"true"`
14612}
14613
14614// String returns the string representation
14615func (s RegisterTypeInput) String() string {
14616	return awsutil.Prettify(s)
14617}
14618
14619// GoString returns the string representation
14620func (s RegisterTypeInput) GoString() string {
14621	return s.String()
14622}
14623
14624// Validate inspects the fields of the type to determine if they are valid.
14625func (s *RegisterTypeInput) Validate() error {
14626	invalidParams := request.ErrInvalidParams{Context: "RegisterTypeInput"}
14627	if s.ClientRequestToken != nil && len(*s.ClientRequestToken) < 1 {
14628		invalidParams.Add(request.NewErrParamMinLen("ClientRequestToken", 1))
14629	}
14630	if s.ExecutionRoleArn != nil && len(*s.ExecutionRoleArn) < 1 {
14631		invalidParams.Add(request.NewErrParamMinLen("ExecutionRoleArn", 1))
14632	}
14633	if s.SchemaHandlerPackage == nil {
14634		invalidParams.Add(request.NewErrParamRequired("SchemaHandlerPackage"))
14635	}
14636	if s.SchemaHandlerPackage != nil && len(*s.SchemaHandlerPackage) < 1 {
14637		invalidParams.Add(request.NewErrParamMinLen("SchemaHandlerPackage", 1))
14638	}
14639	if s.TypeName == nil {
14640		invalidParams.Add(request.NewErrParamRequired("TypeName"))
14641	}
14642	if s.TypeName != nil && len(*s.TypeName) < 10 {
14643		invalidParams.Add(request.NewErrParamMinLen("TypeName", 10))
14644	}
14645	if s.LoggingConfig != nil {
14646		if err := s.LoggingConfig.Validate(); err != nil {
14647			invalidParams.AddNested("LoggingConfig", err.(request.ErrInvalidParams))
14648		}
14649	}
14650
14651	if invalidParams.Len() > 0 {
14652		return invalidParams
14653	}
14654	return nil
14655}
14656
14657// SetClientRequestToken sets the ClientRequestToken field's value.
14658func (s *RegisterTypeInput) SetClientRequestToken(v string) *RegisterTypeInput {
14659	s.ClientRequestToken = &v
14660	return s
14661}
14662
14663// SetExecutionRoleArn sets the ExecutionRoleArn field's value.
14664func (s *RegisterTypeInput) SetExecutionRoleArn(v string) *RegisterTypeInput {
14665	s.ExecutionRoleArn = &v
14666	return s
14667}
14668
14669// SetLoggingConfig sets the LoggingConfig field's value.
14670func (s *RegisterTypeInput) SetLoggingConfig(v *LoggingConfig) *RegisterTypeInput {
14671	s.LoggingConfig = v
14672	return s
14673}
14674
14675// SetSchemaHandlerPackage sets the SchemaHandlerPackage field's value.
14676func (s *RegisterTypeInput) SetSchemaHandlerPackage(v string) *RegisterTypeInput {
14677	s.SchemaHandlerPackage = &v
14678	return s
14679}
14680
14681// SetType sets the Type field's value.
14682func (s *RegisterTypeInput) SetType(v string) *RegisterTypeInput {
14683	s.Type = &v
14684	return s
14685}
14686
14687// SetTypeName sets the TypeName field's value.
14688func (s *RegisterTypeInput) SetTypeName(v string) *RegisterTypeInput {
14689	s.TypeName = &v
14690	return s
14691}
14692
14693type RegisterTypeOutput struct {
14694	_ struct{} `type:"structure"`
14695
14696	// The identifier for this registration request.
14697	//
14698	// Use this registration token when calling DescribeTypeRegistration , which
14699	// returns information about the status and IDs of the extension registration.
14700	RegistrationToken *string `min:"1" type:"string"`
14701}
14702
14703// String returns the string representation
14704func (s RegisterTypeOutput) String() string {
14705	return awsutil.Prettify(s)
14706}
14707
14708// GoString returns the string representation
14709func (s RegisterTypeOutput) GoString() string {
14710	return s.String()
14711}
14712
14713// SetRegistrationToken sets the RegistrationToken field's value.
14714func (s *RegisterTypeOutput) SetRegistrationToken(v string) *RegisterTypeOutput {
14715	s.RegistrationToken = &v
14716	return s
14717}
14718
14719// For extensions that are modules, a public third-party extension that must
14720// be activated in your account in order for the module itself to be activated.
14721//
14722// For more information, see Activating public modules for use in your account
14723// (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/modules.html#module-enabling)
14724// in the CloudFormation User Guide.
14725type RequiredActivatedType struct {
14726	_ struct{} `type:"structure"`
14727
14728	// The type name of the public extension.
14729	//
14730	// If you specified a TypeNameAlias when enabling the extension in this account
14731	// and region, CloudFormation treats that alias as the extension's type name
14732	// within the account and region, not the type name of the public extension.
14733	// For more information, see Specifying aliases to refer to extensions (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/registry-public.html#registry-public-enable-alias)
14734	// in the CloudFormation User Guide.
14735	OriginalTypeName *string `min:"10" type:"string"`
14736
14737	// The publisher ID of the extension publisher.
14738	PublisherId *string `min:"1" type:"string"`
14739
14740	// A list of the major versions of the extension type that the macro supports.
14741	SupportedMajorVersions []*int64 `type:"list"`
14742
14743	// An alias assigned to the public extension, in this account and region. If
14744	// you specify an alias for the extension, CloudFormation treats the alias as
14745	// the extension type name within this account and region. You must use the
14746	// alias to refer to the extension in your templates, API calls, and CloudFormation
14747	// console.
14748	TypeNameAlias *string `min:"10" type:"string"`
14749}
14750
14751// String returns the string representation
14752func (s RequiredActivatedType) String() string {
14753	return awsutil.Prettify(s)
14754}
14755
14756// GoString returns the string representation
14757func (s RequiredActivatedType) GoString() string {
14758	return s.String()
14759}
14760
14761// SetOriginalTypeName sets the OriginalTypeName field's value.
14762func (s *RequiredActivatedType) SetOriginalTypeName(v string) *RequiredActivatedType {
14763	s.OriginalTypeName = &v
14764	return s
14765}
14766
14767// SetPublisherId sets the PublisherId field's value.
14768func (s *RequiredActivatedType) SetPublisherId(v string) *RequiredActivatedType {
14769	s.PublisherId = &v
14770	return s
14771}
14772
14773// SetSupportedMajorVersions sets the SupportedMajorVersions field's value.
14774func (s *RequiredActivatedType) SetSupportedMajorVersions(v []*int64) *RequiredActivatedType {
14775	s.SupportedMajorVersions = v
14776	return s
14777}
14778
14779// SetTypeNameAlias sets the TypeNameAlias field's value.
14780func (s *RequiredActivatedType) SetTypeNameAlias(v string) *RequiredActivatedType {
14781	s.TypeNameAlias = &v
14782	return s
14783}
14784
14785// The ResourceChange structure describes the resource and the action that CloudFormation
14786// will perform on it if you execute this change set.
14787type ResourceChange struct {
14788	_ struct{} `type:"structure"`
14789
14790	// The action that CloudFormation takes on the resource, such as Add (adds a
14791	// new resource), Modify (changes a resource), Remove (deletes a resource),
14792	// Import (imports a resource), or Dynamic (exact action for the resource cannot
14793	// be determined).
14794	Action *string `type:"string" enum:"ChangeAction"`
14795
14796	// The change set ID of the nested change set.
14797	ChangeSetId *string `min:"1" type:"string"`
14798
14799	// For the Modify action, a list of ResourceChangeDetail structures that describes
14800	// the changes that CloudFormation will make to the resource.
14801	Details []*ResourceChangeDetail `type:"list"`
14802
14803	// The resource's logical ID, which is defined in the stack's template.
14804	LogicalResourceId *string `type:"string"`
14805
14806	// Contains information about the module from which the resource was created,
14807	// if the resource was created from a module included in the stack template.
14808	ModuleInfo *ModuleInfo `type:"structure"`
14809
14810	// The resource's physical ID (resource name). Resources that you are adding
14811	// don't have physical IDs because they haven't been created.
14812	PhysicalResourceId *string `type:"string"`
14813
14814	// For the Modify action, indicates whether CloudFormation will replace the
14815	// resource by creating a new one and deleting the old one. This value depends
14816	// on the value of the RequiresRecreation property in the ResourceTargetDefinition
14817	// structure. For example, if the RequiresRecreation field is Always and the
14818	// Evaluation field is Static, Replacement is True. If the RequiresRecreation
14819	// field is Always and the Evaluation field is Dynamic, Replacement is Conditionally.
14820	//
14821	// If you have multiple changes with different RequiresRecreation values, the
14822	// Replacement value depends on the change with the most impact. A RequiresRecreation
14823	// value of Always has the most impact, followed by Conditionally, and then
14824	// Never.
14825	Replacement *string `type:"string" enum:"Replacement"`
14826
14827	// The type of CloudFormation resource, such as AWS::S3::Bucket.
14828	ResourceType *string `min:"1" type:"string"`
14829
14830	// For the Modify action, indicates which resource attribute is triggering this
14831	// update, such as a change in the resource attribute's Metadata, Properties,
14832	// or Tags.
14833	Scope []*string `type:"list"`
14834}
14835
14836// String returns the string representation
14837func (s ResourceChange) String() string {
14838	return awsutil.Prettify(s)
14839}
14840
14841// GoString returns the string representation
14842func (s ResourceChange) GoString() string {
14843	return s.String()
14844}
14845
14846// SetAction sets the Action field's value.
14847func (s *ResourceChange) SetAction(v string) *ResourceChange {
14848	s.Action = &v
14849	return s
14850}
14851
14852// SetChangeSetId sets the ChangeSetId field's value.
14853func (s *ResourceChange) SetChangeSetId(v string) *ResourceChange {
14854	s.ChangeSetId = &v
14855	return s
14856}
14857
14858// SetDetails sets the Details field's value.
14859func (s *ResourceChange) SetDetails(v []*ResourceChangeDetail) *ResourceChange {
14860	s.Details = v
14861	return s
14862}
14863
14864// SetLogicalResourceId sets the LogicalResourceId field's value.
14865func (s *ResourceChange) SetLogicalResourceId(v string) *ResourceChange {
14866	s.LogicalResourceId = &v
14867	return s
14868}
14869
14870// SetModuleInfo sets the ModuleInfo field's value.
14871func (s *ResourceChange) SetModuleInfo(v *ModuleInfo) *ResourceChange {
14872	s.ModuleInfo = v
14873	return s
14874}
14875
14876// SetPhysicalResourceId sets the PhysicalResourceId field's value.
14877func (s *ResourceChange) SetPhysicalResourceId(v string) *ResourceChange {
14878	s.PhysicalResourceId = &v
14879	return s
14880}
14881
14882// SetReplacement sets the Replacement field's value.
14883func (s *ResourceChange) SetReplacement(v string) *ResourceChange {
14884	s.Replacement = &v
14885	return s
14886}
14887
14888// SetResourceType sets the ResourceType field's value.
14889func (s *ResourceChange) SetResourceType(v string) *ResourceChange {
14890	s.ResourceType = &v
14891	return s
14892}
14893
14894// SetScope sets the Scope field's value.
14895func (s *ResourceChange) SetScope(v []*string) *ResourceChange {
14896	s.Scope = v
14897	return s
14898}
14899
14900// For a resource with Modify as the action, the ResourceChange structure describes
14901// the changes CloudFormation will make to that resource.
14902type ResourceChangeDetail struct {
14903	_ struct{} `type:"structure"`
14904
14905	// The identity of the entity that triggered this change. This entity is a member
14906	// of the group that is specified by the ChangeSource field. For example, if
14907	// you modified the value of the KeyPairName parameter, the CausingEntity is
14908	// the name of the parameter (KeyPairName).
14909	//
14910	// If the ChangeSource value is DirectModification, no value is given for CausingEntity.
14911	CausingEntity *string `type:"string"`
14912
14913	// The group to which the CausingEntity value belongs. There are five entity
14914	// groups:
14915	//
14916	//    * ResourceReference entities are Ref intrinsic functions that refer to
14917	//    resources in the template, such as { "Ref" : "MyEC2InstanceResource" }.
14918	//
14919	//    * ParameterReference entities are Ref intrinsic functions that get template
14920	//    parameter values, such as { "Ref" : "MyPasswordParameter" }.
14921	//
14922	//    * ResourceAttribute entities are Fn::GetAtt intrinsic functions that get
14923	//    resource attribute values, such as { "Fn::GetAtt" : [ "MyEC2InstanceResource",
14924	//    "PublicDnsName" ] }.
14925	//
14926	//    * DirectModification entities are changes that are made directly to the
14927	//    template.
14928	//
14929	//    * Automatic entities are AWS::CloudFormation::Stack resource types, which
14930	//    are also known as nested stacks. If you made no changes to the AWS::CloudFormation::Stack
14931	//    resource, CloudFormation sets the ChangeSource to Automatic because the
14932	//    nested stack's template might have changed. Changes to a nested stack's
14933	//    template aren't visible to CloudFormation until you run an update on the
14934	//    parent stack.
14935	ChangeSource *string `type:"string" enum:"ChangeSource"`
14936
14937	// Indicates whether CloudFormation can determine the target value, and whether
14938	// the target value will change before you execute a change set.
14939	//
14940	// For Static evaluations, CloudFormation can determine that the target value
14941	// will change, and its value. For example, if you directly modify the InstanceType
14942	// property of an EC2 instance, CloudFormation knows that this property value
14943	// will change, and its value, so this is a Static evaluation.
14944	//
14945	// For Dynamic evaluations, cannot determine the target value because it depends
14946	// on the result of an intrinsic function, such as a Ref or Fn::GetAtt intrinsic
14947	// function, when the stack is updated. For example, if your template includes
14948	// a reference to a resource that is conditionally recreated, the value of the
14949	// reference (the physical ID of the resource) might change, depending on if
14950	// the resource is recreated. If the resource is recreated, it will have a new
14951	// physical ID, so all references to that resource will also be updated.
14952	Evaluation *string `type:"string" enum:"EvaluationType"`
14953
14954	// A ResourceTargetDefinition structure that describes the field that CloudFormation
14955	// will change and whether the resource will be recreated.
14956	Target *ResourceTargetDefinition `type:"structure"`
14957}
14958
14959// String returns the string representation
14960func (s ResourceChangeDetail) String() string {
14961	return awsutil.Prettify(s)
14962}
14963
14964// GoString returns the string representation
14965func (s ResourceChangeDetail) GoString() string {
14966	return s.String()
14967}
14968
14969// SetCausingEntity sets the CausingEntity field's value.
14970func (s *ResourceChangeDetail) SetCausingEntity(v string) *ResourceChangeDetail {
14971	s.CausingEntity = &v
14972	return s
14973}
14974
14975// SetChangeSource sets the ChangeSource field's value.
14976func (s *ResourceChangeDetail) SetChangeSource(v string) *ResourceChangeDetail {
14977	s.ChangeSource = &v
14978	return s
14979}
14980
14981// SetEvaluation sets the Evaluation field's value.
14982func (s *ResourceChangeDetail) SetEvaluation(v string) *ResourceChangeDetail {
14983	s.Evaluation = &v
14984	return s
14985}
14986
14987// SetTarget sets the Target field's value.
14988func (s *ResourceChangeDetail) SetTarget(v *ResourceTargetDefinition) *ResourceChangeDetail {
14989	s.Target = v
14990	return s
14991}
14992
14993// Describes the target resources of a specific type in your import template
14994// (for example, all AWS::S3::Bucket resources) and the properties you can provide
14995// during the import to identify resources of that type.
14996type ResourceIdentifierSummary struct {
14997	_ struct{} `type:"structure"`
14998
14999	// The logical IDs of the target resources of the specified ResourceType, as
15000	// defined in the import template.
15001	LogicalResourceIds []*string `min:"1" type:"list"`
15002
15003	// The resource properties you can provide during the import to identify your
15004	// target resources. For example, BucketName is a possible identifier property
15005	// for AWS::S3::Bucket resources.
15006	ResourceIdentifiers []*string `type:"list"`
15007
15008	// The template resource type of the target resources, such as AWS::S3::Bucket.
15009	ResourceType *string `min:"1" type:"string"`
15010}
15011
15012// String returns the string representation
15013func (s ResourceIdentifierSummary) String() string {
15014	return awsutil.Prettify(s)
15015}
15016
15017// GoString returns the string representation
15018func (s ResourceIdentifierSummary) GoString() string {
15019	return s.String()
15020}
15021
15022// SetLogicalResourceIds sets the LogicalResourceIds field's value.
15023func (s *ResourceIdentifierSummary) SetLogicalResourceIds(v []*string) *ResourceIdentifierSummary {
15024	s.LogicalResourceIds = v
15025	return s
15026}
15027
15028// SetResourceIdentifiers sets the ResourceIdentifiers field's value.
15029func (s *ResourceIdentifierSummary) SetResourceIdentifiers(v []*string) *ResourceIdentifierSummary {
15030	s.ResourceIdentifiers = v
15031	return s
15032}
15033
15034// SetResourceType sets the ResourceType field's value.
15035func (s *ResourceIdentifierSummary) SetResourceType(v string) *ResourceIdentifierSummary {
15036	s.ResourceType = &v
15037	return s
15038}
15039
15040// The field that CloudFormation will change, such as the name of a resource's
15041// property, and whether the resource will be recreated.
15042type ResourceTargetDefinition struct {
15043	_ struct{} `type:"structure"`
15044
15045	// Indicates which resource attribute is triggering this update, such as a change
15046	// in the resource attribute's Metadata, Properties, or Tags.
15047	Attribute *string `type:"string" enum:"ResourceAttribute"`
15048
15049	// If the Attribute value is Properties, the name of the property. For all other
15050	// attributes, the value is null.
15051	Name *string `type:"string"`
15052
15053	// If the Attribute value is Properties, indicates whether a change to this
15054	// property causes the resource to be recreated. The value can be Never, Always,
15055	// or Conditionally. To determine the conditions for a Conditionally recreation,
15056	// see the update behavior for that property (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-template-resource-type-ref.html)
15057	// in the CloudFormation User Guide.
15058	RequiresRecreation *string `type:"string" enum:"RequiresRecreation"`
15059}
15060
15061// String returns the string representation
15062func (s ResourceTargetDefinition) String() string {
15063	return awsutil.Prettify(s)
15064}
15065
15066// GoString returns the string representation
15067func (s ResourceTargetDefinition) GoString() string {
15068	return s.String()
15069}
15070
15071// SetAttribute sets the Attribute field's value.
15072func (s *ResourceTargetDefinition) SetAttribute(v string) *ResourceTargetDefinition {
15073	s.Attribute = &v
15074	return s
15075}
15076
15077// SetName sets the Name field's value.
15078func (s *ResourceTargetDefinition) SetName(v string) *ResourceTargetDefinition {
15079	s.Name = &v
15080	return s
15081}
15082
15083// SetRequiresRecreation sets the RequiresRecreation field's value.
15084func (s *ResourceTargetDefinition) SetRequiresRecreation(v string) *ResourceTargetDefinition {
15085	s.RequiresRecreation = &v
15086	return s
15087}
15088
15089// Describes the target resource of an import operation.
15090type ResourceToImport struct {
15091	_ struct{} `type:"structure"`
15092
15093	// The logical ID of the target resource as specified in the template.
15094	//
15095	// LogicalResourceId is a required field
15096	LogicalResourceId *string `type:"string" required:"true"`
15097
15098	// A key-value pair that identifies the target resource. The key is an identifier
15099	// property (for example, BucketName for AWS::S3::Bucket resources) and the
15100	// value is the actual property value (for example, MyS3Bucket).
15101	//
15102	// ResourceIdentifier is a required field
15103	ResourceIdentifier map[string]*string `min:"1" type:"map" required:"true"`
15104
15105	// The type of resource to import into your stack, such as AWS::S3::Bucket.
15106	// For a list of supported resource types, see Resources that support import
15107	// operations (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/resource-import-supported-resources.html)
15108	// in the CloudFormation User Guide.
15109	//
15110	// ResourceType is a required field
15111	ResourceType *string `min:"1" type:"string" required:"true"`
15112}
15113
15114// String returns the string representation
15115func (s ResourceToImport) String() string {
15116	return awsutil.Prettify(s)
15117}
15118
15119// GoString returns the string representation
15120func (s ResourceToImport) GoString() string {
15121	return s.String()
15122}
15123
15124// Validate inspects the fields of the type to determine if they are valid.
15125func (s *ResourceToImport) Validate() error {
15126	invalidParams := request.ErrInvalidParams{Context: "ResourceToImport"}
15127	if s.LogicalResourceId == nil {
15128		invalidParams.Add(request.NewErrParamRequired("LogicalResourceId"))
15129	}
15130	if s.ResourceIdentifier == nil {
15131		invalidParams.Add(request.NewErrParamRequired("ResourceIdentifier"))
15132	}
15133	if s.ResourceIdentifier != nil && len(s.ResourceIdentifier) < 1 {
15134		invalidParams.Add(request.NewErrParamMinLen("ResourceIdentifier", 1))
15135	}
15136	if s.ResourceType == nil {
15137		invalidParams.Add(request.NewErrParamRequired("ResourceType"))
15138	}
15139	if s.ResourceType != nil && len(*s.ResourceType) < 1 {
15140		invalidParams.Add(request.NewErrParamMinLen("ResourceType", 1))
15141	}
15142
15143	if invalidParams.Len() > 0 {
15144		return invalidParams
15145	}
15146	return nil
15147}
15148
15149// SetLogicalResourceId sets the LogicalResourceId field's value.
15150func (s *ResourceToImport) SetLogicalResourceId(v string) *ResourceToImport {
15151	s.LogicalResourceId = &v
15152	return s
15153}
15154
15155// SetResourceIdentifier sets the ResourceIdentifier field's value.
15156func (s *ResourceToImport) SetResourceIdentifier(v map[string]*string) *ResourceToImport {
15157	s.ResourceIdentifier = v
15158	return s
15159}
15160
15161// SetResourceType sets the ResourceType field's value.
15162func (s *ResourceToImport) SetResourceType(v string) *ResourceToImport {
15163	s.ResourceType = &v
15164	return s
15165}
15166
15167// Structure containing the rollback triggers for CloudFormation to monitor
15168// during stack creation and updating operations, and for the specified monitoring
15169// period afterwards.
15170//
15171// Rollback triggers enable you to have CloudFormation monitor the state of
15172// your application during stack creation and updating, and to roll back that
15173// operation if the application breaches the threshold of any of the alarms
15174// you've specified. For more information, see Monitor and Roll Back Stack Operations
15175// (http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-rollback-triggers.html).
15176type RollbackConfiguration struct {
15177	_ struct{} `type:"structure"`
15178
15179	// The amount of time, in minutes, during which CloudFormation should monitor
15180	// all the rollback triggers after the stack creation or update operation deploys
15181	// all necessary resources.
15182	//
15183	// The default is 0 minutes.
15184	//
15185	// If you specify a monitoring period but do not specify any rollback triggers,
15186	// CloudFormation still waits the specified period of time before cleaning up
15187	// old resources after update operations. You can use this monitoring period
15188	// to perform any manual stack validation desired, and manually cancel the stack
15189	// creation or update (using CancelUpdateStack (https://docs.aws.amazon.com/AWSCloudFormation/latest/APIReference/API_CancelUpdateStack.html),
15190	// for example) as necessary.
15191	//
15192	// If you specify 0 for this parameter, CloudFormation still monitors the specified
15193	// rollback triggers during stack creation and update operations. Then, for
15194	// update operations, it begins disposing of old resources immediately once
15195	// the operation completes.
15196	MonitoringTimeInMinutes *int64 `type:"integer"`
15197
15198	// The triggers to monitor during stack creation or update actions.
15199	//
15200	// By default, CloudFormation saves the rollback triggers specified for a stack
15201	// and applies them to any subsequent update operations for the stack, unless
15202	// you specify otherwise. If you do specify rollback triggers for this parameter,
15203	// those triggers replace any list of triggers previously specified for the
15204	// stack. This means:
15205	//
15206	//    * To use the rollback triggers previously specified for this stack, if
15207	//    any, don't specify this parameter.
15208	//
15209	//    * To specify new or updated rollback triggers, you must specify all the
15210	//    triggers that you want used for this stack, even triggers you've specifed
15211	//    before (for example, when creating the stack or during a previous stack
15212	//    update). Any triggers that you don't include in the updated list of triggers
15213	//    are no longer applied to the stack.
15214	//
15215	//    * To remove all currently specified triggers, specify an empty list for
15216	//    this parameter.
15217	//
15218	// If a specified trigger is missing, the entire stack operation fails and is
15219	// rolled back.
15220	RollbackTriggers []*RollbackTrigger `type:"list"`
15221}
15222
15223// String returns the string representation
15224func (s RollbackConfiguration) String() string {
15225	return awsutil.Prettify(s)
15226}
15227
15228// GoString returns the string representation
15229func (s RollbackConfiguration) GoString() string {
15230	return s.String()
15231}
15232
15233// Validate inspects the fields of the type to determine if they are valid.
15234func (s *RollbackConfiguration) Validate() error {
15235	invalidParams := request.ErrInvalidParams{Context: "RollbackConfiguration"}
15236	if s.RollbackTriggers != nil {
15237		for i, v := range s.RollbackTriggers {
15238			if v == nil {
15239				continue
15240			}
15241			if err := v.Validate(); err != nil {
15242				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "RollbackTriggers", i), err.(request.ErrInvalidParams))
15243			}
15244		}
15245	}
15246
15247	if invalidParams.Len() > 0 {
15248		return invalidParams
15249	}
15250	return nil
15251}
15252
15253// SetMonitoringTimeInMinutes sets the MonitoringTimeInMinutes field's value.
15254func (s *RollbackConfiguration) SetMonitoringTimeInMinutes(v int64) *RollbackConfiguration {
15255	s.MonitoringTimeInMinutes = &v
15256	return s
15257}
15258
15259// SetRollbackTriggers sets the RollbackTriggers field's value.
15260func (s *RollbackConfiguration) SetRollbackTriggers(v []*RollbackTrigger) *RollbackConfiguration {
15261	s.RollbackTriggers = v
15262	return s
15263}
15264
15265// A rollback trigger CloudFormation monitors during creation and updating of
15266// stacks. If any of the alarms you specify goes to ALARM state during the stack
15267// operation or within the specified monitoring period afterwards, CloudFormation
15268// rolls back the entire stack operation.
15269type RollbackTrigger struct {
15270	_ struct{} `type:"structure"`
15271
15272	// The Amazon Resource Name (ARN) of the rollback trigger.
15273	//
15274	// If a specified trigger is missing, the entire stack operation fails and is
15275	// rolled back.
15276	//
15277	// Arn is a required field
15278	Arn *string `type:"string" required:"true"`
15279
15280	// The resource type of the rollback trigger. Currently, AWS::CloudWatch::Alarm
15281	// (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cw-alarm.html)
15282	// is the only supported resource type.
15283	//
15284	// Type is a required field
15285	Type *string `type:"string" required:"true"`
15286}
15287
15288// String returns the string representation
15289func (s RollbackTrigger) String() string {
15290	return awsutil.Prettify(s)
15291}
15292
15293// GoString returns the string representation
15294func (s RollbackTrigger) GoString() string {
15295	return s.String()
15296}
15297
15298// Validate inspects the fields of the type to determine if they are valid.
15299func (s *RollbackTrigger) Validate() error {
15300	invalidParams := request.ErrInvalidParams{Context: "RollbackTrigger"}
15301	if s.Arn == nil {
15302		invalidParams.Add(request.NewErrParamRequired("Arn"))
15303	}
15304	if s.Type == nil {
15305		invalidParams.Add(request.NewErrParamRequired("Type"))
15306	}
15307
15308	if invalidParams.Len() > 0 {
15309		return invalidParams
15310	}
15311	return nil
15312}
15313
15314// SetArn sets the Arn field's value.
15315func (s *RollbackTrigger) SetArn(v string) *RollbackTrigger {
15316	s.Arn = &v
15317	return s
15318}
15319
15320// SetType sets the Type field's value.
15321func (s *RollbackTrigger) SetType(v string) *RollbackTrigger {
15322	s.Type = &v
15323	return s
15324}
15325
15326// The input for the SetStackPolicy action.
15327type SetStackPolicyInput struct {
15328	_ struct{} `type:"structure"`
15329
15330	// The name or unique stack ID that you want to associate a policy with.
15331	//
15332	// StackName is a required field
15333	StackName *string `type:"string" required:"true"`
15334
15335	// Structure containing the stack policy body. For more information, go to Prevent
15336	// Updates to Stack Resources (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/protect-stack-resources.html)
15337	// in the CloudFormation User Guide. You can specify either the StackPolicyBody
15338	// or the StackPolicyURL parameter, but not both.
15339	StackPolicyBody *string `min:"1" type:"string"`
15340
15341	// Location of a file containing the stack policy. The URL must point to a policy
15342	// (maximum size: 16 KB) located in an S3 bucket in the same Region as the stack.
15343	// You can specify either the StackPolicyBody or the StackPolicyURL parameter,
15344	// but not both.
15345	StackPolicyURL *string `min:"1" type:"string"`
15346}
15347
15348// String returns the string representation
15349func (s SetStackPolicyInput) String() string {
15350	return awsutil.Prettify(s)
15351}
15352
15353// GoString returns the string representation
15354func (s SetStackPolicyInput) GoString() string {
15355	return s.String()
15356}
15357
15358// Validate inspects the fields of the type to determine if they are valid.
15359func (s *SetStackPolicyInput) Validate() error {
15360	invalidParams := request.ErrInvalidParams{Context: "SetStackPolicyInput"}
15361	if s.StackName == nil {
15362		invalidParams.Add(request.NewErrParamRequired("StackName"))
15363	}
15364	if s.StackPolicyBody != nil && len(*s.StackPolicyBody) < 1 {
15365		invalidParams.Add(request.NewErrParamMinLen("StackPolicyBody", 1))
15366	}
15367	if s.StackPolicyURL != nil && len(*s.StackPolicyURL) < 1 {
15368		invalidParams.Add(request.NewErrParamMinLen("StackPolicyURL", 1))
15369	}
15370
15371	if invalidParams.Len() > 0 {
15372		return invalidParams
15373	}
15374	return nil
15375}
15376
15377// SetStackName sets the StackName field's value.
15378func (s *SetStackPolicyInput) SetStackName(v string) *SetStackPolicyInput {
15379	s.StackName = &v
15380	return s
15381}
15382
15383// SetStackPolicyBody sets the StackPolicyBody field's value.
15384func (s *SetStackPolicyInput) SetStackPolicyBody(v string) *SetStackPolicyInput {
15385	s.StackPolicyBody = &v
15386	return s
15387}
15388
15389// SetStackPolicyURL sets the StackPolicyURL field's value.
15390func (s *SetStackPolicyInput) SetStackPolicyURL(v string) *SetStackPolicyInput {
15391	s.StackPolicyURL = &v
15392	return s
15393}
15394
15395type SetStackPolicyOutput struct {
15396	_ struct{} `type:"structure"`
15397}
15398
15399// String returns the string representation
15400func (s SetStackPolicyOutput) String() string {
15401	return awsutil.Prettify(s)
15402}
15403
15404// GoString returns the string representation
15405func (s SetStackPolicyOutput) GoString() string {
15406	return s.String()
15407}
15408
15409type SetTypeConfigurationInput struct {
15410	_ struct{} `type:"structure"`
15411
15412	// The configuration data for the extension, in this account and region.
15413	//
15414	// The configuration data must be formatted as JSON, and validate against the
15415	// schema returned in the ConfigurationSchema response element of API_DescribeType
15416	// (AWSCloudFormation/latest/APIReference/API_DescribeType.html). For more information,
15417	// see Defining account-level configuration data for an extension (https://docs.aws.amazon.com/cloudformation-cli/latest/userguide/resource-type-model.html#resource-type-howto-configuration)
15418	// in the CloudFormation CLI User Guide.
15419	//
15420	// Configuration is a required field
15421	Configuration *string `min:"1" type:"string" required:"true"`
15422
15423	// An alias by which to refer to this extension configuration data.
15424	//
15425	// Conditional: Specifying a configuration alias is required when setting a
15426	// configuration for a resource type extension.
15427	ConfigurationAlias *string `min:"1" type:"string"`
15428
15429	// The type of extension.
15430	//
15431	// Conditional: You must specify ConfigurationArn, or Type and TypeName.
15432	Type *string `type:"string" enum:"ThirdPartyType"`
15433
15434	// The Amazon Resource Name (ARN) for the extension, in this account and region.
15435	//
15436	// For public extensions, this will be the ARN assigned when you activate the
15437	// type (https://docs.aws.amazon.com/AWSCloudFormation/latest/APIReference/API_ActivateType.html)
15438	// in this account and region. For private extensions, this will be the ARN
15439	// assigned when you register the type (https://docs.aws.amazon.com/AWSCloudFormation/latest/APIReference/API_RegisterType.html)
15440	// in this account and region.
15441	//
15442	// Do not include the extension versions suffix at the end of the ARN. You can
15443	// set the configuration for an extension, but not for a specific extension
15444	// version.
15445	TypeArn *string `type:"string"`
15446
15447	// The name of the extension.
15448	//
15449	// Conditional: You must specify ConfigurationArn, or Type and TypeName.
15450	TypeName *string `min:"10" type:"string"`
15451}
15452
15453// String returns the string representation
15454func (s SetTypeConfigurationInput) String() string {
15455	return awsutil.Prettify(s)
15456}
15457
15458// GoString returns the string representation
15459func (s SetTypeConfigurationInput) GoString() string {
15460	return s.String()
15461}
15462
15463// Validate inspects the fields of the type to determine if they are valid.
15464func (s *SetTypeConfigurationInput) Validate() error {
15465	invalidParams := request.ErrInvalidParams{Context: "SetTypeConfigurationInput"}
15466	if s.Configuration == nil {
15467		invalidParams.Add(request.NewErrParamRequired("Configuration"))
15468	}
15469	if s.Configuration != nil && len(*s.Configuration) < 1 {
15470		invalidParams.Add(request.NewErrParamMinLen("Configuration", 1))
15471	}
15472	if s.ConfigurationAlias != nil && len(*s.ConfigurationAlias) < 1 {
15473		invalidParams.Add(request.NewErrParamMinLen("ConfigurationAlias", 1))
15474	}
15475	if s.TypeName != nil && len(*s.TypeName) < 10 {
15476		invalidParams.Add(request.NewErrParamMinLen("TypeName", 10))
15477	}
15478
15479	if invalidParams.Len() > 0 {
15480		return invalidParams
15481	}
15482	return nil
15483}
15484
15485// SetConfiguration sets the Configuration field's value.
15486func (s *SetTypeConfigurationInput) SetConfiguration(v string) *SetTypeConfigurationInput {
15487	s.Configuration = &v
15488	return s
15489}
15490
15491// SetConfigurationAlias sets the ConfigurationAlias field's value.
15492func (s *SetTypeConfigurationInput) SetConfigurationAlias(v string) *SetTypeConfigurationInput {
15493	s.ConfigurationAlias = &v
15494	return s
15495}
15496
15497// SetType sets the Type field's value.
15498func (s *SetTypeConfigurationInput) SetType(v string) *SetTypeConfigurationInput {
15499	s.Type = &v
15500	return s
15501}
15502
15503// SetTypeArn sets the TypeArn field's value.
15504func (s *SetTypeConfigurationInput) SetTypeArn(v string) *SetTypeConfigurationInput {
15505	s.TypeArn = &v
15506	return s
15507}
15508
15509// SetTypeName sets the TypeName field's value.
15510func (s *SetTypeConfigurationInput) SetTypeName(v string) *SetTypeConfigurationInput {
15511	s.TypeName = &v
15512	return s
15513}
15514
15515type SetTypeConfigurationOutput struct {
15516	_ struct{} `type:"structure"`
15517
15518	// The Amazon Resource Name (ARN) for the configuration data, in this account
15519	// and region.
15520	//
15521	// Conditional: You must specify ConfigurationArn, or Type and TypeName.
15522	ConfigurationArn *string `type:"string"`
15523}
15524
15525// String returns the string representation
15526func (s SetTypeConfigurationOutput) String() string {
15527	return awsutil.Prettify(s)
15528}
15529
15530// GoString returns the string representation
15531func (s SetTypeConfigurationOutput) GoString() string {
15532	return s.String()
15533}
15534
15535// SetConfigurationArn sets the ConfigurationArn field's value.
15536func (s *SetTypeConfigurationOutput) SetConfigurationArn(v string) *SetTypeConfigurationOutput {
15537	s.ConfigurationArn = &v
15538	return s
15539}
15540
15541type SetTypeDefaultVersionInput struct {
15542	_ struct{} `type:"structure"`
15543
15544	// The Amazon Resource Name (ARN) of the extension for which you want version
15545	// summary information.
15546	//
15547	// Conditional: You must specify either TypeName and Type, or Arn.
15548	Arn *string `type:"string"`
15549
15550	// The kind of extension.
15551	//
15552	// Conditional: You must specify either TypeName and Type, or Arn.
15553	Type *string `type:"string" enum:"RegistryType"`
15554
15555	// The name of the extension.
15556	//
15557	// Conditional: You must specify either TypeName and Type, or Arn.
15558	TypeName *string `min:"10" type:"string"`
15559
15560	// The ID of a specific version of the extension. The version ID is the value
15561	// at the end of the Amazon Resource Name (ARN) assigned to the extension version
15562	// when it is registered.
15563	VersionId *string `min:"1" type:"string"`
15564}
15565
15566// String returns the string representation
15567func (s SetTypeDefaultVersionInput) String() string {
15568	return awsutil.Prettify(s)
15569}
15570
15571// GoString returns the string representation
15572func (s SetTypeDefaultVersionInput) GoString() string {
15573	return s.String()
15574}
15575
15576// Validate inspects the fields of the type to determine if they are valid.
15577func (s *SetTypeDefaultVersionInput) Validate() error {
15578	invalidParams := request.ErrInvalidParams{Context: "SetTypeDefaultVersionInput"}
15579	if s.TypeName != nil && len(*s.TypeName) < 10 {
15580		invalidParams.Add(request.NewErrParamMinLen("TypeName", 10))
15581	}
15582	if s.VersionId != nil && len(*s.VersionId) < 1 {
15583		invalidParams.Add(request.NewErrParamMinLen("VersionId", 1))
15584	}
15585
15586	if invalidParams.Len() > 0 {
15587		return invalidParams
15588	}
15589	return nil
15590}
15591
15592// SetArn sets the Arn field's value.
15593func (s *SetTypeDefaultVersionInput) SetArn(v string) *SetTypeDefaultVersionInput {
15594	s.Arn = &v
15595	return s
15596}
15597
15598// SetType sets the Type field's value.
15599func (s *SetTypeDefaultVersionInput) SetType(v string) *SetTypeDefaultVersionInput {
15600	s.Type = &v
15601	return s
15602}
15603
15604// SetTypeName sets the TypeName field's value.
15605func (s *SetTypeDefaultVersionInput) SetTypeName(v string) *SetTypeDefaultVersionInput {
15606	s.TypeName = &v
15607	return s
15608}
15609
15610// SetVersionId sets the VersionId field's value.
15611func (s *SetTypeDefaultVersionInput) SetVersionId(v string) *SetTypeDefaultVersionInput {
15612	s.VersionId = &v
15613	return s
15614}
15615
15616type SetTypeDefaultVersionOutput struct {
15617	_ struct{} `type:"structure"`
15618}
15619
15620// String returns the string representation
15621func (s SetTypeDefaultVersionOutput) String() string {
15622	return awsutil.Prettify(s)
15623}
15624
15625// GoString returns the string representation
15626func (s SetTypeDefaultVersionOutput) GoString() string {
15627	return s.String()
15628}
15629
15630// The input for the SignalResource action.
15631type SignalResourceInput struct {
15632	_ struct{} `type:"structure"`
15633
15634	// The logical ID of the resource that you want to signal. The logical ID is
15635	// the name of the resource that given in the template.
15636	//
15637	// LogicalResourceId is a required field
15638	LogicalResourceId *string `type:"string" required:"true"`
15639
15640	// The stack name or unique stack ID that includes the resource that you want
15641	// to signal.
15642	//
15643	// StackName is a required field
15644	StackName *string `min:"1" type:"string" required:"true"`
15645
15646	// The status of the signal, which is either success or failure. A failure signal
15647	// causes CloudFormation to immediately fail the stack creation or update.
15648	//
15649	// Status is a required field
15650	Status *string `type:"string" required:"true" enum:"ResourceSignalStatus"`
15651
15652	// A unique ID of the signal. When you signal Amazon EC2 instances or Auto Scaling
15653	// groups, specify the instance ID that you are signaling as the unique ID.
15654	// If you send multiple signals to a single resource (such as signaling a wait
15655	// condition), each signal requires a different unique ID.
15656	//
15657	// UniqueId is a required field
15658	UniqueId *string `min:"1" type:"string" required:"true"`
15659}
15660
15661// String returns the string representation
15662func (s SignalResourceInput) String() string {
15663	return awsutil.Prettify(s)
15664}
15665
15666// GoString returns the string representation
15667func (s SignalResourceInput) GoString() string {
15668	return s.String()
15669}
15670
15671// Validate inspects the fields of the type to determine if they are valid.
15672func (s *SignalResourceInput) Validate() error {
15673	invalidParams := request.ErrInvalidParams{Context: "SignalResourceInput"}
15674	if s.LogicalResourceId == nil {
15675		invalidParams.Add(request.NewErrParamRequired("LogicalResourceId"))
15676	}
15677	if s.StackName == nil {
15678		invalidParams.Add(request.NewErrParamRequired("StackName"))
15679	}
15680	if s.StackName != nil && len(*s.StackName) < 1 {
15681		invalidParams.Add(request.NewErrParamMinLen("StackName", 1))
15682	}
15683	if s.Status == nil {
15684		invalidParams.Add(request.NewErrParamRequired("Status"))
15685	}
15686	if s.UniqueId == nil {
15687		invalidParams.Add(request.NewErrParamRequired("UniqueId"))
15688	}
15689	if s.UniqueId != nil && len(*s.UniqueId) < 1 {
15690		invalidParams.Add(request.NewErrParamMinLen("UniqueId", 1))
15691	}
15692
15693	if invalidParams.Len() > 0 {
15694		return invalidParams
15695	}
15696	return nil
15697}
15698
15699// SetLogicalResourceId sets the LogicalResourceId field's value.
15700func (s *SignalResourceInput) SetLogicalResourceId(v string) *SignalResourceInput {
15701	s.LogicalResourceId = &v
15702	return s
15703}
15704
15705// SetStackName sets the StackName field's value.
15706func (s *SignalResourceInput) SetStackName(v string) *SignalResourceInput {
15707	s.StackName = &v
15708	return s
15709}
15710
15711// SetStatus sets the Status field's value.
15712func (s *SignalResourceInput) SetStatus(v string) *SignalResourceInput {
15713	s.Status = &v
15714	return s
15715}
15716
15717// SetUniqueId sets the UniqueId field's value.
15718func (s *SignalResourceInput) SetUniqueId(v string) *SignalResourceInput {
15719	s.UniqueId = &v
15720	return s
15721}
15722
15723type SignalResourceOutput struct {
15724	_ struct{} `type:"structure"`
15725}
15726
15727// String returns the string representation
15728func (s SignalResourceOutput) String() string {
15729	return awsutil.Prettify(s)
15730}
15731
15732// GoString returns the string representation
15733func (s SignalResourceOutput) GoString() string {
15734	return s.String()
15735}
15736
15737// The Stack data type.
15738type Stack struct {
15739	_ struct{} `type:"structure"`
15740
15741	// The capabilities allowed in the stack.
15742	Capabilities []*string `type:"list"`
15743
15744	// The unique ID of the change set.
15745	ChangeSetId *string `min:"1" type:"string"`
15746
15747	// The time at which the stack was created.
15748	//
15749	// CreationTime is a required field
15750	CreationTime *time.Time `type:"timestamp" required:"true"`
15751
15752	// The time the stack was deleted.
15753	DeletionTime *time.Time `type:"timestamp"`
15754
15755	// A user-defined description associated with the stack.
15756	Description *string `min:"1" type:"string"`
15757
15758	// Boolean to enable or disable rollback on stack creation failures:
15759	//
15760	//    * true: disable rollback
15761	//
15762	//    * false: enable rollback
15763	DisableRollback *bool `type:"boolean"`
15764
15765	// Information on whether a stack's actual configuration differs, or has drifted,
15766	// from it's expected configuration, as defined in the stack template and any
15767	// values specified as template parameters. For more information, see Detecting
15768	// Unregulated Configuration Changes to Stacks and Resources (http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-stack-drift.html).
15769	DriftInformation *StackDriftInformation `type:"structure"`
15770
15771	// Whether termination protection is enabled for the stack.
15772	//
15773	// For nested stacks (http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-nested-stacks.html),
15774	// termination protection is set on the root stack and cannot be changed directly
15775	// on the nested stack. For more information, see Protecting a Stack From Being
15776	// Deleted (http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-protect-stacks.html)
15777	// in the CloudFormation User Guide.
15778	EnableTerminationProtection *bool `type:"boolean"`
15779
15780	// The time the stack was last updated. This field will only be returned if
15781	// the stack has been updated at least once.
15782	LastUpdatedTime *time.Time `type:"timestamp"`
15783
15784	// SNS topic ARNs to which stack related events are published.
15785	NotificationARNs []*string `type:"list"`
15786
15787	// A list of output structures.
15788	Outputs []*Output `type:"list"`
15789
15790	// A list of Parameter structures.
15791	Parameters []*Parameter `type:"list"`
15792
15793	// For nested stacks--stacks created as resources for another stack--the stack
15794	// ID of the direct parent of this stack. For the first level of nested stacks,
15795	// the root stack is also the parent stack.
15796	//
15797	// For more information, see Working with Nested Stacks (http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-nested-stacks.html)
15798	// in the CloudFormation User Guide.
15799	ParentId *string `type:"string"`
15800
15801	// The Amazon Resource Name (ARN) of an Identity and Access Management (IAM)
15802	// role that is associated with the stack. During a stack operation, CloudFormation
15803	// uses this role's credentials to make calls on your behalf.
15804	RoleARN *string `min:"20" type:"string"`
15805
15806	// The rollback triggers for CloudFormation to monitor during stack creation
15807	// and updating operations, and for the specified monitoring period afterwards.
15808	RollbackConfiguration *RollbackConfiguration `type:"structure"`
15809
15810	// For nested stacks--stacks created as resources for another stack--the stack
15811	// ID of the top-level stack to which the nested stack ultimately belongs.
15812	//
15813	// For more information, see Working with Nested Stacks (http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-nested-stacks.html)
15814	// in the CloudFormation User Guide.
15815	RootId *string `type:"string"`
15816
15817	// Unique identifier of the stack.
15818	StackId *string `type:"string"`
15819
15820	// The name associated with the stack.
15821	//
15822	// StackName is a required field
15823	StackName *string `type:"string" required:"true"`
15824
15825	// Current status of the stack.
15826	//
15827	// StackStatus is a required field
15828	StackStatus *string `type:"string" required:"true" enum:"StackStatus"`
15829
15830	// Success/failure message associated with the stack status.
15831	StackStatusReason *string `type:"string"`
15832
15833	// A list of Tags that specify information about the stack.
15834	Tags []*Tag `type:"list"`
15835
15836	// The amount of time within which stack creation should complete.
15837	TimeoutInMinutes *int64 `min:"1" type:"integer"`
15838}
15839
15840// String returns the string representation
15841func (s Stack) String() string {
15842	return awsutil.Prettify(s)
15843}
15844
15845// GoString returns the string representation
15846func (s Stack) GoString() string {
15847	return s.String()
15848}
15849
15850// SetCapabilities sets the Capabilities field's value.
15851func (s *Stack) SetCapabilities(v []*string) *Stack {
15852	s.Capabilities = v
15853	return s
15854}
15855
15856// SetChangeSetId sets the ChangeSetId field's value.
15857func (s *Stack) SetChangeSetId(v string) *Stack {
15858	s.ChangeSetId = &v
15859	return s
15860}
15861
15862// SetCreationTime sets the CreationTime field's value.
15863func (s *Stack) SetCreationTime(v time.Time) *Stack {
15864	s.CreationTime = &v
15865	return s
15866}
15867
15868// SetDeletionTime sets the DeletionTime field's value.
15869func (s *Stack) SetDeletionTime(v time.Time) *Stack {
15870	s.DeletionTime = &v
15871	return s
15872}
15873
15874// SetDescription sets the Description field's value.
15875func (s *Stack) SetDescription(v string) *Stack {
15876	s.Description = &v
15877	return s
15878}
15879
15880// SetDisableRollback sets the DisableRollback field's value.
15881func (s *Stack) SetDisableRollback(v bool) *Stack {
15882	s.DisableRollback = &v
15883	return s
15884}
15885
15886// SetDriftInformation sets the DriftInformation field's value.
15887func (s *Stack) SetDriftInformation(v *StackDriftInformation) *Stack {
15888	s.DriftInformation = v
15889	return s
15890}
15891
15892// SetEnableTerminationProtection sets the EnableTerminationProtection field's value.
15893func (s *Stack) SetEnableTerminationProtection(v bool) *Stack {
15894	s.EnableTerminationProtection = &v
15895	return s
15896}
15897
15898// SetLastUpdatedTime sets the LastUpdatedTime field's value.
15899func (s *Stack) SetLastUpdatedTime(v time.Time) *Stack {
15900	s.LastUpdatedTime = &v
15901	return s
15902}
15903
15904// SetNotificationARNs sets the NotificationARNs field's value.
15905func (s *Stack) SetNotificationARNs(v []*string) *Stack {
15906	s.NotificationARNs = v
15907	return s
15908}
15909
15910// SetOutputs sets the Outputs field's value.
15911func (s *Stack) SetOutputs(v []*Output) *Stack {
15912	s.Outputs = v
15913	return s
15914}
15915
15916// SetParameters sets the Parameters field's value.
15917func (s *Stack) SetParameters(v []*Parameter) *Stack {
15918	s.Parameters = v
15919	return s
15920}
15921
15922// SetParentId sets the ParentId field's value.
15923func (s *Stack) SetParentId(v string) *Stack {
15924	s.ParentId = &v
15925	return s
15926}
15927
15928// SetRoleARN sets the RoleARN field's value.
15929func (s *Stack) SetRoleARN(v string) *Stack {
15930	s.RoleARN = &v
15931	return s
15932}
15933
15934// SetRollbackConfiguration sets the RollbackConfiguration field's value.
15935func (s *Stack) SetRollbackConfiguration(v *RollbackConfiguration) *Stack {
15936	s.RollbackConfiguration = v
15937	return s
15938}
15939
15940// SetRootId sets the RootId field's value.
15941func (s *Stack) SetRootId(v string) *Stack {
15942	s.RootId = &v
15943	return s
15944}
15945
15946// SetStackId sets the StackId field's value.
15947func (s *Stack) SetStackId(v string) *Stack {
15948	s.StackId = &v
15949	return s
15950}
15951
15952// SetStackName sets the StackName field's value.
15953func (s *Stack) SetStackName(v string) *Stack {
15954	s.StackName = &v
15955	return s
15956}
15957
15958// SetStackStatus sets the StackStatus field's value.
15959func (s *Stack) SetStackStatus(v string) *Stack {
15960	s.StackStatus = &v
15961	return s
15962}
15963
15964// SetStackStatusReason sets the StackStatusReason field's value.
15965func (s *Stack) SetStackStatusReason(v string) *Stack {
15966	s.StackStatusReason = &v
15967	return s
15968}
15969
15970// SetTags sets the Tags field's value.
15971func (s *Stack) SetTags(v []*Tag) *Stack {
15972	s.Tags = v
15973	return s
15974}
15975
15976// SetTimeoutInMinutes sets the TimeoutInMinutes field's value.
15977func (s *Stack) SetTimeoutInMinutes(v int64) *Stack {
15978	s.TimeoutInMinutes = &v
15979	return s
15980}
15981
15982// Contains information about whether the stack's actual configuration differs,
15983// or has drifted, from its expected configuration, as defined in the stack
15984// template and any values specified as template parameters. A stack is considered
15985// to have drifted if one or more of its resources have drifted.
15986type StackDriftInformation struct {
15987	_ struct{} `type:"structure"`
15988
15989	// Most recent time when a drift detection operation was initiated on the stack,
15990	// or any of its individual resources that support drift detection.
15991	LastCheckTimestamp *time.Time `type:"timestamp"`
15992
15993	// Status of the stack's actual configuration compared to its expected template
15994	// configuration.
15995	//
15996	//    * DRIFTED: The stack differs from its expected template configuration.
15997	//    A stack is considered to have drifted if one or more of its resources
15998	//    have drifted.
15999	//
16000	//    * NOT_CHECKED: CloudFormation has not checked if the stack differs from
16001	//    its expected template configuration.
16002	//
16003	//    * IN_SYNC: The stack's actual configuration matches its expected template
16004	//    configuration.
16005	//
16006	//    * UNKNOWN: This value is reserved for future use.
16007	//
16008	// StackDriftStatus is a required field
16009	StackDriftStatus *string `type:"string" required:"true" enum:"StackDriftStatus"`
16010}
16011
16012// String returns the string representation
16013func (s StackDriftInformation) String() string {
16014	return awsutil.Prettify(s)
16015}
16016
16017// GoString returns the string representation
16018func (s StackDriftInformation) GoString() string {
16019	return s.String()
16020}
16021
16022// SetLastCheckTimestamp sets the LastCheckTimestamp field's value.
16023func (s *StackDriftInformation) SetLastCheckTimestamp(v time.Time) *StackDriftInformation {
16024	s.LastCheckTimestamp = &v
16025	return s
16026}
16027
16028// SetStackDriftStatus sets the StackDriftStatus field's value.
16029func (s *StackDriftInformation) SetStackDriftStatus(v string) *StackDriftInformation {
16030	s.StackDriftStatus = &v
16031	return s
16032}
16033
16034// Contains information about whether the stack's actual configuration differs,
16035// or has drifted, from its expected configuration, as defined in the stack
16036// template and any values specified as template parameters. A stack is considered
16037// to have drifted if one or more of its resources have drifted.
16038type StackDriftInformationSummary struct {
16039	_ struct{} `type:"structure"`
16040
16041	// Most recent time when a drift detection operation was initiated on the stack,
16042	// or any of its individual resources that support drift detection.
16043	LastCheckTimestamp *time.Time `type:"timestamp"`
16044
16045	// Status of the stack's actual configuration compared to its expected template
16046	// configuration.
16047	//
16048	//    * DRIFTED: The stack differs from its expected template configuration.
16049	//    A stack is considered to have drifted if one or more of its resources
16050	//    have drifted.
16051	//
16052	//    * NOT_CHECKED: CloudFormation has not checked if the stack differs from
16053	//    its expected template configuration.
16054	//
16055	//    * IN_SYNC: The stack's actual configuration matches its expected template
16056	//    configuration.
16057	//
16058	//    * UNKNOWN: This value is reserved for future use.
16059	//
16060	// StackDriftStatus is a required field
16061	StackDriftStatus *string `type:"string" required:"true" enum:"StackDriftStatus"`
16062}
16063
16064// String returns the string representation
16065func (s StackDriftInformationSummary) String() string {
16066	return awsutil.Prettify(s)
16067}
16068
16069// GoString returns the string representation
16070func (s StackDriftInformationSummary) GoString() string {
16071	return s.String()
16072}
16073
16074// SetLastCheckTimestamp sets the LastCheckTimestamp field's value.
16075func (s *StackDriftInformationSummary) SetLastCheckTimestamp(v time.Time) *StackDriftInformationSummary {
16076	s.LastCheckTimestamp = &v
16077	return s
16078}
16079
16080// SetStackDriftStatus sets the StackDriftStatus field's value.
16081func (s *StackDriftInformationSummary) SetStackDriftStatus(v string) *StackDriftInformationSummary {
16082	s.StackDriftStatus = &v
16083	return s
16084}
16085
16086// The StackEvent data type.
16087type StackEvent struct {
16088	_ struct{} `type:"structure"`
16089
16090	// The token passed to the operation that generated this event.
16091	//
16092	// All events triggered by a given stack operation are assigned the same client
16093	// request token, which you can use to track operations. For example, if you
16094	// execute a CreateStack operation with the token token1, then all the StackEvents
16095	// generated by that operation will have ClientRequestToken set as token1.
16096	//
16097	// In the console, stack operations display the client request token on the
16098	// Events tab. Stack operations that are initiated from the console use the
16099	// token format Console-StackOperation-ID, which helps you easily identify the
16100	// stack operation . For example, if you create a stack using the console, each
16101	// stack event would be assigned the same token in the following format: Console-CreateStack-7f59c3cf-00d2-40c7-b2ff-e75db0987002.
16102	ClientRequestToken *string `min:"1" type:"string"`
16103
16104	// The unique ID of this event.
16105	//
16106	// EventId is a required field
16107	EventId *string `type:"string" required:"true"`
16108
16109	// The logical name of the resource specified in the template.
16110	LogicalResourceId *string `type:"string"`
16111
16112	// The name or unique identifier associated with the physical instance of the
16113	// resource.
16114	PhysicalResourceId *string `type:"string"`
16115
16116	// BLOB of the properties used to create the resource.
16117	ResourceProperties *string `type:"string"`
16118
16119	// Current status of the resource.
16120	ResourceStatus *string `type:"string" enum:"ResourceStatus"`
16121
16122	// Success/failure message associated with the resource.
16123	ResourceStatusReason *string `type:"string"`
16124
16125	// Type of resource. (For more information, go to Amazon Web Services Resource
16126	// Types Reference (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-template-resource-type-ref.html)
16127	// in the CloudFormation User Guide.)
16128	ResourceType *string `min:"1" type:"string"`
16129
16130	// The unique ID name of the instance of the stack.
16131	//
16132	// StackId is a required field
16133	StackId *string `type:"string" required:"true"`
16134
16135	// The name associated with a stack.
16136	//
16137	// StackName is a required field
16138	StackName *string `type:"string" required:"true"`
16139
16140	// Time the status was updated.
16141	//
16142	// Timestamp is a required field
16143	Timestamp *time.Time `type:"timestamp" required:"true"`
16144}
16145
16146// String returns the string representation
16147func (s StackEvent) String() string {
16148	return awsutil.Prettify(s)
16149}
16150
16151// GoString returns the string representation
16152func (s StackEvent) GoString() string {
16153	return s.String()
16154}
16155
16156// SetClientRequestToken sets the ClientRequestToken field's value.
16157func (s *StackEvent) SetClientRequestToken(v string) *StackEvent {
16158	s.ClientRequestToken = &v
16159	return s
16160}
16161
16162// SetEventId sets the EventId field's value.
16163func (s *StackEvent) SetEventId(v string) *StackEvent {
16164	s.EventId = &v
16165	return s
16166}
16167
16168// SetLogicalResourceId sets the LogicalResourceId field's value.
16169func (s *StackEvent) SetLogicalResourceId(v string) *StackEvent {
16170	s.LogicalResourceId = &v
16171	return s
16172}
16173
16174// SetPhysicalResourceId sets the PhysicalResourceId field's value.
16175func (s *StackEvent) SetPhysicalResourceId(v string) *StackEvent {
16176	s.PhysicalResourceId = &v
16177	return s
16178}
16179
16180// SetResourceProperties sets the ResourceProperties field's value.
16181func (s *StackEvent) SetResourceProperties(v string) *StackEvent {
16182	s.ResourceProperties = &v
16183	return s
16184}
16185
16186// SetResourceStatus sets the ResourceStatus field's value.
16187func (s *StackEvent) SetResourceStatus(v string) *StackEvent {
16188	s.ResourceStatus = &v
16189	return s
16190}
16191
16192// SetResourceStatusReason sets the ResourceStatusReason field's value.
16193func (s *StackEvent) SetResourceStatusReason(v string) *StackEvent {
16194	s.ResourceStatusReason = &v
16195	return s
16196}
16197
16198// SetResourceType sets the ResourceType field's value.
16199func (s *StackEvent) SetResourceType(v string) *StackEvent {
16200	s.ResourceType = &v
16201	return s
16202}
16203
16204// SetStackId sets the StackId field's value.
16205func (s *StackEvent) SetStackId(v string) *StackEvent {
16206	s.StackId = &v
16207	return s
16208}
16209
16210// SetStackName sets the StackName field's value.
16211func (s *StackEvent) SetStackName(v string) *StackEvent {
16212	s.StackName = &v
16213	return s
16214}
16215
16216// SetTimestamp sets the Timestamp field's value.
16217func (s *StackEvent) SetTimestamp(v time.Time) *StackEvent {
16218	s.Timestamp = &v
16219	return s
16220}
16221
16222// An CloudFormation stack, in a specific account and Region, that's part of
16223// a stack set operation. A stack instance is a reference to an attempted or
16224// actual stack in a given account within a given Region. A stack instance can
16225// exist without a stack—for example, if the stack couldn't be created for
16226// some reason. A stack instance is associated with only one stack set. Each
16227// stack instance contains the ID of its associated stack set, as well as the
16228// ID of the actual stack and the stack status.
16229type StackInstance struct {
16230	_ struct{} `type:"structure"`
16231
16232	// [Self-managed permissions] The name of the account that the stack instance
16233	// is associated with.
16234	Account *string `type:"string"`
16235
16236	// Status of the stack instance's actual configuration compared to the expected
16237	// template and parameter configuration of the stack set to which it belongs.
16238	//
16239	//    * DRIFTED: The stack differs from the expected template and parameter
16240	//    configuration of the stack set to which it belongs. A stack instance is
16241	//    considered to have drifted if one or more of the resources in the associated
16242	//    stack have drifted.
16243	//
16244	//    * NOT_CHECKED: CloudFormation has not checked if the stack instance differs
16245	//    from its expected stack set configuration.
16246	//
16247	//    * IN_SYNC: The stack instance's actual configuration matches its expected
16248	//    stack set configuration.
16249	//
16250	//    * UNKNOWN: This value is reserved for future use.
16251	DriftStatus *string `type:"string" enum:"StackDriftStatus"`
16252
16253	// Most recent time when CloudFormation performed a drift detection operation
16254	// on the stack instance. This value will be NULL for any stack instance on
16255	// which drift detection has not yet been performed.
16256	LastDriftCheckTimestamp *time.Time `type:"timestamp"`
16257
16258	// [Service-managed permissions] The organization root ID or organizational
16259	// unit (OU) IDs that you specified for DeploymentTargets (https://docs.aws.amazon.com/AWSCloudFormation/latest/APIReference/API_DeploymentTargets.html).
16260	OrganizationalUnitId *string `type:"string"`
16261
16262	// A list of parameters from the stack set template whose values have been overridden
16263	// in this stack instance.
16264	ParameterOverrides []*Parameter `type:"list"`
16265
16266	// The name of the Region that the stack instance is associated with.
16267	Region *string `type:"string"`
16268
16269	// The ID of the stack instance.
16270	StackId *string `type:"string"`
16271
16272	// The detailed status of the stack instance.
16273	StackInstanceStatus *StackInstanceComprehensiveStatus `type:"structure"`
16274
16275	// The name or unique ID of the stack set that the stack instance is associated
16276	// with.
16277	StackSetId *string `type:"string"`
16278
16279	// The status of the stack instance, in terms of its synchronization with its
16280	// associated stack set.
16281	//
16282	//    * INOPERABLE: A DeleteStackInstances operation has failed and left the
16283	//    stack in an unstable state. Stacks in this state are excluded from further
16284	//    UpdateStackSet operations. You might need to perform a DeleteStackInstances
16285	//    operation, with RetainStacks set to true, to delete the stack instance,
16286	//    and then delete the stack manually.
16287	//
16288	//    * OUTDATED: The stack isn't currently up to date with the stack set because:
16289	//    The associated stack failed during a CreateStackSet or UpdateStackSet
16290	//    operation. The stack was part of a CreateStackSet or UpdateStackSet operation
16291	//    that failed or was stopped before the stack was created or updated.
16292	//
16293	//    * CURRENT: The stack is currently up to date with the stack set.
16294	Status *string `type:"string" enum:"StackInstanceStatus"`
16295
16296	// The explanation for the specific status code that is assigned to this stack
16297	// instance.
16298	StatusReason *string `type:"string"`
16299}
16300
16301// String returns the string representation
16302func (s StackInstance) String() string {
16303	return awsutil.Prettify(s)
16304}
16305
16306// GoString returns the string representation
16307func (s StackInstance) GoString() string {
16308	return s.String()
16309}
16310
16311// SetAccount sets the Account field's value.
16312func (s *StackInstance) SetAccount(v string) *StackInstance {
16313	s.Account = &v
16314	return s
16315}
16316
16317// SetDriftStatus sets the DriftStatus field's value.
16318func (s *StackInstance) SetDriftStatus(v string) *StackInstance {
16319	s.DriftStatus = &v
16320	return s
16321}
16322
16323// SetLastDriftCheckTimestamp sets the LastDriftCheckTimestamp field's value.
16324func (s *StackInstance) SetLastDriftCheckTimestamp(v time.Time) *StackInstance {
16325	s.LastDriftCheckTimestamp = &v
16326	return s
16327}
16328
16329// SetOrganizationalUnitId sets the OrganizationalUnitId field's value.
16330func (s *StackInstance) SetOrganizationalUnitId(v string) *StackInstance {
16331	s.OrganizationalUnitId = &v
16332	return s
16333}
16334
16335// SetParameterOverrides sets the ParameterOverrides field's value.
16336func (s *StackInstance) SetParameterOverrides(v []*Parameter) *StackInstance {
16337	s.ParameterOverrides = v
16338	return s
16339}
16340
16341// SetRegion sets the Region field's value.
16342func (s *StackInstance) SetRegion(v string) *StackInstance {
16343	s.Region = &v
16344	return s
16345}
16346
16347// SetStackId sets the StackId field's value.
16348func (s *StackInstance) SetStackId(v string) *StackInstance {
16349	s.StackId = &v
16350	return s
16351}
16352
16353// SetStackInstanceStatus sets the StackInstanceStatus field's value.
16354func (s *StackInstance) SetStackInstanceStatus(v *StackInstanceComprehensiveStatus) *StackInstance {
16355	s.StackInstanceStatus = v
16356	return s
16357}
16358
16359// SetStackSetId sets the StackSetId field's value.
16360func (s *StackInstance) SetStackSetId(v string) *StackInstance {
16361	s.StackSetId = &v
16362	return s
16363}
16364
16365// SetStatus sets the Status field's value.
16366func (s *StackInstance) SetStatus(v string) *StackInstance {
16367	s.Status = &v
16368	return s
16369}
16370
16371// SetStatusReason sets the StatusReason field's value.
16372func (s *StackInstance) SetStatusReason(v string) *StackInstance {
16373	s.StatusReason = &v
16374	return s
16375}
16376
16377// The detailed status of the stack instance.
16378type StackInstanceComprehensiveStatus struct {
16379	_ struct{} `type:"structure"`
16380
16381	//    * CANCELLED: The operation in the specified account and Region has been
16382	//    cancelled. This is either because a user has stopped the stack set operation,
16383	//    or because the failure tolerance of the stack set operation has been exceeded.
16384	//
16385	//    * FAILED: The operation in the specified account and Region failed. If
16386	//    the stack set operation fails in enough accounts within a Region, the
16387	//    failure tolerance for the stack set operation as a whole might be exceeded.
16388	//
16389	//    * INOPERABLE: A DeleteStackInstances operation has failed and left the
16390	//    stack in an unstable state. Stacks in this state are excluded from further
16391	//    UpdateStackSet operations. You might need to perform a DeleteStackInstances
16392	//    operation, with RetainStacks set to true, to delete the stack instance,
16393	//    and then delete the stack manually.
16394	//
16395	//    * PENDING: The operation in the specified account and Region has yet to
16396	//    start.
16397	//
16398	//    * RUNNING: The operation in the specified account and Region is currently
16399	//    in progress.
16400	//
16401	//    * SUCCEEDED: The operation in the specified account and Region completed
16402	//    successfully.
16403	DetailedStatus *string `type:"string" enum:"StackInstanceDetailedStatus"`
16404}
16405
16406// String returns the string representation
16407func (s StackInstanceComprehensiveStatus) String() string {
16408	return awsutil.Prettify(s)
16409}
16410
16411// GoString returns the string representation
16412func (s StackInstanceComprehensiveStatus) GoString() string {
16413	return s.String()
16414}
16415
16416// SetDetailedStatus sets the DetailedStatus field's value.
16417func (s *StackInstanceComprehensiveStatus) SetDetailedStatus(v string) *StackInstanceComprehensiveStatus {
16418	s.DetailedStatus = &v
16419	return s
16420}
16421
16422// The status that stack instances are filtered by.
16423type StackInstanceFilter struct {
16424	_ struct{} `type:"structure"`
16425
16426	// The type of filter to apply.
16427	Name *string `type:"string" enum:"StackInstanceFilterName"`
16428
16429	// The status to filter by.
16430	Values *string `min:"6" type:"string"`
16431}
16432
16433// String returns the string representation
16434func (s StackInstanceFilter) String() string {
16435	return awsutil.Prettify(s)
16436}
16437
16438// GoString returns the string representation
16439func (s StackInstanceFilter) GoString() string {
16440	return s.String()
16441}
16442
16443// Validate inspects the fields of the type to determine if they are valid.
16444func (s *StackInstanceFilter) Validate() error {
16445	invalidParams := request.ErrInvalidParams{Context: "StackInstanceFilter"}
16446	if s.Values != nil && len(*s.Values) < 6 {
16447		invalidParams.Add(request.NewErrParamMinLen("Values", 6))
16448	}
16449
16450	if invalidParams.Len() > 0 {
16451		return invalidParams
16452	}
16453	return nil
16454}
16455
16456// SetName sets the Name field's value.
16457func (s *StackInstanceFilter) SetName(v string) *StackInstanceFilter {
16458	s.Name = &v
16459	return s
16460}
16461
16462// SetValues sets the Values field's value.
16463func (s *StackInstanceFilter) SetValues(v string) *StackInstanceFilter {
16464	s.Values = &v
16465	return s
16466}
16467
16468// The structure that contains summary information about a stack instance.
16469type StackInstanceSummary struct {
16470	_ struct{} `type:"structure"`
16471
16472	// [Self-managed permissions] The name of the account that the stack instance
16473	// is associated with.
16474	Account *string `type:"string"`
16475
16476	// Status of the stack instance's actual configuration compared to the expected
16477	// template and parameter configuration of the stack set to which it belongs.
16478	//
16479	//    * DRIFTED: The stack differs from the expected template and parameter
16480	//    configuration of the stack set to which it belongs. A stack instance is
16481	//    considered to have drifted if one or more of the resources in the associated
16482	//    stack have drifted.
16483	//
16484	//    * NOT_CHECKED: CloudFormation has not checked if the stack instance differs
16485	//    from its expected stack set configuration.
16486	//
16487	//    * IN_SYNC: The stack instance's actual configuration matches its expected
16488	//    stack set configuration.
16489	//
16490	//    * UNKNOWN: This value is reserved for future use.
16491	DriftStatus *string `type:"string" enum:"StackDriftStatus"`
16492
16493	// Most recent time when CloudFormation performed a drift detection operation
16494	// on the stack instance. This value will be NULL for any stack instance on
16495	// which drift detection has not yet been performed.
16496	LastDriftCheckTimestamp *time.Time `type:"timestamp"`
16497
16498	// [Service-managed permissions] The organization root ID or organizational
16499	// unit (OU) IDs that you specified for DeploymentTargets (https://docs.aws.amazon.com/AWSCloudFormation/latest/APIReference/API_DeploymentTargets.html).
16500	OrganizationalUnitId *string `type:"string"`
16501
16502	// The name of the Region that the stack instance is associated with.
16503	Region *string `type:"string"`
16504
16505	// The ID of the stack instance.
16506	StackId *string `type:"string"`
16507
16508	// The detailed status of the stack instance.
16509	StackInstanceStatus *StackInstanceComprehensiveStatus `type:"structure"`
16510
16511	// The name or unique ID of the stack set that the stack instance is associated
16512	// with.
16513	StackSetId *string `type:"string"`
16514
16515	// The status of the stack instance, in terms of its synchronization with its
16516	// associated stack set.
16517	//
16518	//    * INOPERABLE: A DeleteStackInstances operation has failed and left the
16519	//    stack in an unstable state. Stacks in this state are excluded from further
16520	//    UpdateStackSet operations. You might need to perform a DeleteStackInstances
16521	//    operation, with RetainStacks set to true, to delete the stack instance,
16522	//    and then delete the stack manually.
16523	//
16524	//    * OUTDATED: The stack isn't currently up to date with the stack set because:
16525	//    The associated stack failed during a CreateStackSet or UpdateStackSet
16526	//    operation. The stack was part of a CreateStackSet or UpdateStackSet operation
16527	//    that failed or was stopped before the stack was created or updated.
16528	//
16529	//    * CURRENT: The stack is currently up to date with the stack set.
16530	Status *string `type:"string" enum:"StackInstanceStatus"`
16531
16532	// The explanation for the specific status code assigned to this stack instance.
16533	StatusReason *string `type:"string"`
16534}
16535
16536// String returns the string representation
16537func (s StackInstanceSummary) String() string {
16538	return awsutil.Prettify(s)
16539}
16540
16541// GoString returns the string representation
16542func (s StackInstanceSummary) GoString() string {
16543	return s.String()
16544}
16545
16546// SetAccount sets the Account field's value.
16547func (s *StackInstanceSummary) SetAccount(v string) *StackInstanceSummary {
16548	s.Account = &v
16549	return s
16550}
16551
16552// SetDriftStatus sets the DriftStatus field's value.
16553func (s *StackInstanceSummary) SetDriftStatus(v string) *StackInstanceSummary {
16554	s.DriftStatus = &v
16555	return s
16556}
16557
16558// SetLastDriftCheckTimestamp sets the LastDriftCheckTimestamp field's value.
16559func (s *StackInstanceSummary) SetLastDriftCheckTimestamp(v time.Time) *StackInstanceSummary {
16560	s.LastDriftCheckTimestamp = &v
16561	return s
16562}
16563
16564// SetOrganizationalUnitId sets the OrganizationalUnitId field's value.
16565func (s *StackInstanceSummary) SetOrganizationalUnitId(v string) *StackInstanceSummary {
16566	s.OrganizationalUnitId = &v
16567	return s
16568}
16569
16570// SetRegion sets the Region field's value.
16571func (s *StackInstanceSummary) SetRegion(v string) *StackInstanceSummary {
16572	s.Region = &v
16573	return s
16574}
16575
16576// SetStackId sets the StackId field's value.
16577func (s *StackInstanceSummary) SetStackId(v string) *StackInstanceSummary {
16578	s.StackId = &v
16579	return s
16580}
16581
16582// SetStackInstanceStatus sets the StackInstanceStatus field's value.
16583func (s *StackInstanceSummary) SetStackInstanceStatus(v *StackInstanceComprehensiveStatus) *StackInstanceSummary {
16584	s.StackInstanceStatus = v
16585	return s
16586}
16587
16588// SetStackSetId sets the StackSetId field's value.
16589func (s *StackInstanceSummary) SetStackSetId(v string) *StackInstanceSummary {
16590	s.StackSetId = &v
16591	return s
16592}
16593
16594// SetStatus sets the Status field's value.
16595func (s *StackInstanceSummary) SetStatus(v string) *StackInstanceSummary {
16596	s.Status = &v
16597	return s
16598}
16599
16600// SetStatusReason sets the StatusReason field's value.
16601func (s *StackInstanceSummary) SetStatusReason(v string) *StackInstanceSummary {
16602	s.StatusReason = &v
16603	return s
16604}
16605
16606// The StackResource data type.
16607type StackResource struct {
16608	_ struct{} `type:"structure"`
16609
16610	// User defined description associated with the resource.
16611	Description *string `min:"1" type:"string"`
16612
16613	// Information about whether the resource's actual configuration differs, or
16614	// has drifted, from its expected configuration, as defined in the stack template
16615	// and any values specified as template parameters. For more information, see
16616	// Detecting Unregulated Configuration Changes to Stacks and Resources (http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-stack-drift.html).
16617	DriftInformation *StackResourceDriftInformation `type:"structure"`
16618
16619	// The logical name of the resource specified in the template.
16620	//
16621	// LogicalResourceId is a required field
16622	LogicalResourceId *string `type:"string" required:"true"`
16623
16624	// Contains information about the module from which the resource was created,
16625	// if the resource was created from a module included in the stack template.
16626	ModuleInfo *ModuleInfo `type:"structure"`
16627
16628	// The name or unique identifier that corresponds to a physical instance ID
16629	// of a resource supported by CloudFormation.
16630	PhysicalResourceId *string `type:"string"`
16631
16632	// Current status of the resource.
16633	//
16634	// ResourceStatus is a required field
16635	ResourceStatus *string `type:"string" required:"true" enum:"ResourceStatus"`
16636
16637	// Success/failure message associated with the resource.
16638	ResourceStatusReason *string `type:"string"`
16639
16640	// Type of resource. (For more information, go to Amazon Web Services Resource
16641	// Types Reference (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-template-resource-type-ref.html)
16642	// in the CloudFormation User Guide.)
16643	//
16644	// ResourceType is a required field
16645	ResourceType *string `min:"1" type:"string" required:"true"`
16646
16647	// Unique identifier of the stack.
16648	StackId *string `type:"string"`
16649
16650	// The name associated with the stack.
16651	StackName *string `type:"string"`
16652
16653	// Time the status was updated.
16654	//
16655	// Timestamp is a required field
16656	Timestamp *time.Time `type:"timestamp" required:"true"`
16657}
16658
16659// String returns the string representation
16660func (s StackResource) String() string {
16661	return awsutil.Prettify(s)
16662}
16663
16664// GoString returns the string representation
16665func (s StackResource) GoString() string {
16666	return s.String()
16667}
16668
16669// SetDescription sets the Description field's value.
16670func (s *StackResource) SetDescription(v string) *StackResource {
16671	s.Description = &v
16672	return s
16673}
16674
16675// SetDriftInformation sets the DriftInformation field's value.
16676func (s *StackResource) SetDriftInformation(v *StackResourceDriftInformation) *StackResource {
16677	s.DriftInformation = v
16678	return s
16679}
16680
16681// SetLogicalResourceId sets the LogicalResourceId field's value.
16682func (s *StackResource) SetLogicalResourceId(v string) *StackResource {
16683	s.LogicalResourceId = &v
16684	return s
16685}
16686
16687// SetModuleInfo sets the ModuleInfo field's value.
16688func (s *StackResource) SetModuleInfo(v *ModuleInfo) *StackResource {
16689	s.ModuleInfo = v
16690	return s
16691}
16692
16693// SetPhysicalResourceId sets the PhysicalResourceId field's value.
16694func (s *StackResource) SetPhysicalResourceId(v string) *StackResource {
16695	s.PhysicalResourceId = &v
16696	return s
16697}
16698
16699// SetResourceStatus sets the ResourceStatus field's value.
16700func (s *StackResource) SetResourceStatus(v string) *StackResource {
16701	s.ResourceStatus = &v
16702	return s
16703}
16704
16705// SetResourceStatusReason sets the ResourceStatusReason field's value.
16706func (s *StackResource) SetResourceStatusReason(v string) *StackResource {
16707	s.ResourceStatusReason = &v
16708	return s
16709}
16710
16711// SetResourceType sets the ResourceType field's value.
16712func (s *StackResource) SetResourceType(v string) *StackResource {
16713	s.ResourceType = &v
16714	return s
16715}
16716
16717// SetStackId sets the StackId field's value.
16718func (s *StackResource) SetStackId(v string) *StackResource {
16719	s.StackId = &v
16720	return s
16721}
16722
16723// SetStackName sets the StackName field's value.
16724func (s *StackResource) SetStackName(v string) *StackResource {
16725	s.StackName = &v
16726	return s
16727}
16728
16729// SetTimestamp sets the Timestamp field's value.
16730func (s *StackResource) SetTimestamp(v time.Time) *StackResource {
16731	s.Timestamp = &v
16732	return s
16733}
16734
16735// Contains detailed information about the specified stack resource.
16736type StackResourceDetail struct {
16737	_ struct{} `type:"structure"`
16738
16739	// User defined description associated with the resource.
16740	Description *string `min:"1" type:"string"`
16741
16742	// Information about whether the resource's actual configuration differs, or
16743	// has drifted, from its expected configuration, as defined in the stack template
16744	// and any values specified as template parameters. For more information, see
16745	// Detecting Unregulated Configuration Changes to Stacks and Resources (http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-stack-drift.html).
16746	DriftInformation *StackResourceDriftInformation `type:"structure"`
16747
16748	// Time the status was updated.
16749	//
16750	// LastUpdatedTimestamp is a required field
16751	LastUpdatedTimestamp *time.Time `type:"timestamp" required:"true"`
16752
16753	// The logical name of the resource specified in the template.
16754	//
16755	// LogicalResourceId is a required field
16756	LogicalResourceId *string `type:"string" required:"true"`
16757
16758	// The content of the Metadata attribute declared for the resource. For more
16759	// information, see Metadata Attribute (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-metadata.html)
16760	// in the CloudFormation User Guide.
16761	Metadata *string `type:"string"`
16762
16763	// Contains information about the module from which the resource was created,
16764	// if the resource was created from a module included in the stack template.
16765	ModuleInfo *ModuleInfo `type:"structure"`
16766
16767	// The name or unique identifier that corresponds to a physical instance ID
16768	// of a resource supported by CloudFormation.
16769	PhysicalResourceId *string `type:"string"`
16770
16771	// Current status of the resource.
16772	//
16773	// ResourceStatus is a required field
16774	ResourceStatus *string `type:"string" required:"true" enum:"ResourceStatus"`
16775
16776	// Success/failure message associated with the resource.
16777	ResourceStatusReason *string `type:"string"`
16778
16779	// Type of resource. ((For more information, go to Amazon Web Services Resource
16780	// Types Reference (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-template-resource-type-ref.html)
16781	// in the CloudFormation User Guide.)
16782	//
16783	// ResourceType is a required field
16784	ResourceType *string `min:"1" type:"string" required:"true"`
16785
16786	// Unique identifier of the stack.
16787	StackId *string `type:"string"`
16788
16789	// The name associated with the stack.
16790	StackName *string `type:"string"`
16791}
16792
16793// String returns the string representation
16794func (s StackResourceDetail) String() string {
16795	return awsutil.Prettify(s)
16796}
16797
16798// GoString returns the string representation
16799func (s StackResourceDetail) GoString() string {
16800	return s.String()
16801}
16802
16803// SetDescription sets the Description field's value.
16804func (s *StackResourceDetail) SetDescription(v string) *StackResourceDetail {
16805	s.Description = &v
16806	return s
16807}
16808
16809// SetDriftInformation sets the DriftInformation field's value.
16810func (s *StackResourceDetail) SetDriftInformation(v *StackResourceDriftInformation) *StackResourceDetail {
16811	s.DriftInformation = v
16812	return s
16813}
16814
16815// SetLastUpdatedTimestamp sets the LastUpdatedTimestamp field's value.
16816func (s *StackResourceDetail) SetLastUpdatedTimestamp(v time.Time) *StackResourceDetail {
16817	s.LastUpdatedTimestamp = &v
16818	return s
16819}
16820
16821// SetLogicalResourceId sets the LogicalResourceId field's value.
16822func (s *StackResourceDetail) SetLogicalResourceId(v string) *StackResourceDetail {
16823	s.LogicalResourceId = &v
16824	return s
16825}
16826
16827// SetMetadata sets the Metadata field's value.
16828func (s *StackResourceDetail) SetMetadata(v string) *StackResourceDetail {
16829	s.Metadata = &v
16830	return s
16831}
16832
16833// SetModuleInfo sets the ModuleInfo field's value.
16834func (s *StackResourceDetail) SetModuleInfo(v *ModuleInfo) *StackResourceDetail {
16835	s.ModuleInfo = v
16836	return s
16837}
16838
16839// SetPhysicalResourceId sets the PhysicalResourceId field's value.
16840func (s *StackResourceDetail) SetPhysicalResourceId(v string) *StackResourceDetail {
16841	s.PhysicalResourceId = &v
16842	return s
16843}
16844
16845// SetResourceStatus sets the ResourceStatus field's value.
16846func (s *StackResourceDetail) SetResourceStatus(v string) *StackResourceDetail {
16847	s.ResourceStatus = &v
16848	return s
16849}
16850
16851// SetResourceStatusReason sets the ResourceStatusReason field's value.
16852func (s *StackResourceDetail) SetResourceStatusReason(v string) *StackResourceDetail {
16853	s.ResourceStatusReason = &v
16854	return s
16855}
16856
16857// SetResourceType sets the ResourceType field's value.
16858func (s *StackResourceDetail) SetResourceType(v string) *StackResourceDetail {
16859	s.ResourceType = &v
16860	return s
16861}
16862
16863// SetStackId sets the StackId field's value.
16864func (s *StackResourceDetail) SetStackId(v string) *StackResourceDetail {
16865	s.StackId = &v
16866	return s
16867}
16868
16869// SetStackName sets the StackName field's value.
16870func (s *StackResourceDetail) SetStackName(v string) *StackResourceDetail {
16871	s.StackName = &v
16872	return s
16873}
16874
16875// Contains the drift information for a resource that has been checked for drift.
16876// This includes actual and expected property values for resources in which
16877// CloudFormation has detected drift. Only resource properties explicitly defined
16878// in the stack template are checked for drift. For more information, see Detecting
16879// Unregulated Configuration Changes to Stacks and Resources (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-stack-drift.html).
16880//
16881// Resources that do not currently support drift detection cannot be checked.
16882// For a list of resources that support drift detection, see Resources that
16883// Support Drift Detection (http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-stack-drift-resource-list.html).
16884//
16885// Use DetectStackResourceDrift to detect drift on individual resources, or
16886// DetectStackDrift to detect drift on all resources in a given stack that support
16887// drift detection.
16888type StackResourceDrift struct {
16889	_ struct{} `type:"structure"`
16890
16891	// A JSON structure containing the actual property values of the stack resource.
16892	//
16893	// For resources whose StackResourceDriftStatus is DELETED, this structure will
16894	// not be present.
16895	ActualProperties *string `type:"string"`
16896
16897	// A JSON structure containing the expected property values of the stack resource,
16898	// as defined in the stack template and any values specified as template parameters.
16899	//
16900	// For resources whose StackResourceDriftStatus is DELETED, this structure will
16901	// not be present.
16902	ExpectedProperties *string `type:"string"`
16903
16904	// The logical name of the resource specified in the template.
16905	//
16906	// LogicalResourceId is a required field
16907	LogicalResourceId *string `type:"string" required:"true"`
16908
16909	// Contains information about the module from which the resource was created,
16910	// if the resource was created from a module included in the stack template.
16911	ModuleInfo *ModuleInfo `type:"structure"`
16912
16913	// The name or unique identifier that corresponds to a physical instance ID
16914	// of a resource supported by CloudFormation.
16915	PhysicalResourceId *string `type:"string"`
16916
16917	// Context information that enables CloudFormation to uniquely identify a resource.
16918	// CloudFormation uses context key-value pairs in cases where a resource's logical
16919	// and physical IDs are not enough to uniquely identify that resource. Each
16920	// context key-value pair specifies a unique resource that contains the targeted
16921	// resource.
16922	PhysicalResourceIdContext []*PhysicalResourceIdContextKeyValuePair `type:"list"`
16923
16924	// A collection of the resource properties whose actual values differ from their
16925	// expected values. These will be present only for resources whose StackResourceDriftStatus
16926	// is MODIFIED.
16927	PropertyDifferences []*PropertyDifference `type:"list"`
16928
16929	// The type of the resource.
16930	//
16931	// ResourceType is a required field
16932	ResourceType *string `min:"1" type:"string" required:"true"`
16933
16934	// The ID of the stack.
16935	//
16936	// StackId is a required field
16937	StackId *string `type:"string" required:"true"`
16938
16939	// Status of the resource's actual configuration compared to its expected configuration
16940	//
16941	//    * DELETED: The resource differs from its expected template configuration
16942	//    because the resource has been deleted.
16943	//
16944	//    * MODIFIED: One or more resource properties differ from their expected
16945	//    values (as defined in the stack template and any values specified as template
16946	//    parameters).
16947	//
16948	//    * IN_SYNC: The resources's actual configuration matches its expected template
16949	//    configuration.
16950	//
16951	//    * NOT_CHECKED: CloudFormation does not currently return this value.
16952	//
16953	// StackResourceDriftStatus is a required field
16954	StackResourceDriftStatus *string `type:"string" required:"true" enum:"StackResourceDriftStatus"`
16955
16956	// Time at which CloudFormation performed drift detection on the stack resource.
16957	//
16958	// Timestamp is a required field
16959	Timestamp *time.Time `type:"timestamp" required:"true"`
16960}
16961
16962// String returns the string representation
16963func (s StackResourceDrift) String() string {
16964	return awsutil.Prettify(s)
16965}
16966
16967// GoString returns the string representation
16968func (s StackResourceDrift) GoString() string {
16969	return s.String()
16970}
16971
16972// SetActualProperties sets the ActualProperties field's value.
16973func (s *StackResourceDrift) SetActualProperties(v string) *StackResourceDrift {
16974	s.ActualProperties = &v
16975	return s
16976}
16977
16978// SetExpectedProperties sets the ExpectedProperties field's value.
16979func (s *StackResourceDrift) SetExpectedProperties(v string) *StackResourceDrift {
16980	s.ExpectedProperties = &v
16981	return s
16982}
16983
16984// SetLogicalResourceId sets the LogicalResourceId field's value.
16985func (s *StackResourceDrift) SetLogicalResourceId(v string) *StackResourceDrift {
16986	s.LogicalResourceId = &v
16987	return s
16988}
16989
16990// SetModuleInfo sets the ModuleInfo field's value.
16991func (s *StackResourceDrift) SetModuleInfo(v *ModuleInfo) *StackResourceDrift {
16992	s.ModuleInfo = v
16993	return s
16994}
16995
16996// SetPhysicalResourceId sets the PhysicalResourceId field's value.
16997func (s *StackResourceDrift) SetPhysicalResourceId(v string) *StackResourceDrift {
16998	s.PhysicalResourceId = &v
16999	return s
17000}
17001
17002// SetPhysicalResourceIdContext sets the PhysicalResourceIdContext field's value.
17003func (s *StackResourceDrift) SetPhysicalResourceIdContext(v []*PhysicalResourceIdContextKeyValuePair) *StackResourceDrift {
17004	s.PhysicalResourceIdContext = v
17005	return s
17006}
17007
17008// SetPropertyDifferences sets the PropertyDifferences field's value.
17009func (s *StackResourceDrift) SetPropertyDifferences(v []*PropertyDifference) *StackResourceDrift {
17010	s.PropertyDifferences = v
17011	return s
17012}
17013
17014// SetResourceType sets the ResourceType field's value.
17015func (s *StackResourceDrift) SetResourceType(v string) *StackResourceDrift {
17016	s.ResourceType = &v
17017	return s
17018}
17019
17020// SetStackId sets the StackId field's value.
17021func (s *StackResourceDrift) SetStackId(v string) *StackResourceDrift {
17022	s.StackId = &v
17023	return s
17024}
17025
17026// SetStackResourceDriftStatus sets the StackResourceDriftStatus field's value.
17027func (s *StackResourceDrift) SetStackResourceDriftStatus(v string) *StackResourceDrift {
17028	s.StackResourceDriftStatus = &v
17029	return s
17030}
17031
17032// SetTimestamp sets the Timestamp field's value.
17033func (s *StackResourceDrift) SetTimestamp(v time.Time) *StackResourceDrift {
17034	s.Timestamp = &v
17035	return s
17036}
17037
17038// Contains information about whether the resource's actual configuration differs,
17039// or has drifted, from its expected configuration.
17040type StackResourceDriftInformation struct {
17041	_ struct{} `type:"structure"`
17042
17043	// When CloudFormation last checked if the resource had drifted from its expected
17044	// configuration.
17045	LastCheckTimestamp *time.Time `type:"timestamp"`
17046
17047	// Status of the resource's actual configuration compared to its expected configuration
17048	//
17049	//    * DELETED: The resource differs from its expected configuration in that
17050	//    it has been deleted.
17051	//
17052	//    * MODIFIED: The resource differs from its expected configuration.
17053	//
17054	//    * NOT_CHECKED: CloudFormation has not checked if the resource differs
17055	//    from its expected configuration. Any resources that do not currently support
17056	//    drift detection have a status of NOT_CHECKED. For more information, see
17057	//    Resources that Support Drift Detection (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-stack-drift-resource-list.html).
17058	//
17059	//    * IN_SYNC: The resources's actual configuration matches its expected configuration.
17060	//
17061	// StackResourceDriftStatus is a required field
17062	StackResourceDriftStatus *string `type:"string" required:"true" enum:"StackResourceDriftStatus"`
17063}
17064
17065// String returns the string representation
17066func (s StackResourceDriftInformation) String() string {
17067	return awsutil.Prettify(s)
17068}
17069
17070// GoString returns the string representation
17071func (s StackResourceDriftInformation) GoString() string {
17072	return s.String()
17073}
17074
17075// SetLastCheckTimestamp sets the LastCheckTimestamp field's value.
17076func (s *StackResourceDriftInformation) SetLastCheckTimestamp(v time.Time) *StackResourceDriftInformation {
17077	s.LastCheckTimestamp = &v
17078	return s
17079}
17080
17081// SetStackResourceDriftStatus sets the StackResourceDriftStatus field's value.
17082func (s *StackResourceDriftInformation) SetStackResourceDriftStatus(v string) *StackResourceDriftInformation {
17083	s.StackResourceDriftStatus = &v
17084	return s
17085}
17086
17087// Summarizes information about whether the resource's actual configuration
17088// differs, or has drifted, from its expected configuration.
17089type StackResourceDriftInformationSummary struct {
17090	_ struct{} `type:"structure"`
17091
17092	// When CloudFormation last checked if the resource had drifted from its expected
17093	// configuration.
17094	LastCheckTimestamp *time.Time `type:"timestamp"`
17095
17096	// Status of the resource's actual configuration compared to its expected configuration
17097	//
17098	//    * DELETED: The resource differs from its expected configuration in that
17099	//    it has been deleted.
17100	//
17101	//    * MODIFIED: The resource differs from its expected configuration.
17102	//
17103	//    * NOT_CHECKED: CloudFormation has not checked if the resource differs
17104	//    from its expected configuration. Any resources that do not currently support
17105	//    drift detection have a status of NOT_CHECKED. For more information, see
17106	//    Resources that Support Drift Detection (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-stack-drift-resource-list.html).
17107	//    If you performed an ContinueUpdateRollback operation on a stack, any resources
17108	//    included in ResourcesToSkip will also have a status of NOT_CHECKED. For
17109	//    more information on skipping resources during rollback operations, see
17110	//    Continue Rolling Back an Update (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-continueupdaterollback.html)
17111	//    in the CloudFormation User Guide.
17112	//
17113	//    * IN_SYNC: The resources's actual configuration matches its expected configuration.
17114	//
17115	// StackResourceDriftStatus is a required field
17116	StackResourceDriftStatus *string `type:"string" required:"true" enum:"StackResourceDriftStatus"`
17117}
17118
17119// String returns the string representation
17120func (s StackResourceDriftInformationSummary) String() string {
17121	return awsutil.Prettify(s)
17122}
17123
17124// GoString returns the string representation
17125func (s StackResourceDriftInformationSummary) GoString() string {
17126	return s.String()
17127}
17128
17129// SetLastCheckTimestamp sets the LastCheckTimestamp field's value.
17130func (s *StackResourceDriftInformationSummary) SetLastCheckTimestamp(v time.Time) *StackResourceDriftInformationSummary {
17131	s.LastCheckTimestamp = &v
17132	return s
17133}
17134
17135// SetStackResourceDriftStatus sets the StackResourceDriftStatus field's value.
17136func (s *StackResourceDriftInformationSummary) SetStackResourceDriftStatus(v string) *StackResourceDriftInformationSummary {
17137	s.StackResourceDriftStatus = &v
17138	return s
17139}
17140
17141// Contains high-level information about the specified stack resource.
17142type StackResourceSummary struct {
17143	_ struct{} `type:"structure"`
17144
17145	// Information about whether the resource's actual configuration differs, or
17146	// has drifted, from its expected configuration, as defined in the stack template
17147	// and any values specified as template parameters. For more information, see
17148	// Detecting Unregulated Configuration Changes to Stacks and Resources (http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-stack-drift.html).
17149	DriftInformation *StackResourceDriftInformationSummary `type:"structure"`
17150
17151	// Time the status was updated.
17152	//
17153	// LastUpdatedTimestamp is a required field
17154	LastUpdatedTimestamp *time.Time `type:"timestamp" required:"true"`
17155
17156	// The logical name of the resource specified in the template.
17157	//
17158	// LogicalResourceId is a required field
17159	LogicalResourceId *string `type:"string" required:"true"`
17160
17161	// Contains information about the module from which the resource was created,
17162	// if the resource was created from a module included in the stack template.
17163	ModuleInfo *ModuleInfo `type:"structure"`
17164
17165	// The name or unique identifier that corresponds to a physical instance ID
17166	// of the resource.
17167	PhysicalResourceId *string `type:"string"`
17168
17169	// Current status of the resource.
17170	//
17171	// ResourceStatus is a required field
17172	ResourceStatus *string `type:"string" required:"true" enum:"ResourceStatus"`
17173
17174	// Success/failure message associated with the resource.
17175	ResourceStatusReason *string `type:"string"`
17176
17177	// Type of resource. (For more information, go to Amazon Web Services Resource
17178	// Types Reference (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-template-resource-type-ref.html)
17179	// in the CloudFormation User Guide.)
17180	//
17181	// ResourceType is a required field
17182	ResourceType *string `min:"1" type:"string" required:"true"`
17183}
17184
17185// String returns the string representation
17186func (s StackResourceSummary) String() string {
17187	return awsutil.Prettify(s)
17188}
17189
17190// GoString returns the string representation
17191func (s StackResourceSummary) GoString() string {
17192	return s.String()
17193}
17194
17195// SetDriftInformation sets the DriftInformation field's value.
17196func (s *StackResourceSummary) SetDriftInformation(v *StackResourceDriftInformationSummary) *StackResourceSummary {
17197	s.DriftInformation = v
17198	return s
17199}
17200
17201// SetLastUpdatedTimestamp sets the LastUpdatedTimestamp field's value.
17202func (s *StackResourceSummary) SetLastUpdatedTimestamp(v time.Time) *StackResourceSummary {
17203	s.LastUpdatedTimestamp = &v
17204	return s
17205}
17206
17207// SetLogicalResourceId sets the LogicalResourceId field's value.
17208func (s *StackResourceSummary) SetLogicalResourceId(v string) *StackResourceSummary {
17209	s.LogicalResourceId = &v
17210	return s
17211}
17212
17213// SetModuleInfo sets the ModuleInfo field's value.
17214func (s *StackResourceSummary) SetModuleInfo(v *ModuleInfo) *StackResourceSummary {
17215	s.ModuleInfo = v
17216	return s
17217}
17218
17219// SetPhysicalResourceId sets the PhysicalResourceId field's value.
17220func (s *StackResourceSummary) SetPhysicalResourceId(v string) *StackResourceSummary {
17221	s.PhysicalResourceId = &v
17222	return s
17223}
17224
17225// SetResourceStatus sets the ResourceStatus field's value.
17226func (s *StackResourceSummary) SetResourceStatus(v string) *StackResourceSummary {
17227	s.ResourceStatus = &v
17228	return s
17229}
17230
17231// SetResourceStatusReason sets the ResourceStatusReason field's value.
17232func (s *StackResourceSummary) SetResourceStatusReason(v string) *StackResourceSummary {
17233	s.ResourceStatusReason = &v
17234	return s
17235}
17236
17237// SetResourceType sets the ResourceType field's value.
17238func (s *StackResourceSummary) SetResourceType(v string) *StackResourceSummary {
17239	s.ResourceType = &v
17240	return s
17241}
17242
17243// A structure that contains information about a stack set. A stack set enables
17244// you to provision stacks into accounts and across Regions by using a single
17245// CloudFormation template. In the stack set, you specify the template to use,
17246// as well as any parameters and capabilities that the template requires.
17247type StackSet struct {
17248	_ struct{} `type:"structure"`
17249
17250	// The Amazon Resource Number (ARN) of the IAM role used to create or update
17251	// the stack set.
17252	//
17253	// Use customized administrator roles to control which users or groups can manage
17254	// specific stack sets within the same administrator account. For more information,
17255	// see Prerequisites: Granting Permissions for Stack Set Operations (http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/stacksets-prereqs.html)
17256	// in the CloudFormation User Guide.
17257	AdministrationRoleARN *string `min:"20" type:"string"`
17258
17259	// [Service-managed permissions] Describes whether StackSets automatically deploys
17260	// to Organizations accounts that are added to a target organization or organizational
17261	// unit (OU).
17262	AutoDeployment *AutoDeployment `type:"structure"`
17263
17264	// The capabilities that are allowed in the stack set. Some stack set templates
17265	// might include resources that can affect permissions in your account—for
17266	// example, by creating new Identity and Access Management (IAM) users. For
17267	// more information, see Acknowledging IAM Resources in CloudFormation Templates.
17268	// (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-iam-template.html#capabilities)
17269	Capabilities []*string `type:"list"`
17270
17271	// A description of the stack set that you specify when the stack set is created
17272	// or updated.
17273	Description *string `min:"1" type:"string"`
17274
17275	// The name of the IAM execution role used to create or update the stack set.
17276	//
17277	// Use customized execution roles to control which stack resources users and
17278	// groups can include in their stack sets.
17279	ExecutionRoleName *string `min:"1" type:"string"`
17280
17281	// [Service-managed permissions] The organization root ID or organizational
17282	// unit (OU) IDs that you specified for DeploymentTargets (https://docs.aws.amazon.com/AWSCloudFormation/latest/APIReference/API_DeploymentTargets.html).
17283	OrganizationalUnitIds []*string `type:"list"`
17284
17285	// A list of input parameters for a stack set.
17286	Parameters []*Parameter `type:"list"`
17287
17288	// Describes how the IAM roles required for stack set operations are created.
17289	//
17290	//    * With self-managed permissions, you must create the administrator and
17291	//    execution roles required to deploy to target accounts. For more information,
17292	//    see Grant Self-Managed Stack Set Permissions (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/stacksets-prereqs-self-managed.html).
17293	//
17294	//    * With service-managed permissions, StackSets automatically creates the
17295	//    IAM roles required to deploy to accounts managed by Organizations. For
17296	//    more information, see Grant Service-Managed Stack Set Permissions (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/stacksets-prereqs-service-managed.html).
17297	PermissionModel *string `type:"string" enum:"PermissionModels"`
17298
17299	// The Amazon Resource Number (ARN) of the stack set.
17300	StackSetARN *string `type:"string"`
17301
17302	// Detailed information about the drift status of the stack set.
17303	//
17304	// For stack sets, contains information about the last completed drift operation
17305	// performed on the stack set. Information about drift operations currently
17306	// in progress is not included.
17307	StackSetDriftDetectionDetails *StackSetDriftDetectionDetails `type:"structure"`
17308
17309	// The ID of the stack set.
17310	StackSetId *string `type:"string"`
17311
17312	// The name that's associated with the stack set.
17313	StackSetName *string `type:"string"`
17314
17315	// The status of the stack set.
17316	Status *string `type:"string" enum:"StackSetStatus"`
17317
17318	// A list of tags that specify information about the stack set. A maximum number
17319	// of 50 tags can be specified.
17320	Tags []*Tag `type:"list"`
17321
17322	// The structure that contains the body of the template that was used to create
17323	// or update the stack set.
17324	TemplateBody *string `min:"1" type:"string"`
17325}
17326
17327// String returns the string representation
17328func (s StackSet) String() string {
17329	return awsutil.Prettify(s)
17330}
17331
17332// GoString returns the string representation
17333func (s StackSet) GoString() string {
17334	return s.String()
17335}
17336
17337// SetAdministrationRoleARN sets the AdministrationRoleARN field's value.
17338func (s *StackSet) SetAdministrationRoleARN(v string) *StackSet {
17339	s.AdministrationRoleARN = &v
17340	return s
17341}
17342
17343// SetAutoDeployment sets the AutoDeployment field's value.
17344func (s *StackSet) SetAutoDeployment(v *AutoDeployment) *StackSet {
17345	s.AutoDeployment = v
17346	return s
17347}
17348
17349// SetCapabilities sets the Capabilities field's value.
17350func (s *StackSet) SetCapabilities(v []*string) *StackSet {
17351	s.Capabilities = v
17352	return s
17353}
17354
17355// SetDescription sets the Description field's value.
17356func (s *StackSet) SetDescription(v string) *StackSet {
17357	s.Description = &v
17358	return s
17359}
17360
17361// SetExecutionRoleName sets the ExecutionRoleName field's value.
17362func (s *StackSet) SetExecutionRoleName(v string) *StackSet {
17363	s.ExecutionRoleName = &v
17364	return s
17365}
17366
17367// SetOrganizationalUnitIds sets the OrganizationalUnitIds field's value.
17368func (s *StackSet) SetOrganizationalUnitIds(v []*string) *StackSet {
17369	s.OrganizationalUnitIds = v
17370	return s
17371}
17372
17373// SetParameters sets the Parameters field's value.
17374func (s *StackSet) SetParameters(v []*Parameter) *StackSet {
17375	s.Parameters = v
17376	return s
17377}
17378
17379// SetPermissionModel sets the PermissionModel field's value.
17380func (s *StackSet) SetPermissionModel(v string) *StackSet {
17381	s.PermissionModel = &v
17382	return s
17383}
17384
17385// SetStackSetARN sets the StackSetARN field's value.
17386func (s *StackSet) SetStackSetARN(v string) *StackSet {
17387	s.StackSetARN = &v
17388	return s
17389}
17390
17391// SetStackSetDriftDetectionDetails sets the StackSetDriftDetectionDetails field's value.
17392func (s *StackSet) SetStackSetDriftDetectionDetails(v *StackSetDriftDetectionDetails) *StackSet {
17393	s.StackSetDriftDetectionDetails = v
17394	return s
17395}
17396
17397// SetStackSetId sets the StackSetId field's value.
17398func (s *StackSet) SetStackSetId(v string) *StackSet {
17399	s.StackSetId = &v
17400	return s
17401}
17402
17403// SetStackSetName sets the StackSetName field's value.
17404func (s *StackSet) SetStackSetName(v string) *StackSet {
17405	s.StackSetName = &v
17406	return s
17407}
17408
17409// SetStatus sets the Status field's value.
17410func (s *StackSet) SetStatus(v string) *StackSet {
17411	s.Status = &v
17412	return s
17413}
17414
17415// SetTags sets the Tags field's value.
17416func (s *StackSet) SetTags(v []*Tag) *StackSet {
17417	s.Tags = v
17418	return s
17419}
17420
17421// SetTemplateBody sets the TemplateBody field's value.
17422func (s *StackSet) SetTemplateBody(v string) *StackSet {
17423	s.TemplateBody = &v
17424	return s
17425}
17426
17427// Detailed information about the drift status of the stack set.
17428//
17429// For stack sets, contains information about the last completed drift operation
17430// performed on the stack set. Information about drift operations in-progress
17431// is not included.
17432//
17433// For stack set operations, includes information about drift operations currently
17434// being performed on the stack set.
17435//
17436// For more information, see Detecting Unmanaged Changes in Stack Sets (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/stacksets-drift.html)
17437// in the CloudFormation User Guide.
17438type StackSetDriftDetectionDetails struct {
17439	_ struct{} `type:"structure"`
17440
17441	// The status of the stack set drift detection operation.
17442	//
17443	//    * COMPLETED: The drift detection operation completed without failing on
17444	//    any stack instances.
17445	//
17446	//    * FAILED: The drift detection operation exceeded the specified failure
17447	//    tolerance.
17448	//
17449	//    * PARTIAL_SUCCESS: The drift detection operation completed without exceeding
17450	//    the failure tolerance for the operation.
17451	//
17452	//    * IN_PROGRESS: The drift detection operation is currently being performed.
17453	//
17454	//    * STOPPED: The user has cancelled the drift detection operation.
17455	DriftDetectionStatus *string `type:"string" enum:"StackSetDriftDetectionStatus"`
17456
17457	// Status of the stack set's actual configuration compared to its expected template
17458	// and parameter configuration. A stack set is considered to have drifted if
17459	// one or more of its stack instances have drifted from their expected template
17460	// and parameter configuration.
17461	//
17462	//    * DRIFTED: One or more of the stack instances belonging to the stack set
17463	//    stack differs from the expected template and parameter configuration.
17464	//    A stack instance is considered to have drifted if one or more of the resources
17465	//    in the associated stack have drifted.
17466	//
17467	//    * NOT_CHECKED: CloudFormation has not checked the stack set for drift.
17468	//
17469	//    * IN_SYNC: All of the stack instances belonging to the stack set stack
17470	//    match from the expected template and parameter configuration.
17471	DriftStatus *string `type:"string" enum:"StackSetDriftStatus"`
17472
17473	// The number of stack instances that have drifted from the expected template
17474	// and parameter configuration of the stack set. A stack instance is considered
17475	// to have drifted if one or more of the resources in the associated stack do
17476	// not match their expected configuration.
17477	DriftedStackInstancesCount *int64 `type:"integer"`
17478
17479	// The number of stack instances for which the drift detection operation failed.
17480	FailedStackInstancesCount *int64 `type:"integer"`
17481
17482	// The number of stack instances that are currently being checked for drift.
17483	InProgressStackInstancesCount *int64 `type:"integer"`
17484
17485	// The number of stack instances which match the expected template and parameter
17486	// configuration of the stack set.
17487	InSyncStackInstancesCount *int64 `type:"integer"`
17488
17489	// Most recent time when CloudFormation performed a drift detection operation
17490	// on the stack set. This value will be NULL for any stack set on which drift
17491	// detection has not yet been performed.
17492	LastDriftCheckTimestamp *time.Time `type:"timestamp"`
17493
17494	// The total number of stack instances belonging to this stack set.
17495	//
17496	// The total number of stack instances is equal to the total of:
17497	//
17498	//    * Stack instances that match the stack set configuration.
17499	//
17500	//    * Stack instances that have drifted from the stack set configuration.
17501	//
17502	//    * Stack instances where the drift detection operation has failed.
17503	//
17504	//    * Stack instances currently being checked for drift.
17505	TotalStackInstancesCount *int64 `type:"integer"`
17506}
17507
17508// String returns the string representation
17509func (s StackSetDriftDetectionDetails) String() string {
17510	return awsutil.Prettify(s)
17511}
17512
17513// GoString returns the string representation
17514func (s StackSetDriftDetectionDetails) GoString() string {
17515	return s.String()
17516}
17517
17518// SetDriftDetectionStatus sets the DriftDetectionStatus field's value.
17519func (s *StackSetDriftDetectionDetails) SetDriftDetectionStatus(v string) *StackSetDriftDetectionDetails {
17520	s.DriftDetectionStatus = &v
17521	return s
17522}
17523
17524// SetDriftStatus sets the DriftStatus field's value.
17525func (s *StackSetDriftDetectionDetails) SetDriftStatus(v string) *StackSetDriftDetectionDetails {
17526	s.DriftStatus = &v
17527	return s
17528}
17529
17530// SetDriftedStackInstancesCount sets the DriftedStackInstancesCount field's value.
17531func (s *StackSetDriftDetectionDetails) SetDriftedStackInstancesCount(v int64) *StackSetDriftDetectionDetails {
17532	s.DriftedStackInstancesCount = &v
17533	return s
17534}
17535
17536// SetFailedStackInstancesCount sets the FailedStackInstancesCount field's value.
17537func (s *StackSetDriftDetectionDetails) SetFailedStackInstancesCount(v int64) *StackSetDriftDetectionDetails {
17538	s.FailedStackInstancesCount = &v
17539	return s
17540}
17541
17542// SetInProgressStackInstancesCount sets the InProgressStackInstancesCount field's value.
17543func (s *StackSetDriftDetectionDetails) SetInProgressStackInstancesCount(v int64) *StackSetDriftDetectionDetails {
17544	s.InProgressStackInstancesCount = &v
17545	return s
17546}
17547
17548// SetInSyncStackInstancesCount sets the InSyncStackInstancesCount field's value.
17549func (s *StackSetDriftDetectionDetails) SetInSyncStackInstancesCount(v int64) *StackSetDriftDetectionDetails {
17550	s.InSyncStackInstancesCount = &v
17551	return s
17552}
17553
17554// SetLastDriftCheckTimestamp sets the LastDriftCheckTimestamp field's value.
17555func (s *StackSetDriftDetectionDetails) SetLastDriftCheckTimestamp(v time.Time) *StackSetDriftDetectionDetails {
17556	s.LastDriftCheckTimestamp = &v
17557	return s
17558}
17559
17560// SetTotalStackInstancesCount sets the TotalStackInstancesCount field's value.
17561func (s *StackSetDriftDetectionDetails) SetTotalStackInstancesCount(v int64) *StackSetDriftDetectionDetails {
17562	s.TotalStackInstancesCount = &v
17563	return s
17564}
17565
17566// The structure that contains information about a stack set operation.
17567type StackSetOperation struct {
17568	_ struct{} `type:"structure"`
17569
17570	// The type of stack set operation: CREATE, UPDATE, or DELETE. Create and delete
17571	// operations affect only the specified stack set instances that are associated
17572	// with the specified stack set. Update operations affect both the stack set
17573	// itself, as well as all associated stack set instances.
17574	Action *string `type:"string" enum:"StackSetOperationAction"`
17575
17576	// The Amazon Resource Number (ARN) of the IAM role used to perform this stack
17577	// set operation.
17578	//
17579	// Use customized administrator roles to control which users or groups can manage
17580	// specific stack sets within the same administrator account. For more information,
17581	// see Define Permissions for Multiple Administrators (http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/stacksets-prereqs.html)
17582	// in the CloudFormation User Guide.
17583	AdministrationRoleARN *string `min:"20" type:"string"`
17584
17585	// The time at which the operation was initiated. Note that the creation times
17586	// for the stack set operation might differ from the creation time of the individual
17587	// stacks themselves. This is because CloudFormation needs to perform preparatory
17588	// work for the operation, such as dispatching the work to the requested Regions,
17589	// before actually creating the first stacks.
17590	CreationTimestamp *time.Time `type:"timestamp"`
17591
17592	// [Service-managed permissions] The Organizations accounts affected by the
17593	// stack operation.
17594	DeploymentTargets *DeploymentTargets `type:"structure"`
17595
17596	// The time at which the stack set operation ended, across all accounts and
17597	// Regions specified. Note that this doesn't necessarily mean that the stack
17598	// set operation was successful, or even attempted, in each account or Region.
17599	EndTimestamp *time.Time `type:"timestamp"`
17600
17601	// The name of the IAM execution role used to create or update the stack set.
17602	//
17603	// Use customized execution roles to control which stack resources users and
17604	// groups can include in their stack sets.
17605	ExecutionRoleName *string `min:"1" type:"string"`
17606
17607	// The unique ID of a stack set operation.
17608	OperationId *string `min:"1" type:"string"`
17609
17610	// The preferences for how CloudFormation performs this stack set operation.
17611	OperationPreferences *StackSetOperationPreferences `type:"structure"`
17612
17613	// For stack set operations of action type DELETE, specifies whether to remove
17614	// the stack instances from the specified stack set, but doesn't delete the
17615	// stacks. You can't reassociate a retained stack, or add an existing, saved
17616	// stack to a new stack set.
17617	RetainStacks *bool `type:"boolean"`
17618
17619	// Detailed information about the drift status of the stack set. This includes
17620	// information about drift operations currently being performed on the stack
17621	// set.
17622	//
17623	// this information will only be present for stack set operations whose Action
17624	// type is DETECT_DRIFT.
17625	//
17626	// For more information, see Detecting Unmanaged Changes in Stack Sets (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/stacksets-drift.html)
17627	// in the CloudFormation User Guide.
17628	StackSetDriftDetectionDetails *StackSetDriftDetectionDetails `type:"structure"`
17629
17630	// The ID of the stack set.
17631	StackSetId *string `type:"string"`
17632
17633	// The status of the operation.
17634	//
17635	//    * FAILED: The operation exceeded the specified failure tolerance. The
17636	//    failure tolerance value that you've set for an operation is applied for
17637	//    each Region during stack create and update operations. If the number of
17638	//    failed stacks within a Region exceeds the failure tolerance, the status
17639	//    of the operation in the Region is set to FAILED. This in turn sets the
17640	//    status of the operation as a whole to FAILED, and CloudFormation cancels
17641	//    the operation in any remaining Regions.
17642	//
17643	//    * QUEUED: [Service-managed permissions] For automatic deployments that
17644	//    require a sequence of operations, the operation is queued to be performed.
17645	//    For more information, see the stack set operation status codes (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/stacksets-concepts.html#stackset-status-codes)
17646	//    in the CloudFormation User Guide.
17647	//
17648	//    * RUNNING: The operation is currently being performed.
17649	//
17650	//    * STOPPED: The user has cancelled the operation.
17651	//
17652	//    * STOPPING: The operation is in the process of stopping, at user request.
17653	//
17654	//    * SUCCEEDED: The operation completed creating or updating all the specified
17655	//    stacks without exceeding the failure tolerance for the operation.
17656	Status *string `type:"string" enum:"StackSetOperationStatus"`
17657}
17658
17659// String returns the string representation
17660func (s StackSetOperation) String() string {
17661	return awsutil.Prettify(s)
17662}
17663
17664// GoString returns the string representation
17665func (s StackSetOperation) GoString() string {
17666	return s.String()
17667}
17668
17669// SetAction sets the Action field's value.
17670func (s *StackSetOperation) SetAction(v string) *StackSetOperation {
17671	s.Action = &v
17672	return s
17673}
17674
17675// SetAdministrationRoleARN sets the AdministrationRoleARN field's value.
17676func (s *StackSetOperation) SetAdministrationRoleARN(v string) *StackSetOperation {
17677	s.AdministrationRoleARN = &v
17678	return s
17679}
17680
17681// SetCreationTimestamp sets the CreationTimestamp field's value.
17682func (s *StackSetOperation) SetCreationTimestamp(v time.Time) *StackSetOperation {
17683	s.CreationTimestamp = &v
17684	return s
17685}
17686
17687// SetDeploymentTargets sets the DeploymentTargets field's value.
17688func (s *StackSetOperation) SetDeploymentTargets(v *DeploymentTargets) *StackSetOperation {
17689	s.DeploymentTargets = v
17690	return s
17691}
17692
17693// SetEndTimestamp sets the EndTimestamp field's value.
17694func (s *StackSetOperation) SetEndTimestamp(v time.Time) *StackSetOperation {
17695	s.EndTimestamp = &v
17696	return s
17697}
17698
17699// SetExecutionRoleName sets the ExecutionRoleName field's value.
17700func (s *StackSetOperation) SetExecutionRoleName(v string) *StackSetOperation {
17701	s.ExecutionRoleName = &v
17702	return s
17703}
17704
17705// SetOperationId sets the OperationId field's value.
17706func (s *StackSetOperation) SetOperationId(v string) *StackSetOperation {
17707	s.OperationId = &v
17708	return s
17709}
17710
17711// SetOperationPreferences sets the OperationPreferences field's value.
17712func (s *StackSetOperation) SetOperationPreferences(v *StackSetOperationPreferences) *StackSetOperation {
17713	s.OperationPreferences = v
17714	return s
17715}
17716
17717// SetRetainStacks sets the RetainStacks field's value.
17718func (s *StackSetOperation) SetRetainStacks(v bool) *StackSetOperation {
17719	s.RetainStacks = &v
17720	return s
17721}
17722
17723// SetStackSetDriftDetectionDetails sets the StackSetDriftDetectionDetails field's value.
17724func (s *StackSetOperation) SetStackSetDriftDetectionDetails(v *StackSetDriftDetectionDetails) *StackSetOperation {
17725	s.StackSetDriftDetectionDetails = v
17726	return s
17727}
17728
17729// SetStackSetId sets the StackSetId field's value.
17730func (s *StackSetOperation) SetStackSetId(v string) *StackSetOperation {
17731	s.StackSetId = &v
17732	return s
17733}
17734
17735// SetStatus sets the Status field's value.
17736func (s *StackSetOperation) SetStatus(v string) *StackSetOperation {
17737	s.Status = &v
17738	return s
17739}
17740
17741// The user-specified preferences for how CloudFormation performs a stack set
17742// operation.
17743//
17744// For more information on maximum concurrent accounts and failure tolerance,
17745// see Stack set operation options (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/stacksets-concepts.html#stackset-ops-options).
17746type StackSetOperationPreferences struct {
17747	_ struct{} `type:"structure"`
17748
17749	// The number of accounts, per Region, for which this operation can fail before
17750	// CloudFormation stops the operation in that Region. If the operation is stopped
17751	// in a Region, CloudFormation doesn't attempt the operation in any subsequent
17752	// Regions.
17753	//
17754	// Conditional: You must specify either FailureToleranceCount or FailureTolerancePercentage
17755	// (but not both).
17756	//
17757	// By default, 0 is specified.
17758	FailureToleranceCount *int64 `type:"integer"`
17759
17760	// The percentage of accounts, per Region, for which this stack operation can
17761	// fail before CloudFormation stops the operation in that Region. If the operation
17762	// is stopped in a Region, CloudFormation doesn't attempt the operation in any
17763	// subsequent Regions.
17764	//
17765	// When calculating the number of accounts based on the specified percentage,
17766	// CloudFormation rounds down to the next whole number.
17767	//
17768	// Conditional: You must specify either FailureToleranceCount or FailureTolerancePercentage,
17769	// but not both.
17770	//
17771	// By default, 0 is specified.
17772	FailureTolerancePercentage *int64 `type:"integer"`
17773
17774	// The maximum number of accounts in which to perform this operation at one
17775	// time. This is dependent on the value of FailureToleranceCount. MaxConcurrentCount
17776	// is at most one more than the FailureToleranceCount.
17777	//
17778	// Note that this setting lets you specify the maximum for operations. For large
17779	// deployments, under certain circumstances the actual number of accounts acted
17780	// upon concurrently may be lower due to service throttling.
17781	//
17782	// Conditional: You must specify either MaxConcurrentCount or MaxConcurrentPercentage,
17783	// but not both.
17784	//
17785	// By default, 1 is specified.
17786	MaxConcurrentCount *int64 `min:"1" type:"integer"`
17787
17788	// The maximum percentage of accounts in which to perform this operation at
17789	// one time.
17790	//
17791	// When calculating the number of accounts based on the specified percentage,
17792	// CloudFormation rounds down to the next whole number. This is true except
17793	// in cases where rounding down would result is zero. In this case, CloudFormation
17794	// sets the number as one instead.
17795	//
17796	// Note that this setting lets you specify the maximum for operations. For large
17797	// deployments, under certain circumstances the actual number of accounts acted
17798	// upon concurrently may be lower due to service throttling.
17799	//
17800	// Conditional: You must specify either MaxConcurrentCount or MaxConcurrentPercentage,
17801	// but not both.
17802	//
17803	// By default, 1 is specified.
17804	MaxConcurrentPercentage *int64 `min:"1" type:"integer"`
17805
17806	// The concurrency type of deploying StackSets operations in Regions, could
17807	// be in parallel or one Region at a time.
17808	RegionConcurrencyType *string `type:"string" enum:"RegionConcurrencyType"`
17809
17810	// The order of the Regions in where you want to perform the stack operation.
17811	RegionOrder []*string `type:"list"`
17812}
17813
17814// String returns the string representation
17815func (s StackSetOperationPreferences) String() string {
17816	return awsutil.Prettify(s)
17817}
17818
17819// GoString returns the string representation
17820func (s StackSetOperationPreferences) GoString() string {
17821	return s.String()
17822}
17823
17824// Validate inspects the fields of the type to determine if they are valid.
17825func (s *StackSetOperationPreferences) Validate() error {
17826	invalidParams := request.ErrInvalidParams{Context: "StackSetOperationPreferences"}
17827	if s.MaxConcurrentCount != nil && *s.MaxConcurrentCount < 1 {
17828		invalidParams.Add(request.NewErrParamMinValue("MaxConcurrentCount", 1))
17829	}
17830	if s.MaxConcurrentPercentage != nil && *s.MaxConcurrentPercentage < 1 {
17831		invalidParams.Add(request.NewErrParamMinValue("MaxConcurrentPercentage", 1))
17832	}
17833
17834	if invalidParams.Len() > 0 {
17835		return invalidParams
17836	}
17837	return nil
17838}
17839
17840// SetFailureToleranceCount sets the FailureToleranceCount field's value.
17841func (s *StackSetOperationPreferences) SetFailureToleranceCount(v int64) *StackSetOperationPreferences {
17842	s.FailureToleranceCount = &v
17843	return s
17844}
17845
17846// SetFailureTolerancePercentage sets the FailureTolerancePercentage field's value.
17847func (s *StackSetOperationPreferences) SetFailureTolerancePercentage(v int64) *StackSetOperationPreferences {
17848	s.FailureTolerancePercentage = &v
17849	return s
17850}
17851
17852// SetMaxConcurrentCount sets the MaxConcurrentCount field's value.
17853func (s *StackSetOperationPreferences) SetMaxConcurrentCount(v int64) *StackSetOperationPreferences {
17854	s.MaxConcurrentCount = &v
17855	return s
17856}
17857
17858// SetMaxConcurrentPercentage sets the MaxConcurrentPercentage field's value.
17859func (s *StackSetOperationPreferences) SetMaxConcurrentPercentage(v int64) *StackSetOperationPreferences {
17860	s.MaxConcurrentPercentage = &v
17861	return s
17862}
17863
17864// SetRegionConcurrencyType sets the RegionConcurrencyType field's value.
17865func (s *StackSetOperationPreferences) SetRegionConcurrencyType(v string) *StackSetOperationPreferences {
17866	s.RegionConcurrencyType = &v
17867	return s
17868}
17869
17870// SetRegionOrder sets the RegionOrder field's value.
17871func (s *StackSetOperationPreferences) SetRegionOrder(v []*string) *StackSetOperationPreferences {
17872	s.RegionOrder = v
17873	return s
17874}
17875
17876// The structure that contains information about a specified operation's results
17877// for a given account in a given Region.
17878type StackSetOperationResultSummary struct {
17879	_ struct{} `type:"structure"`
17880
17881	// [Self-managed permissions] The name of the account for this operation result.
17882	Account *string `type:"string"`
17883
17884	// The results of the account gate function CloudFormation invokes, if present,
17885	// before proceeding with stack set operations in an account
17886	AccountGateResult *AccountGateResult `type:"structure"`
17887
17888	// [Service-managed permissions] The organization root ID or organizational
17889	// unit (OU) IDs that you specified for DeploymentTargets (https://docs.aws.amazon.com/AWSCloudFormation/latest/APIReference/API_DeploymentTargets.html).
17890	OrganizationalUnitId *string `type:"string"`
17891
17892	// The name of the Region for this operation result.
17893	Region *string `type:"string"`
17894
17895	// The result status of the stack set operation for the given account in the
17896	// given Region.
17897	//
17898	//    * CANCELLED: The operation in the specified account and Region has been
17899	//    cancelled. This is either because a user has stopped the stack set operation,
17900	//    or because the failure tolerance of the stack set operation has been exceeded.
17901	//
17902	//    * FAILED: The operation in the specified account and Region failed. If
17903	//    the stack set operation fails in enough accounts within a Region, the
17904	//    failure tolerance for the stack set operation as a whole might be exceeded.
17905	//
17906	//    * RUNNING: The operation in the specified account and Region is currently
17907	//    in progress.
17908	//
17909	//    * PENDING: The operation in the specified account and Region has yet to
17910	//    start.
17911	//
17912	//    * SUCCEEDED: The operation in the specified account and Region completed
17913	//    successfully.
17914	Status *string `type:"string" enum:"StackSetOperationResultStatus"`
17915
17916	// The reason for the assigned result status.
17917	StatusReason *string `type:"string"`
17918}
17919
17920// String returns the string representation
17921func (s StackSetOperationResultSummary) String() string {
17922	return awsutil.Prettify(s)
17923}
17924
17925// GoString returns the string representation
17926func (s StackSetOperationResultSummary) GoString() string {
17927	return s.String()
17928}
17929
17930// SetAccount sets the Account field's value.
17931func (s *StackSetOperationResultSummary) SetAccount(v string) *StackSetOperationResultSummary {
17932	s.Account = &v
17933	return s
17934}
17935
17936// SetAccountGateResult sets the AccountGateResult field's value.
17937func (s *StackSetOperationResultSummary) SetAccountGateResult(v *AccountGateResult) *StackSetOperationResultSummary {
17938	s.AccountGateResult = v
17939	return s
17940}
17941
17942// SetOrganizationalUnitId sets the OrganizationalUnitId field's value.
17943func (s *StackSetOperationResultSummary) SetOrganizationalUnitId(v string) *StackSetOperationResultSummary {
17944	s.OrganizationalUnitId = &v
17945	return s
17946}
17947
17948// SetRegion sets the Region field's value.
17949func (s *StackSetOperationResultSummary) SetRegion(v string) *StackSetOperationResultSummary {
17950	s.Region = &v
17951	return s
17952}
17953
17954// SetStatus sets the Status field's value.
17955func (s *StackSetOperationResultSummary) SetStatus(v string) *StackSetOperationResultSummary {
17956	s.Status = &v
17957	return s
17958}
17959
17960// SetStatusReason sets the StatusReason field's value.
17961func (s *StackSetOperationResultSummary) SetStatusReason(v string) *StackSetOperationResultSummary {
17962	s.StatusReason = &v
17963	return s
17964}
17965
17966// The structures that contain summary information about the specified operation.
17967type StackSetOperationSummary struct {
17968	_ struct{} `type:"structure"`
17969
17970	// The type of operation: CREATE, UPDATE, or DELETE. Create and delete operations
17971	// affect only the specified stack instances that are associated with the specified
17972	// stack set. Update operations affect both the stack set itself as well as
17973	// all associated stack set instances.
17974	Action *string `type:"string" enum:"StackSetOperationAction"`
17975
17976	// The time at which the operation was initiated. Note that the creation times
17977	// for the stack set operation might differ from the creation time of the individual
17978	// stacks themselves. This is because CloudFormation needs to perform preparatory
17979	// work for the operation, such as dispatching the work to the requested Regions,
17980	// before actually creating the first stacks.
17981	CreationTimestamp *time.Time `type:"timestamp"`
17982
17983	// The time at which the stack set operation ended, across all accounts and
17984	// Regions specified. Note that this doesn't necessarily mean that the stack
17985	// set operation was successful, or even attempted, in each account or Region.
17986	EndTimestamp *time.Time `type:"timestamp"`
17987
17988	// The unique ID of the stack set operation.
17989	OperationId *string `min:"1" type:"string"`
17990
17991	// The overall status of the operation.
17992	//
17993	//    * FAILED: The operation exceeded the specified failure tolerance. The
17994	//    failure tolerance value that you've set for an operation is applied for
17995	//    each Region during stack create and update operations. If the number of
17996	//    failed stacks within a Region exceeds the failure tolerance, the status
17997	//    of the operation in the Region is set to FAILED. This in turn sets the
17998	//    status of the operation as a whole to FAILED, and CloudFormation cancels
17999	//    the operation in any remaining Regions.
18000	//
18001	//    * QUEUED: [Service-managed permissions] For automatic deployments that
18002	//    require a sequence of operations, the operation is queued to be performed.
18003	//    For more information, see the stack set operation status codes (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/stacksets-concepts.html#stackset-status-codes)
18004	//    in the CloudFormation User Guide.
18005	//
18006	//    * RUNNING: The operation is currently being performed.
18007	//
18008	//    * STOPPED: The user has cancelled the operation.
18009	//
18010	//    * STOPPING: The operation is in the process of stopping, at user request.
18011	//
18012	//    * SUCCEEDED: The operation completed creating or updating all the specified
18013	//    stacks without exceeding the failure tolerance for the operation.
18014	Status *string `type:"string" enum:"StackSetOperationStatus"`
18015}
18016
18017// String returns the string representation
18018func (s StackSetOperationSummary) String() string {
18019	return awsutil.Prettify(s)
18020}
18021
18022// GoString returns the string representation
18023func (s StackSetOperationSummary) GoString() string {
18024	return s.String()
18025}
18026
18027// SetAction sets the Action field's value.
18028func (s *StackSetOperationSummary) SetAction(v string) *StackSetOperationSummary {
18029	s.Action = &v
18030	return s
18031}
18032
18033// SetCreationTimestamp sets the CreationTimestamp field's value.
18034func (s *StackSetOperationSummary) SetCreationTimestamp(v time.Time) *StackSetOperationSummary {
18035	s.CreationTimestamp = &v
18036	return s
18037}
18038
18039// SetEndTimestamp sets the EndTimestamp field's value.
18040func (s *StackSetOperationSummary) SetEndTimestamp(v time.Time) *StackSetOperationSummary {
18041	s.EndTimestamp = &v
18042	return s
18043}
18044
18045// SetOperationId sets the OperationId field's value.
18046func (s *StackSetOperationSummary) SetOperationId(v string) *StackSetOperationSummary {
18047	s.OperationId = &v
18048	return s
18049}
18050
18051// SetStatus sets the Status field's value.
18052func (s *StackSetOperationSummary) SetStatus(v string) *StackSetOperationSummary {
18053	s.Status = &v
18054	return s
18055}
18056
18057// The structures that contain summary information about the specified stack
18058// set.
18059type StackSetSummary struct {
18060	_ struct{} `type:"structure"`
18061
18062	// [Service-managed permissions] Describes whether StackSets automatically deploys
18063	// to Organizations accounts that are added to a target organizational unit
18064	// (OU).
18065	AutoDeployment *AutoDeployment `type:"structure"`
18066
18067	// A description of the stack set that you specify when the stack set is created
18068	// or updated.
18069	Description *string `min:"1" type:"string"`
18070
18071	// Status of the stack set's actual configuration compared to its expected template
18072	// and parameter configuration. A stack set is considered to have drifted if
18073	// one or more of its stack instances have drifted from their expected template
18074	// and parameter configuration.
18075	//
18076	//    * DRIFTED: One or more of the stack instances belonging to the stack set
18077	//    stack differs from the expected template and parameter configuration.
18078	//    A stack instance is considered to have drifted if one or more of the resources
18079	//    in the associated stack have drifted.
18080	//
18081	//    * NOT_CHECKED: CloudFormation has not checked the stack set for drift.
18082	//
18083	//    * IN_SYNC: All of the stack instances belonging to the stack set stack
18084	//    match from the expected template and parameter configuration.
18085	//
18086	//    * UNKNOWN: This value is reserved for future use.
18087	DriftStatus *string `type:"string" enum:"StackDriftStatus"`
18088
18089	// Most recent time when CloudFormation performed a drift detection operation
18090	// on the stack set. This value will be NULL for any stack set on which drift
18091	// detection has not yet been performed.
18092	LastDriftCheckTimestamp *time.Time `type:"timestamp"`
18093
18094	// Describes how the IAM roles required for stack set operations are created.
18095	//
18096	//    * With self-managed permissions, you must create the administrator and
18097	//    execution roles required to deploy to target accounts. For more information,
18098	//    see Grant Self-Managed Stack Set Permissions (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/stacksets-prereqs-self-managed.html).
18099	//
18100	//    * With service-managed permissions, StackSets automatically creates the
18101	//    IAM roles required to deploy to accounts managed by Organizations. For
18102	//    more information, see Grant Service-Managed Stack Set Permissions (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/stacksets-prereqs-service-managed.html).
18103	PermissionModel *string `type:"string" enum:"PermissionModels"`
18104
18105	// The ID of the stack set.
18106	StackSetId *string `type:"string"`
18107
18108	// The name of the stack set.
18109	StackSetName *string `type:"string"`
18110
18111	// The status of the stack set.
18112	Status *string `type:"string" enum:"StackSetStatus"`
18113}
18114
18115// String returns the string representation
18116func (s StackSetSummary) String() string {
18117	return awsutil.Prettify(s)
18118}
18119
18120// GoString returns the string representation
18121func (s StackSetSummary) GoString() string {
18122	return s.String()
18123}
18124
18125// SetAutoDeployment sets the AutoDeployment field's value.
18126func (s *StackSetSummary) SetAutoDeployment(v *AutoDeployment) *StackSetSummary {
18127	s.AutoDeployment = v
18128	return s
18129}
18130
18131// SetDescription sets the Description field's value.
18132func (s *StackSetSummary) SetDescription(v string) *StackSetSummary {
18133	s.Description = &v
18134	return s
18135}
18136
18137// SetDriftStatus sets the DriftStatus field's value.
18138func (s *StackSetSummary) SetDriftStatus(v string) *StackSetSummary {
18139	s.DriftStatus = &v
18140	return s
18141}
18142
18143// SetLastDriftCheckTimestamp sets the LastDriftCheckTimestamp field's value.
18144func (s *StackSetSummary) SetLastDriftCheckTimestamp(v time.Time) *StackSetSummary {
18145	s.LastDriftCheckTimestamp = &v
18146	return s
18147}
18148
18149// SetPermissionModel sets the PermissionModel field's value.
18150func (s *StackSetSummary) SetPermissionModel(v string) *StackSetSummary {
18151	s.PermissionModel = &v
18152	return s
18153}
18154
18155// SetStackSetId sets the StackSetId field's value.
18156func (s *StackSetSummary) SetStackSetId(v string) *StackSetSummary {
18157	s.StackSetId = &v
18158	return s
18159}
18160
18161// SetStackSetName sets the StackSetName field's value.
18162func (s *StackSetSummary) SetStackSetName(v string) *StackSetSummary {
18163	s.StackSetName = &v
18164	return s
18165}
18166
18167// SetStatus sets the Status field's value.
18168func (s *StackSetSummary) SetStatus(v string) *StackSetSummary {
18169	s.Status = &v
18170	return s
18171}
18172
18173// The StackSummary Data Type
18174type StackSummary struct {
18175	_ struct{} `type:"structure"`
18176
18177	// The time the stack was created.
18178	//
18179	// CreationTime is a required field
18180	CreationTime *time.Time `type:"timestamp" required:"true"`
18181
18182	// The time the stack was deleted.
18183	DeletionTime *time.Time `type:"timestamp"`
18184
18185	// Summarizes information on whether a stack's actual configuration differs,
18186	// or has drifted, from it's expected configuration, as defined in the stack
18187	// template and any values specified as template parameters. For more information,
18188	// see Detecting Unregulated Configuration Changes to Stacks and Resources (http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-stack-drift.html).
18189	DriftInformation *StackDriftInformationSummary `type:"structure"`
18190
18191	// The time the stack was last updated. This field will only be returned if
18192	// the stack has been updated at least once.
18193	LastUpdatedTime *time.Time `type:"timestamp"`
18194
18195	// For nested stacks--stacks created as resources for another stack--the stack
18196	// ID of the direct parent of this stack. For the first level of nested stacks,
18197	// the root stack is also the parent stack.
18198	//
18199	// For more information, see Working with Nested Stacks (http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-nested-stacks.html)
18200	// in the CloudFormation User Guide.
18201	ParentId *string `type:"string"`
18202
18203	// For nested stacks--stacks created as resources for another stack--the stack
18204	// ID of the top-level stack to which the nested stack ultimately belongs.
18205	//
18206	// For more information, see Working with Nested Stacks (http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-nested-stacks.html)
18207	// in the CloudFormation User Guide.
18208	RootId *string `type:"string"`
18209
18210	// Unique stack identifier.
18211	StackId *string `type:"string"`
18212
18213	// The name associated with the stack.
18214	//
18215	// StackName is a required field
18216	StackName *string `type:"string" required:"true"`
18217
18218	// The current status of the stack.
18219	//
18220	// StackStatus is a required field
18221	StackStatus *string `type:"string" required:"true" enum:"StackStatus"`
18222
18223	// Success/Failure message associated with the stack status.
18224	StackStatusReason *string `type:"string"`
18225
18226	// The template description of the template used to create the stack.
18227	TemplateDescription *string `type:"string"`
18228}
18229
18230// String returns the string representation
18231func (s StackSummary) String() string {
18232	return awsutil.Prettify(s)
18233}
18234
18235// GoString returns the string representation
18236func (s StackSummary) GoString() string {
18237	return s.String()
18238}
18239
18240// SetCreationTime sets the CreationTime field's value.
18241func (s *StackSummary) SetCreationTime(v time.Time) *StackSummary {
18242	s.CreationTime = &v
18243	return s
18244}
18245
18246// SetDeletionTime sets the DeletionTime field's value.
18247func (s *StackSummary) SetDeletionTime(v time.Time) *StackSummary {
18248	s.DeletionTime = &v
18249	return s
18250}
18251
18252// SetDriftInformation sets the DriftInformation field's value.
18253func (s *StackSummary) SetDriftInformation(v *StackDriftInformationSummary) *StackSummary {
18254	s.DriftInformation = v
18255	return s
18256}
18257
18258// SetLastUpdatedTime sets the LastUpdatedTime field's value.
18259func (s *StackSummary) SetLastUpdatedTime(v time.Time) *StackSummary {
18260	s.LastUpdatedTime = &v
18261	return s
18262}
18263
18264// SetParentId sets the ParentId field's value.
18265func (s *StackSummary) SetParentId(v string) *StackSummary {
18266	s.ParentId = &v
18267	return s
18268}
18269
18270// SetRootId sets the RootId field's value.
18271func (s *StackSummary) SetRootId(v string) *StackSummary {
18272	s.RootId = &v
18273	return s
18274}
18275
18276// SetStackId sets the StackId field's value.
18277func (s *StackSummary) SetStackId(v string) *StackSummary {
18278	s.StackId = &v
18279	return s
18280}
18281
18282// SetStackName sets the StackName field's value.
18283func (s *StackSummary) SetStackName(v string) *StackSummary {
18284	s.StackName = &v
18285	return s
18286}
18287
18288// SetStackStatus sets the StackStatus field's value.
18289func (s *StackSummary) SetStackStatus(v string) *StackSummary {
18290	s.StackStatus = &v
18291	return s
18292}
18293
18294// SetStackStatusReason sets the StackStatusReason field's value.
18295func (s *StackSummary) SetStackStatusReason(v string) *StackSummary {
18296	s.StackStatusReason = &v
18297	return s
18298}
18299
18300// SetTemplateDescription sets the TemplateDescription field's value.
18301func (s *StackSummary) SetTemplateDescription(v string) *StackSummary {
18302	s.TemplateDescription = &v
18303	return s
18304}
18305
18306type StopStackSetOperationInput struct {
18307	_ struct{} `type:"structure"`
18308
18309	// [Service-managed permissions] Specifies whether you are acting as an account
18310	// administrator in the organization's management account or as a delegated
18311	// administrator in a member account.
18312	//
18313	// By default, SELF is specified. Use SELF for stack sets with self-managed
18314	// permissions.
18315	//
18316	//    * If you are signed in to the management account, specify SELF.
18317	//
18318	//    * If you are signed in to a delegated administrator account, specify DELEGATED_ADMIN.
18319	//    Your account must be registered as a delegated administrator in the management
18320	//    account. For more information, see Register a delegated administrator
18321	//    (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/stacksets-orgs-delegated-admin.html)
18322	//    in the CloudFormation User Guide.
18323	CallAs *string `type:"string" enum:"CallAs"`
18324
18325	// The ID of the stack operation.
18326	//
18327	// OperationId is a required field
18328	OperationId *string `min:"1" type:"string" required:"true"`
18329
18330	// The name or unique ID of the stack set that you want to stop the operation
18331	// for.
18332	//
18333	// StackSetName is a required field
18334	StackSetName *string `type:"string" required:"true"`
18335}
18336
18337// String returns the string representation
18338func (s StopStackSetOperationInput) String() string {
18339	return awsutil.Prettify(s)
18340}
18341
18342// GoString returns the string representation
18343func (s StopStackSetOperationInput) GoString() string {
18344	return s.String()
18345}
18346
18347// Validate inspects the fields of the type to determine if they are valid.
18348func (s *StopStackSetOperationInput) Validate() error {
18349	invalidParams := request.ErrInvalidParams{Context: "StopStackSetOperationInput"}
18350	if s.OperationId == nil {
18351		invalidParams.Add(request.NewErrParamRequired("OperationId"))
18352	}
18353	if s.OperationId != nil && len(*s.OperationId) < 1 {
18354		invalidParams.Add(request.NewErrParamMinLen("OperationId", 1))
18355	}
18356	if s.StackSetName == nil {
18357		invalidParams.Add(request.NewErrParamRequired("StackSetName"))
18358	}
18359
18360	if invalidParams.Len() > 0 {
18361		return invalidParams
18362	}
18363	return nil
18364}
18365
18366// SetCallAs sets the CallAs field's value.
18367func (s *StopStackSetOperationInput) SetCallAs(v string) *StopStackSetOperationInput {
18368	s.CallAs = &v
18369	return s
18370}
18371
18372// SetOperationId sets the OperationId field's value.
18373func (s *StopStackSetOperationInput) SetOperationId(v string) *StopStackSetOperationInput {
18374	s.OperationId = &v
18375	return s
18376}
18377
18378// SetStackSetName sets the StackSetName field's value.
18379func (s *StopStackSetOperationInput) SetStackSetName(v string) *StopStackSetOperationInput {
18380	s.StackSetName = &v
18381	return s
18382}
18383
18384type StopStackSetOperationOutput struct {
18385	_ struct{} `type:"structure"`
18386}
18387
18388// String returns the string representation
18389func (s StopStackSetOperationOutput) String() string {
18390	return awsutil.Prettify(s)
18391}
18392
18393// GoString returns the string representation
18394func (s StopStackSetOperationOutput) GoString() string {
18395	return s.String()
18396}
18397
18398// The Tag type enables you to specify a key-value pair that can be used to
18399// store information about an CloudFormation stack.
18400type Tag struct {
18401	_ struct{} `type:"structure"`
18402
18403	// Required. A string used to identify this tag. You can specify a maximum of
18404	// 128 characters for a tag key. Tags owned by Amazon Web Services (Amazon Web
18405	// Services) have the reserved prefix: aws:.
18406	//
18407	// Key is a required field
18408	Key *string `min:"1" type:"string" required:"true"`
18409
18410	// Required. A string containing the value for this tag. You can specify a maximum
18411	// of 256 characters for a tag value.
18412	//
18413	// Value is a required field
18414	Value *string `min:"1" type:"string" required:"true"`
18415}
18416
18417// String returns the string representation
18418func (s Tag) String() string {
18419	return awsutil.Prettify(s)
18420}
18421
18422// GoString returns the string representation
18423func (s Tag) GoString() string {
18424	return s.String()
18425}
18426
18427// Validate inspects the fields of the type to determine if they are valid.
18428func (s *Tag) Validate() error {
18429	invalidParams := request.ErrInvalidParams{Context: "Tag"}
18430	if s.Key == nil {
18431		invalidParams.Add(request.NewErrParamRequired("Key"))
18432	}
18433	if s.Key != nil && len(*s.Key) < 1 {
18434		invalidParams.Add(request.NewErrParamMinLen("Key", 1))
18435	}
18436	if s.Value == nil {
18437		invalidParams.Add(request.NewErrParamRequired("Value"))
18438	}
18439	if s.Value != nil && len(*s.Value) < 1 {
18440		invalidParams.Add(request.NewErrParamMinLen("Value", 1))
18441	}
18442
18443	if invalidParams.Len() > 0 {
18444		return invalidParams
18445	}
18446	return nil
18447}
18448
18449// SetKey sets the Key field's value.
18450func (s *Tag) SetKey(v string) *Tag {
18451	s.Key = &v
18452	return s
18453}
18454
18455// SetValue sets the Value field's value.
18456func (s *Tag) SetValue(v string) *Tag {
18457	s.Value = &v
18458	return s
18459}
18460
18461// The TemplateParameter data type.
18462type TemplateParameter struct {
18463	_ struct{} `type:"structure"`
18464
18465	// The default value associated with the parameter.
18466	DefaultValue *string `type:"string"`
18467
18468	// User defined description associated with the parameter.
18469	Description *string `min:"1" type:"string"`
18470
18471	// Flag indicating whether the parameter should be displayed as plain text in
18472	// logs and UIs.
18473	NoEcho *bool `type:"boolean"`
18474
18475	// The name associated with the parameter.
18476	ParameterKey *string `type:"string"`
18477}
18478
18479// String returns the string representation
18480func (s TemplateParameter) String() string {
18481	return awsutil.Prettify(s)
18482}
18483
18484// GoString returns the string representation
18485func (s TemplateParameter) GoString() string {
18486	return s.String()
18487}
18488
18489// SetDefaultValue sets the DefaultValue field's value.
18490func (s *TemplateParameter) SetDefaultValue(v string) *TemplateParameter {
18491	s.DefaultValue = &v
18492	return s
18493}
18494
18495// SetDescription sets the Description field's value.
18496func (s *TemplateParameter) SetDescription(v string) *TemplateParameter {
18497	s.Description = &v
18498	return s
18499}
18500
18501// SetNoEcho sets the NoEcho field's value.
18502func (s *TemplateParameter) SetNoEcho(v bool) *TemplateParameter {
18503	s.NoEcho = &v
18504	return s
18505}
18506
18507// SetParameterKey sets the ParameterKey field's value.
18508func (s *TemplateParameter) SetParameterKey(v string) *TemplateParameter {
18509	s.ParameterKey = &v
18510	return s
18511}
18512
18513type TestTypeInput struct {
18514	_ struct{} `type:"structure"`
18515
18516	// The Amazon Resource Number (ARN) of the extension.
18517	//
18518	// Conditional: You must specify Arn, or TypeName and Type.
18519	Arn *string `type:"string"`
18520
18521	// The S3 bucket to which CloudFormation delivers the contract test execution
18522	// logs.
18523	//
18524	// CloudFormation delivers the logs by the time contract testing has completed
18525	// and the extension has been assigned a test type status of PASSED or FAILED.
18526	//
18527	// The user calling TestType must be able to access items in the specified S3
18528	// bucket. Specifically, the user needs the following permissions:
18529	//
18530	//    * GetObject
18531	//
18532	//    * PutObject
18533	//
18534	// For more information, see Actions, Resources, and Condition Keys for Amazon
18535	// S3 (https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazons3.html)
18536	// in the Amazon Web Services Identity and Access Management User Guide.
18537	LogDeliveryBucket *string `min:"3" type:"string"`
18538
18539	// The type of the extension to test.
18540	//
18541	// Conditional: You must specify Arn, or TypeName and Type.
18542	Type *string `type:"string" enum:"ThirdPartyType"`
18543
18544	// The name of the extension to test.
18545	//
18546	// Conditional: You must specify Arn, or TypeName and Type.
18547	TypeName *string `min:"10" type:"string"`
18548
18549	// The version of the extension to test.
18550	//
18551	// You can specify the version id with either Arn, or with TypeName and Type.
18552	//
18553	// If you do not specify a version, CloudFormation uses the default version
18554	// of the extension in this account and region for testing.
18555	VersionId *string `min:"1" type:"string"`
18556}
18557
18558// String returns the string representation
18559func (s TestTypeInput) String() string {
18560	return awsutil.Prettify(s)
18561}
18562
18563// GoString returns the string representation
18564func (s TestTypeInput) GoString() string {
18565	return s.String()
18566}
18567
18568// Validate inspects the fields of the type to determine if they are valid.
18569func (s *TestTypeInput) Validate() error {
18570	invalidParams := request.ErrInvalidParams{Context: "TestTypeInput"}
18571	if s.LogDeliveryBucket != nil && len(*s.LogDeliveryBucket) < 3 {
18572		invalidParams.Add(request.NewErrParamMinLen("LogDeliveryBucket", 3))
18573	}
18574	if s.TypeName != nil && len(*s.TypeName) < 10 {
18575		invalidParams.Add(request.NewErrParamMinLen("TypeName", 10))
18576	}
18577	if s.VersionId != nil && len(*s.VersionId) < 1 {
18578		invalidParams.Add(request.NewErrParamMinLen("VersionId", 1))
18579	}
18580
18581	if invalidParams.Len() > 0 {
18582		return invalidParams
18583	}
18584	return nil
18585}
18586
18587// SetArn sets the Arn field's value.
18588func (s *TestTypeInput) SetArn(v string) *TestTypeInput {
18589	s.Arn = &v
18590	return s
18591}
18592
18593// SetLogDeliveryBucket sets the LogDeliveryBucket field's value.
18594func (s *TestTypeInput) SetLogDeliveryBucket(v string) *TestTypeInput {
18595	s.LogDeliveryBucket = &v
18596	return s
18597}
18598
18599// SetType sets the Type field's value.
18600func (s *TestTypeInput) SetType(v string) *TestTypeInput {
18601	s.Type = &v
18602	return s
18603}
18604
18605// SetTypeName sets the TypeName field's value.
18606func (s *TestTypeInput) SetTypeName(v string) *TestTypeInput {
18607	s.TypeName = &v
18608	return s
18609}
18610
18611// SetVersionId sets the VersionId field's value.
18612func (s *TestTypeInput) SetVersionId(v string) *TestTypeInput {
18613	s.VersionId = &v
18614	return s
18615}
18616
18617type TestTypeOutput struct {
18618	_ struct{} `type:"structure"`
18619
18620	// The Amazon Resource Number (ARN) of the extension.
18621	TypeVersionArn *string `type:"string"`
18622}
18623
18624// String returns the string representation
18625func (s TestTypeOutput) String() string {
18626	return awsutil.Prettify(s)
18627}
18628
18629// GoString returns the string representation
18630func (s TestTypeOutput) GoString() string {
18631	return s.String()
18632}
18633
18634// SetTypeVersionArn sets the TypeVersionArn field's value.
18635func (s *TestTypeOutput) SetTypeVersionArn(v string) *TestTypeOutput {
18636	s.TypeVersionArn = &v
18637	return s
18638}
18639
18640// Detailed information concerning the specification of a CloudFormation extension
18641// in a given account and region.
18642//
18643// For more information, see Configuring extensions at the account level (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/registry-register.html#registry-set-configuration)
18644// in the CloudFormation User Guide.
18645type TypeConfigurationDetails struct {
18646	_ struct{} `type:"structure"`
18647
18648	// The alias specified for this configuration, if one was specified when the
18649	// configuration was set.
18650	Alias *string `min:"1" type:"string"`
18651
18652	// The Amazon Resource Name (ARN) for the configuration data, in this account
18653	// and region.
18654	Arn *string `type:"string"`
18655
18656	// A JSON string specifying the configuration data for the extension, in this
18657	// account and region.
18658	//
18659	// If a configuration has not been set for a specified extension, CloudFormation
18660	// returns {}.
18661	Configuration *string `min:"1" type:"string"`
18662
18663	// Whether or not this configuration data is the default configuration for the
18664	// extension.
18665	IsDefaultConfiguration *bool `type:"boolean"`
18666
18667	// When the configuration data was last updated for this extension.
18668	//
18669	// If a configuration has not been set for a specified extension, CloudFormation
18670	// returns null.
18671	LastUpdated *time.Time `type:"timestamp"`
18672
18673	// The Amazon Resource Name (ARN) for the extension, in this account and region.
18674	//
18675	// For public extensions, this will be the ARN assigned when you activate the
18676	// type (https://docs.aws.amazon.com/AWSCloudFormation/latest/APIReference/API_ActivateType.html)
18677	// in this account and region. For private extensions, this will be the ARN
18678	// assigned when you register the type (https://docs.aws.amazon.com/AWSCloudFormation/latest/APIReference/API_RegisterType.html)
18679	// in this account and region.
18680	TypeArn *string `type:"string"`
18681
18682	// The name of the extension.
18683	TypeName *string `min:"10" type:"string"`
18684}
18685
18686// String returns the string representation
18687func (s TypeConfigurationDetails) String() string {
18688	return awsutil.Prettify(s)
18689}
18690
18691// GoString returns the string representation
18692func (s TypeConfigurationDetails) GoString() string {
18693	return s.String()
18694}
18695
18696// SetAlias sets the Alias field's value.
18697func (s *TypeConfigurationDetails) SetAlias(v string) *TypeConfigurationDetails {
18698	s.Alias = &v
18699	return s
18700}
18701
18702// SetArn sets the Arn field's value.
18703func (s *TypeConfigurationDetails) SetArn(v string) *TypeConfigurationDetails {
18704	s.Arn = &v
18705	return s
18706}
18707
18708// SetConfiguration sets the Configuration field's value.
18709func (s *TypeConfigurationDetails) SetConfiguration(v string) *TypeConfigurationDetails {
18710	s.Configuration = &v
18711	return s
18712}
18713
18714// SetIsDefaultConfiguration sets the IsDefaultConfiguration field's value.
18715func (s *TypeConfigurationDetails) SetIsDefaultConfiguration(v bool) *TypeConfigurationDetails {
18716	s.IsDefaultConfiguration = &v
18717	return s
18718}
18719
18720// SetLastUpdated sets the LastUpdated field's value.
18721func (s *TypeConfigurationDetails) SetLastUpdated(v time.Time) *TypeConfigurationDetails {
18722	s.LastUpdated = &v
18723	return s
18724}
18725
18726// SetTypeArn sets the TypeArn field's value.
18727func (s *TypeConfigurationDetails) SetTypeArn(v string) *TypeConfigurationDetails {
18728	s.TypeArn = &v
18729	return s
18730}
18731
18732// SetTypeName sets the TypeName field's value.
18733func (s *TypeConfigurationDetails) SetTypeName(v string) *TypeConfigurationDetails {
18734	s.TypeName = &v
18735	return s
18736}
18737
18738// Identifying information for the configuration of a CloudFormation extension.
18739type TypeConfigurationIdentifier struct {
18740	_ struct{} `type:"structure"`
18741
18742	// The type of extension.
18743	Type *string `type:"string" enum:"ThirdPartyType"`
18744
18745	// The Amazon Resource Name (ARN) for the extension, in this account and region.
18746	//
18747	// For public extensions, this will be the ARN assigned when you activate the
18748	// type (https://docs.aws.amazon.com/AWSCloudFormation/latest/APIReference/API_ActivateType.html)
18749	// in this account and region. For private extensions, this will be the ARN
18750	// assigned when you register the type (https://docs.aws.amazon.com/AWSCloudFormation/latest/APIReference/API_RegisterType.html)
18751	// in this account and region.
18752	TypeArn *string `type:"string"`
18753
18754	// The alias specified for this configuration, if one was specified when the
18755	// configuration was set.
18756	TypeConfigurationAlias *string `min:"1" type:"string"`
18757
18758	// The Amazon Resource Name (ARN) for the configuration, in this account and
18759	// region.
18760	TypeConfigurationArn *string `type:"string"`
18761
18762	// The name of the extension type to which this configuration applies.
18763	TypeName *string `min:"10" type:"string"`
18764}
18765
18766// String returns the string representation
18767func (s TypeConfigurationIdentifier) String() string {
18768	return awsutil.Prettify(s)
18769}
18770
18771// GoString returns the string representation
18772func (s TypeConfigurationIdentifier) GoString() string {
18773	return s.String()
18774}
18775
18776// Validate inspects the fields of the type to determine if they are valid.
18777func (s *TypeConfigurationIdentifier) Validate() error {
18778	invalidParams := request.ErrInvalidParams{Context: "TypeConfigurationIdentifier"}
18779	if s.TypeConfigurationAlias != nil && len(*s.TypeConfigurationAlias) < 1 {
18780		invalidParams.Add(request.NewErrParamMinLen("TypeConfigurationAlias", 1))
18781	}
18782	if s.TypeName != nil && len(*s.TypeName) < 10 {
18783		invalidParams.Add(request.NewErrParamMinLen("TypeName", 10))
18784	}
18785
18786	if invalidParams.Len() > 0 {
18787		return invalidParams
18788	}
18789	return nil
18790}
18791
18792// SetType sets the Type field's value.
18793func (s *TypeConfigurationIdentifier) SetType(v string) *TypeConfigurationIdentifier {
18794	s.Type = &v
18795	return s
18796}
18797
18798// SetTypeArn sets the TypeArn field's value.
18799func (s *TypeConfigurationIdentifier) SetTypeArn(v string) *TypeConfigurationIdentifier {
18800	s.TypeArn = &v
18801	return s
18802}
18803
18804// SetTypeConfigurationAlias sets the TypeConfigurationAlias field's value.
18805func (s *TypeConfigurationIdentifier) SetTypeConfigurationAlias(v string) *TypeConfigurationIdentifier {
18806	s.TypeConfigurationAlias = &v
18807	return s
18808}
18809
18810// SetTypeConfigurationArn sets the TypeConfigurationArn field's value.
18811func (s *TypeConfigurationIdentifier) SetTypeConfigurationArn(v string) *TypeConfigurationIdentifier {
18812	s.TypeConfigurationArn = &v
18813	return s
18814}
18815
18816// SetTypeName sets the TypeName field's value.
18817func (s *TypeConfigurationIdentifier) SetTypeName(v string) *TypeConfigurationIdentifier {
18818	s.TypeName = &v
18819	return s
18820}
18821
18822// Filter criteria to use in determining which extensions to return.
18823type TypeFilters struct {
18824	_ struct{} `type:"structure"`
18825
18826	// The category of extensions to return.
18827	//
18828	//    * REGISTERED: Private extensions that have been registered for this account
18829	//    and region.
18830	//
18831	//    * ACTIVATED: Public extensions that have been activated for this account
18832	//    and region.
18833	//
18834	//    * THIRD-PARTY: Extensions available for use from publishers other than
18835	//    Amazon. This includes: Private extensions registered in the account. Public
18836	//    extensions from publishers other than Amazon, whether activated or not.
18837	//
18838	//    * AWS-TYPES: Extensions available for use from Amazon.
18839	Category *string `type:"string" enum:"Category"`
18840
18841	// The id of the publisher of the extension.
18842	//
18843	// Extensions published by Amazon are not assigned a publisher ID. Use the AWS-TYPES
18844	// category to specify a list of types published by Amazon.
18845	PublisherId *string `min:"1" type:"string"`
18846
18847	// A prefix to use as a filter for results.
18848	TypeNamePrefix *string `min:"1" type:"string"`
18849}
18850
18851// String returns the string representation
18852func (s TypeFilters) String() string {
18853	return awsutil.Prettify(s)
18854}
18855
18856// GoString returns the string representation
18857func (s TypeFilters) GoString() string {
18858	return s.String()
18859}
18860
18861// Validate inspects the fields of the type to determine if they are valid.
18862func (s *TypeFilters) Validate() error {
18863	invalidParams := request.ErrInvalidParams{Context: "TypeFilters"}
18864	if s.PublisherId != nil && len(*s.PublisherId) < 1 {
18865		invalidParams.Add(request.NewErrParamMinLen("PublisherId", 1))
18866	}
18867	if s.TypeNamePrefix != nil && len(*s.TypeNamePrefix) < 1 {
18868		invalidParams.Add(request.NewErrParamMinLen("TypeNamePrefix", 1))
18869	}
18870
18871	if invalidParams.Len() > 0 {
18872		return invalidParams
18873	}
18874	return nil
18875}
18876
18877// SetCategory sets the Category field's value.
18878func (s *TypeFilters) SetCategory(v string) *TypeFilters {
18879	s.Category = &v
18880	return s
18881}
18882
18883// SetPublisherId sets the PublisherId field's value.
18884func (s *TypeFilters) SetPublisherId(v string) *TypeFilters {
18885	s.PublisherId = &v
18886	return s
18887}
18888
18889// SetTypeNamePrefix sets the TypeNamePrefix field's value.
18890func (s *TypeFilters) SetTypeNamePrefix(v string) *TypeFilters {
18891	s.TypeNamePrefix = &v
18892	return s
18893}
18894
18895// Contains summary information about the specified CloudFormation extension.
18896type TypeSummary struct {
18897	_ struct{} `type:"structure"`
18898
18899	// The ID of the default version of the extension. The default version is used
18900	// when the extension version is not specified.
18901	//
18902	// This applies only to private extensions you have registered in your account.
18903	// For public extensions, both those provided by Amazon and published by third
18904	// parties, CloudFormation returns null. For more information, see RegisterType
18905	// (https://docs.aws.amazon.com/AWSCloudFormation/latest/APIReference/API_RegisterType.html).
18906	//
18907	// To set the default version of an extension, use SetTypeDefaultVersion .
18908	DefaultVersionId *string `min:"1" type:"string"`
18909
18910	// The description of the extension.
18911	Description *string `min:"1" type:"string"`
18912
18913	// Whether or not the extension is activated for this account and region.
18914	//
18915	// This applies only to third-party public extensions. Extensions published
18916	// by Amazon are activated by default.
18917	IsActivated *bool `type:"boolean"`
18918
18919	// When the specified extension version was registered. This applies only to:
18920	//
18921	//    * Private extensions you have registered in your account. For more information,
18922	//    see RegisterType (https://docs.aws.amazon.com/AWSCloudFormation/latest/APIReference/API_RegisterType.html).
18923	//
18924	//    * Public extensions you have activated in your account with auto-update
18925	//    specified. For more information, see ActivateType (https://docs.aws.amazon.com/AWSCloudFormation/latest/APIReference/API_ActivateType.html).
18926	//
18927	// For all other extension types, CloudFormation returns null.
18928	LastUpdated *time.Time `type:"timestamp"`
18929
18930	// For public extensions that have been activated for this account and region,
18931	// the latest version of the public extension that is available. For any extensions
18932	// other than activated third-arty extensions, CloudFormation returns null.
18933	//
18934	// How you specified AutoUpdate when enabling the extension affects whether
18935	// CloudFormation automatically updates the extention in this account and region
18936	// when a new version is released. For more information, see Setting CloudFormation
18937	// to automatically use new versions of extensions (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/registry-public.html#registry-public-enable-auto)
18938	// in the CloudFormation User Guide.
18939	LatestPublicVersion *string `min:"5" type:"string"`
18940
18941	// For public extensions that have been activated for this account and region,
18942	// the type name of the public extension.
18943	//
18944	// If you specified a TypeNameAlias when enabling the extension in this account
18945	// and region, CloudFormation treats that alias as the extension's type name
18946	// within the account and region, not the type name of the public extension.
18947	// For more information, see Specifying aliases to refer to extensions (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/registry-public.html#registry-public-enable-alias)
18948	// in the CloudFormation User Guide.
18949	OriginalTypeName *string `min:"10" type:"string"`
18950
18951	// For public extensions that have been activated for this account and region,
18952	// the version of the public extension to be used for CloudFormation operations
18953	// in this account and region.
18954	//
18955	// How you specified AutoUpdate when enabling the extension affects whether
18956	// CloudFormation automatically updates the extention in this account and region
18957	// when a new version is released. For more information, see Setting CloudFormation
18958	// to automatically use new versions of extensions (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/registry-public.html#registry-public-enable-auto)
18959	// in the CloudFormation User Guide.
18960	PublicVersionNumber *string `min:"5" type:"string"`
18961
18962	// The ID of the extension publisher, if the extension is published by a third
18963	// party. Extensions published by Amazon do not return a publisher ID.
18964	PublisherId *string `min:"1" type:"string"`
18965
18966	// The service used to verify the publisher identity.
18967	//
18968	// For more information, see Registering your account to publish CloudFormation
18969	// extensions (https://docs.aws.amazon.com/cloudformation-cli/latest/userguide/publish-extension.html)
18970	// in the CFN-CLI User Guide for Extension Development.
18971	PublisherIdentity *string `type:"string" enum:"IdentityProvider"`
18972
18973	// The publisher name, as defined in the public profile for that publisher in
18974	// the service used to verify the publisher identity.
18975	PublisherName *string `min:"1" type:"string"`
18976
18977	// The kind of extension.
18978	Type *string `type:"string" enum:"RegistryType"`
18979
18980	// The Amazon Resource Name (ARN) of the extension.
18981	TypeArn *string `type:"string"`
18982
18983	// The name of the extension.
18984	//
18985	// If you specified a TypeNameAlias when you activate this extension (https://docs.aws.amazon.com/AWSCloudFormation/latest/APIReference/API_ActivateType.html)
18986	// in your account and region, CloudFormation considers that alias as the type
18987	// name.
18988	TypeName *string `min:"10" type:"string"`
18989}
18990
18991// String returns the string representation
18992func (s TypeSummary) String() string {
18993	return awsutil.Prettify(s)
18994}
18995
18996// GoString returns the string representation
18997func (s TypeSummary) GoString() string {
18998	return s.String()
18999}
19000
19001// SetDefaultVersionId sets the DefaultVersionId field's value.
19002func (s *TypeSummary) SetDefaultVersionId(v string) *TypeSummary {
19003	s.DefaultVersionId = &v
19004	return s
19005}
19006
19007// SetDescription sets the Description field's value.
19008func (s *TypeSummary) SetDescription(v string) *TypeSummary {
19009	s.Description = &v
19010	return s
19011}
19012
19013// SetIsActivated sets the IsActivated field's value.
19014func (s *TypeSummary) SetIsActivated(v bool) *TypeSummary {
19015	s.IsActivated = &v
19016	return s
19017}
19018
19019// SetLastUpdated sets the LastUpdated field's value.
19020func (s *TypeSummary) SetLastUpdated(v time.Time) *TypeSummary {
19021	s.LastUpdated = &v
19022	return s
19023}
19024
19025// SetLatestPublicVersion sets the LatestPublicVersion field's value.
19026func (s *TypeSummary) SetLatestPublicVersion(v string) *TypeSummary {
19027	s.LatestPublicVersion = &v
19028	return s
19029}
19030
19031// SetOriginalTypeName sets the OriginalTypeName field's value.
19032func (s *TypeSummary) SetOriginalTypeName(v string) *TypeSummary {
19033	s.OriginalTypeName = &v
19034	return s
19035}
19036
19037// SetPublicVersionNumber sets the PublicVersionNumber field's value.
19038func (s *TypeSummary) SetPublicVersionNumber(v string) *TypeSummary {
19039	s.PublicVersionNumber = &v
19040	return s
19041}
19042
19043// SetPublisherId sets the PublisherId field's value.
19044func (s *TypeSummary) SetPublisherId(v string) *TypeSummary {
19045	s.PublisherId = &v
19046	return s
19047}
19048
19049// SetPublisherIdentity sets the PublisherIdentity field's value.
19050func (s *TypeSummary) SetPublisherIdentity(v string) *TypeSummary {
19051	s.PublisherIdentity = &v
19052	return s
19053}
19054
19055// SetPublisherName sets the PublisherName field's value.
19056func (s *TypeSummary) SetPublisherName(v string) *TypeSummary {
19057	s.PublisherName = &v
19058	return s
19059}
19060
19061// SetType sets the Type field's value.
19062func (s *TypeSummary) SetType(v string) *TypeSummary {
19063	s.Type = &v
19064	return s
19065}
19066
19067// SetTypeArn sets the TypeArn field's value.
19068func (s *TypeSummary) SetTypeArn(v string) *TypeSummary {
19069	s.TypeArn = &v
19070	return s
19071}
19072
19073// SetTypeName sets the TypeName field's value.
19074func (s *TypeSummary) SetTypeName(v string) *TypeSummary {
19075	s.TypeName = &v
19076	return s
19077}
19078
19079// Contains summary information about a specific version of a CloudFormation
19080// extension.
19081type TypeVersionSummary struct {
19082	_ struct{} `type:"structure"`
19083
19084	// The Amazon Resource Name (ARN) of the extension version.
19085	Arn *string `type:"string"`
19086
19087	// The description of the extension version.
19088	Description *string `min:"1" type:"string"`
19089
19090	// Whether the specified extension version is set as the default version.
19091	//
19092	// This applies only to private extensions you have registered in your account,
19093	// and extensions published by Amazon. For public third-party extensions, whether
19094	// or not they are activated in your account, CloudFormation returns null.
19095	IsDefaultVersion *bool `type:"boolean"`
19096
19097	// For public extensions that have been activated for this account and region,
19098	// the version of the public extension to be used for CloudFormation operations
19099	// in this account and region. For any extensions other than activated third-arty
19100	// extensions, CloudFormation returns null.
19101	//
19102	// How you specified AutoUpdate when enabling the extension affects whether
19103	// CloudFormation automatically updates the extention in this account and region
19104	// when a new version is released. For more information, see Setting CloudFormation
19105	// to automatically use new versions of extensions (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/registry-public.html#registry-public-enable-auto)
19106	// in the CloudFormation User Guide.
19107	PublicVersionNumber *string `min:"5" type:"string"`
19108
19109	// When the version was registered.
19110	TimeCreated *time.Time `type:"timestamp"`
19111
19112	// The kind of extension.
19113	Type *string `type:"string" enum:"RegistryType"`
19114
19115	// The name of the extension.
19116	TypeName *string `min:"10" type:"string"`
19117
19118	// The ID of a specific version of the extension. The version ID is the value
19119	// at the end of the Amazon Resource Name (ARN) assigned to the extension version
19120	// when it is registered.
19121	VersionId *string `min:"1" type:"string"`
19122}
19123
19124// String returns the string representation
19125func (s TypeVersionSummary) String() string {
19126	return awsutil.Prettify(s)
19127}
19128
19129// GoString returns the string representation
19130func (s TypeVersionSummary) GoString() string {
19131	return s.String()
19132}
19133
19134// SetArn sets the Arn field's value.
19135func (s *TypeVersionSummary) SetArn(v string) *TypeVersionSummary {
19136	s.Arn = &v
19137	return s
19138}
19139
19140// SetDescription sets the Description field's value.
19141func (s *TypeVersionSummary) SetDescription(v string) *TypeVersionSummary {
19142	s.Description = &v
19143	return s
19144}
19145
19146// SetIsDefaultVersion sets the IsDefaultVersion field's value.
19147func (s *TypeVersionSummary) SetIsDefaultVersion(v bool) *TypeVersionSummary {
19148	s.IsDefaultVersion = &v
19149	return s
19150}
19151
19152// SetPublicVersionNumber sets the PublicVersionNumber field's value.
19153func (s *TypeVersionSummary) SetPublicVersionNumber(v string) *TypeVersionSummary {
19154	s.PublicVersionNumber = &v
19155	return s
19156}
19157
19158// SetTimeCreated sets the TimeCreated field's value.
19159func (s *TypeVersionSummary) SetTimeCreated(v time.Time) *TypeVersionSummary {
19160	s.TimeCreated = &v
19161	return s
19162}
19163
19164// SetType sets the Type field's value.
19165func (s *TypeVersionSummary) SetType(v string) *TypeVersionSummary {
19166	s.Type = &v
19167	return s
19168}
19169
19170// SetTypeName sets the TypeName field's value.
19171func (s *TypeVersionSummary) SetTypeName(v string) *TypeVersionSummary {
19172	s.TypeName = &v
19173	return s
19174}
19175
19176// SetVersionId sets the VersionId field's value.
19177func (s *TypeVersionSummary) SetVersionId(v string) *TypeVersionSummary {
19178	s.VersionId = &v
19179	return s
19180}
19181
19182// The input for an UpdateStack action.
19183type UpdateStackInput struct {
19184	_ struct{} `type:"structure"`
19185
19186	// In some cases, you must explicitly acknowledge that your stack template contains
19187	// certain capabilities in order for CloudFormation to update the stack.
19188	//
19189	//    * CAPABILITY_IAM and CAPABILITY_NAMED_IAM Some stack templates might include
19190	//    resources that can affect permissions in your account; for example, by
19191	//    creating new Identity and Access Management (IAM) users. For those stacks,
19192	//    you must explicitly acknowledge this by specifying one of these capabilities.
19193	//    The following IAM resources require you to specify either the CAPABILITY_IAM
19194	//    or CAPABILITY_NAMED_IAM capability. If you have IAM resources, you can
19195	//    specify either capability. If you have IAM resources with custom names,
19196	//    you must specify CAPABILITY_NAMED_IAM. If you don't specify either of
19197	//    these capabilities, CloudFormation returns an InsufficientCapabilities
19198	//    error. If your stack template contains these resources, we recommend that
19199	//    you review all permissions associated with them and edit their permissions
19200	//    if necessary. AWS::IAM::AccessKey (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iam-accesskey.html)
19201	//    AWS::IAM::Group (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iam-group.html)
19202	//    AWS::IAM::InstanceProfile (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iam-instanceprofile.html)
19203	//    AWS::IAM::Policy (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iam-policy.html)
19204	//    AWS::IAM::Role (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iam-role.html)
19205	//    AWS::IAM::User (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iam-user.html)
19206	//    AWS::IAM::UserToGroupAddition (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iam-addusertogroup.html)
19207	//    For more information, see Acknowledging IAM Resources in CloudFormation
19208	//    Templates (http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-iam-template.html#capabilities).
19209	//
19210	//    * CAPABILITY_AUTO_EXPAND Some template contain macros. Macros perform
19211	//    custom processing on templates; this can include simple actions like find-and-replace
19212	//    operations, all the way to extensive transformations of entire templates.
19213	//    Because of this, users typically create a change set from the processed
19214	//    template, so that they can review the changes resulting from the macros
19215	//    before actually updating the stack. If your stack template contains one
19216	//    or more macros, and you choose to update a stack directly from the processed
19217	//    template, without first reviewing the resulting changes in a change set,
19218	//    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)
19219	//    and AWS::Serverless (http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/transform-aws-serverless.html)
19220	//    transforms, which are macros hosted by CloudFormation. If you want to
19221	//    update a stack from a stack template that contains macros and nested stacks,
19222	//    you must update the stack directly from the template using this capability.
19223	//    You should only update stacks directly from a stack template that contains
19224	//    macros if you know what processing the macro performs. Each macro relies
19225	//    on an underlying Lambda service function for processing stack templates.
19226	//    Be aware that the Lambda function owner can update the function operation
19227	//    without CloudFormation being notified. For more information, see Using
19228	//    CloudFormation Macros to Perform Custom Processing on Templates (http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/template-macros.html).
19229	Capabilities []*string `type:"list"`
19230
19231	// A unique identifier for this UpdateStack request. Specify this token if you
19232	// plan to retry requests so that CloudFormation knows that you're not attempting
19233	// to update a stack with the same name. You might retry UpdateStack requests
19234	// to ensure that CloudFormation successfully received them.
19235	//
19236	// All events triggered by a given stack operation are assigned the same client
19237	// request token, which you can use to track operations. For example, if you
19238	// execute a CreateStack operation with the token token1, then all the StackEvents
19239	// generated by that operation will have ClientRequestToken set as token1.
19240	//
19241	// In the console, stack operations display the client request token on the
19242	// Events tab. Stack operations that are initiated from the console use the
19243	// token format Console-StackOperation-ID, which helps you easily identify the
19244	// stack operation . For example, if you create a stack using the console, each
19245	// stack event would be assigned the same token in the following format: Console-CreateStack-7f59c3cf-00d2-40c7-b2ff-e75db0987002.
19246	ClientRequestToken *string `min:"1" type:"string"`
19247
19248	// Amazon Simple Notification Service topic Amazon Resource Names (ARNs) that
19249	// CloudFormation associates with the stack. Specify an empty list to remove
19250	// all notification topics.
19251	NotificationARNs []*string `type:"list"`
19252
19253	// A list of Parameter structures that specify input parameters for the stack.
19254	// For more information, see the Parameter (https://docs.aws.amazon.com/AWSCloudFormation/latest/APIReference/API_Parameter.html)
19255	// data type.
19256	Parameters []*Parameter `type:"list"`
19257
19258	// The template resource types that you have permissions to work with for this
19259	// update stack action, such as AWS::EC2::Instance, AWS::EC2::*, or Custom::MyCustomInstance.
19260	//
19261	// If the list of resource types doesn't include a resource that you're updating,
19262	// the stack update fails. By default, CloudFormation grants permissions to
19263	// all resource types. Identity and Access Management (IAM) uses this parameter
19264	// for CloudFormation-specific condition keys in IAM policies. For more information,
19265	// see Controlling Access with Identity and Access Management (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-iam-template.html).
19266	ResourceTypes []*string `type:"list"`
19267
19268	// The Amazon Resource Name (ARN) of an Identity and Access Management (IAM)
19269	// role that CloudFormation assumes to update the stack. CloudFormation uses
19270	// the role's credentials to make calls on your behalf. CloudFormation always
19271	// uses this role for all future operations on the stack. As long as users have
19272	// permission to operate on the stack, CloudFormation uses this role even if
19273	// the users don't have permission to pass it. Ensure that the role grants least
19274	// privilege.
19275	//
19276	// If you don't specify a value, CloudFormation uses the role that was previously
19277	// associated with the stack. If no role is available, CloudFormation uses a
19278	// temporary session that is generated from your user credentials.
19279	RoleARN *string `min:"20" type:"string"`
19280
19281	// The rollback triggers for CloudFormation to monitor during stack creation
19282	// and updating operations, and for the specified monitoring period afterwards.
19283	RollbackConfiguration *RollbackConfiguration `type:"structure"`
19284
19285	// The name or unique stack ID of the stack to update.
19286	//
19287	// StackName is a required field
19288	StackName *string `type:"string" required:"true"`
19289
19290	// Structure containing a new stack policy body. You can specify either the
19291	// StackPolicyBody or the StackPolicyURL parameter, but not both.
19292	//
19293	// You might update the stack policy, for example, in order to protect a new
19294	// resource that you created during a stack update. If you do not specify a
19295	// stack policy, the current policy that is associated with the stack is unchanged.
19296	StackPolicyBody *string `min:"1" type:"string"`
19297
19298	// Structure containing the temporary overriding stack policy body. You can
19299	// specify either the StackPolicyDuringUpdateBody or the StackPolicyDuringUpdateURL
19300	// parameter, but not both.
19301	//
19302	// If you want to update protected resources, specify a temporary overriding
19303	// stack policy during this update. If you do not specify a stack policy, the
19304	// current policy that is associated with the stack will be used.
19305	StackPolicyDuringUpdateBody *string `min:"1" type:"string"`
19306
19307	// Location of a file containing the temporary overriding stack policy. The
19308	// URL must point to a policy (max size: 16KB) located in an S3 bucket in the
19309	// same Region as the stack. You can specify either the StackPolicyDuringUpdateBody
19310	// or the StackPolicyDuringUpdateURL parameter, but not both.
19311	//
19312	// If you want to update protected resources, specify a temporary overriding
19313	// stack policy during this update. If you do not specify a stack policy, the
19314	// current policy that is associated with the stack will be used.
19315	StackPolicyDuringUpdateURL *string `min:"1" type:"string"`
19316
19317	// Location of a file containing the updated stack policy. The URL must point
19318	// to a policy (max size: 16KB) located in an S3 bucket in the same Region as
19319	// the stack. You can specify either the StackPolicyBody or the StackPolicyURL
19320	// parameter, but not both.
19321	//
19322	// You might update the stack policy, for example, in order to protect a new
19323	// resource that you created during a stack update. If you do not specify a
19324	// stack policy, the current policy that is associated with the stack is unchanged.
19325	StackPolicyURL *string `min:"1" type:"string"`
19326
19327	// Key-value pairs to associate with this stack. CloudFormation also propagates
19328	// these tags to supported resources in the stack. You can specify a maximum
19329	// number of 50 tags.
19330	//
19331	// If you don't specify this parameter, CloudFormation doesn't modify the stack's
19332	// tags. If you specify an empty value, CloudFormation removes all associated
19333	// tags.
19334	Tags []*Tag `type:"list"`
19335
19336	// Structure containing the template body with a minimum length of 1 byte and
19337	// a maximum length of 51,200 bytes. (For more information, go to Template Anatomy
19338	// (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/template-anatomy.html)
19339	// in the CloudFormation User Guide.)
19340	//
19341	// Conditional: You must specify only one of the following parameters: TemplateBody,
19342	// TemplateURL, or set the UsePreviousTemplate to true.
19343	TemplateBody *string `min:"1" type:"string"`
19344
19345	// Location of file containing the template body. The URL must point to a template
19346	// that is located in an Amazon S3 bucket or a Systems Manager document. For
19347	// more information, go to Template Anatomy (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/template-anatomy.html)
19348	// in the CloudFormation User Guide.
19349	//
19350	// Conditional: You must specify only one of the following parameters: TemplateBody,
19351	// TemplateURL, or set the UsePreviousTemplate to true.
19352	TemplateURL *string `min:"1" type:"string"`
19353
19354	// Reuse the existing template that is associated with the stack that you are
19355	// updating.
19356	//
19357	// Conditional: You must specify only one of the following parameters: TemplateBody,
19358	// TemplateURL, or set the UsePreviousTemplate to true.
19359	UsePreviousTemplate *bool `type:"boolean"`
19360}
19361
19362// String returns the string representation
19363func (s UpdateStackInput) String() string {
19364	return awsutil.Prettify(s)
19365}
19366
19367// GoString returns the string representation
19368func (s UpdateStackInput) GoString() string {
19369	return s.String()
19370}
19371
19372// Validate inspects the fields of the type to determine if they are valid.
19373func (s *UpdateStackInput) Validate() error {
19374	invalidParams := request.ErrInvalidParams{Context: "UpdateStackInput"}
19375	if s.ClientRequestToken != nil && len(*s.ClientRequestToken) < 1 {
19376		invalidParams.Add(request.NewErrParamMinLen("ClientRequestToken", 1))
19377	}
19378	if s.RoleARN != nil && len(*s.RoleARN) < 20 {
19379		invalidParams.Add(request.NewErrParamMinLen("RoleARN", 20))
19380	}
19381	if s.StackName == nil {
19382		invalidParams.Add(request.NewErrParamRequired("StackName"))
19383	}
19384	if s.StackPolicyBody != nil && len(*s.StackPolicyBody) < 1 {
19385		invalidParams.Add(request.NewErrParamMinLen("StackPolicyBody", 1))
19386	}
19387	if s.StackPolicyDuringUpdateBody != nil && len(*s.StackPolicyDuringUpdateBody) < 1 {
19388		invalidParams.Add(request.NewErrParamMinLen("StackPolicyDuringUpdateBody", 1))
19389	}
19390	if s.StackPolicyDuringUpdateURL != nil && len(*s.StackPolicyDuringUpdateURL) < 1 {
19391		invalidParams.Add(request.NewErrParamMinLen("StackPolicyDuringUpdateURL", 1))
19392	}
19393	if s.StackPolicyURL != nil && len(*s.StackPolicyURL) < 1 {
19394		invalidParams.Add(request.NewErrParamMinLen("StackPolicyURL", 1))
19395	}
19396	if s.TemplateBody != nil && len(*s.TemplateBody) < 1 {
19397		invalidParams.Add(request.NewErrParamMinLen("TemplateBody", 1))
19398	}
19399	if s.TemplateURL != nil && len(*s.TemplateURL) < 1 {
19400		invalidParams.Add(request.NewErrParamMinLen("TemplateURL", 1))
19401	}
19402	if s.RollbackConfiguration != nil {
19403		if err := s.RollbackConfiguration.Validate(); err != nil {
19404			invalidParams.AddNested("RollbackConfiguration", err.(request.ErrInvalidParams))
19405		}
19406	}
19407	if s.Tags != nil {
19408		for i, v := range s.Tags {
19409			if v == nil {
19410				continue
19411			}
19412			if err := v.Validate(); err != nil {
19413				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Tags", i), err.(request.ErrInvalidParams))
19414			}
19415		}
19416	}
19417
19418	if invalidParams.Len() > 0 {
19419		return invalidParams
19420	}
19421	return nil
19422}
19423
19424// SetCapabilities sets the Capabilities field's value.
19425func (s *UpdateStackInput) SetCapabilities(v []*string) *UpdateStackInput {
19426	s.Capabilities = v
19427	return s
19428}
19429
19430// SetClientRequestToken sets the ClientRequestToken field's value.
19431func (s *UpdateStackInput) SetClientRequestToken(v string) *UpdateStackInput {
19432	s.ClientRequestToken = &v
19433	return s
19434}
19435
19436// SetNotificationARNs sets the NotificationARNs field's value.
19437func (s *UpdateStackInput) SetNotificationARNs(v []*string) *UpdateStackInput {
19438	s.NotificationARNs = v
19439	return s
19440}
19441
19442// SetParameters sets the Parameters field's value.
19443func (s *UpdateStackInput) SetParameters(v []*Parameter) *UpdateStackInput {
19444	s.Parameters = v
19445	return s
19446}
19447
19448// SetResourceTypes sets the ResourceTypes field's value.
19449func (s *UpdateStackInput) SetResourceTypes(v []*string) *UpdateStackInput {
19450	s.ResourceTypes = v
19451	return s
19452}
19453
19454// SetRoleARN sets the RoleARN field's value.
19455func (s *UpdateStackInput) SetRoleARN(v string) *UpdateStackInput {
19456	s.RoleARN = &v
19457	return s
19458}
19459
19460// SetRollbackConfiguration sets the RollbackConfiguration field's value.
19461func (s *UpdateStackInput) SetRollbackConfiguration(v *RollbackConfiguration) *UpdateStackInput {
19462	s.RollbackConfiguration = v
19463	return s
19464}
19465
19466// SetStackName sets the StackName field's value.
19467func (s *UpdateStackInput) SetStackName(v string) *UpdateStackInput {
19468	s.StackName = &v
19469	return s
19470}
19471
19472// SetStackPolicyBody sets the StackPolicyBody field's value.
19473func (s *UpdateStackInput) SetStackPolicyBody(v string) *UpdateStackInput {
19474	s.StackPolicyBody = &v
19475	return s
19476}
19477
19478// SetStackPolicyDuringUpdateBody sets the StackPolicyDuringUpdateBody field's value.
19479func (s *UpdateStackInput) SetStackPolicyDuringUpdateBody(v string) *UpdateStackInput {
19480	s.StackPolicyDuringUpdateBody = &v
19481	return s
19482}
19483
19484// SetStackPolicyDuringUpdateURL sets the StackPolicyDuringUpdateURL field's value.
19485func (s *UpdateStackInput) SetStackPolicyDuringUpdateURL(v string) *UpdateStackInput {
19486	s.StackPolicyDuringUpdateURL = &v
19487	return s
19488}
19489
19490// SetStackPolicyURL sets the StackPolicyURL field's value.
19491func (s *UpdateStackInput) SetStackPolicyURL(v string) *UpdateStackInput {
19492	s.StackPolicyURL = &v
19493	return s
19494}
19495
19496// SetTags sets the Tags field's value.
19497func (s *UpdateStackInput) SetTags(v []*Tag) *UpdateStackInput {
19498	s.Tags = v
19499	return s
19500}
19501
19502// SetTemplateBody sets the TemplateBody field's value.
19503func (s *UpdateStackInput) SetTemplateBody(v string) *UpdateStackInput {
19504	s.TemplateBody = &v
19505	return s
19506}
19507
19508// SetTemplateURL sets the TemplateURL field's value.
19509func (s *UpdateStackInput) SetTemplateURL(v string) *UpdateStackInput {
19510	s.TemplateURL = &v
19511	return s
19512}
19513
19514// SetUsePreviousTemplate sets the UsePreviousTemplate field's value.
19515func (s *UpdateStackInput) SetUsePreviousTemplate(v bool) *UpdateStackInput {
19516	s.UsePreviousTemplate = &v
19517	return s
19518}
19519
19520type UpdateStackInstancesInput struct {
19521	_ struct{} `type:"structure"`
19522
19523	// [Self-managed permissions] The names of one or more accounts for which you
19524	// want to update parameter values for stack instances. The overridden parameter
19525	// values will be applied to all stack instances in the specified accounts and
19526	// Regions.
19527	//
19528	// You can specify Accounts or DeploymentTargets, but not both.
19529	Accounts []*string `type:"list"`
19530
19531	// [Service-managed permissions] Specifies whether you are acting as an account
19532	// administrator in the organization's management account or as a delegated
19533	// administrator in a member account.
19534	//
19535	// By default, SELF is specified. Use SELF for stack sets with self-managed
19536	// permissions.
19537	//
19538	//    * If you are signed in to the management account, specify SELF.
19539	//
19540	//    * If you are signed in to a delegated administrator account, specify DELEGATED_ADMIN.
19541	//    Your account must be registered as a delegated administrator in the management
19542	//    account. For more information, see Register a delegated administrator
19543	//    (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/stacksets-orgs-delegated-admin.html)
19544	//    in the CloudFormation User Guide.
19545	CallAs *string `type:"string" enum:"CallAs"`
19546
19547	// [Service-managed permissions] The Organizations accounts for which you want
19548	// to update parameter values for stack instances. If your update targets OUs,
19549	// the overridden parameter values only apply to the accounts that are currently
19550	// in the target OUs and their child OUs. Accounts added to the target OUs and
19551	// their child OUs in the future won't use the overridden values.
19552	//
19553	// You can specify Accounts or DeploymentTargets, but not both.
19554	DeploymentTargets *DeploymentTargets `type:"structure"`
19555
19556	// The unique identifier for this stack set operation.
19557	//
19558	// The operation ID also functions as an idempotency token, to ensure that CloudFormation
19559	// performs the stack set operation only once, even if you retry the request
19560	// multiple times. You might retry stack set operation requests to ensure that
19561	// CloudFormation successfully received them.
19562	//
19563	// If you don't specify an operation ID, the SDK generates one automatically.
19564	OperationId *string `min:"1" type:"string" idempotencyToken:"true"`
19565
19566	// Preferences for how CloudFormation performs this stack set operation.
19567	OperationPreferences *StackSetOperationPreferences `type:"structure"`
19568
19569	// A list of input parameters whose values you want to update for the specified
19570	// stack instances.
19571	//
19572	// Any overridden parameter values will be applied to all stack instances in
19573	// the specified accounts and Regions. When specifying parameters and their
19574	// values, be aware of how CloudFormation sets parameter values during stack
19575	// instance update operations:
19576	//
19577	//    * To override the current value for a parameter, include the parameter
19578	//    and specify its value.
19579	//
19580	//    * To leave an overridden parameter set to its present value, include the
19581	//    parameter and specify UsePreviousValue as true. (You cannot specify both
19582	//    a value and set UsePreviousValue to true.)
19583	//
19584	//    * To set an overridden parameter back to the value specified in the stack
19585	//    set, specify a parameter list but do not include the parameter in the
19586	//    list.
19587	//
19588	//    * To leave all parameters set to their present values, do not specify
19589	//    this property at all.
19590	//
19591	// During stack set updates, any parameter values overridden for a stack instance
19592	// are not updated, but retain their overridden value.
19593	//
19594	// You can only override the parameter values that are specified in the stack
19595	// set; to add or delete a parameter itself, use UpdateStackSet to update the
19596	// stack set template. If you add a parameter to a template, before you can
19597	// override the parameter value specified in the stack set you must first use
19598	// UpdateStackSet (https://docs.aws.amazon.com/AWSCloudFormation/latest/APIReference/API_UpdateStackSet.html)
19599	// to update all stack instances with the updated template and parameter value
19600	// specified in the stack set. Once a stack instance has been updated with the
19601	// new parameter, you can then override the parameter value using UpdateStackInstances.
19602	ParameterOverrides []*Parameter `type:"list"`
19603
19604	// The names of one or more Regions in which you want to update parameter values
19605	// for stack instances. The overridden parameter values will be applied to all
19606	// stack instances in the specified accounts and Regions.
19607	//
19608	// Regions is a required field
19609	Regions []*string `type:"list" required:"true"`
19610
19611	// The name or unique ID of the stack set associated with the stack instances.
19612	//
19613	// StackSetName is a required field
19614	StackSetName *string `type:"string" required:"true"`
19615}
19616
19617// String returns the string representation
19618func (s UpdateStackInstancesInput) String() string {
19619	return awsutil.Prettify(s)
19620}
19621
19622// GoString returns the string representation
19623func (s UpdateStackInstancesInput) GoString() string {
19624	return s.String()
19625}
19626
19627// Validate inspects the fields of the type to determine if they are valid.
19628func (s *UpdateStackInstancesInput) Validate() error {
19629	invalidParams := request.ErrInvalidParams{Context: "UpdateStackInstancesInput"}
19630	if s.OperationId != nil && len(*s.OperationId) < 1 {
19631		invalidParams.Add(request.NewErrParamMinLen("OperationId", 1))
19632	}
19633	if s.Regions == nil {
19634		invalidParams.Add(request.NewErrParamRequired("Regions"))
19635	}
19636	if s.StackSetName == nil {
19637		invalidParams.Add(request.NewErrParamRequired("StackSetName"))
19638	}
19639	if s.DeploymentTargets != nil {
19640		if err := s.DeploymentTargets.Validate(); err != nil {
19641			invalidParams.AddNested("DeploymentTargets", err.(request.ErrInvalidParams))
19642		}
19643	}
19644	if s.OperationPreferences != nil {
19645		if err := s.OperationPreferences.Validate(); err != nil {
19646			invalidParams.AddNested("OperationPreferences", err.(request.ErrInvalidParams))
19647		}
19648	}
19649
19650	if invalidParams.Len() > 0 {
19651		return invalidParams
19652	}
19653	return nil
19654}
19655
19656// SetAccounts sets the Accounts field's value.
19657func (s *UpdateStackInstancesInput) SetAccounts(v []*string) *UpdateStackInstancesInput {
19658	s.Accounts = v
19659	return s
19660}
19661
19662// SetCallAs sets the CallAs field's value.
19663func (s *UpdateStackInstancesInput) SetCallAs(v string) *UpdateStackInstancesInput {
19664	s.CallAs = &v
19665	return s
19666}
19667
19668// SetDeploymentTargets sets the DeploymentTargets field's value.
19669func (s *UpdateStackInstancesInput) SetDeploymentTargets(v *DeploymentTargets) *UpdateStackInstancesInput {
19670	s.DeploymentTargets = v
19671	return s
19672}
19673
19674// SetOperationId sets the OperationId field's value.
19675func (s *UpdateStackInstancesInput) SetOperationId(v string) *UpdateStackInstancesInput {
19676	s.OperationId = &v
19677	return s
19678}
19679
19680// SetOperationPreferences sets the OperationPreferences field's value.
19681func (s *UpdateStackInstancesInput) SetOperationPreferences(v *StackSetOperationPreferences) *UpdateStackInstancesInput {
19682	s.OperationPreferences = v
19683	return s
19684}
19685
19686// SetParameterOverrides sets the ParameterOverrides field's value.
19687func (s *UpdateStackInstancesInput) SetParameterOverrides(v []*Parameter) *UpdateStackInstancesInput {
19688	s.ParameterOverrides = v
19689	return s
19690}
19691
19692// SetRegions sets the Regions field's value.
19693func (s *UpdateStackInstancesInput) SetRegions(v []*string) *UpdateStackInstancesInput {
19694	s.Regions = v
19695	return s
19696}
19697
19698// SetStackSetName sets the StackSetName field's value.
19699func (s *UpdateStackInstancesInput) SetStackSetName(v string) *UpdateStackInstancesInput {
19700	s.StackSetName = &v
19701	return s
19702}
19703
19704type UpdateStackInstancesOutput struct {
19705	_ struct{} `type:"structure"`
19706
19707	// The unique identifier for this stack set operation.
19708	OperationId *string `min:"1" type:"string"`
19709}
19710
19711// String returns the string representation
19712func (s UpdateStackInstancesOutput) String() string {
19713	return awsutil.Prettify(s)
19714}
19715
19716// GoString returns the string representation
19717func (s UpdateStackInstancesOutput) GoString() string {
19718	return s.String()
19719}
19720
19721// SetOperationId sets the OperationId field's value.
19722func (s *UpdateStackInstancesOutput) SetOperationId(v string) *UpdateStackInstancesOutput {
19723	s.OperationId = &v
19724	return s
19725}
19726
19727// The output for an UpdateStack action.
19728type UpdateStackOutput struct {
19729	_ struct{} `type:"structure"`
19730
19731	// Unique identifier of the stack.
19732	StackId *string `type:"string"`
19733}
19734
19735// String returns the string representation
19736func (s UpdateStackOutput) String() string {
19737	return awsutil.Prettify(s)
19738}
19739
19740// GoString returns the string representation
19741func (s UpdateStackOutput) GoString() string {
19742	return s.String()
19743}
19744
19745// SetStackId sets the StackId field's value.
19746func (s *UpdateStackOutput) SetStackId(v string) *UpdateStackOutput {
19747	s.StackId = &v
19748	return s
19749}
19750
19751type UpdateStackSetInput struct {
19752	_ struct{} `type:"structure"`
19753
19754	// [Self-managed permissions] The accounts in which to update associated stack
19755	// instances. If you specify accounts, you must also specify the Regions in
19756	// which to update stack set instances.
19757	//
19758	// To update all the stack instances associated with this stack set, do not
19759	// specify the Accounts or Regions properties.
19760	//
19761	// If the stack set update includes changes to the template (that is, if the
19762	// TemplateBody or TemplateURL properties are specified), or the Parameters
19763	// property, CloudFormation marks all stack instances with a status of OUTDATED
19764	// prior to updating the stack instances in the specified accounts and Regions.
19765	// If the stack set update does not include changes to the template or parameters,
19766	// CloudFormation updates the stack instances in the specified accounts and
19767	// Regions, while leaving all other stack instances with their existing stack
19768	// instance status.
19769	Accounts []*string `type:"list"`
19770
19771	// The Amazon Resource Number (ARN) of the IAM role to use to update this stack
19772	// set.
19773	//
19774	// Specify an IAM role only if you are using customized administrator roles
19775	// to control which users or groups can manage specific stack sets within the
19776	// same administrator account. For more information, see Granting Permissions
19777	// for Stack Set Operations (http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/stacksets-prereqs.html)
19778	// in the CloudFormation User Guide.
19779	//
19780	// If you specified a customized administrator role when you created the stack
19781	// set, you must specify a customized administrator role, even if it is the
19782	// same customized administrator role used with this stack set previously.
19783	AdministrationRoleARN *string `min:"20" type:"string"`
19784
19785	// [Service-managed permissions] Describes whether StackSets automatically deploys
19786	// to Organizations accounts that are added to a target organization or organizational
19787	// unit (OU).
19788	//
19789	// If you specify AutoDeployment, do not specify DeploymentTargets or Regions.
19790	AutoDeployment *AutoDeployment `type:"structure"`
19791
19792	// [Service-managed permissions] Specifies whether you are acting as an account
19793	// administrator in the organization's management account or as a delegated
19794	// administrator in a member account.
19795	//
19796	// By default, SELF is specified. Use SELF for stack sets with self-managed
19797	// permissions.
19798	//
19799	//    * If you are signed in to the management account, specify SELF.
19800	//
19801	//    * If you are signed in to a delegated administrator account, specify DELEGATED_ADMIN.
19802	//    Your account must be registered as a delegated administrator in the management
19803	//    account. For more information, see Register a delegated administrator
19804	//    (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/stacksets-orgs-delegated-admin.html)
19805	//    in the CloudFormation User Guide.
19806	CallAs *string `type:"string" enum:"CallAs"`
19807
19808	// In some cases, you must explicitly acknowledge that your stack template contains
19809	// certain capabilities in order for CloudFormation to update the stack set
19810	// and its associated stack instances.
19811	//
19812	//    * CAPABILITY_IAM and CAPABILITY_NAMED_IAM Some stack templates might include
19813	//    resources that can affect permissions in your account; for example, by
19814	//    creating new Identity and Access Management (IAM) users. For those stacks
19815	//    sets, you must explicitly acknowledge this by specifying one of these
19816	//    capabilities. The following IAM resources require you to specify either
19817	//    the CAPABILITY_IAM or CAPABILITY_NAMED_IAM capability. If you have IAM
19818	//    resources, you can specify either capability. If you have IAM resources
19819	//    with custom names, you must specify CAPABILITY_NAMED_IAM. If you don't
19820	//    specify either of these capabilities, CloudFormation returns an InsufficientCapabilities
19821	//    error. If your stack template contains these resources, we recommend that
19822	//    you review all permissions associated with them and edit their permissions
19823	//    if necessary. AWS::IAM::AccessKey (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iam-accesskey.html)
19824	//    AWS::IAM::Group (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iam-group.html)
19825	//    AWS::IAM::InstanceProfile (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iam-instanceprofile.html)
19826	//    AWS::IAM::Policy (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iam-policy.html)
19827	//    AWS::IAM::Role (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iam-role.html)
19828	//    AWS::IAM::User (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iam-user.html)
19829	//    AWS::IAM::UserToGroupAddition (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iam-addusertogroup.html)
19830	//    For more information, see Acknowledging IAM Resources in CloudFormation
19831	//    Templates (http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-iam-template.html#capabilities).
19832	//
19833	//    * CAPABILITY_AUTO_EXPAND Some templates reference macros. If your stack
19834	//    set template references one or more macros, you must update the stack
19835	//    set directly from the processed template, without first reviewing the
19836	//    resulting changes in a change set. To update the stack set directly, you
19837	//    must acknowledge this capability. For more information, see Using CloudFormation
19838	//    Macros to Perform Custom Processing on Templates (http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/template-macros.html).
19839	//    Stack sets with service-managed permissions do not currently support the
19840	//    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)
19841	//    and AWS::Serverless (http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/transform-aws-serverless.html)
19842	//    transforms, which are macros hosted by CloudFormation.) Even if you specify
19843	//    this capability for a stack set with service-managed permissions, if you
19844	//    reference a macro in your template the stack set operation will fail.
19845	Capabilities []*string `type:"list"`
19846
19847	// [Service-managed permissions] The Organizations accounts in which to update
19848	// associated stack instances.
19849	//
19850	// To update all the stack instances associated with this stack set, do not
19851	// specify DeploymentTargets or Regions.
19852	//
19853	// If the stack set update includes changes to the template (that is, if TemplateBody
19854	// or TemplateURL is specified), or the Parameters, CloudFormation marks all
19855	// stack instances with a status of OUTDATED prior to updating the stack instances
19856	// in the specified accounts and Regions. If the stack set update does not include
19857	// changes to the template or parameters, CloudFormation updates the stack instances
19858	// in the specified accounts and Regions, while leaving all other stack instances
19859	// with their existing stack instance status.
19860	DeploymentTargets *DeploymentTargets `type:"structure"`
19861
19862	// A brief description of updates that you are making.
19863	Description *string `min:"1" type:"string"`
19864
19865	// The name of the IAM execution role to use to update the stack set. If you
19866	// do not specify an execution role, CloudFormation uses the AWSCloudFormationStackSetExecutionRole
19867	// role for the stack set operation.
19868	//
19869	// Specify an IAM role only if you are using customized execution roles to control
19870	// which stack resources users and groups can include in their stack sets.
19871	//
19872	// If you specify a customized execution role, CloudFormation uses that role
19873	// to update the stack. If you do not specify a customized execution role, CloudFormation
19874	// performs the update using the role previously associated with the stack set,
19875	// so long as you have permissions to perform operations on the stack set.
19876	ExecutionRoleName *string `min:"1" type:"string"`
19877
19878	// The unique ID for this stack set operation.
19879	//
19880	// The operation ID also functions as an idempotency token, to ensure that CloudFormation
19881	// performs the stack set operation only once, even if you retry the request
19882	// multiple times. You might retry stack set operation requests to ensure that
19883	// CloudFormation successfully received them.
19884	//
19885	// If you don't specify an operation ID, CloudFormation generates one automatically.
19886	//
19887	// Repeating this stack set operation with a new operation ID retries all stack
19888	// instances whose status is OUTDATED.
19889	OperationId *string `min:"1" type:"string" idempotencyToken:"true"`
19890
19891	// Preferences for how CloudFormation performs this stack set operation.
19892	OperationPreferences *StackSetOperationPreferences `type:"structure"`
19893
19894	// A list of input parameters for the stack set template.
19895	Parameters []*Parameter `type:"list"`
19896
19897	// Describes how the IAM roles required for stack set operations are created.
19898	// You cannot modify PermissionModel if there are stack instances associated
19899	// with your stack set.
19900	//
19901	//    * With self-managed permissions, you must create the administrator and
19902	//    execution roles required to deploy to target accounts. For more information,
19903	//    see Grant Self-Managed Stack Set Permissions (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/stacksets-prereqs-self-managed.html).
19904	//
19905	//    * With service-managed permissions, StackSets automatically creates the
19906	//    IAM roles required to deploy to accounts managed by Organizations. For
19907	//    more information, see Grant Service-Managed Stack Set Permissions (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/stacksets-prereqs-service-managed.html).
19908	PermissionModel *string `type:"string" enum:"PermissionModels"`
19909
19910	// The Regions in which to update associated stack instances. If you specify
19911	// Regions, you must also specify accounts in which to update stack set instances.
19912	//
19913	// To update all the stack instances associated with this stack set, do not
19914	// specify the Accounts or Regions properties.
19915	//
19916	// If the stack set update includes changes to the template (that is, if the
19917	// TemplateBody or TemplateURL properties are specified), or the Parameters
19918	// property, CloudFormation marks all stack instances with a status of OUTDATED
19919	// prior to updating the stack instances in the specified accounts and Regions.
19920	// If the stack set update does not include changes to the template or parameters,
19921	// CloudFormation updates the stack instances in the specified accounts and
19922	// Regions, while leaving all other stack instances with their existing stack
19923	// instance status.
19924	Regions []*string `type:"list"`
19925
19926	// The name or unique ID of the stack set that you want to update.
19927	//
19928	// StackSetName is a required field
19929	StackSetName *string `type:"string" required:"true"`
19930
19931	// The key-value pairs to associate with this stack set and the stacks created
19932	// from it. CloudFormation also propagates these tags to supported resources
19933	// that are created in the stacks. You can specify a maximum number of 50 tags.
19934	//
19935	// If you specify tags for this parameter, those tags replace any list of tags
19936	// that are currently associated with this stack set. This means:
19937	//
19938	//    * If you don't specify this parameter, CloudFormation doesn't modify the
19939	//    stack's tags.
19940	//
19941	//    * If you specify any tags using this parameter, you must specify all the
19942	//    tags that you want associated with this stack set, even tags you've specifed
19943	//    before (for example, when creating the stack set or during a previous
19944	//    update of the stack set.). Any tags that you don't include in the updated
19945	//    list of tags are removed from the stack set, and therefore from the stacks
19946	//    and resources as well.
19947	//
19948	//    * If you specify an empty value, CloudFormation removes all currently
19949	//    associated tags.
19950	//
19951	// If you specify new tags as part of an UpdateStackSet action, CloudFormation
19952	// checks to see if you have the required IAM permission to tag resources. If
19953	// you omit tags that are currently associated with the stack set from the list
19954	// of tags you specify, CloudFormation assumes that you want to remove those
19955	// tags from the stack set, and checks to see if you have permission to untag
19956	// resources. If you don't have the necessary permission(s), the entire UpdateStackSet
19957	// action fails with an access denied error, and the stack set is not updated.
19958	Tags []*Tag `type:"list"`
19959
19960	// The structure that contains the template body, with a minimum length of 1
19961	// byte and a maximum length of 51,200 bytes. For more information, see Template
19962	// Anatomy (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/template-anatomy.html)
19963	// in the CloudFormation User Guide.
19964	//
19965	// Conditional: You must specify only one of the following parameters: TemplateBody
19966	// or TemplateURL—or set UsePreviousTemplate to true.
19967	TemplateBody *string `min:"1" type:"string"`
19968
19969	// The location of the file that contains the template body. The URL must point
19970	// to a template (maximum size: 460,800 bytes) that is located in an Amazon
19971	// S3 bucket or a Systems Manager document. For more information, see Template
19972	// Anatomy (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/template-anatomy.html)
19973	// in the CloudFormation User Guide.
19974	//
19975	// Conditional: You must specify only one of the following parameters: TemplateBody
19976	// or TemplateURL—or set UsePreviousTemplate to true.
19977	TemplateURL *string `min:"1" type:"string"`
19978
19979	// Use the existing template that's associated with the stack set that you're
19980	// updating.
19981	//
19982	// Conditional: You must specify only one of the following parameters: TemplateBody
19983	// or TemplateURL—or set UsePreviousTemplate to true.
19984	UsePreviousTemplate *bool `type:"boolean"`
19985}
19986
19987// String returns the string representation
19988func (s UpdateStackSetInput) String() string {
19989	return awsutil.Prettify(s)
19990}
19991
19992// GoString returns the string representation
19993func (s UpdateStackSetInput) GoString() string {
19994	return s.String()
19995}
19996
19997// Validate inspects the fields of the type to determine if they are valid.
19998func (s *UpdateStackSetInput) Validate() error {
19999	invalidParams := request.ErrInvalidParams{Context: "UpdateStackSetInput"}
20000	if s.AdministrationRoleARN != nil && len(*s.AdministrationRoleARN) < 20 {
20001		invalidParams.Add(request.NewErrParamMinLen("AdministrationRoleARN", 20))
20002	}
20003	if s.Description != nil && len(*s.Description) < 1 {
20004		invalidParams.Add(request.NewErrParamMinLen("Description", 1))
20005	}
20006	if s.ExecutionRoleName != nil && len(*s.ExecutionRoleName) < 1 {
20007		invalidParams.Add(request.NewErrParamMinLen("ExecutionRoleName", 1))
20008	}
20009	if s.OperationId != nil && len(*s.OperationId) < 1 {
20010		invalidParams.Add(request.NewErrParamMinLen("OperationId", 1))
20011	}
20012	if s.StackSetName == nil {
20013		invalidParams.Add(request.NewErrParamRequired("StackSetName"))
20014	}
20015	if s.TemplateBody != nil && len(*s.TemplateBody) < 1 {
20016		invalidParams.Add(request.NewErrParamMinLen("TemplateBody", 1))
20017	}
20018	if s.TemplateURL != nil && len(*s.TemplateURL) < 1 {
20019		invalidParams.Add(request.NewErrParamMinLen("TemplateURL", 1))
20020	}
20021	if s.DeploymentTargets != nil {
20022		if err := s.DeploymentTargets.Validate(); err != nil {
20023			invalidParams.AddNested("DeploymentTargets", err.(request.ErrInvalidParams))
20024		}
20025	}
20026	if s.OperationPreferences != nil {
20027		if err := s.OperationPreferences.Validate(); err != nil {
20028			invalidParams.AddNested("OperationPreferences", err.(request.ErrInvalidParams))
20029		}
20030	}
20031	if s.Tags != nil {
20032		for i, v := range s.Tags {
20033			if v == nil {
20034				continue
20035			}
20036			if err := v.Validate(); err != nil {
20037				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Tags", i), err.(request.ErrInvalidParams))
20038			}
20039		}
20040	}
20041
20042	if invalidParams.Len() > 0 {
20043		return invalidParams
20044	}
20045	return nil
20046}
20047
20048// SetAccounts sets the Accounts field's value.
20049func (s *UpdateStackSetInput) SetAccounts(v []*string) *UpdateStackSetInput {
20050	s.Accounts = v
20051	return s
20052}
20053
20054// SetAdministrationRoleARN sets the AdministrationRoleARN field's value.
20055func (s *UpdateStackSetInput) SetAdministrationRoleARN(v string) *UpdateStackSetInput {
20056	s.AdministrationRoleARN = &v
20057	return s
20058}
20059
20060// SetAutoDeployment sets the AutoDeployment field's value.
20061func (s *UpdateStackSetInput) SetAutoDeployment(v *AutoDeployment) *UpdateStackSetInput {
20062	s.AutoDeployment = v
20063	return s
20064}
20065
20066// SetCallAs sets the CallAs field's value.
20067func (s *UpdateStackSetInput) SetCallAs(v string) *UpdateStackSetInput {
20068	s.CallAs = &v
20069	return s
20070}
20071
20072// SetCapabilities sets the Capabilities field's value.
20073func (s *UpdateStackSetInput) SetCapabilities(v []*string) *UpdateStackSetInput {
20074	s.Capabilities = v
20075	return s
20076}
20077
20078// SetDeploymentTargets sets the DeploymentTargets field's value.
20079func (s *UpdateStackSetInput) SetDeploymentTargets(v *DeploymentTargets) *UpdateStackSetInput {
20080	s.DeploymentTargets = v
20081	return s
20082}
20083
20084// SetDescription sets the Description field's value.
20085func (s *UpdateStackSetInput) SetDescription(v string) *UpdateStackSetInput {
20086	s.Description = &v
20087	return s
20088}
20089
20090// SetExecutionRoleName sets the ExecutionRoleName field's value.
20091func (s *UpdateStackSetInput) SetExecutionRoleName(v string) *UpdateStackSetInput {
20092	s.ExecutionRoleName = &v
20093	return s
20094}
20095
20096// SetOperationId sets the OperationId field's value.
20097func (s *UpdateStackSetInput) SetOperationId(v string) *UpdateStackSetInput {
20098	s.OperationId = &v
20099	return s
20100}
20101
20102// SetOperationPreferences sets the OperationPreferences field's value.
20103func (s *UpdateStackSetInput) SetOperationPreferences(v *StackSetOperationPreferences) *UpdateStackSetInput {
20104	s.OperationPreferences = v
20105	return s
20106}
20107
20108// SetParameters sets the Parameters field's value.
20109func (s *UpdateStackSetInput) SetParameters(v []*Parameter) *UpdateStackSetInput {
20110	s.Parameters = v
20111	return s
20112}
20113
20114// SetPermissionModel sets the PermissionModel field's value.
20115func (s *UpdateStackSetInput) SetPermissionModel(v string) *UpdateStackSetInput {
20116	s.PermissionModel = &v
20117	return s
20118}
20119
20120// SetRegions sets the Regions field's value.
20121func (s *UpdateStackSetInput) SetRegions(v []*string) *UpdateStackSetInput {
20122	s.Regions = v
20123	return s
20124}
20125
20126// SetStackSetName sets the StackSetName field's value.
20127func (s *UpdateStackSetInput) SetStackSetName(v string) *UpdateStackSetInput {
20128	s.StackSetName = &v
20129	return s
20130}
20131
20132// SetTags sets the Tags field's value.
20133func (s *UpdateStackSetInput) SetTags(v []*Tag) *UpdateStackSetInput {
20134	s.Tags = v
20135	return s
20136}
20137
20138// SetTemplateBody sets the TemplateBody field's value.
20139func (s *UpdateStackSetInput) SetTemplateBody(v string) *UpdateStackSetInput {
20140	s.TemplateBody = &v
20141	return s
20142}
20143
20144// SetTemplateURL sets the TemplateURL field's value.
20145func (s *UpdateStackSetInput) SetTemplateURL(v string) *UpdateStackSetInput {
20146	s.TemplateURL = &v
20147	return s
20148}
20149
20150// SetUsePreviousTemplate sets the UsePreviousTemplate field's value.
20151func (s *UpdateStackSetInput) SetUsePreviousTemplate(v bool) *UpdateStackSetInput {
20152	s.UsePreviousTemplate = &v
20153	return s
20154}
20155
20156type UpdateStackSetOutput struct {
20157	_ struct{} `type:"structure"`
20158
20159	// The unique ID for this stack set operation.
20160	OperationId *string `min:"1" type:"string"`
20161}
20162
20163// String returns the string representation
20164func (s UpdateStackSetOutput) String() string {
20165	return awsutil.Prettify(s)
20166}
20167
20168// GoString returns the string representation
20169func (s UpdateStackSetOutput) GoString() string {
20170	return s.String()
20171}
20172
20173// SetOperationId sets the OperationId field's value.
20174func (s *UpdateStackSetOutput) SetOperationId(v string) *UpdateStackSetOutput {
20175	s.OperationId = &v
20176	return s
20177}
20178
20179type UpdateTerminationProtectionInput struct {
20180	_ struct{} `type:"structure"`
20181
20182	// Whether to enable termination protection on the specified stack.
20183	//
20184	// EnableTerminationProtection is a required field
20185	EnableTerminationProtection *bool `type:"boolean" required:"true"`
20186
20187	// The name or unique ID of the stack for which you want to set termination
20188	// protection.
20189	//
20190	// StackName is a required field
20191	StackName *string `min:"1" type:"string" required:"true"`
20192}
20193
20194// String returns the string representation
20195func (s UpdateTerminationProtectionInput) String() string {
20196	return awsutil.Prettify(s)
20197}
20198
20199// GoString returns the string representation
20200func (s UpdateTerminationProtectionInput) GoString() string {
20201	return s.String()
20202}
20203
20204// Validate inspects the fields of the type to determine if they are valid.
20205func (s *UpdateTerminationProtectionInput) Validate() error {
20206	invalidParams := request.ErrInvalidParams{Context: "UpdateTerminationProtectionInput"}
20207	if s.EnableTerminationProtection == nil {
20208		invalidParams.Add(request.NewErrParamRequired("EnableTerminationProtection"))
20209	}
20210	if s.StackName == nil {
20211		invalidParams.Add(request.NewErrParamRequired("StackName"))
20212	}
20213	if s.StackName != nil && len(*s.StackName) < 1 {
20214		invalidParams.Add(request.NewErrParamMinLen("StackName", 1))
20215	}
20216
20217	if invalidParams.Len() > 0 {
20218		return invalidParams
20219	}
20220	return nil
20221}
20222
20223// SetEnableTerminationProtection sets the EnableTerminationProtection field's value.
20224func (s *UpdateTerminationProtectionInput) SetEnableTerminationProtection(v bool) *UpdateTerminationProtectionInput {
20225	s.EnableTerminationProtection = &v
20226	return s
20227}
20228
20229// SetStackName sets the StackName field's value.
20230func (s *UpdateTerminationProtectionInput) SetStackName(v string) *UpdateTerminationProtectionInput {
20231	s.StackName = &v
20232	return s
20233}
20234
20235type UpdateTerminationProtectionOutput struct {
20236	_ struct{} `type:"structure"`
20237
20238	// The unique ID of the stack.
20239	StackId *string `type:"string"`
20240}
20241
20242// String returns the string representation
20243func (s UpdateTerminationProtectionOutput) String() string {
20244	return awsutil.Prettify(s)
20245}
20246
20247// GoString returns the string representation
20248func (s UpdateTerminationProtectionOutput) GoString() string {
20249	return s.String()
20250}
20251
20252// SetStackId sets the StackId field's value.
20253func (s *UpdateTerminationProtectionOutput) SetStackId(v string) *UpdateTerminationProtectionOutput {
20254	s.StackId = &v
20255	return s
20256}
20257
20258// The input for ValidateTemplate action.
20259type ValidateTemplateInput struct {
20260	_ struct{} `type:"structure"`
20261
20262	// Structure containing the template body with a minimum length of 1 byte and
20263	// a maximum length of 51,200 bytes. For more information, go to Template Anatomy
20264	// (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/template-anatomy.html)
20265	// in the CloudFormation User Guide.
20266	//
20267	// Conditional: You must pass TemplateURL or TemplateBody. If both are passed,
20268	// only TemplateBody is used.
20269	TemplateBody *string `min:"1" type:"string"`
20270
20271	// Location of file containing the template body. The URL must point to a template
20272	// (max size: 460,800 bytes) that is located in an Amazon S3 bucket or a Systems
20273	// Manager document. For more information, go to Template Anatomy (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/template-anatomy.html)
20274	// in the CloudFormation User Guide.
20275	//
20276	// Conditional: You must pass TemplateURL or TemplateBody. If both are passed,
20277	// only TemplateBody is used.
20278	TemplateURL *string `min:"1" type:"string"`
20279}
20280
20281// String returns the string representation
20282func (s ValidateTemplateInput) String() string {
20283	return awsutil.Prettify(s)
20284}
20285
20286// GoString returns the string representation
20287func (s ValidateTemplateInput) GoString() string {
20288	return s.String()
20289}
20290
20291// Validate inspects the fields of the type to determine if they are valid.
20292func (s *ValidateTemplateInput) Validate() error {
20293	invalidParams := request.ErrInvalidParams{Context: "ValidateTemplateInput"}
20294	if s.TemplateBody != nil && len(*s.TemplateBody) < 1 {
20295		invalidParams.Add(request.NewErrParamMinLen("TemplateBody", 1))
20296	}
20297	if s.TemplateURL != nil && len(*s.TemplateURL) < 1 {
20298		invalidParams.Add(request.NewErrParamMinLen("TemplateURL", 1))
20299	}
20300
20301	if invalidParams.Len() > 0 {
20302		return invalidParams
20303	}
20304	return nil
20305}
20306
20307// SetTemplateBody sets the TemplateBody field's value.
20308func (s *ValidateTemplateInput) SetTemplateBody(v string) *ValidateTemplateInput {
20309	s.TemplateBody = &v
20310	return s
20311}
20312
20313// SetTemplateURL sets the TemplateURL field's value.
20314func (s *ValidateTemplateInput) SetTemplateURL(v string) *ValidateTemplateInput {
20315	s.TemplateURL = &v
20316	return s
20317}
20318
20319// The output for ValidateTemplate action.
20320type ValidateTemplateOutput struct {
20321	_ struct{} `type:"structure"`
20322
20323	// The capabilities found within the template. If your template contains IAM
20324	// resources, you must specify the CAPABILITY_IAM or CAPABILITY_NAMED_IAM value
20325	// for this parameter when you use the CreateStack or UpdateStack actions with
20326	// your template; otherwise, those actions return an InsufficientCapabilities
20327	// error.
20328	//
20329	// For more information, see Acknowledging IAM Resources in CloudFormation Templates
20330	// (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-iam-template.html#capabilities).
20331	Capabilities []*string `type:"list"`
20332
20333	// The list of resources that generated the values in the Capabilities response
20334	// element.
20335	CapabilitiesReason *string `type:"string"`
20336
20337	// A list of the transforms that are declared in the template.
20338	DeclaredTransforms []*string `type:"list"`
20339
20340	// The description found within the template.
20341	Description *string `min:"1" type:"string"`
20342
20343	// A list of TemplateParameter structures.
20344	Parameters []*TemplateParameter `type:"list"`
20345}
20346
20347// String returns the string representation
20348func (s ValidateTemplateOutput) String() string {
20349	return awsutil.Prettify(s)
20350}
20351
20352// GoString returns the string representation
20353func (s ValidateTemplateOutput) GoString() string {
20354	return s.String()
20355}
20356
20357// SetCapabilities sets the Capabilities field's value.
20358func (s *ValidateTemplateOutput) SetCapabilities(v []*string) *ValidateTemplateOutput {
20359	s.Capabilities = v
20360	return s
20361}
20362
20363// SetCapabilitiesReason sets the CapabilitiesReason field's value.
20364func (s *ValidateTemplateOutput) SetCapabilitiesReason(v string) *ValidateTemplateOutput {
20365	s.CapabilitiesReason = &v
20366	return s
20367}
20368
20369// SetDeclaredTransforms sets the DeclaredTransforms field's value.
20370func (s *ValidateTemplateOutput) SetDeclaredTransforms(v []*string) *ValidateTemplateOutput {
20371	s.DeclaredTransforms = v
20372	return s
20373}
20374
20375// SetDescription sets the Description field's value.
20376func (s *ValidateTemplateOutput) SetDescription(v string) *ValidateTemplateOutput {
20377	s.Description = &v
20378	return s
20379}
20380
20381// SetParameters sets the Parameters field's value.
20382func (s *ValidateTemplateOutput) SetParameters(v []*TemplateParameter) *ValidateTemplateOutput {
20383	s.Parameters = v
20384	return s
20385}
20386
20387const (
20388	// AccountGateStatusSucceeded is a AccountGateStatus enum value
20389	AccountGateStatusSucceeded = "SUCCEEDED"
20390
20391	// AccountGateStatusFailed is a AccountGateStatus enum value
20392	AccountGateStatusFailed = "FAILED"
20393
20394	// AccountGateStatusSkipped is a AccountGateStatus enum value
20395	AccountGateStatusSkipped = "SKIPPED"
20396)
20397
20398// AccountGateStatus_Values returns all elements of the AccountGateStatus enum
20399func AccountGateStatus_Values() []string {
20400	return []string{
20401		AccountGateStatusSucceeded,
20402		AccountGateStatusFailed,
20403		AccountGateStatusSkipped,
20404	}
20405}
20406
20407const (
20408	// CallAsSelf is a CallAs enum value
20409	CallAsSelf = "SELF"
20410
20411	// CallAsDelegatedAdmin is a CallAs enum value
20412	CallAsDelegatedAdmin = "DELEGATED_ADMIN"
20413)
20414
20415// CallAs_Values returns all elements of the CallAs enum
20416func CallAs_Values() []string {
20417	return []string{
20418		CallAsSelf,
20419		CallAsDelegatedAdmin,
20420	}
20421}
20422
20423const (
20424	// CapabilityCapabilityIam is a Capability enum value
20425	CapabilityCapabilityIam = "CAPABILITY_IAM"
20426
20427	// CapabilityCapabilityNamedIam is a Capability enum value
20428	CapabilityCapabilityNamedIam = "CAPABILITY_NAMED_IAM"
20429
20430	// CapabilityCapabilityAutoExpand is a Capability enum value
20431	CapabilityCapabilityAutoExpand = "CAPABILITY_AUTO_EXPAND"
20432)
20433
20434// Capability_Values returns all elements of the Capability enum
20435func Capability_Values() []string {
20436	return []string{
20437		CapabilityCapabilityIam,
20438		CapabilityCapabilityNamedIam,
20439		CapabilityCapabilityAutoExpand,
20440	}
20441}
20442
20443const (
20444	// CategoryRegistered is a Category enum value
20445	CategoryRegistered = "REGISTERED"
20446
20447	// CategoryActivated is a Category enum value
20448	CategoryActivated = "ACTIVATED"
20449
20450	// CategoryThirdParty is a Category enum value
20451	CategoryThirdParty = "THIRD_PARTY"
20452
20453	// CategoryAwsTypes is a Category enum value
20454	CategoryAwsTypes = "AWS_TYPES"
20455)
20456
20457// Category_Values returns all elements of the Category enum
20458func Category_Values() []string {
20459	return []string{
20460		CategoryRegistered,
20461		CategoryActivated,
20462		CategoryThirdParty,
20463		CategoryAwsTypes,
20464	}
20465}
20466
20467const (
20468	// ChangeActionAdd is a ChangeAction enum value
20469	ChangeActionAdd = "Add"
20470
20471	// ChangeActionModify is a ChangeAction enum value
20472	ChangeActionModify = "Modify"
20473
20474	// ChangeActionRemove is a ChangeAction enum value
20475	ChangeActionRemove = "Remove"
20476
20477	// ChangeActionImport is a ChangeAction enum value
20478	ChangeActionImport = "Import"
20479
20480	// ChangeActionDynamic is a ChangeAction enum value
20481	ChangeActionDynamic = "Dynamic"
20482)
20483
20484// ChangeAction_Values returns all elements of the ChangeAction enum
20485func ChangeAction_Values() []string {
20486	return []string{
20487		ChangeActionAdd,
20488		ChangeActionModify,
20489		ChangeActionRemove,
20490		ChangeActionImport,
20491		ChangeActionDynamic,
20492	}
20493}
20494
20495const (
20496	// ChangeSetStatusCreatePending is a ChangeSetStatus enum value
20497	ChangeSetStatusCreatePending = "CREATE_PENDING"
20498
20499	// ChangeSetStatusCreateInProgress is a ChangeSetStatus enum value
20500	ChangeSetStatusCreateInProgress = "CREATE_IN_PROGRESS"
20501
20502	// ChangeSetStatusCreateComplete is a ChangeSetStatus enum value
20503	ChangeSetStatusCreateComplete = "CREATE_COMPLETE"
20504
20505	// ChangeSetStatusDeletePending is a ChangeSetStatus enum value
20506	ChangeSetStatusDeletePending = "DELETE_PENDING"
20507
20508	// ChangeSetStatusDeleteInProgress is a ChangeSetStatus enum value
20509	ChangeSetStatusDeleteInProgress = "DELETE_IN_PROGRESS"
20510
20511	// ChangeSetStatusDeleteComplete is a ChangeSetStatus enum value
20512	ChangeSetStatusDeleteComplete = "DELETE_COMPLETE"
20513
20514	// ChangeSetStatusDeleteFailed is a ChangeSetStatus enum value
20515	ChangeSetStatusDeleteFailed = "DELETE_FAILED"
20516
20517	// ChangeSetStatusFailed is a ChangeSetStatus enum value
20518	ChangeSetStatusFailed = "FAILED"
20519)
20520
20521// ChangeSetStatus_Values returns all elements of the ChangeSetStatus enum
20522func ChangeSetStatus_Values() []string {
20523	return []string{
20524		ChangeSetStatusCreatePending,
20525		ChangeSetStatusCreateInProgress,
20526		ChangeSetStatusCreateComplete,
20527		ChangeSetStatusDeletePending,
20528		ChangeSetStatusDeleteInProgress,
20529		ChangeSetStatusDeleteComplete,
20530		ChangeSetStatusDeleteFailed,
20531		ChangeSetStatusFailed,
20532	}
20533}
20534
20535const (
20536	// ChangeSetTypeCreate is a ChangeSetType enum value
20537	ChangeSetTypeCreate = "CREATE"
20538
20539	// ChangeSetTypeUpdate is a ChangeSetType enum value
20540	ChangeSetTypeUpdate = "UPDATE"
20541
20542	// ChangeSetTypeImport is a ChangeSetType enum value
20543	ChangeSetTypeImport = "IMPORT"
20544)
20545
20546// ChangeSetType_Values returns all elements of the ChangeSetType enum
20547func ChangeSetType_Values() []string {
20548	return []string{
20549		ChangeSetTypeCreate,
20550		ChangeSetTypeUpdate,
20551		ChangeSetTypeImport,
20552	}
20553}
20554
20555const (
20556	// ChangeSourceResourceReference is a ChangeSource enum value
20557	ChangeSourceResourceReference = "ResourceReference"
20558
20559	// ChangeSourceParameterReference is a ChangeSource enum value
20560	ChangeSourceParameterReference = "ParameterReference"
20561
20562	// ChangeSourceResourceAttribute is a ChangeSource enum value
20563	ChangeSourceResourceAttribute = "ResourceAttribute"
20564
20565	// ChangeSourceDirectModification is a ChangeSource enum value
20566	ChangeSourceDirectModification = "DirectModification"
20567
20568	// ChangeSourceAutomatic is a ChangeSource enum value
20569	ChangeSourceAutomatic = "Automatic"
20570)
20571
20572// ChangeSource_Values returns all elements of the ChangeSource enum
20573func ChangeSource_Values() []string {
20574	return []string{
20575		ChangeSourceResourceReference,
20576		ChangeSourceParameterReference,
20577		ChangeSourceResourceAttribute,
20578		ChangeSourceDirectModification,
20579		ChangeSourceAutomatic,
20580	}
20581}
20582
20583const (
20584	// ChangeTypeResource is a ChangeType enum value
20585	ChangeTypeResource = "Resource"
20586)
20587
20588// ChangeType_Values returns all elements of the ChangeType enum
20589func ChangeType_Values() []string {
20590	return []string{
20591		ChangeTypeResource,
20592	}
20593}
20594
20595const (
20596	// DeprecatedStatusLive is a DeprecatedStatus enum value
20597	DeprecatedStatusLive = "LIVE"
20598
20599	// DeprecatedStatusDeprecated is a DeprecatedStatus enum value
20600	DeprecatedStatusDeprecated = "DEPRECATED"
20601)
20602
20603// DeprecatedStatus_Values returns all elements of the DeprecatedStatus enum
20604func DeprecatedStatus_Values() []string {
20605	return []string{
20606		DeprecatedStatusLive,
20607		DeprecatedStatusDeprecated,
20608	}
20609}
20610
20611const (
20612	// DifferenceTypeAdd is a DifferenceType enum value
20613	DifferenceTypeAdd = "ADD"
20614
20615	// DifferenceTypeRemove is a DifferenceType enum value
20616	DifferenceTypeRemove = "REMOVE"
20617
20618	// DifferenceTypeNotEqual is a DifferenceType enum value
20619	DifferenceTypeNotEqual = "NOT_EQUAL"
20620)
20621
20622// DifferenceType_Values returns all elements of the DifferenceType enum
20623func DifferenceType_Values() []string {
20624	return []string{
20625		DifferenceTypeAdd,
20626		DifferenceTypeRemove,
20627		DifferenceTypeNotEqual,
20628	}
20629}
20630
20631const (
20632	// EvaluationTypeStatic is a EvaluationType enum value
20633	EvaluationTypeStatic = "Static"
20634
20635	// EvaluationTypeDynamic is a EvaluationType enum value
20636	EvaluationTypeDynamic = "Dynamic"
20637)
20638
20639// EvaluationType_Values returns all elements of the EvaluationType enum
20640func EvaluationType_Values() []string {
20641	return []string{
20642		EvaluationTypeStatic,
20643		EvaluationTypeDynamic,
20644	}
20645}
20646
20647const (
20648	// ExecutionStatusUnavailable is a ExecutionStatus enum value
20649	ExecutionStatusUnavailable = "UNAVAILABLE"
20650
20651	// ExecutionStatusAvailable is a ExecutionStatus enum value
20652	ExecutionStatusAvailable = "AVAILABLE"
20653
20654	// ExecutionStatusExecuteInProgress is a ExecutionStatus enum value
20655	ExecutionStatusExecuteInProgress = "EXECUTE_IN_PROGRESS"
20656
20657	// ExecutionStatusExecuteComplete is a ExecutionStatus enum value
20658	ExecutionStatusExecuteComplete = "EXECUTE_COMPLETE"
20659
20660	// ExecutionStatusExecuteFailed is a ExecutionStatus enum value
20661	ExecutionStatusExecuteFailed = "EXECUTE_FAILED"
20662
20663	// ExecutionStatusObsolete is a ExecutionStatus enum value
20664	ExecutionStatusObsolete = "OBSOLETE"
20665)
20666
20667// ExecutionStatus_Values returns all elements of the ExecutionStatus enum
20668func ExecutionStatus_Values() []string {
20669	return []string{
20670		ExecutionStatusUnavailable,
20671		ExecutionStatusAvailable,
20672		ExecutionStatusExecuteInProgress,
20673		ExecutionStatusExecuteComplete,
20674		ExecutionStatusExecuteFailed,
20675		ExecutionStatusObsolete,
20676	}
20677}
20678
20679const (
20680	// HandlerErrorCodeNotUpdatable is a HandlerErrorCode enum value
20681	HandlerErrorCodeNotUpdatable = "NotUpdatable"
20682
20683	// HandlerErrorCodeInvalidRequest is a HandlerErrorCode enum value
20684	HandlerErrorCodeInvalidRequest = "InvalidRequest"
20685
20686	// HandlerErrorCodeAccessDenied is a HandlerErrorCode enum value
20687	HandlerErrorCodeAccessDenied = "AccessDenied"
20688
20689	// HandlerErrorCodeInvalidCredentials is a HandlerErrorCode enum value
20690	HandlerErrorCodeInvalidCredentials = "InvalidCredentials"
20691
20692	// HandlerErrorCodeAlreadyExists is a HandlerErrorCode enum value
20693	HandlerErrorCodeAlreadyExists = "AlreadyExists"
20694
20695	// HandlerErrorCodeNotFound is a HandlerErrorCode enum value
20696	HandlerErrorCodeNotFound = "NotFound"
20697
20698	// HandlerErrorCodeResourceConflict is a HandlerErrorCode enum value
20699	HandlerErrorCodeResourceConflict = "ResourceConflict"
20700
20701	// HandlerErrorCodeThrottling is a HandlerErrorCode enum value
20702	HandlerErrorCodeThrottling = "Throttling"
20703
20704	// HandlerErrorCodeServiceLimitExceeded is a HandlerErrorCode enum value
20705	HandlerErrorCodeServiceLimitExceeded = "ServiceLimitExceeded"
20706
20707	// HandlerErrorCodeNotStabilized is a HandlerErrorCode enum value
20708	HandlerErrorCodeNotStabilized = "NotStabilized"
20709
20710	// HandlerErrorCodeGeneralServiceException is a HandlerErrorCode enum value
20711	HandlerErrorCodeGeneralServiceException = "GeneralServiceException"
20712
20713	// HandlerErrorCodeServiceInternalError is a HandlerErrorCode enum value
20714	HandlerErrorCodeServiceInternalError = "ServiceInternalError"
20715
20716	// HandlerErrorCodeNetworkFailure is a HandlerErrorCode enum value
20717	HandlerErrorCodeNetworkFailure = "NetworkFailure"
20718
20719	// HandlerErrorCodeInternalFailure is a HandlerErrorCode enum value
20720	HandlerErrorCodeInternalFailure = "InternalFailure"
20721
20722	// HandlerErrorCodeInvalidTypeConfiguration is a HandlerErrorCode enum value
20723	HandlerErrorCodeInvalidTypeConfiguration = "InvalidTypeConfiguration"
20724)
20725
20726// HandlerErrorCode_Values returns all elements of the HandlerErrorCode enum
20727func HandlerErrorCode_Values() []string {
20728	return []string{
20729		HandlerErrorCodeNotUpdatable,
20730		HandlerErrorCodeInvalidRequest,
20731		HandlerErrorCodeAccessDenied,
20732		HandlerErrorCodeInvalidCredentials,
20733		HandlerErrorCodeAlreadyExists,
20734		HandlerErrorCodeNotFound,
20735		HandlerErrorCodeResourceConflict,
20736		HandlerErrorCodeThrottling,
20737		HandlerErrorCodeServiceLimitExceeded,
20738		HandlerErrorCodeNotStabilized,
20739		HandlerErrorCodeGeneralServiceException,
20740		HandlerErrorCodeServiceInternalError,
20741		HandlerErrorCodeNetworkFailure,
20742		HandlerErrorCodeInternalFailure,
20743		HandlerErrorCodeInvalidTypeConfiguration,
20744	}
20745}
20746
20747const (
20748	// IdentityProviderAwsMarketplace is a IdentityProvider enum value
20749	IdentityProviderAwsMarketplace = "AWS_Marketplace"
20750
20751	// IdentityProviderGitHub is a IdentityProvider enum value
20752	IdentityProviderGitHub = "GitHub"
20753
20754	// IdentityProviderBitbucket is a IdentityProvider enum value
20755	IdentityProviderBitbucket = "Bitbucket"
20756)
20757
20758// IdentityProvider_Values returns all elements of the IdentityProvider enum
20759func IdentityProvider_Values() []string {
20760	return []string{
20761		IdentityProviderAwsMarketplace,
20762		IdentityProviderGitHub,
20763		IdentityProviderBitbucket,
20764	}
20765}
20766
20767const (
20768	// OnFailureDoNothing is a OnFailure enum value
20769	OnFailureDoNothing = "DO_NOTHING"
20770
20771	// OnFailureRollback is a OnFailure enum value
20772	OnFailureRollback = "ROLLBACK"
20773
20774	// OnFailureDelete is a OnFailure enum value
20775	OnFailureDelete = "DELETE"
20776)
20777
20778// OnFailure_Values returns all elements of the OnFailure enum
20779func OnFailure_Values() []string {
20780	return []string{
20781		OnFailureDoNothing,
20782		OnFailureRollback,
20783		OnFailureDelete,
20784	}
20785}
20786
20787const (
20788	// OperationStatusPending is a OperationStatus enum value
20789	OperationStatusPending = "PENDING"
20790
20791	// OperationStatusInProgress is a OperationStatus enum value
20792	OperationStatusInProgress = "IN_PROGRESS"
20793
20794	// OperationStatusSuccess is a OperationStatus enum value
20795	OperationStatusSuccess = "SUCCESS"
20796
20797	// OperationStatusFailed is a OperationStatus enum value
20798	OperationStatusFailed = "FAILED"
20799)
20800
20801// OperationStatus_Values returns all elements of the OperationStatus enum
20802func OperationStatus_Values() []string {
20803	return []string{
20804		OperationStatusPending,
20805		OperationStatusInProgress,
20806		OperationStatusSuccess,
20807		OperationStatusFailed,
20808	}
20809}
20810
20811const (
20812	// PermissionModelsServiceManaged is a PermissionModels enum value
20813	PermissionModelsServiceManaged = "SERVICE_MANAGED"
20814
20815	// PermissionModelsSelfManaged is a PermissionModels enum value
20816	PermissionModelsSelfManaged = "SELF_MANAGED"
20817)
20818
20819// PermissionModels_Values returns all elements of the PermissionModels enum
20820func PermissionModels_Values() []string {
20821	return []string{
20822		PermissionModelsServiceManaged,
20823		PermissionModelsSelfManaged,
20824	}
20825}
20826
20827const (
20828	// ProvisioningTypeNonProvisionable is a ProvisioningType enum value
20829	ProvisioningTypeNonProvisionable = "NON_PROVISIONABLE"
20830
20831	// ProvisioningTypeImmutable is a ProvisioningType enum value
20832	ProvisioningTypeImmutable = "IMMUTABLE"
20833
20834	// ProvisioningTypeFullyMutable is a ProvisioningType enum value
20835	ProvisioningTypeFullyMutable = "FULLY_MUTABLE"
20836)
20837
20838// ProvisioningType_Values returns all elements of the ProvisioningType enum
20839func ProvisioningType_Values() []string {
20840	return []string{
20841		ProvisioningTypeNonProvisionable,
20842		ProvisioningTypeImmutable,
20843		ProvisioningTypeFullyMutable,
20844	}
20845}
20846
20847const (
20848	// PublisherStatusVerified is a PublisherStatus enum value
20849	PublisherStatusVerified = "VERIFIED"
20850
20851	// PublisherStatusUnverified is a PublisherStatus enum value
20852	PublisherStatusUnverified = "UNVERIFIED"
20853)
20854
20855// PublisherStatus_Values returns all elements of the PublisherStatus enum
20856func PublisherStatus_Values() []string {
20857	return []string{
20858		PublisherStatusVerified,
20859		PublisherStatusUnverified,
20860	}
20861}
20862
20863const (
20864	// RegionConcurrencyTypeSequential is a RegionConcurrencyType enum value
20865	RegionConcurrencyTypeSequential = "SEQUENTIAL"
20866
20867	// RegionConcurrencyTypeParallel is a RegionConcurrencyType enum value
20868	RegionConcurrencyTypeParallel = "PARALLEL"
20869)
20870
20871// RegionConcurrencyType_Values returns all elements of the RegionConcurrencyType enum
20872func RegionConcurrencyType_Values() []string {
20873	return []string{
20874		RegionConcurrencyTypeSequential,
20875		RegionConcurrencyTypeParallel,
20876	}
20877}
20878
20879const (
20880	// RegistrationStatusComplete is a RegistrationStatus enum value
20881	RegistrationStatusComplete = "COMPLETE"
20882
20883	// RegistrationStatusInProgress is a RegistrationStatus enum value
20884	RegistrationStatusInProgress = "IN_PROGRESS"
20885
20886	// RegistrationStatusFailed is a RegistrationStatus enum value
20887	RegistrationStatusFailed = "FAILED"
20888)
20889
20890// RegistrationStatus_Values returns all elements of the RegistrationStatus enum
20891func RegistrationStatus_Values() []string {
20892	return []string{
20893		RegistrationStatusComplete,
20894		RegistrationStatusInProgress,
20895		RegistrationStatusFailed,
20896	}
20897}
20898
20899const (
20900	// RegistryTypeResource is a RegistryType enum value
20901	RegistryTypeResource = "RESOURCE"
20902
20903	// RegistryTypeModule is a RegistryType enum value
20904	RegistryTypeModule = "MODULE"
20905)
20906
20907// RegistryType_Values returns all elements of the RegistryType enum
20908func RegistryType_Values() []string {
20909	return []string{
20910		RegistryTypeResource,
20911		RegistryTypeModule,
20912	}
20913}
20914
20915const (
20916	// ReplacementTrue is a Replacement enum value
20917	ReplacementTrue = "True"
20918
20919	// ReplacementFalse is a Replacement enum value
20920	ReplacementFalse = "False"
20921
20922	// ReplacementConditional is a Replacement enum value
20923	ReplacementConditional = "Conditional"
20924)
20925
20926// Replacement_Values returns all elements of the Replacement enum
20927func Replacement_Values() []string {
20928	return []string{
20929		ReplacementTrue,
20930		ReplacementFalse,
20931		ReplacementConditional,
20932	}
20933}
20934
20935const (
20936	// RequiresRecreationNever is a RequiresRecreation enum value
20937	RequiresRecreationNever = "Never"
20938
20939	// RequiresRecreationConditionally is a RequiresRecreation enum value
20940	RequiresRecreationConditionally = "Conditionally"
20941
20942	// RequiresRecreationAlways is a RequiresRecreation enum value
20943	RequiresRecreationAlways = "Always"
20944)
20945
20946// RequiresRecreation_Values returns all elements of the RequiresRecreation enum
20947func RequiresRecreation_Values() []string {
20948	return []string{
20949		RequiresRecreationNever,
20950		RequiresRecreationConditionally,
20951		RequiresRecreationAlways,
20952	}
20953}
20954
20955const (
20956	// ResourceAttributeProperties is a ResourceAttribute enum value
20957	ResourceAttributeProperties = "Properties"
20958
20959	// ResourceAttributeMetadata is a ResourceAttribute enum value
20960	ResourceAttributeMetadata = "Metadata"
20961
20962	// ResourceAttributeCreationPolicy is a ResourceAttribute enum value
20963	ResourceAttributeCreationPolicy = "CreationPolicy"
20964
20965	// ResourceAttributeUpdatePolicy is a ResourceAttribute enum value
20966	ResourceAttributeUpdatePolicy = "UpdatePolicy"
20967
20968	// ResourceAttributeDeletionPolicy is a ResourceAttribute enum value
20969	ResourceAttributeDeletionPolicy = "DeletionPolicy"
20970
20971	// ResourceAttributeTags is a ResourceAttribute enum value
20972	ResourceAttributeTags = "Tags"
20973)
20974
20975// ResourceAttribute_Values returns all elements of the ResourceAttribute enum
20976func ResourceAttribute_Values() []string {
20977	return []string{
20978		ResourceAttributeProperties,
20979		ResourceAttributeMetadata,
20980		ResourceAttributeCreationPolicy,
20981		ResourceAttributeUpdatePolicy,
20982		ResourceAttributeDeletionPolicy,
20983		ResourceAttributeTags,
20984	}
20985}
20986
20987const (
20988	// ResourceSignalStatusSuccess is a ResourceSignalStatus enum value
20989	ResourceSignalStatusSuccess = "SUCCESS"
20990
20991	// ResourceSignalStatusFailure is a ResourceSignalStatus enum value
20992	ResourceSignalStatusFailure = "FAILURE"
20993)
20994
20995// ResourceSignalStatus_Values returns all elements of the ResourceSignalStatus enum
20996func ResourceSignalStatus_Values() []string {
20997	return []string{
20998		ResourceSignalStatusSuccess,
20999		ResourceSignalStatusFailure,
21000	}
21001}
21002
21003const (
21004	// ResourceStatusCreateInProgress is a ResourceStatus enum value
21005	ResourceStatusCreateInProgress = "CREATE_IN_PROGRESS"
21006
21007	// ResourceStatusCreateFailed is a ResourceStatus enum value
21008	ResourceStatusCreateFailed = "CREATE_FAILED"
21009
21010	// ResourceStatusCreateComplete is a ResourceStatus enum value
21011	ResourceStatusCreateComplete = "CREATE_COMPLETE"
21012
21013	// ResourceStatusDeleteInProgress is a ResourceStatus enum value
21014	ResourceStatusDeleteInProgress = "DELETE_IN_PROGRESS"
21015
21016	// ResourceStatusDeleteFailed is a ResourceStatus enum value
21017	ResourceStatusDeleteFailed = "DELETE_FAILED"
21018
21019	// ResourceStatusDeleteComplete is a ResourceStatus enum value
21020	ResourceStatusDeleteComplete = "DELETE_COMPLETE"
21021
21022	// ResourceStatusDeleteSkipped is a ResourceStatus enum value
21023	ResourceStatusDeleteSkipped = "DELETE_SKIPPED"
21024
21025	// ResourceStatusUpdateInProgress is a ResourceStatus enum value
21026	ResourceStatusUpdateInProgress = "UPDATE_IN_PROGRESS"
21027
21028	// ResourceStatusUpdateFailed is a ResourceStatus enum value
21029	ResourceStatusUpdateFailed = "UPDATE_FAILED"
21030
21031	// ResourceStatusUpdateComplete is a ResourceStatus enum value
21032	ResourceStatusUpdateComplete = "UPDATE_COMPLETE"
21033
21034	// ResourceStatusImportFailed is a ResourceStatus enum value
21035	ResourceStatusImportFailed = "IMPORT_FAILED"
21036
21037	// ResourceStatusImportComplete is a ResourceStatus enum value
21038	ResourceStatusImportComplete = "IMPORT_COMPLETE"
21039
21040	// ResourceStatusImportInProgress is a ResourceStatus enum value
21041	ResourceStatusImportInProgress = "IMPORT_IN_PROGRESS"
21042
21043	// ResourceStatusImportRollbackInProgress is a ResourceStatus enum value
21044	ResourceStatusImportRollbackInProgress = "IMPORT_ROLLBACK_IN_PROGRESS"
21045
21046	// ResourceStatusImportRollbackFailed is a ResourceStatus enum value
21047	ResourceStatusImportRollbackFailed = "IMPORT_ROLLBACK_FAILED"
21048
21049	// ResourceStatusImportRollbackComplete is a ResourceStatus enum value
21050	ResourceStatusImportRollbackComplete = "IMPORT_ROLLBACK_COMPLETE"
21051)
21052
21053// ResourceStatus_Values returns all elements of the ResourceStatus enum
21054func ResourceStatus_Values() []string {
21055	return []string{
21056		ResourceStatusCreateInProgress,
21057		ResourceStatusCreateFailed,
21058		ResourceStatusCreateComplete,
21059		ResourceStatusDeleteInProgress,
21060		ResourceStatusDeleteFailed,
21061		ResourceStatusDeleteComplete,
21062		ResourceStatusDeleteSkipped,
21063		ResourceStatusUpdateInProgress,
21064		ResourceStatusUpdateFailed,
21065		ResourceStatusUpdateComplete,
21066		ResourceStatusImportFailed,
21067		ResourceStatusImportComplete,
21068		ResourceStatusImportInProgress,
21069		ResourceStatusImportRollbackInProgress,
21070		ResourceStatusImportRollbackFailed,
21071		ResourceStatusImportRollbackComplete,
21072	}
21073}
21074
21075const (
21076	// StackDriftDetectionStatusDetectionInProgress is a StackDriftDetectionStatus enum value
21077	StackDriftDetectionStatusDetectionInProgress = "DETECTION_IN_PROGRESS"
21078
21079	// StackDriftDetectionStatusDetectionFailed is a StackDriftDetectionStatus enum value
21080	StackDriftDetectionStatusDetectionFailed = "DETECTION_FAILED"
21081
21082	// StackDriftDetectionStatusDetectionComplete is a StackDriftDetectionStatus enum value
21083	StackDriftDetectionStatusDetectionComplete = "DETECTION_COMPLETE"
21084)
21085
21086// StackDriftDetectionStatus_Values returns all elements of the StackDriftDetectionStatus enum
21087func StackDriftDetectionStatus_Values() []string {
21088	return []string{
21089		StackDriftDetectionStatusDetectionInProgress,
21090		StackDriftDetectionStatusDetectionFailed,
21091		StackDriftDetectionStatusDetectionComplete,
21092	}
21093}
21094
21095const (
21096	// StackDriftStatusDrifted is a StackDriftStatus enum value
21097	StackDriftStatusDrifted = "DRIFTED"
21098
21099	// StackDriftStatusInSync is a StackDriftStatus enum value
21100	StackDriftStatusInSync = "IN_SYNC"
21101
21102	// StackDriftStatusUnknown is a StackDriftStatus enum value
21103	StackDriftStatusUnknown = "UNKNOWN"
21104
21105	// StackDriftStatusNotChecked is a StackDriftStatus enum value
21106	StackDriftStatusNotChecked = "NOT_CHECKED"
21107)
21108
21109// StackDriftStatus_Values returns all elements of the StackDriftStatus enum
21110func StackDriftStatus_Values() []string {
21111	return []string{
21112		StackDriftStatusDrifted,
21113		StackDriftStatusInSync,
21114		StackDriftStatusUnknown,
21115		StackDriftStatusNotChecked,
21116	}
21117}
21118
21119const (
21120	// StackInstanceDetailedStatusPending is a StackInstanceDetailedStatus enum value
21121	StackInstanceDetailedStatusPending = "PENDING"
21122
21123	// StackInstanceDetailedStatusRunning is a StackInstanceDetailedStatus enum value
21124	StackInstanceDetailedStatusRunning = "RUNNING"
21125
21126	// StackInstanceDetailedStatusSucceeded is a StackInstanceDetailedStatus enum value
21127	StackInstanceDetailedStatusSucceeded = "SUCCEEDED"
21128
21129	// StackInstanceDetailedStatusFailed is a StackInstanceDetailedStatus enum value
21130	StackInstanceDetailedStatusFailed = "FAILED"
21131
21132	// StackInstanceDetailedStatusCancelled is a StackInstanceDetailedStatus enum value
21133	StackInstanceDetailedStatusCancelled = "CANCELLED"
21134
21135	// StackInstanceDetailedStatusInoperable is a StackInstanceDetailedStatus enum value
21136	StackInstanceDetailedStatusInoperable = "INOPERABLE"
21137)
21138
21139// StackInstanceDetailedStatus_Values returns all elements of the StackInstanceDetailedStatus enum
21140func StackInstanceDetailedStatus_Values() []string {
21141	return []string{
21142		StackInstanceDetailedStatusPending,
21143		StackInstanceDetailedStatusRunning,
21144		StackInstanceDetailedStatusSucceeded,
21145		StackInstanceDetailedStatusFailed,
21146		StackInstanceDetailedStatusCancelled,
21147		StackInstanceDetailedStatusInoperable,
21148	}
21149}
21150
21151const (
21152	// StackInstanceFilterNameDetailedStatus is a StackInstanceFilterName enum value
21153	StackInstanceFilterNameDetailedStatus = "DETAILED_STATUS"
21154)
21155
21156// StackInstanceFilterName_Values returns all elements of the StackInstanceFilterName enum
21157func StackInstanceFilterName_Values() []string {
21158	return []string{
21159		StackInstanceFilterNameDetailedStatus,
21160	}
21161}
21162
21163const (
21164	// StackInstanceStatusCurrent is a StackInstanceStatus enum value
21165	StackInstanceStatusCurrent = "CURRENT"
21166
21167	// StackInstanceStatusOutdated is a StackInstanceStatus enum value
21168	StackInstanceStatusOutdated = "OUTDATED"
21169
21170	// StackInstanceStatusInoperable is a StackInstanceStatus enum value
21171	StackInstanceStatusInoperable = "INOPERABLE"
21172)
21173
21174// StackInstanceStatus_Values returns all elements of the StackInstanceStatus enum
21175func StackInstanceStatus_Values() []string {
21176	return []string{
21177		StackInstanceStatusCurrent,
21178		StackInstanceStatusOutdated,
21179		StackInstanceStatusInoperable,
21180	}
21181}
21182
21183const (
21184	// StackResourceDriftStatusInSync is a StackResourceDriftStatus enum value
21185	StackResourceDriftStatusInSync = "IN_SYNC"
21186
21187	// StackResourceDriftStatusModified is a StackResourceDriftStatus enum value
21188	StackResourceDriftStatusModified = "MODIFIED"
21189
21190	// StackResourceDriftStatusDeleted is a StackResourceDriftStatus enum value
21191	StackResourceDriftStatusDeleted = "DELETED"
21192
21193	// StackResourceDriftStatusNotChecked is a StackResourceDriftStatus enum value
21194	StackResourceDriftStatusNotChecked = "NOT_CHECKED"
21195)
21196
21197// StackResourceDriftStatus_Values returns all elements of the StackResourceDriftStatus enum
21198func StackResourceDriftStatus_Values() []string {
21199	return []string{
21200		StackResourceDriftStatusInSync,
21201		StackResourceDriftStatusModified,
21202		StackResourceDriftStatusDeleted,
21203		StackResourceDriftStatusNotChecked,
21204	}
21205}
21206
21207const (
21208	// StackSetDriftDetectionStatusCompleted is a StackSetDriftDetectionStatus enum value
21209	StackSetDriftDetectionStatusCompleted = "COMPLETED"
21210
21211	// StackSetDriftDetectionStatusFailed is a StackSetDriftDetectionStatus enum value
21212	StackSetDriftDetectionStatusFailed = "FAILED"
21213
21214	// StackSetDriftDetectionStatusPartialSuccess is a StackSetDriftDetectionStatus enum value
21215	StackSetDriftDetectionStatusPartialSuccess = "PARTIAL_SUCCESS"
21216
21217	// StackSetDriftDetectionStatusInProgress is a StackSetDriftDetectionStatus enum value
21218	StackSetDriftDetectionStatusInProgress = "IN_PROGRESS"
21219
21220	// StackSetDriftDetectionStatusStopped is a StackSetDriftDetectionStatus enum value
21221	StackSetDriftDetectionStatusStopped = "STOPPED"
21222)
21223
21224// StackSetDriftDetectionStatus_Values returns all elements of the StackSetDriftDetectionStatus enum
21225func StackSetDriftDetectionStatus_Values() []string {
21226	return []string{
21227		StackSetDriftDetectionStatusCompleted,
21228		StackSetDriftDetectionStatusFailed,
21229		StackSetDriftDetectionStatusPartialSuccess,
21230		StackSetDriftDetectionStatusInProgress,
21231		StackSetDriftDetectionStatusStopped,
21232	}
21233}
21234
21235const (
21236	// StackSetDriftStatusDrifted is a StackSetDriftStatus enum value
21237	StackSetDriftStatusDrifted = "DRIFTED"
21238
21239	// StackSetDriftStatusInSync is a StackSetDriftStatus enum value
21240	StackSetDriftStatusInSync = "IN_SYNC"
21241
21242	// StackSetDriftStatusNotChecked is a StackSetDriftStatus enum value
21243	StackSetDriftStatusNotChecked = "NOT_CHECKED"
21244)
21245
21246// StackSetDriftStatus_Values returns all elements of the StackSetDriftStatus enum
21247func StackSetDriftStatus_Values() []string {
21248	return []string{
21249		StackSetDriftStatusDrifted,
21250		StackSetDriftStatusInSync,
21251		StackSetDriftStatusNotChecked,
21252	}
21253}
21254
21255const (
21256	// StackSetOperationActionCreate is a StackSetOperationAction enum value
21257	StackSetOperationActionCreate = "CREATE"
21258
21259	// StackSetOperationActionUpdate is a StackSetOperationAction enum value
21260	StackSetOperationActionUpdate = "UPDATE"
21261
21262	// StackSetOperationActionDelete is a StackSetOperationAction enum value
21263	StackSetOperationActionDelete = "DELETE"
21264
21265	// StackSetOperationActionDetectDrift is a StackSetOperationAction enum value
21266	StackSetOperationActionDetectDrift = "DETECT_DRIFT"
21267)
21268
21269// StackSetOperationAction_Values returns all elements of the StackSetOperationAction enum
21270func StackSetOperationAction_Values() []string {
21271	return []string{
21272		StackSetOperationActionCreate,
21273		StackSetOperationActionUpdate,
21274		StackSetOperationActionDelete,
21275		StackSetOperationActionDetectDrift,
21276	}
21277}
21278
21279const (
21280	// StackSetOperationResultStatusPending is a StackSetOperationResultStatus enum value
21281	StackSetOperationResultStatusPending = "PENDING"
21282
21283	// StackSetOperationResultStatusRunning is a StackSetOperationResultStatus enum value
21284	StackSetOperationResultStatusRunning = "RUNNING"
21285
21286	// StackSetOperationResultStatusSucceeded is a StackSetOperationResultStatus enum value
21287	StackSetOperationResultStatusSucceeded = "SUCCEEDED"
21288
21289	// StackSetOperationResultStatusFailed is a StackSetOperationResultStatus enum value
21290	StackSetOperationResultStatusFailed = "FAILED"
21291
21292	// StackSetOperationResultStatusCancelled is a StackSetOperationResultStatus enum value
21293	StackSetOperationResultStatusCancelled = "CANCELLED"
21294)
21295
21296// StackSetOperationResultStatus_Values returns all elements of the StackSetOperationResultStatus enum
21297func StackSetOperationResultStatus_Values() []string {
21298	return []string{
21299		StackSetOperationResultStatusPending,
21300		StackSetOperationResultStatusRunning,
21301		StackSetOperationResultStatusSucceeded,
21302		StackSetOperationResultStatusFailed,
21303		StackSetOperationResultStatusCancelled,
21304	}
21305}
21306
21307const (
21308	// StackSetOperationStatusRunning is a StackSetOperationStatus enum value
21309	StackSetOperationStatusRunning = "RUNNING"
21310
21311	// StackSetOperationStatusSucceeded is a StackSetOperationStatus enum value
21312	StackSetOperationStatusSucceeded = "SUCCEEDED"
21313
21314	// StackSetOperationStatusFailed is a StackSetOperationStatus enum value
21315	StackSetOperationStatusFailed = "FAILED"
21316
21317	// StackSetOperationStatusStopping is a StackSetOperationStatus enum value
21318	StackSetOperationStatusStopping = "STOPPING"
21319
21320	// StackSetOperationStatusStopped is a StackSetOperationStatus enum value
21321	StackSetOperationStatusStopped = "STOPPED"
21322
21323	// StackSetOperationStatusQueued is a StackSetOperationStatus enum value
21324	StackSetOperationStatusQueued = "QUEUED"
21325)
21326
21327// StackSetOperationStatus_Values returns all elements of the StackSetOperationStatus enum
21328func StackSetOperationStatus_Values() []string {
21329	return []string{
21330		StackSetOperationStatusRunning,
21331		StackSetOperationStatusSucceeded,
21332		StackSetOperationStatusFailed,
21333		StackSetOperationStatusStopping,
21334		StackSetOperationStatusStopped,
21335		StackSetOperationStatusQueued,
21336	}
21337}
21338
21339const (
21340	// StackSetStatusActive is a StackSetStatus enum value
21341	StackSetStatusActive = "ACTIVE"
21342
21343	// StackSetStatusDeleted is a StackSetStatus enum value
21344	StackSetStatusDeleted = "DELETED"
21345)
21346
21347// StackSetStatus_Values returns all elements of the StackSetStatus enum
21348func StackSetStatus_Values() []string {
21349	return []string{
21350		StackSetStatusActive,
21351		StackSetStatusDeleted,
21352	}
21353}
21354
21355const (
21356	// StackStatusCreateInProgress is a StackStatus enum value
21357	StackStatusCreateInProgress = "CREATE_IN_PROGRESS"
21358
21359	// StackStatusCreateFailed is a StackStatus enum value
21360	StackStatusCreateFailed = "CREATE_FAILED"
21361
21362	// StackStatusCreateComplete is a StackStatus enum value
21363	StackStatusCreateComplete = "CREATE_COMPLETE"
21364
21365	// StackStatusRollbackInProgress is a StackStatus enum value
21366	StackStatusRollbackInProgress = "ROLLBACK_IN_PROGRESS"
21367
21368	// StackStatusRollbackFailed is a StackStatus enum value
21369	StackStatusRollbackFailed = "ROLLBACK_FAILED"
21370
21371	// StackStatusRollbackComplete is a StackStatus enum value
21372	StackStatusRollbackComplete = "ROLLBACK_COMPLETE"
21373
21374	// StackStatusDeleteInProgress is a StackStatus enum value
21375	StackStatusDeleteInProgress = "DELETE_IN_PROGRESS"
21376
21377	// StackStatusDeleteFailed is a StackStatus enum value
21378	StackStatusDeleteFailed = "DELETE_FAILED"
21379
21380	// StackStatusDeleteComplete is a StackStatus enum value
21381	StackStatusDeleteComplete = "DELETE_COMPLETE"
21382
21383	// StackStatusUpdateInProgress is a StackStatus enum value
21384	StackStatusUpdateInProgress = "UPDATE_IN_PROGRESS"
21385
21386	// StackStatusUpdateCompleteCleanupInProgress is a StackStatus enum value
21387	StackStatusUpdateCompleteCleanupInProgress = "UPDATE_COMPLETE_CLEANUP_IN_PROGRESS"
21388
21389	// StackStatusUpdateComplete is a StackStatus enum value
21390	StackStatusUpdateComplete = "UPDATE_COMPLETE"
21391
21392	// StackStatusUpdateRollbackInProgress is a StackStatus enum value
21393	StackStatusUpdateRollbackInProgress = "UPDATE_ROLLBACK_IN_PROGRESS"
21394
21395	// StackStatusUpdateRollbackFailed is a StackStatus enum value
21396	StackStatusUpdateRollbackFailed = "UPDATE_ROLLBACK_FAILED"
21397
21398	// StackStatusUpdateRollbackCompleteCleanupInProgress is a StackStatus enum value
21399	StackStatusUpdateRollbackCompleteCleanupInProgress = "UPDATE_ROLLBACK_COMPLETE_CLEANUP_IN_PROGRESS"
21400
21401	// StackStatusUpdateRollbackComplete is a StackStatus enum value
21402	StackStatusUpdateRollbackComplete = "UPDATE_ROLLBACK_COMPLETE"
21403
21404	// StackStatusReviewInProgress is a StackStatus enum value
21405	StackStatusReviewInProgress = "REVIEW_IN_PROGRESS"
21406
21407	// StackStatusImportInProgress is a StackStatus enum value
21408	StackStatusImportInProgress = "IMPORT_IN_PROGRESS"
21409
21410	// StackStatusImportComplete is a StackStatus enum value
21411	StackStatusImportComplete = "IMPORT_COMPLETE"
21412
21413	// StackStatusImportRollbackInProgress is a StackStatus enum value
21414	StackStatusImportRollbackInProgress = "IMPORT_ROLLBACK_IN_PROGRESS"
21415
21416	// StackStatusImportRollbackFailed is a StackStatus enum value
21417	StackStatusImportRollbackFailed = "IMPORT_ROLLBACK_FAILED"
21418
21419	// StackStatusImportRollbackComplete is a StackStatus enum value
21420	StackStatusImportRollbackComplete = "IMPORT_ROLLBACK_COMPLETE"
21421)
21422
21423// StackStatus_Values returns all elements of the StackStatus enum
21424func StackStatus_Values() []string {
21425	return []string{
21426		StackStatusCreateInProgress,
21427		StackStatusCreateFailed,
21428		StackStatusCreateComplete,
21429		StackStatusRollbackInProgress,
21430		StackStatusRollbackFailed,
21431		StackStatusRollbackComplete,
21432		StackStatusDeleteInProgress,
21433		StackStatusDeleteFailed,
21434		StackStatusDeleteComplete,
21435		StackStatusUpdateInProgress,
21436		StackStatusUpdateCompleteCleanupInProgress,
21437		StackStatusUpdateComplete,
21438		StackStatusUpdateRollbackInProgress,
21439		StackStatusUpdateRollbackFailed,
21440		StackStatusUpdateRollbackCompleteCleanupInProgress,
21441		StackStatusUpdateRollbackComplete,
21442		StackStatusReviewInProgress,
21443		StackStatusImportInProgress,
21444		StackStatusImportComplete,
21445		StackStatusImportRollbackInProgress,
21446		StackStatusImportRollbackFailed,
21447		StackStatusImportRollbackComplete,
21448	}
21449}
21450
21451const (
21452	// TemplateStageOriginal is a TemplateStage enum value
21453	TemplateStageOriginal = "Original"
21454
21455	// TemplateStageProcessed is a TemplateStage enum value
21456	TemplateStageProcessed = "Processed"
21457)
21458
21459// TemplateStage_Values returns all elements of the TemplateStage enum
21460func TemplateStage_Values() []string {
21461	return []string{
21462		TemplateStageOriginal,
21463		TemplateStageProcessed,
21464	}
21465}
21466
21467const (
21468	// ThirdPartyTypeResource is a ThirdPartyType enum value
21469	ThirdPartyTypeResource = "RESOURCE"
21470
21471	// ThirdPartyTypeModule is a ThirdPartyType enum value
21472	ThirdPartyTypeModule = "MODULE"
21473)
21474
21475// ThirdPartyType_Values returns all elements of the ThirdPartyType enum
21476func ThirdPartyType_Values() []string {
21477	return []string{
21478		ThirdPartyTypeResource,
21479		ThirdPartyTypeModule,
21480	}
21481}
21482
21483const (
21484	// TypeTestsStatusPassed is a TypeTestsStatus enum value
21485	TypeTestsStatusPassed = "PASSED"
21486
21487	// TypeTestsStatusFailed is a TypeTestsStatus enum value
21488	TypeTestsStatusFailed = "FAILED"
21489
21490	// TypeTestsStatusInProgress is a TypeTestsStatus enum value
21491	TypeTestsStatusInProgress = "IN_PROGRESS"
21492
21493	// TypeTestsStatusNotTested is a TypeTestsStatus enum value
21494	TypeTestsStatusNotTested = "NOT_TESTED"
21495)
21496
21497// TypeTestsStatus_Values returns all elements of the TypeTestsStatus enum
21498func TypeTestsStatus_Values() []string {
21499	return []string{
21500		TypeTestsStatusPassed,
21501		TypeTestsStatusFailed,
21502		TypeTestsStatusInProgress,
21503		TypeTestsStatusNotTested,
21504	}
21505}
21506
21507const (
21508	// VersionBumpMajor is a VersionBump enum value
21509	VersionBumpMajor = "MAJOR"
21510
21511	// VersionBumpMinor is a VersionBump enum value
21512	VersionBumpMinor = "MINOR"
21513)
21514
21515// VersionBump_Values returns all elements of the VersionBump enum
21516func VersionBump_Values() []string {
21517	return []string{
21518		VersionBumpMajor,
21519		VersionBumpMinor,
21520	}
21521}
21522
21523const (
21524	// VisibilityPublic is a Visibility enum value
21525	VisibilityPublic = "PUBLIC"
21526
21527	// VisibilityPrivate is a Visibility enum value
21528	VisibilityPrivate = "PRIVATE"
21529)
21530
21531// Visibility_Values returns all elements of the Visibility enum
21532func Visibility_Values() []string {
21533	return []string{
21534		VisibilityPublic,
21535		VisibilityPrivate,
21536	}
21537}
21538