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 AWS CloudFormation
328// cannot roll back all changes after a failed stack update. For example, you
329// might have a stack that is rolling back to an old database instance that
330// was deleted outside of AWS CloudFormation. Because AWS CloudFormation doesn't
331// know the database was deleted, it assumes that the database instance still
332// exists and attempts 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 AWS CloudFormation will create. If you create a change set for an existing
416// stack, AWS 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 AWS CloudFormation will create or change, and
419// how 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, AWS CloudFormation starts
427// creating the change set. To check the status of the change set or to review
428// it, use 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. AWS 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 AWS 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 AWS 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 AWS 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 AWS 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, AWS CloudFormation successfully deleted
903// the 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 AWS 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 AWS CloudFormation Limits (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/cloudformation-limits.html)
1359// in the AWS 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 AWS 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 AWS 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 AWS 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// AWS 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 AWS 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 AWS resource descriptions for running and deleted stacks. If StackName
2188// is specified, all the associated resources that are part of the stack are
2189// returned. If PhysicalResourceId is specified, the associated resources of
2190// 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 AWS 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, AWS CloudFormation compares the actual configuration of
2751// the 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, AWS CloudFormation does not detect drift
2770// on 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 AWS 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// AWS Simple Monthly Calculator URL with a query string that describes the
3053// 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, AWS 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, AWS CloudFormation deletes all other change
3134// sets associated with the stack because they aren't valid for the updated
3135// stack.
3136//
3137// If a stack policy is associated with the stack, AWS CloudFormation enforces
3138// the policy during the update. You can't specify a temporary stack policy
3139// that overrides the current policy.
3140//
3141// To create a change set for the entire stack hierachy, IncludeNestedStacks
3142// must have been set to True.
3143//
3144// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
3145// with awserr.Error's Code and Message methods to get detailed information about
3146// the error.
3147//
3148// See the AWS API reference guide for AWS CloudFormation's
3149// API operation ExecuteChangeSet for usage and error information.
3150//
3151// Returned Error Codes:
3152//   * ErrCodeInvalidChangeSetStatusException "InvalidChangeSetStatus"
3153//   The specified change set can't be used to update the stack. For example,
3154//   the change set status might be CREATE_IN_PROGRESS, or the stack status might
3155//   be UPDATE_IN_PROGRESS.
3156//
3157//   * ErrCodeChangeSetNotFoundException "ChangeSetNotFound"
3158//   The specified change set name or ID doesn't exit. To view valid change sets
3159//   for a stack, use the ListChangeSets action.
3160//
3161//   * ErrCodeInsufficientCapabilitiesException "InsufficientCapabilitiesException"
3162//   The template contains resources with capabilities that weren't specified
3163//   in the Capabilities parameter.
3164//
3165//   * ErrCodeTokenAlreadyExistsException "TokenAlreadyExistsException"
3166//   A client request token already exists.
3167//
3168// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/ExecuteChangeSet
3169func (c *CloudFormation) ExecuteChangeSet(input *ExecuteChangeSetInput) (*ExecuteChangeSetOutput, error) {
3170	req, out := c.ExecuteChangeSetRequest(input)
3171	return out, req.Send()
3172}
3173
3174// ExecuteChangeSetWithContext is the same as ExecuteChangeSet with the addition of
3175// the ability to pass a context and additional request options.
3176//
3177// See ExecuteChangeSet for details on how to use this API operation.
3178//
3179// The context must be non-nil and will be used for request cancellation. If
3180// the context is nil a panic will occur. In the future the SDK may create
3181// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3182// for more information on using Contexts.
3183func (c *CloudFormation) ExecuteChangeSetWithContext(ctx aws.Context, input *ExecuteChangeSetInput, opts ...request.Option) (*ExecuteChangeSetOutput, error) {
3184	req, out := c.ExecuteChangeSetRequest(input)
3185	req.SetContext(ctx)
3186	req.ApplyOptions(opts...)
3187	return out, req.Send()
3188}
3189
3190const opGetStackPolicy = "GetStackPolicy"
3191
3192// GetStackPolicyRequest generates a "aws/request.Request" representing the
3193// client's request for the GetStackPolicy operation. The "output" return
3194// value will be populated with the request's response once the request completes
3195// successfully.
3196//
3197// Use "Send" method on the returned Request to send the API call to the service.
3198// the "output" return value is not valid until after Send returns without error.
3199//
3200// See GetStackPolicy for more information on using the GetStackPolicy
3201// API call, and error handling.
3202//
3203// This method is useful when you want to inject custom logic or configuration
3204// into the SDK's request lifecycle. Such as custom headers, or retry logic.
3205//
3206//
3207//    // Example sending a request using the GetStackPolicyRequest method.
3208//    req, resp := client.GetStackPolicyRequest(params)
3209//
3210//    err := req.Send()
3211//    if err == nil { // resp is now filled
3212//        fmt.Println(resp)
3213//    }
3214//
3215// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/GetStackPolicy
3216func (c *CloudFormation) GetStackPolicyRequest(input *GetStackPolicyInput) (req *request.Request, output *GetStackPolicyOutput) {
3217	op := &request.Operation{
3218		Name:       opGetStackPolicy,
3219		HTTPMethod: "POST",
3220		HTTPPath:   "/",
3221	}
3222
3223	if input == nil {
3224		input = &GetStackPolicyInput{}
3225	}
3226
3227	output = &GetStackPolicyOutput{}
3228	req = c.newRequest(op, input, output)
3229	return
3230}
3231
3232// GetStackPolicy API operation for AWS CloudFormation.
3233//
3234// Returns the stack policy for a specified stack. If a stack doesn't have a
3235// policy, a null value is returned.
3236//
3237// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
3238// with awserr.Error's Code and Message methods to get detailed information about
3239// the error.
3240//
3241// See the AWS API reference guide for AWS CloudFormation's
3242// API operation GetStackPolicy for usage and error information.
3243// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/GetStackPolicy
3244func (c *CloudFormation) GetStackPolicy(input *GetStackPolicyInput) (*GetStackPolicyOutput, error) {
3245	req, out := c.GetStackPolicyRequest(input)
3246	return out, req.Send()
3247}
3248
3249// GetStackPolicyWithContext is the same as GetStackPolicy with the addition of
3250// the ability to pass a context and additional request options.
3251//
3252// See GetStackPolicy for details on how to use this API operation.
3253//
3254// The context must be non-nil and will be used for request cancellation. If
3255// the context is nil a panic will occur. In the future the SDK may create
3256// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3257// for more information on using Contexts.
3258func (c *CloudFormation) GetStackPolicyWithContext(ctx aws.Context, input *GetStackPolicyInput, opts ...request.Option) (*GetStackPolicyOutput, error) {
3259	req, out := c.GetStackPolicyRequest(input)
3260	req.SetContext(ctx)
3261	req.ApplyOptions(opts...)
3262	return out, req.Send()
3263}
3264
3265const opGetTemplate = "GetTemplate"
3266
3267// GetTemplateRequest generates a "aws/request.Request" representing the
3268// client's request for the GetTemplate operation. The "output" return
3269// value will be populated with the request's response once the request completes
3270// successfully.
3271//
3272// Use "Send" method on the returned Request to send the API call to the service.
3273// the "output" return value is not valid until after Send returns without error.
3274//
3275// See GetTemplate for more information on using the GetTemplate
3276// API call, and error handling.
3277//
3278// This method is useful when you want to inject custom logic or configuration
3279// into the SDK's request lifecycle. Such as custom headers, or retry logic.
3280//
3281//
3282//    // Example sending a request using the GetTemplateRequest method.
3283//    req, resp := client.GetTemplateRequest(params)
3284//
3285//    err := req.Send()
3286//    if err == nil { // resp is now filled
3287//        fmt.Println(resp)
3288//    }
3289//
3290// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/GetTemplate
3291func (c *CloudFormation) GetTemplateRequest(input *GetTemplateInput) (req *request.Request, output *GetTemplateOutput) {
3292	op := &request.Operation{
3293		Name:       opGetTemplate,
3294		HTTPMethod: "POST",
3295		HTTPPath:   "/",
3296	}
3297
3298	if input == nil {
3299		input = &GetTemplateInput{}
3300	}
3301
3302	output = &GetTemplateOutput{}
3303	req = c.newRequest(op, input, output)
3304	return
3305}
3306
3307// GetTemplate API operation for AWS CloudFormation.
3308//
3309// Returns the template body for a specified stack. You can get the template
3310// for running or deleted stacks.
3311//
3312// For deleted stacks, GetTemplate returns the template for up to 90 days after
3313// the stack has been deleted.
3314//
3315// If the template does not exist, a ValidationError is returned.
3316//
3317// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
3318// with awserr.Error's Code and Message methods to get detailed information about
3319// the error.
3320//
3321// See the AWS API reference guide for AWS CloudFormation's
3322// API operation GetTemplate for usage and error information.
3323//
3324// Returned Error Codes:
3325//   * ErrCodeChangeSetNotFoundException "ChangeSetNotFound"
3326//   The specified change set name or ID doesn't exit. To view valid change sets
3327//   for a stack, use the ListChangeSets action.
3328//
3329// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/GetTemplate
3330func (c *CloudFormation) GetTemplate(input *GetTemplateInput) (*GetTemplateOutput, error) {
3331	req, out := c.GetTemplateRequest(input)
3332	return out, req.Send()
3333}
3334
3335// GetTemplateWithContext is the same as GetTemplate with the addition of
3336// the ability to pass a context and additional request options.
3337//
3338// See GetTemplate for details on how to use this API operation.
3339//
3340// The context must be non-nil and will be used for request cancellation. If
3341// the context is nil a panic will occur. In the future the SDK may create
3342// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3343// for more information on using Contexts.
3344func (c *CloudFormation) GetTemplateWithContext(ctx aws.Context, input *GetTemplateInput, opts ...request.Option) (*GetTemplateOutput, error) {
3345	req, out := c.GetTemplateRequest(input)
3346	req.SetContext(ctx)
3347	req.ApplyOptions(opts...)
3348	return out, req.Send()
3349}
3350
3351const opGetTemplateSummary = "GetTemplateSummary"
3352
3353// GetTemplateSummaryRequest generates a "aws/request.Request" representing the
3354// client's request for the GetTemplateSummary operation. The "output" return
3355// value will be populated with the request's response once the request completes
3356// successfully.
3357//
3358// Use "Send" method on the returned Request to send the API call to the service.
3359// the "output" return value is not valid until after Send returns without error.
3360//
3361// See GetTemplateSummary for more information on using the GetTemplateSummary
3362// API call, and error handling.
3363//
3364// This method is useful when you want to inject custom logic or configuration
3365// into the SDK's request lifecycle. Such as custom headers, or retry logic.
3366//
3367//
3368//    // Example sending a request using the GetTemplateSummaryRequest method.
3369//    req, resp := client.GetTemplateSummaryRequest(params)
3370//
3371//    err := req.Send()
3372//    if err == nil { // resp is now filled
3373//        fmt.Println(resp)
3374//    }
3375//
3376// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/GetTemplateSummary
3377func (c *CloudFormation) GetTemplateSummaryRequest(input *GetTemplateSummaryInput) (req *request.Request, output *GetTemplateSummaryOutput) {
3378	op := &request.Operation{
3379		Name:       opGetTemplateSummary,
3380		HTTPMethod: "POST",
3381		HTTPPath:   "/",
3382	}
3383
3384	if input == nil {
3385		input = &GetTemplateSummaryInput{}
3386	}
3387
3388	output = &GetTemplateSummaryOutput{}
3389	req = c.newRequest(op, input, output)
3390	return
3391}
3392
3393// GetTemplateSummary API operation for AWS CloudFormation.
3394//
3395// Returns information about a new or existing template. The GetTemplateSummary
3396// action is useful for viewing parameter information, such as default parameter
3397// values and parameter types, before you create or update a stack or stack
3398// set.
3399//
3400// You can use the GetTemplateSummary action when you submit a template, or
3401// you can get template information for a stack set, or a running or deleted
3402// stack.
3403//
3404// For deleted stacks, GetTemplateSummary returns the template information for
3405// up to 90 days after the stack has been deleted. If the template does not
3406// exist, a ValidationError is returned.
3407//
3408// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
3409// with awserr.Error's Code and Message methods to get detailed information about
3410// the error.
3411//
3412// See the AWS API reference guide for AWS CloudFormation's
3413// API operation GetTemplateSummary for usage and error information.
3414//
3415// Returned Error Codes:
3416//   * ErrCodeStackSetNotFoundException "StackSetNotFoundException"
3417//   The specified stack set doesn't exist.
3418//
3419// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/GetTemplateSummary
3420func (c *CloudFormation) GetTemplateSummary(input *GetTemplateSummaryInput) (*GetTemplateSummaryOutput, error) {
3421	req, out := c.GetTemplateSummaryRequest(input)
3422	return out, req.Send()
3423}
3424
3425// GetTemplateSummaryWithContext is the same as GetTemplateSummary with the addition of
3426// the ability to pass a context and additional request options.
3427//
3428// See GetTemplateSummary for details on how to use this API operation.
3429//
3430// The context must be non-nil and will be used for request cancellation. If
3431// the context is nil a panic will occur. In the future the SDK may create
3432// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3433// for more information on using Contexts.
3434func (c *CloudFormation) GetTemplateSummaryWithContext(ctx aws.Context, input *GetTemplateSummaryInput, opts ...request.Option) (*GetTemplateSummaryOutput, error) {
3435	req, out := c.GetTemplateSummaryRequest(input)
3436	req.SetContext(ctx)
3437	req.ApplyOptions(opts...)
3438	return out, req.Send()
3439}
3440
3441const opListChangeSets = "ListChangeSets"
3442
3443// ListChangeSetsRequest generates a "aws/request.Request" representing the
3444// client's request for the ListChangeSets operation. The "output" return
3445// value will be populated with the request's response once the request completes
3446// successfully.
3447//
3448// Use "Send" method on the returned Request to send the API call to the service.
3449// the "output" return value is not valid until after Send returns without error.
3450//
3451// See ListChangeSets for more information on using the ListChangeSets
3452// API call, and error handling.
3453//
3454// This method is useful when you want to inject custom logic or configuration
3455// into the SDK's request lifecycle. Such as custom headers, or retry logic.
3456//
3457//
3458//    // Example sending a request using the ListChangeSetsRequest method.
3459//    req, resp := client.ListChangeSetsRequest(params)
3460//
3461//    err := req.Send()
3462//    if err == nil { // resp is now filled
3463//        fmt.Println(resp)
3464//    }
3465//
3466// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/ListChangeSets
3467func (c *CloudFormation) ListChangeSetsRequest(input *ListChangeSetsInput) (req *request.Request, output *ListChangeSetsOutput) {
3468	op := &request.Operation{
3469		Name:       opListChangeSets,
3470		HTTPMethod: "POST",
3471		HTTPPath:   "/",
3472		Paginator: &request.Paginator{
3473			InputTokens:     []string{"NextToken"},
3474			OutputTokens:    []string{"NextToken"},
3475			LimitToken:      "",
3476			TruncationToken: "",
3477		},
3478	}
3479
3480	if input == nil {
3481		input = &ListChangeSetsInput{}
3482	}
3483
3484	output = &ListChangeSetsOutput{}
3485	req = c.newRequest(op, input, output)
3486	return
3487}
3488
3489// ListChangeSets API operation for AWS CloudFormation.
3490//
3491// Returns the ID and status of each active change set for a stack. For example,
3492// AWS CloudFormation lists change sets that are in the CREATE_IN_PROGRESS or
3493// CREATE_PENDING state.
3494//
3495// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
3496// with awserr.Error's Code and Message methods to get detailed information about
3497// the error.
3498//
3499// See the AWS API reference guide for AWS CloudFormation's
3500// API operation ListChangeSets for usage and error information.
3501// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/ListChangeSets
3502func (c *CloudFormation) ListChangeSets(input *ListChangeSetsInput) (*ListChangeSetsOutput, error) {
3503	req, out := c.ListChangeSetsRequest(input)
3504	return out, req.Send()
3505}
3506
3507// ListChangeSetsWithContext is the same as ListChangeSets with the addition of
3508// the ability to pass a context and additional request options.
3509//
3510// See ListChangeSets for details on how to use this API operation.
3511//
3512// The context must be non-nil and will be used for request cancellation. If
3513// the context is nil a panic will occur. In the future the SDK may create
3514// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3515// for more information on using Contexts.
3516func (c *CloudFormation) ListChangeSetsWithContext(ctx aws.Context, input *ListChangeSetsInput, opts ...request.Option) (*ListChangeSetsOutput, error) {
3517	req, out := c.ListChangeSetsRequest(input)
3518	req.SetContext(ctx)
3519	req.ApplyOptions(opts...)
3520	return out, req.Send()
3521}
3522
3523// ListChangeSetsPages iterates over the pages of a ListChangeSets operation,
3524// calling the "fn" function with the response data for each page. To stop
3525// iterating, return false from the fn function.
3526//
3527// See ListChangeSets method for more information on how to use this operation.
3528//
3529// Note: This operation can generate multiple requests to a service.
3530//
3531//    // Example iterating over at most 3 pages of a ListChangeSets operation.
3532//    pageNum := 0
3533//    err := client.ListChangeSetsPages(params,
3534//        func(page *cloudformation.ListChangeSetsOutput, lastPage bool) bool {
3535//            pageNum++
3536//            fmt.Println(page)
3537//            return pageNum <= 3
3538//        })
3539//
3540func (c *CloudFormation) ListChangeSetsPages(input *ListChangeSetsInput, fn func(*ListChangeSetsOutput, bool) bool) error {
3541	return c.ListChangeSetsPagesWithContext(aws.BackgroundContext(), input, fn)
3542}
3543
3544// ListChangeSetsPagesWithContext same as ListChangeSetsPages except
3545// it takes a Context and allows setting request options on the pages.
3546//
3547// The context must be non-nil and will be used for request cancellation. If
3548// the context is nil a panic will occur. In the future the SDK may create
3549// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3550// for more information on using Contexts.
3551func (c *CloudFormation) ListChangeSetsPagesWithContext(ctx aws.Context, input *ListChangeSetsInput, fn func(*ListChangeSetsOutput, bool) bool, opts ...request.Option) error {
3552	p := request.Pagination{
3553		NewRequest: func() (*request.Request, error) {
3554			var inCpy *ListChangeSetsInput
3555			if input != nil {
3556				tmp := *input
3557				inCpy = &tmp
3558			}
3559			req, _ := c.ListChangeSetsRequest(inCpy)
3560			req.SetContext(ctx)
3561			req.ApplyOptions(opts...)
3562			return req, nil
3563		},
3564	}
3565
3566	for p.Next() {
3567		if !fn(p.Page().(*ListChangeSetsOutput), !p.HasNextPage()) {
3568			break
3569		}
3570	}
3571
3572	return p.Err()
3573}
3574
3575const opListExports = "ListExports"
3576
3577// ListExportsRequest generates a "aws/request.Request" representing the
3578// client's request for the ListExports operation. The "output" return
3579// value will be populated with the request's response once the request completes
3580// successfully.
3581//
3582// Use "Send" method on the returned Request to send the API call to the service.
3583// the "output" return value is not valid until after Send returns without error.
3584//
3585// See ListExports for more information on using the ListExports
3586// API call, and error handling.
3587//
3588// This method is useful when you want to inject custom logic or configuration
3589// into the SDK's request lifecycle. Such as custom headers, or retry logic.
3590//
3591//
3592//    // Example sending a request using the ListExportsRequest method.
3593//    req, resp := client.ListExportsRequest(params)
3594//
3595//    err := req.Send()
3596//    if err == nil { // resp is now filled
3597//        fmt.Println(resp)
3598//    }
3599//
3600// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/ListExports
3601func (c *CloudFormation) ListExportsRequest(input *ListExportsInput) (req *request.Request, output *ListExportsOutput) {
3602	op := &request.Operation{
3603		Name:       opListExports,
3604		HTTPMethod: "POST",
3605		HTTPPath:   "/",
3606		Paginator: &request.Paginator{
3607			InputTokens:     []string{"NextToken"},
3608			OutputTokens:    []string{"NextToken"},
3609			LimitToken:      "",
3610			TruncationToken: "",
3611		},
3612	}
3613
3614	if input == nil {
3615		input = &ListExportsInput{}
3616	}
3617
3618	output = &ListExportsOutput{}
3619	req = c.newRequest(op, input, output)
3620	return
3621}
3622
3623// ListExports API operation for AWS CloudFormation.
3624//
3625// Lists all exported output values in the account and Region in which you call
3626// this action. Use this action to see the exported output values that you can
3627// import into other stacks. To import values, use the Fn::ImportValue (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/intrinsic-function-reference-importvalue.html)
3628// function.
3629//
3630// For more information, see AWS CloudFormation Export Stack Output Values (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-stack-exports.html).
3631//
3632// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
3633// with awserr.Error's Code and Message methods to get detailed information about
3634// the error.
3635//
3636// See the AWS API reference guide for AWS CloudFormation's
3637// API operation ListExports for usage and error information.
3638// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/ListExports
3639func (c *CloudFormation) ListExports(input *ListExportsInput) (*ListExportsOutput, error) {
3640	req, out := c.ListExportsRequest(input)
3641	return out, req.Send()
3642}
3643
3644// ListExportsWithContext is the same as ListExports with the addition of
3645// the ability to pass a context and additional request options.
3646//
3647// See ListExports for details on how to use this API operation.
3648//
3649// The context must be non-nil and will be used for request cancellation. If
3650// the context is nil a panic will occur. In the future the SDK may create
3651// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3652// for more information on using Contexts.
3653func (c *CloudFormation) ListExportsWithContext(ctx aws.Context, input *ListExportsInput, opts ...request.Option) (*ListExportsOutput, error) {
3654	req, out := c.ListExportsRequest(input)
3655	req.SetContext(ctx)
3656	req.ApplyOptions(opts...)
3657	return out, req.Send()
3658}
3659
3660// ListExportsPages iterates over the pages of a ListExports operation,
3661// calling the "fn" function with the response data for each page. To stop
3662// iterating, return false from the fn function.
3663//
3664// See ListExports method for more information on how to use this operation.
3665//
3666// Note: This operation can generate multiple requests to a service.
3667//
3668//    // Example iterating over at most 3 pages of a ListExports operation.
3669//    pageNum := 0
3670//    err := client.ListExportsPages(params,
3671//        func(page *cloudformation.ListExportsOutput, lastPage bool) bool {
3672//            pageNum++
3673//            fmt.Println(page)
3674//            return pageNum <= 3
3675//        })
3676//
3677func (c *CloudFormation) ListExportsPages(input *ListExportsInput, fn func(*ListExportsOutput, bool) bool) error {
3678	return c.ListExportsPagesWithContext(aws.BackgroundContext(), input, fn)
3679}
3680
3681// ListExportsPagesWithContext same as ListExportsPages except
3682// it takes a Context and allows setting request options on the pages.
3683//
3684// The context must be non-nil and will be used for request cancellation. If
3685// the context is nil a panic will occur. In the future the SDK may create
3686// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3687// for more information on using Contexts.
3688func (c *CloudFormation) ListExportsPagesWithContext(ctx aws.Context, input *ListExportsInput, fn func(*ListExportsOutput, bool) bool, opts ...request.Option) error {
3689	p := request.Pagination{
3690		NewRequest: func() (*request.Request, error) {
3691			var inCpy *ListExportsInput
3692			if input != nil {
3693				tmp := *input
3694				inCpy = &tmp
3695			}
3696			req, _ := c.ListExportsRequest(inCpy)
3697			req.SetContext(ctx)
3698			req.ApplyOptions(opts...)
3699			return req, nil
3700		},
3701	}
3702
3703	for p.Next() {
3704		if !fn(p.Page().(*ListExportsOutput), !p.HasNextPage()) {
3705			break
3706		}
3707	}
3708
3709	return p.Err()
3710}
3711
3712const opListImports = "ListImports"
3713
3714// ListImportsRequest generates a "aws/request.Request" representing the
3715// client's request for the ListImports operation. The "output" return
3716// value will be populated with the request's response once the request completes
3717// successfully.
3718//
3719// Use "Send" method on the returned Request to send the API call to the service.
3720// the "output" return value is not valid until after Send returns without error.
3721//
3722// See ListImports for more information on using the ListImports
3723// API call, and error handling.
3724//
3725// This method is useful when you want to inject custom logic or configuration
3726// into the SDK's request lifecycle. Such as custom headers, or retry logic.
3727//
3728//
3729//    // Example sending a request using the ListImportsRequest method.
3730//    req, resp := client.ListImportsRequest(params)
3731//
3732//    err := req.Send()
3733//    if err == nil { // resp is now filled
3734//        fmt.Println(resp)
3735//    }
3736//
3737// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/ListImports
3738func (c *CloudFormation) ListImportsRequest(input *ListImportsInput) (req *request.Request, output *ListImportsOutput) {
3739	op := &request.Operation{
3740		Name:       opListImports,
3741		HTTPMethod: "POST",
3742		HTTPPath:   "/",
3743		Paginator: &request.Paginator{
3744			InputTokens:     []string{"NextToken"},
3745			OutputTokens:    []string{"NextToken"},
3746			LimitToken:      "",
3747			TruncationToken: "",
3748		},
3749	}
3750
3751	if input == nil {
3752		input = &ListImportsInput{}
3753	}
3754
3755	output = &ListImportsOutput{}
3756	req = c.newRequest(op, input, output)
3757	return
3758}
3759
3760// ListImports API operation for AWS CloudFormation.
3761//
3762// Lists all stacks that are importing an exported output value. To modify or
3763// remove an exported output value, first use this action to see which stacks
3764// are using it. To see the exported output values in your account, see ListExports.
3765//
3766// For more information about importing an exported output value, see the Fn::ImportValue
3767// (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/intrinsic-function-reference-importvalue.html)
3768// function.
3769//
3770// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
3771// with awserr.Error's Code and Message methods to get detailed information about
3772// the error.
3773//
3774// See the AWS API reference guide for AWS CloudFormation's
3775// API operation ListImports for usage and error information.
3776// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/ListImports
3777func (c *CloudFormation) ListImports(input *ListImportsInput) (*ListImportsOutput, error) {
3778	req, out := c.ListImportsRequest(input)
3779	return out, req.Send()
3780}
3781
3782// ListImportsWithContext is the same as ListImports with the addition of
3783// the ability to pass a context and additional request options.
3784//
3785// See ListImports for details on how to use this API operation.
3786//
3787// The context must be non-nil and will be used for request cancellation. If
3788// the context is nil a panic will occur. In the future the SDK may create
3789// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3790// for more information on using Contexts.
3791func (c *CloudFormation) ListImportsWithContext(ctx aws.Context, input *ListImportsInput, opts ...request.Option) (*ListImportsOutput, error) {
3792	req, out := c.ListImportsRequest(input)
3793	req.SetContext(ctx)
3794	req.ApplyOptions(opts...)
3795	return out, req.Send()
3796}
3797
3798// ListImportsPages iterates over the pages of a ListImports operation,
3799// calling the "fn" function with the response data for each page. To stop
3800// iterating, return false from the fn function.
3801//
3802// See ListImports method for more information on how to use this operation.
3803//
3804// Note: This operation can generate multiple requests to a service.
3805//
3806//    // Example iterating over at most 3 pages of a ListImports operation.
3807//    pageNum := 0
3808//    err := client.ListImportsPages(params,
3809//        func(page *cloudformation.ListImportsOutput, lastPage bool) bool {
3810//            pageNum++
3811//            fmt.Println(page)
3812//            return pageNum <= 3
3813//        })
3814//
3815func (c *CloudFormation) ListImportsPages(input *ListImportsInput, fn func(*ListImportsOutput, bool) bool) error {
3816	return c.ListImportsPagesWithContext(aws.BackgroundContext(), input, fn)
3817}
3818
3819// ListImportsPagesWithContext same as ListImportsPages except
3820// it takes a Context and allows setting request options on the pages.
3821//
3822// The context must be non-nil and will be used for request cancellation. If
3823// the context is nil a panic will occur. In the future the SDK may create
3824// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3825// for more information on using Contexts.
3826func (c *CloudFormation) ListImportsPagesWithContext(ctx aws.Context, input *ListImportsInput, fn func(*ListImportsOutput, bool) bool, opts ...request.Option) error {
3827	p := request.Pagination{
3828		NewRequest: func() (*request.Request, error) {
3829			var inCpy *ListImportsInput
3830			if input != nil {
3831				tmp := *input
3832				inCpy = &tmp
3833			}
3834			req, _ := c.ListImportsRequest(inCpy)
3835			req.SetContext(ctx)
3836			req.ApplyOptions(opts...)
3837			return req, nil
3838		},
3839	}
3840
3841	for p.Next() {
3842		if !fn(p.Page().(*ListImportsOutput), !p.HasNextPage()) {
3843			break
3844		}
3845	}
3846
3847	return p.Err()
3848}
3849
3850const opListStackInstances = "ListStackInstances"
3851
3852// ListStackInstancesRequest generates a "aws/request.Request" representing the
3853// client's request for the ListStackInstances operation. The "output" return
3854// value will be populated with the request's response once the request completes
3855// successfully.
3856//
3857// Use "Send" method on the returned Request to send the API call to the service.
3858// the "output" return value is not valid until after Send returns without error.
3859//
3860// See ListStackInstances for more information on using the ListStackInstances
3861// API call, and error handling.
3862//
3863// This method is useful when you want to inject custom logic or configuration
3864// into the SDK's request lifecycle. Such as custom headers, or retry logic.
3865//
3866//
3867//    // Example sending a request using the ListStackInstancesRequest method.
3868//    req, resp := client.ListStackInstancesRequest(params)
3869//
3870//    err := req.Send()
3871//    if err == nil { // resp is now filled
3872//        fmt.Println(resp)
3873//    }
3874//
3875// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/ListStackInstances
3876func (c *CloudFormation) ListStackInstancesRequest(input *ListStackInstancesInput) (req *request.Request, output *ListStackInstancesOutput) {
3877	op := &request.Operation{
3878		Name:       opListStackInstances,
3879		HTTPMethod: "POST",
3880		HTTPPath:   "/",
3881		Paginator: &request.Paginator{
3882			InputTokens:     []string{"NextToken"},
3883			OutputTokens:    []string{"NextToken"},
3884			LimitToken:      "MaxResults",
3885			TruncationToken: "",
3886		},
3887	}
3888
3889	if input == nil {
3890		input = &ListStackInstancesInput{}
3891	}
3892
3893	output = &ListStackInstancesOutput{}
3894	req = c.newRequest(op, input, output)
3895	return
3896}
3897
3898// ListStackInstances API operation for AWS CloudFormation.
3899//
3900// Returns summary information about stack instances that are associated with
3901// the specified stack set. You can filter for stack instances that are associated
3902// with a specific AWS account name or Region, or that have a specific status.
3903//
3904// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
3905// with awserr.Error's Code and Message methods to get detailed information about
3906// the error.
3907//
3908// See the AWS API reference guide for AWS CloudFormation's
3909// API operation ListStackInstances for usage and error information.
3910//
3911// Returned Error Codes:
3912//   * ErrCodeStackSetNotFoundException "StackSetNotFoundException"
3913//   The specified stack set doesn't exist.
3914//
3915// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/ListStackInstances
3916func (c *CloudFormation) ListStackInstances(input *ListStackInstancesInput) (*ListStackInstancesOutput, error) {
3917	req, out := c.ListStackInstancesRequest(input)
3918	return out, req.Send()
3919}
3920
3921// ListStackInstancesWithContext is the same as ListStackInstances with the addition of
3922// the ability to pass a context and additional request options.
3923//
3924// See ListStackInstances for details on how to use this API operation.
3925//
3926// The context must be non-nil and will be used for request cancellation. If
3927// the context is nil a panic will occur. In the future the SDK may create
3928// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3929// for more information on using Contexts.
3930func (c *CloudFormation) ListStackInstancesWithContext(ctx aws.Context, input *ListStackInstancesInput, opts ...request.Option) (*ListStackInstancesOutput, error) {
3931	req, out := c.ListStackInstancesRequest(input)
3932	req.SetContext(ctx)
3933	req.ApplyOptions(opts...)
3934	return out, req.Send()
3935}
3936
3937// ListStackInstancesPages iterates over the pages of a ListStackInstances operation,
3938// calling the "fn" function with the response data for each page. To stop
3939// iterating, return false from the fn function.
3940//
3941// See ListStackInstances method for more information on how to use this operation.
3942//
3943// Note: This operation can generate multiple requests to a service.
3944//
3945//    // Example iterating over at most 3 pages of a ListStackInstances operation.
3946//    pageNum := 0
3947//    err := client.ListStackInstancesPages(params,
3948//        func(page *cloudformation.ListStackInstancesOutput, lastPage bool) bool {
3949//            pageNum++
3950//            fmt.Println(page)
3951//            return pageNum <= 3
3952//        })
3953//
3954func (c *CloudFormation) ListStackInstancesPages(input *ListStackInstancesInput, fn func(*ListStackInstancesOutput, bool) bool) error {
3955	return c.ListStackInstancesPagesWithContext(aws.BackgroundContext(), input, fn)
3956}
3957
3958// ListStackInstancesPagesWithContext same as ListStackInstancesPages except
3959// it takes a Context and allows setting request options on the pages.
3960//
3961// The context must be non-nil and will be used for request cancellation. If
3962// the context is nil a panic will occur. In the future the SDK may create
3963// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3964// for more information on using Contexts.
3965func (c *CloudFormation) ListStackInstancesPagesWithContext(ctx aws.Context, input *ListStackInstancesInput, fn func(*ListStackInstancesOutput, bool) bool, opts ...request.Option) error {
3966	p := request.Pagination{
3967		NewRequest: func() (*request.Request, error) {
3968			var inCpy *ListStackInstancesInput
3969			if input != nil {
3970				tmp := *input
3971				inCpy = &tmp
3972			}
3973			req, _ := c.ListStackInstancesRequest(inCpy)
3974			req.SetContext(ctx)
3975			req.ApplyOptions(opts...)
3976			return req, nil
3977		},
3978	}
3979
3980	for p.Next() {
3981		if !fn(p.Page().(*ListStackInstancesOutput), !p.HasNextPage()) {
3982			break
3983		}
3984	}
3985
3986	return p.Err()
3987}
3988
3989const opListStackResources = "ListStackResources"
3990
3991// ListStackResourcesRequest generates a "aws/request.Request" representing the
3992// client's request for the ListStackResources operation. The "output" return
3993// value will be populated with the request's response once the request completes
3994// successfully.
3995//
3996// Use "Send" method on the returned Request to send the API call to the service.
3997// the "output" return value is not valid until after Send returns without error.
3998//
3999// See ListStackResources for more information on using the ListStackResources
4000// API call, and error handling.
4001//
4002// This method is useful when you want to inject custom logic or configuration
4003// into the SDK's request lifecycle. Such as custom headers, or retry logic.
4004//
4005//
4006//    // Example sending a request using the ListStackResourcesRequest method.
4007//    req, resp := client.ListStackResourcesRequest(params)
4008//
4009//    err := req.Send()
4010//    if err == nil { // resp is now filled
4011//        fmt.Println(resp)
4012//    }
4013//
4014// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/ListStackResources
4015func (c *CloudFormation) ListStackResourcesRequest(input *ListStackResourcesInput) (req *request.Request, output *ListStackResourcesOutput) {
4016	op := &request.Operation{
4017		Name:       opListStackResources,
4018		HTTPMethod: "POST",
4019		HTTPPath:   "/",
4020		Paginator: &request.Paginator{
4021			InputTokens:     []string{"NextToken"},
4022			OutputTokens:    []string{"NextToken"},
4023			LimitToken:      "",
4024			TruncationToken: "",
4025		},
4026	}
4027
4028	if input == nil {
4029		input = &ListStackResourcesInput{}
4030	}
4031
4032	output = &ListStackResourcesOutput{}
4033	req = c.newRequest(op, input, output)
4034	return
4035}
4036
4037// ListStackResources API operation for AWS CloudFormation.
4038//
4039// Returns descriptions of all resources of the specified stack.
4040//
4041// For deleted stacks, ListStackResources returns resource information for up
4042// to 90 days after the stack has been deleted.
4043//
4044// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
4045// with awserr.Error's Code and Message methods to get detailed information about
4046// the error.
4047//
4048// See the AWS API reference guide for AWS CloudFormation's
4049// API operation ListStackResources for usage and error information.
4050// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/ListStackResources
4051func (c *CloudFormation) ListStackResources(input *ListStackResourcesInput) (*ListStackResourcesOutput, error) {
4052	req, out := c.ListStackResourcesRequest(input)
4053	return out, req.Send()
4054}
4055
4056// ListStackResourcesWithContext is the same as ListStackResources with the addition of
4057// the ability to pass a context and additional request options.
4058//
4059// See ListStackResources for details on how to use this API operation.
4060//
4061// The context must be non-nil and will be used for request cancellation. If
4062// the context is nil a panic will occur. In the future the SDK may create
4063// sub-contexts for http.Requests. See https://golang.org/pkg/context/
4064// for more information on using Contexts.
4065func (c *CloudFormation) ListStackResourcesWithContext(ctx aws.Context, input *ListStackResourcesInput, opts ...request.Option) (*ListStackResourcesOutput, error) {
4066	req, out := c.ListStackResourcesRequest(input)
4067	req.SetContext(ctx)
4068	req.ApplyOptions(opts...)
4069	return out, req.Send()
4070}
4071
4072// ListStackResourcesPages iterates over the pages of a ListStackResources operation,
4073// calling the "fn" function with the response data for each page. To stop
4074// iterating, return false from the fn function.
4075//
4076// See ListStackResources method for more information on how to use this operation.
4077//
4078// Note: This operation can generate multiple requests to a service.
4079//
4080//    // Example iterating over at most 3 pages of a ListStackResources operation.
4081//    pageNum := 0
4082//    err := client.ListStackResourcesPages(params,
4083//        func(page *cloudformation.ListStackResourcesOutput, lastPage bool) bool {
4084//            pageNum++
4085//            fmt.Println(page)
4086//            return pageNum <= 3
4087//        })
4088//
4089func (c *CloudFormation) ListStackResourcesPages(input *ListStackResourcesInput, fn func(*ListStackResourcesOutput, bool) bool) error {
4090	return c.ListStackResourcesPagesWithContext(aws.BackgroundContext(), input, fn)
4091}
4092
4093// ListStackResourcesPagesWithContext same as ListStackResourcesPages except
4094// it takes a Context and allows setting request options on the pages.
4095//
4096// The context must be non-nil and will be used for request cancellation. If
4097// the context is nil a panic will occur. In the future the SDK may create
4098// sub-contexts for http.Requests. See https://golang.org/pkg/context/
4099// for more information on using Contexts.
4100func (c *CloudFormation) ListStackResourcesPagesWithContext(ctx aws.Context, input *ListStackResourcesInput, fn func(*ListStackResourcesOutput, bool) bool, opts ...request.Option) error {
4101	p := request.Pagination{
4102		NewRequest: func() (*request.Request, error) {
4103			var inCpy *ListStackResourcesInput
4104			if input != nil {
4105				tmp := *input
4106				inCpy = &tmp
4107			}
4108			req, _ := c.ListStackResourcesRequest(inCpy)
4109			req.SetContext(ctx)
4110			req.ApplyOptions(opts...)
4111			return req, nil
4112		},
4113	}
4114
4115	for p.Next() {
4116		if !fn(p.Page().(*ListStackResourcesOutput), !p.HasNextPage()) {
4117			break
4118		}
4119	}
4120
4121	return p.Err()
4122}
4123
4124const opListStackSetOperationResults = "ListStackSetOperationResults"
4125
4126// ListStackSetOperationResultsRequest generates a "aws/request.Request" representing the
4127// client's request for the ListStackSetOperationResults operation. The "output" return
4128// value will be populated with the request's response once the request completes
4129// successfully.
4130//
4131// Use "Send" method on the returned Request to send the API call to the service.
4132// the "output" return value is not valid until after Send returns without error.
4133//
4134// See ListStackSetOperationResults for more information on using the ListStackSetOperationResults
4135// API call, and error handling.
4136//
4137// This method is useful when you want to inject custom logic or configuration
4138// into the SDK's request lifecycle. Such as custom headers, or retry logic.
4139//
4140//
4141//    // Example sending a request using the ListStackSetOperationResultsRequest method.
4142//    req, resp := client.ListStackSetOperationResultsRequest(params)
4143//
4144//    err := req.Send()
4145//    if err == nil { // resp is now filled
4146//        fmt.Println(resp)
4147//    }
4148//
4149// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/ListStackSetOperationResults
4150func (c *CloudFormation) ListStackSetOperationResultsRequest(input *ListStackSetOperationResultsInput) (req *request.Request, output *ListStackSetOperationResultsOutput) {
4151	op := &request.Operation{
4152		Name:       opListStackSetOperationResults,
4153		HTTPMethod: "POST",
4154		HTTPPath:   "/",
4155		Paginator: &request.Paginator{
4156			InputTokens:     []string{"NextToken"},
4157			OutputTokens:    []string{"NextToken"},
4158			LimitToken:      "MaxResults",
4159			TruncationToken: "",
4160		},
4161	}
4162
4163	if input == nil {
4164		input = &ListStackSetOperationResultsInput{}
4165	}
4166
4167	output = &ListStackSetOperationResultsOutput{}
4168	req = c.newRequest(op, input, output)
4169	return
4170}
4171
4172// ListStackSetOperationResults API operation for AWS CloudFormation.
4173//
4174// Returns summary information about the results of a stack set operation.
4175//
4176// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
4177// with awserr.Error's Code and Message methods to get detailed information about
4178// the error.
4179//
4180// See the AWS API reference guide for AWS CloudFormation's
4181// API operation ListStackSetOperationResults for usage and error information.
4182//
4183// Returned Error Codes:
4184//   * ErrCodeStackSetNotFoundException "StackSetNotFoundException"
4185//   The specified stack set doesn't exist.
4186//
4187//   * ErrCodeOperationNotFoundException "OperationNotFoundException"
4188//   The specified ID refers to an operation that doesn't exist.
4189//
4190// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/ListStackSetOperationResults
4191func (c *CloudFormation) ListStackSetOperationResults(input *ListStackSetOperationResultsInput) (*ListStackSetOperationResultsOutput, error) {
4192	req, out := c.ListStackSetOperationResultsRequest(input)
4193	return out, req.Send()
4194}
4195
4196// ListStackSetOperationResultsWithContext is the same as ListStackSetOperationResults with the addition of
4197// the ability to pass a context and additional request options.
4198//
4199// See ListStackSetOperationResults for details on how to use this API operation.
4200//
4201// The context must be non-nil and will be used for request cancellation. If
4202// the context is nil a panic will occur. In the future the SDK may create
4203// sub-contexts for http.Requests. See https://golang.org/pkg/context/
4204// for more information on using Contexts.
4205func (c *CloudFormation) ListStackSetOperationResultsWithContext(ctx aws.Context, input *ListStackSetOperationResultsInput, opts ...request.Option) (*ListStackSetOperationResultsOutput, error) {
4206	req, out := c.ListStackSetOperationResultsRequest(input)
4207	req.SetContext(ctx)
4208	req.ApplyOptions(opts...)
4209	return out, req.Send()
4210}
4211
4212// ListStackSetOperationResultsPages iterates over the pages of a ListStackSetOperationResults operation,
4213// calling the "fn" function with the response data for each page. To stop
4214// iterating, return false from the fn function.
4215//
4216// See ListStackSetOperationResults method for more information on how to use this operation.
4217//
4218// Note: This operation can generate multiple requests to a service.
4219//
4220//    // Example iterating over at most 3 pages of a ListStackSetOperationResults operation.
4221//    pageNum := 0
4222//    err := client.ListStackSetOperationResultsPages(params,
4223//        func(page *cloudformation.ListStackSetOperationResultsOutput, lastPage bool) bool {
4224//            pageNum++
4225//            fmt.Println(page)
4226//            return pageNum <= 3
4227//        })
4228//
4229func (c *CloudFormation) ListStackSetOperationResultsPages(input *ListStackSetOperationResultsInput, fn func(*ListStackSetOperationResultsOutput, bool) bool) error {
4230	return c.ListStackSetOperationResultsPagesWithContext(aws.BackgroundContext(), input, fn)
4231}
4232
4233// ListStackSetOperationResultsPagesWithContext same as ListStackSetOperationResultsPages except
4234// it takes a Context and allows setting request options on the pages.
4235//
4236// The context must be non-nil and will be used for request cancellation. If
4237// the context is nil a panic will occur. In the future the SDK may create
4238// sub-contexts for http.Requests. See https://golang.org/pkg/context/
4239// for more information on using Contexts.
4240func (c *CloudFormation) ListStackSetOperationResultsPagesWithContext(ctx aws.Context, input *ListStackSetOperationResultsInput, fn func(*ListStackSetOperationResultsOutput, bool) bool, opts ...request.Option) error {
4241	p := request.Pagination{
4242		NewRequest: func() (*request.Request, error) {
4243			var inCpy *ListStackSetOperationResultsInput
4244			if input != nil {
4245				tmp := *input
4246				inCpy = &tmp
4247			}
4248			req, _ := c.ListStackSetOperationResultsRequest(inCpy)
4249			req.SetContext(ctx)
4250			req.ApplyOptions(opts...)
4251			return req, nil
4252		},
4253	}
4254
4255	for p.Next() {
4256		if !fn(p.Page().(*ListStackSetOperationResultsOutput), !p.HasNextPage()) {
4257			break
4258		}
4259	}
4260
4261	return p.Err()
4262}
4263
4264const opListStackSetOperations = "ListStackSetOperations"
4265
4266// ListStackSetOperationsRequest generates a "aws/request.Request" representing the
4267// client's request for the ListStackSetOperations operation. The "output" return
4268// value will be populated with the request's response once the request completes
4269// successfully.
4270//
4271// Use "Send" method on the returned Request to send the API call to the service.
4272// the "output" return value is not valid until after Send returns without error.
4273//
4274// See ListStackSetOperations for more information on using the ListStackSetOperations
4275// API call, and error handling.
4276//
4277// This method is useful when you want to inject custom logic or configuration
4278// into the SDK's request lifecycle. Such as custom headers, or retry logic.
4279//
4280//
4281//    // Example sending a request using the ListStackSetOperationsRequest method.
4282//    req, resp := client.ListStackSetOperationsRequest(params)
4283//
4284//    err := req.Send()
4285//    if err == nil { // resp is now filled
4286//        fmt.Println(resp)
4287//    }
4288//
4289// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/ListStackSetOperations
4290func (c *CloudFormation) ListStackSetOperationsRequest(input *ListStackSetOperationsInput) (req *request.Request, output *ListStackSetOperationsOutput) {
4291	op := &request.Operation{
4292		Name:       opListStackSetOperations,
4293		HTTPMethod: "POST",
4294		HTTPPath:   "/",
4295		Paginator: &request.Paginator{
4296			InputTokens:     []string{"NextToken"},
4297			OutputTokens:    []string{"NextToken"},
4298			LimitToken:      "MaxResults",
4299			TruncationToken: "",
4300		},
4301	}
4302
4303	if input == nil {
4304		input = &ListStackSetOperationsInput{}
4305	}
4306
4307	output = &ListStackSetOperationsOutput{}
4308	req = c.newRequest(op, input, output)
4309	return
4310}
4311
4312// ListStackSetOperations API operation for AWS CloudFormation.
4313//
4314// Returns summary information about operations performed on a stack set.
4315//
4316// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
4317// with awserr.Error's Code and Message methods to get detailed information about
4318// the error.
4319//
4320// See the AWS API reference guide for AWS CloudFormation's
4321// API operation ListStackSetOperations for usage and error information.
4322//
4323// Returned Error Codes:
4324//   * ErrCodeStackSetNotFoundException "StackSetNotFoundException"
4325//   The specified stack set doesn't exist.
4326//
4327// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/ListStackSetOperations
4328func (c *CloudFormation) ListStackSetOperations(input *ListStackSetOperationsInput) (*ListStackSetOperationsOutput, error) {
4329	req, out := c.ListStackSetOperationsRequest(input)
4330	return out, req.Send()
4331}
4332
4333// ListStackSetOperationsWithContext is the same as ListStackSetOperations with the addition of
4334// the ability to pass a context and additional request options.
4335//
4336// See ListStackSetOperations for details on how to use this API operation.
4337//
4338// The context must be non-nil and will be used for request cancellation. If
4339// the context is nil a panic will occur. In the future the SDK may create
4340// sub-contexts for http.Requests. See https://golang.org/pkg/context/
4341// for more information on using Contexts.
4342func (c *CloudFormation) ListStackSetOperationsWithContext(ctx aws.Context, input *ListStackSetOperationsInput, opts ...request.Option) (*ListStackSetOperationsOutput, error) {
4343	req, out := c.ListStackSetOperationsRequest(input)
4344	req.SetContext(ctx)
4345	req.ApplyOptions(opts...)
4346	return out, req.Send()
4347}
4348
4349// ListStackSetOperationsPages iterates over the pages of a ListStackSetOperations operation,
4350// calling the "fn" function with the response data for each page. To stop
4351// iterating, return false from the fn function.
4352//
4353// See ListStackSetOperations method for more information on how to use this operation.
4354//
4355// Note: This operation can generate multiple requests to a service.
4356//
4357//    // Example iterating over at most 3 pages of a ListStackSetOperations operation.
4358//    pageNum := 0
4359//    err := client.ListStackSetOperationsPages(params,
4360//        func(page *cloudformation.ListStackSetOperationsOutput, lastPage bool) bool {
4361//            pageNum++
4362//            fmt.Println(page)
4363//            return pageNum <= 3
4364//        })
4365//
4366func (c *CloudFormation) ListStackSetOperationsPages(input *ListStackSetOperationsInput, fn func(*ListStackSetOperationsOutput, bool) bool) error {
4367	return c.ListStackSetOperationsPagesWithContext(aws.BackgroundContext(), input, fn)
4368}
4369
4370// ListStackSetOperationsPagesWithContext same as ListStackSetOperationsPages except
4371// it takes a Context and allows setting request options on the pages.
4372//
4373// The context must be non-nil and will be used for request cancellation. If
4374// the context is nil a panic will occur. In the future the SDK may create
4375// sub-contexts for http.Requests. See https://golang.org/pkg/context/
4376// for more information on using Contexts.
4377func (c *CloudFormation) ListStackSetOperationsPagesWithContext(ctx aws.Context, input *ListStackSetOperationsInput, fn func(*ListStackSetOperationsOutput, bool) bool, opts ...request.Option) error {
4378	p := request.Pagination{
4379		NewRequest: func() (*request.Request, error) {
4380			var inCpy *ListStackSetOperationsInput
4381			if input != nil {
4382				tmp := *input
4383				inCpy = &tmp
4384			}
4385			req, _ := c.ListStackSetOperationsRequest(inCpy)
4386			req.SetContext(ctx)
4387			req.ApplyOptions(opts...)
4388			return req, nil
4389		},
4390	}
4391
4392	for p.Next() {
4393		if !fn(p.Page().(*ListStackSetOperationsOutput), !p.HasNextPage()) {
4394			break
4395		}
4396	}
4397
4398	return p.Err()
4399}
4400
4401const opListStackSets = "ListStackSets"
4402
4403// ListStackSetsRequest generates a "aws/request.Request" representing the
4404// client's request for the ListStackSets operation. The "output" return
4405// value will be populated with the request's response once the request completes
4406// successfully.
4407//
4408// Use "Send" method on the returned Request to send the API call to the service.
4409// the "output" return value is not valid until after Send returns without error.
4410//
4411// See ListStackSets for more information on using the ListStackSets
4412// API call, and error handling.
4413//
4414// This method is useful when you want to inject custom logic or configuration
4415// into the SDK's request lifecycle. Such as custom headers, or retry logic.
4416//
4417//
4418//    // Example sending a request using the ListStackSetsRequest method.
4419//    req, resp := client.ListStackSetsRequest(params)
4420//
4421//    err := req.Send()
4422//    if err == nil { // resp is now filled
4423//        fmt.Println(resp)
4424//    }
4425//
4426// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/ListStackSets
4427func (c *CloudFormation) ListStackSetsRequest(input *ListStackSetsInput) (req *request.Request, output *ListStackSetsOutput) {
4428	op := &request.Operation{
4429		Name:       opListStackSets,
4430		HTTPMethod: "POST",
4431		HTTPPath:   "/",
4432		Paginator: &request.Paginator{
4433			InputTokens:     []string{"NextToken"},
4434			OutputTokens:    []string{"NextToken"},
4435			LimitToken:      "MaxResults",
4436			TruncationToken: "",
4437		},
4438	}
4439
4440	if input == nil {
4441		input = &ListStackSetsInput{}
4442	}
4443
4444	output = &ListStackSetsOutput{}
4445	req = c.newRequest(op, input, output)
4446	return
4447}
4448
4449// ListStackSets API operation for AWS CloudFormation.
4450//
4451// Returns summary information about stack sets that are associated with the
4452// user.
4453//
4454//    * [Self-managed permissions] If you set the CallAs parameter to SELF while
4455//    signed in to your AWS account, ListStackSets returns all self-managed
4456//    stack sets in your AWS account.
4457//
4458//    * [Service-managed permissions] If you set the CallAs parameter to SELF
4459//    while signed in to the organization's management account, ListStackSets
4460//    returns all stack sets in the management account.
4461//
4462//    * [Service-managed permissions] If you set the CallAs parameter to DELEGATED_ADMIN
4463//    while signed in to your member account, ListStackSets returns all stack
4464//    sets with service-managed permissions in the management account.
4465//
4466// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
4467// with awserr.Error's Code and Message methods to get detailed information about
4468// the error.
4469//
4470// See the AWS API reference guide for AWS CloudFormation's
4471// API operation ListStackSets for usage and error information.
4472// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/ListStackSets
4473func (c *CloudFormation) ListStackSets(input *ListStackSetsInput) (*ListStackSetsOutput, error) {
4474	req, out := c.ListStackSetsRequest(input)
4475	return out, req.Send()
4476}
4477
4478// ListStackSetsWithContext is the same as ListStackSets with the addition of
4479// the ability to pass a context and additional request options.
4480//
4481// See ListStackSets for details on how to use this API operation.
4482//
4483// The context must be non-nil and will be used for request cancellation. If
4484// the context is nil a panic will occur. In the future the SDK may create
4485// sub-contexts for http.Requests. See https://golang.org/pkg/context/
4486// for more information on using Contexts.
4487func (c *CloudFormation) ListStackSetsWithContext(ctx aws.Context, input *ListStackSetsInput, opts ...request.Option) (*ListStackSetsOutput, error) {
4488	req, out := c.ListStackSetsRequest(input)
4489	req.SetContext(ctx)
4490	req.ApplyOptions(opts...)
4491	return out, req.Send()
4492}
4493
4494// ListStackSetsPages iterates over the pages of a ListStackSets operation,
4495// calling the "fn" function with the response data for each page. To stop
4496// iterating, return false from the fn function.
4497//
4498// See ListStackSets method for more information on how to use this operation.
4499//
4500// Note: This operation can generate multiple requests to a service.
4501//
4502//    // Example iterating over at most 3 pages of a ListStackSets operation.
4503//    pageNum := 0
4504//    err := client.ListStackSetsPages(params,
4505//        func(page *cloudformation.ListStackSetsOutput, lastPage bool) bool {
4506//            pageNum++
4507//            fmt.Println(page)
4508//            return pageNum <= 3
4509//        })
4510//
4511func (c *CloudFormation) ListStackSetsPages(input *ListStackSetsInput, fn func(*ListStackSetsOutput, bool) bool) error {
4512	return c.ListStackSetsPagesWithContext(aws.BackgroundContext(), input, fn)
4513}
4514
4515// ListStackSetsPagesWithContext same as ListStackSetsPages except
4516// it takes a Context and allows setting request options on the pages.
4517//
4518// The context must be non-nil and will be used for request cancellation. If
4519// the context is nil a panic will occur. In the future the SDK may create
4520// sub-contexts for http.Requests. See https://golang.org/pkg/context/
4521// for more information on using Contexts.
4522func (c *CloudFormation) ListStackSetsPagesWithContext(ctx aws.Context, input *ListStackSetsInput, fn func(*ListStackSetsOutput, bool) bool, opts ...request.Option) error {
4523	p := request.Pagination{
4524		NewRequest: func() (*request.Request, error) {
4525			var inCpy *ListStackSetsInput
4526			if input != nil {
4527				tmp := *input
4528				inCpy = &tmp
4529			}
4530			req, _ := c.ListStackSetsRequest(inCpy)
4531			req.SetContext(ctx)
4532			req.ApplyOptions(opts...)
4533			return req, nil
4534		},
4535	}
4536
4537	for p.Next() {
4538		if !fn(p.Page().(*ListStackSetsOutput), !p.HasNextPage()) {
4539			break
4540		}
4541	}
4542
4543	return p.Err()
4544}
4545
4546const opListStacks = "ListStacks"
4547
4548// ListStacksRequest generates a "aws/request.Request" representing the
4549// client's request for the ListStacks operation. The "output" return
4550// value will be populated with the request's response once the request completes
4551// successfully.
4552//
4553// Use "Send" method on the returned Request to send the API call to the service.
4554// the "output" return value is not valid until after Send returns without error.
4555//
4556// See ListStacks for more information on using the ListStacks
4557// API call, and error handling.
4558//
4559// This method is useful when you want to inject custom logic or configuration
4560// into the SDK's request lifecycle. Such as custom headers, or retry logic.
4561//
4562//
4563//    // Example sending a request using the ListStacksRequest method.
4564//    req, resp := client.ListStacksRequest(params)
4565//
4566//    err := req.Send()
4567//    if err == nil { // resp is now filled
4568//        fmt.Println(resp)
4569//    }
4570//
4571// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/ListStacks
4572func (c *CloudFormation) ListStacksRequest(input *ListStacksInput) (req *request.Request, output *ListStacksOutput) {
4573	op := &request.Operation{
4574		Name:       opListStacks,
4575		HTTPMethod: "POST",
4576		HTTPPath:   "/",
4577		Paginator: &request.Paginator{
4578			InputTokens:     []string{"NextToken"},
4579			OutputTokens:    []string{"NextToken"},
4580			LimitToken:      "",
4581			TruncationToken: "",
4582		},
4583	}
4584
4585	if input == nil {
4586		input = &ListStacksInput{}
4587	}
4588
4589	output = &ListStacksOutput{}
4590	req = c.newRequest(op, input, output)
4591	return
4592}
4593
4594// ListStacks API operation for AWS CloudFormation.
4595//
4596// Returns the summary information for stacks whose status matches the specified
4597// StackStatusFilter. Summary information for stacks that have been deleted
4598// is kept for 90 days after the stack is deleted. If no StackStatusFilter is
4599// specified, summary information for all stacks is returned (including existing
4600// stacks and stacks that have been deleted).
4601//
4602// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
4603// with awserr.Error's Code and Message methods to get detailed information about
4604// the error.
4605//
4606// See the AWS API reference guide for AWS CloudFormation's
4607// API operation ListStacks for usage and error information.
4608// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/ListStacks
4609func (c *CloudFormation) ListStacks(input *ListStacksInput) (*ListStacksOutput, error) {
4610	req, out := c.ListStacksRequest(input)
4611	return out, req.Send()
4612}
4613
4614// ListStacksWithContext is the same as ListStacks with the addition of
4615// the ability to pass a context and additional request options.
4616//
4617// See ListStacks for details on how to use this API operation.
4618//
4619// The context must be non-nil and will be used for request cancellation. If
4620// the context is nil a panic will occur. In the future the SDK may create
4621// sub-contexts for http.Requests. See https://golang.org/pkg/context/
4622// for more information on using Contexts.
4623func (c *CloudFormation) ListStacksWithContext(ctx aws.Context, input *ListStacksInput, opts ...request.Option) (*ListStacksOutput, error) {
4624	req, out := c.ListStacksRequest(input)
4625	req.SetContext(ctx)
4626	req.ApplyOptions(opts...)
4627	return out, req.Send()
4628}
4629
4630// ListStacksPages iterates over the pages of a ListStacks operation,
4631// calling the "fn" function with the response data for each page. To stop
4632// iterating, return false from the fn function.
4633//
4634// See ListStacks method for more information on how to use this operation.
4635//
4636// Note: This operation can generate multiple requests to a service.
4637//
4638//    // Example iterating over at most 3 pages of a ListStacks operation.
4639//    pageNum := 0
4640//    err := client.ListStacksPages(params,
4641//        func(page *cloudformation.ListStacksOutput, lastPage bool) bool {
4642//            pageNum++
4643//            fmt.Println(page)
4644//            return pageNum <= 3
4645//        })
4646//
4647func (c *CloudFormation) ListStacksPages(input *ListStacksInput, fn func(*ListStacksOutput, bool) bool) error {
4648	return c.ListStacksPagesWithContext(aws.BackgroundContext(), input, fn)
4649}
4650
4651// ListStacksPagesWithContext same as ListStacksPages except
4652// it takes a Context and allows setting request options on the pages.
4653//
4654// The context must be non-nil and will be used for request cancellation. If
4655// the context is nil a panic will occur. In the future the SDK may create
4656// sub-contexts for http.Requests. See https://golang.org/pkg/context/
4657// for more information on using Contexts.
4658func (c *CloudFormation) ListStacksPagesWithContext(ctx aws.Context, input *ListStacksInput, fn func(*ListStacksOutput, bool) bool, opts ...request.Option) error {
4659	p := request.Pagination{
4660		NewRequest: func() (*request.Request, error) {
4661			var inCpy *ListStacksInput
4662			if input != nil {
4663				tmp := *input
4664				inCpy = &tmp
4665			}
4666			req, _ := c.ListStacksRequest(inCpy)
4667			req.SetContext(ctx)
4668			req.ApplyOptions(opts...)
4669			return req, nil
4670		},
4671	}
4672
4673	for p.Next() {
4674		if !fn(p.Page().(*ListStacksOutput), !p.HasNextPage()) {
4675			break
4676		}
4677	}
4678
4679	return p.Err()
4680}
4681
4682const opListTypeRegistrations = "ListTypeRegistrations"
4683
4684// ListTypeRegistrationsRequest generates a "aws/request.Request" representing the
4685// client's request for the ListTypeRegistrations operation. The "output" return
4686// value will be populated with the request's response once the request completes
4687// successfully.
4688//
4689// Use "Send" method on the returned Request to send the API call to the service.
4690// the "output" return value is not valid until after Send returns without error.
4691//
4692// See ListTypeRegistrations for more information on using the ListTypeRegistrations
4693// API call, and error handling.
4694//
4695// This method is useful when you want to inject custom logic or configuration
4696// into the SDK's request lifecycle. Such as custom headers, or retry logic.
4697//
4698//
4699//    // Example sending a request using the ListTypeRegistrationsRequest method.
4700//    req, resp := client.ListTypeRegistrationsRequest(params)
4701//
4702//    err := req.Send()
4703//    if err == nil { // resp is now filled
4704//        fmt.Println(resp)
4705//    }
4706//
4707// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/ListTypeRegistrations
4708func (c *CloudFormation) ListTypeRegistrationsRequest(input *ListTypeRegistrationsInput) (req *request.Request, output *ListTypeRegistrationsOutput) {
4709	op := &request.Operation{
4710		Name:       opListTypeRegistrations,
4711		HTTPMethod: "POST",
4712		HTTPPath:   "/",
4713		Paginator: &request.Paginator{
4714			InputTokens:     []string{"NextToken"},
4715			OutputTokens:    []string{"NextToken"},
4716			LimitToken:      "MaxResults",
4717			TruncationToken: "",
4718		},
4719	}
4720
4721	if input == nil {
4722		input = &ListTypeRegistrationsInput{}
4723	}
4724
4725	output = &ListTypeRegistrationsOutput{}
4726	req = c.newRequest(op, input, output)
4727	return
4728}
4729
4730// ListTypeRegistrations API operation for AWS CloudFormation.
4731//
4732// Returns a list of registration tokens for the specified extension(s).
4733//
4734// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
4735// with awserr.Error's Code and Message methods to get detailed information about
4736// the error.
4737//
4738// See the AWS API reference guide for AWS CloudFormation's
4739// API operation ListTypeRegistrations for usage and error information.
4740//
4741// Returned Error Codes:
4742//   * ErrCodeCFNRegistryException "CFNRegistryException"
4743//   An error occurred during a CloudFormation registry operation.
4744//
4745// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/ListTypeRegistrations
4746func (c *CloudFormation) ListTypeRegistrations(input *ListTypeRegistrationsInput) (*ListTypeRegistrationsOutput, error) {
4747	req, out := c.ListTypeRegistrationsRequest(input)
4748	return out, req.Send()
4749}
4750
4751// ListTypeRegistrationsWithContext is the same as ListTypeRegistrations with the addition of
4752// the ability to pass a context and additional request options.
4753//
4754// See ListTypeRegistrations for details on how to use this API operation.
4755//
4756// The context must be non-nil and will be used for request cancellation. If
4757// the context is nil a panic will occur. In the future the SDK may create
4758// sub-contexts for http.Requests. See https://golang.org/pkg/context/
4759// for more information on using Contexts.
4760func (c *CloudFormation) ListTypeRegistrationsWithContext(ctx aws.Context, input *ListTypeRegistrationsInput, opts ...request.Option) (*ListTypeRegistrationsOutput, error) {
4761	req, out := c.ListTypeRegistrationsRequest(input)
4762	req.SetContext(ctx)
4763	req.ApplyOptions(opts...)
4764	return out, req.Send()
4765}
4766
4767// ListTypeRegistrationsPages iterates over the pages of a ListTypeRegistrations operation,
4768// calling the "fn" function with the response data for each page. To stop
4769// iterating, return false from the fn function.
4770//
4771// See ListTypeRegistrations method for more information on how to use this operation.
4772//
4773// Note: This operation can generate multiple requests to a service.
4774//
4775//    // Example iterating over at most 3 pages of a ListTypeRegistrations operation.
4776//    pageNum := 0
4777//    err := client.ListTypeRegistrationsPages(params,
4778//        func(page *cloudformation.ListTypeRegistrationsOutput, lastPage bool) bool {
4779//            pageNum++
4780//            fmt.Println(page)
4781//            return pageNum <= 3
4782//        })
4783//
4784func (c *CloudFormation) ListTypeRegistrationsPages(input *ListTypeRegistrationsInput, fn func(*ListTypeRegistrationsOutput, bool) bool) error {
4785	return c.ListTypeRegistrationsPagesWithContext(aws.BackgroundContext(), input, fn)
4786}
4787
4788// ListTypeRegistrationsPagesWithContext same as ListTypeRegistrationsPages except
4789// it takes a Context and allows setting request options on the pages.
4790//
4791// The context must be non-nil and will be used for request cancellation. If
4792// the context is nil a panic will occur. In the future the SDK may create
4793// sub-contexts for http.Requests. See https://golang.org/pkg/context/
4794// for more information on using Contexts.
4795func (c *CloudFormation) ListTypeRegistrationsPagesWithContext(ctx aws.Context, input *ListTypeRegistrationsInput, fn func(*ListTypeRegistrationsOutput, bool) bool, opts ...request.Option) error {
4796	p := request.Pagination{
4797		NewRequest: func() (*request.Request, error) {
4798			var inCpy *ListTypeRegistrationsInput
4799			if input != nil {
4800				tmp := *input
4801				inCpy = &tmp
4802			}
4803			req, _ := c.ListTypeRegistrationsRequest(inCpy)
4804			req.SetContext(ctx)
4805			req.ApplyOptions(opts...)
4806			return req, nil
4807		},
4808	}
4809
4810	for p.Next() {
4811		if !fn(p.Page().(*ListTypeRegistrationsOutput), !p.HasNextPage()) {
4812			break
4813		}
4814	}
4815
4816	return p.Err()
4817}
4818
4819const opListTypeVersions = "ListTypeVersions"
4820
4821// ListTypeVersionsRequest generates a "aws/request.Request" representing the
4822// client's request for the ListTypeVersions operation. The "output" return
4823// value will be populated with the request's response once the request completes
4824// successfully.
4825//
4826// Use "Send" method on the returned Request to send the API call to the service.
4827// the "output" return value is not valid until after Send returns without error.
4828//
4829// See ListTypeVersions for more information on using the ListTypeVersions
4830// API call, and error handling.
4831//
4832// This method is useful when you want to inject custom logic or configuration
4833// into the SDK's request lifecycle. Such as custom headers, or retry logic.
4834//
4835//
4836//    // Example sending a request using the ListTypeVersionsRequest method.
4837//    req, resp := client.ListTypeVersionsRequest(params)
4838//
4839//    err := req.Send()
4840//    if err == nil { // resp is now filled
4841//        fmt.Println(resp)
4842//    }
4843//
4844// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/ListTypeVersions
4845func (c *CloudFormation) ListTypeVersionsRequest(input *ListTypeVersionsInput) (req *request.Request, output *ListTypeVersionsOutput) {
4846	op := &request.Operation{
4847		Name:       opListTypeVersions,
4848		HTTPMethod: "POST",
4849		HTTPPath:   "/",
4850		Paginator: &request.Paginator{
4851			InputTokens:     []string{"NextToken"},
4852			OutputTokens:    []string{"NextToken"},
4853			LimitToken:      "MaxResults",
4854			TruncationToken: "",
4855		},
4856	}
4857
4858	if input == nil {
4859		input = &ListTypeVersionsInput{}
4860	}
4861
4862	output = &ListTypeVersionsOutput{}
4863	req = c.newRequest(op, input, output)
4864	return
4865}
4866
4867// ListTypeVersions API operation for AWS CloudFormation.
4868//
4869// Returns summary information about the versions of an extension.
4870//
4871// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
4872// with awserr.Error's Code and Message methods to get detailed information about
4873// the error.
4874//
4875// See the AWS API reference guide for AWS CloudFormation's
4876// API operation ListTypeVersions for usage and error information.
4877//
4878// Returned Error Codes:
4879//   * ErrCodeCFNRegistryException "CFNRegistryException"
4880//   An error occurred during a CloudFormation registry operation.
4881//
4882// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/ListTypeVersions
4883func (c *CloudFormation) ListTypeVersions(input *ListTypeVersionsInput) (*ListTypeVersionsOutput, error) {
4884	req, out := c.ListTypeVersionsRequest(input)
4885	return out, req.Send()
4886}
4887
4888// ListTypeVersionsWithContext is the same as ListTypeVersions with the addition of
4889// the ability to pass a context and additional request options.
4890//
4891// See ListTypeVersions for details on how to use this API operation.
4892//
4893// The context must be non-nil and will be used for request cancellation. If
4894// the context is nil a panic will occur. In the future the SDK may create
4895// sub-contexts for http.Requests. See https://golang.org/pkg/context/
4896// for more information on using Contexts.
4897func (c *CloudFormation) ListTypeVersionsWithContext(ctx aws.Context, input *ListTypeVersionsInput, opts ...request.Option) (*ListTypeVersionsOutput, error) {
4898	req, out := c.ListTypeVersionsRequest(input)
4899	req.SetContext(ctx)
4900	req.ApplyOptions(opts...)
4901	return out, req.Send()
4902}
4903
4904// ListTypeVersionsPages iterates over the pages of a ListTypeVersions operation,
4905// calling the "fn" function with the response data for each page. To stop
4906// iterating, return false from the fn function.
4907//
4908// See ListTypeVersions method for more information on how to use this operation.
4909//
4910// Note: This operation can generate multiple requests to a service.
4911//
4912//    // Example iterating over at most 3 pages of a ListTypeVersions operation.
4913//    pageNum := 0
4914//    err := client.ListTypeVersionsPages(params,
4915//        func(page *cloudformation.ListTypeVersionsOutput, lastPage bool) bool {
4916//            pageNum++
4917//            fmt.Println(page)
4918//            return pageNum <= 3
4919//        })
4920//
4921func (c *CloudFormation) ListTypeVersionsPages(input *ListTypeVersionsInput, fn func(*ListTypeVersionsOutput, bool) bool) error {
4922	return c.ListTypeVersionsPagesWithContext(aws.BackgroundContext(), input, fn)
4923}
4924
4925// ListTypeVersionsPagesWithContext same as ListTypeVersionsPages except
4926// it takes a Context and allows setting request options on the pages.
4927//
4928// The context must be non-nil and will be used for request cancellation. If
4929// the context is nil a panic will occur. In the future the SDK may create
4930// sub-contexts for http.Requests. See https://golang.org/pkg/context/
4931// for more information on using Contexts.
4932func (c *CloudFormation) ListTypeVersionsPagesWithContext(ctx aws.Context, input *ListTypeVersionsInput, fn func(*ListTypeVersionsOutput, bool) bool, opts ...request.Option) error {
4933	p := request.Pagination{
4934		NewRequest: func() (*request.Request, error) {
4935			var inCpy *ListTypeVersionsInput
4936			if input != nil {
4937				tmp := *input
4938				inCpy = &tmp
4939			}
4940			req, _ := c.ListTypeVersionsRequest(inCpy)
4941			req.SetContext(ctx)
4942			req.ApplyOptions(opts...)
4943			return req, nil
4944		},
4945	}
4946
4947	for p.Next() {
4948		if !fn(p.Page().(*ListTypeVersionsOutput), !p.HasNextPage()) {
4949			break
4950		}
4951	}
4952
4953	return p.Err()
4954}
4955
4956const opListTypes = "ListTypes"
4957
4958// ListTypesRequest generates a "aws/request.Request" representing the
4959// client's request for the ListTypes operation. The "output" return
4960// value will be populated with the request's response once the request completes
4961// successfully.
4962//
4963// Use "Send" method on the returned Request to send the API call to the service.
4964// the "output" return value is not valid until after Send returns without error.
4965//
4966// See ListTypes for more information on using the ListTypes
4967// API call, and error handling.
4968//
4969// This method is useful when you want to inject custom logic or configuration
4970// into the SDK's request lifecycle. Such as custom headers, or retry logic.
4971//
4972//
4973//    // Example sending a request using the ListTypesRequest method.
4974//    req, resp := client.ListTypesRequest(params)
4975//
4976//    err := req.Send()
4977//    if err == nil { // resp is now filled
4978//        fmt.Println(resp)
4979//    }
4980//
4981// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/ListTypes
4982func (c *CloudFormation) ListTypesRequest(input *ListTypesInput) (req *request.Request, output *ListTypesOutput) {
4983	op := &request.Operation{
4984		Name:       opListTypes,
4985		HTTPMethod: "POST",
4986		HTTPPath:   "/",
4987		Paginator: &request.Paginator{
4988			InputTokens:     []string{"NextToken"},
4989			OutputTokens:    []string{"NextToken"},
4990			LimitToken:      "MaxResults",
4991			TruncationToken: "",
4992		},
4993	}
4994
4995	if input == nil {
4996		input = &ListTypesInput{}
4997	}
4998
4999	output = &ListTypesOutput{}
5000	req = c.newRequest(op, input, output)
5001	return
5002}
5003
5004// ListTypes API operation for AWS CloudFormation.
5005//
5006// Returns summary information about extension that have been registered with
5007// CloudFormation.
5008//
5009// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
5010// with awserr.Error's Code and Message methods to get detailed information about
5011// the error.
5012//
5013// See the AWS API reference guide for AWS CloudFormation's
5014// API operation ListTypes for usage and error information.
5015//
5016// Returned Error Codes:
5017//   * ErrCodeCFNRegistryException "CFNRegistryException"
5018//   An error occurred during a CloudFormation registry operation.
5019//
5020// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/ListTypes
5021func (c *CloudFormation) ListTypes(input *ListTypesInput) (*ListTypesOutput, error) {
5022	req, out := c.ListTypesRequest(input)
5023	return out, req.Send()
5024}
5025
5026// ListTypesWithContext is the same as ListTypes with the addition of
5027// the ability to pass a context and additional request options.
5028//
5029// See ListTypes for details on how to use this API operation.
5030//
5031// The context must be non-nil and will be used for request cancellation. If
5032// the context is nil a panic will occur. In the future the SDK may create
5033// sub-contexts for http.Requests. See https://golang.org/pkg/context/
5034// for more information on using Contexts.
5035func (c *CloudFormation) ListTypesWithContext(ctx aws.Context, input *ListTypesInput, opts ...request.Option) (*ListTypesOutput, error) {
5036	req, out := c.ListTypesRequest(input)
5037	req.SetContext(ctx)
5038	req.ApplyOptions(opts...)
5039	return out, req.Send()
5040}
5041
5042// ListTypesPages iterates over the pages of a ListTypes operation,
5043// calling the "fn" function with the response data for each page. To stop
5044// iterating, return false from the fn function.
5045//
5046// See ListTypes method for more information on how to use this operation.
5047//
5048// Note: This operation can generate multiple requests to a service.
5049//
5050//    // Example iterating over at most 3 pages of a ListTypes operation.
5051//    pageNum := 0
5052//    err := client.ListTypesPages(params,
5053//        func(page *cloudformation.ListTypesOutput, lastPage bool) bool {
5054//            pageNum++
5055//            fmt.Println(page)
5056//            return pageNum <= 3
5057//        })
5058//
5059func (c *CloudFormation) ListTypesPages(input *ListTypesInput, fn func(*ListTypesOutput, bool) bool) error {
5060	return c.ListTypesPagesWithContext(aws.BackgroundContext(), input, fn)
5061}
5062
5063// ListTypesPagesWithContext same as ListTypesPages except
5064// it takes a Context and allows setting request options on the pages.
5065//
5066// The context must be non-nil and will be used for request cancellation. If
5067// the context is nil a panic will occur. In the future the SDK may create
5068// sub-contexts for http.Requests. See https://golang.org/pkg/context/
5069// for more information on using Contexts.
5070func (c *CloudFormation) ListTypesPagesWithContext(ctx aws.Context, input *ListTypesInput, fn func(*ListTypesOutput, bool) bool, opts ...request.Option) error {
5071	p := request.Pagination{
5072		NewRequest: func() (*request.Request, error) {
5073			var inCpy *ListTypesInput
5074			if input != nil {
5075				tmp := *input
5076				inCpy = &tmp
5077			}
5078			req, _ := c.ListTypesRequest(inCpy)
5079			req.SetContext(ctx)
5080			req.ApplyOptions(opts...)
5081			return req, nil
5082		},
5083	}
5084
5085	for p.Next() {
5086		if !fn(p.Page().(*ListTypesOutput), !p.HasNextPage()) {
5087			break
5088		}
5089	}
5090
5091	return p.Err()
5092}
5093
5094const opPublishType = "PublishType"
5095
5096// PublishTypeRequest generates a "aws/request.Request" representing the
5097// client's request for the PublishType operation. The "output" return
5098// value will be populated with the request's response once the request completes
5099// successfully.
5100//
5101// Use "Send" method on the returned Request to send the API call to the service.
5102// the "output" return value is not valid until after Send returns without error.
5103//
5104// See PublishType for more information on using the PublishType
5105// API call, and error handling.
5106//
5107// This method is useful when you want to inject custom logic or configuration
5108// into the SDK's request lifecycle. Such as custom headers, or retry logic.
5109//
5110//
5111//    // Example sending a request using the PublishTypeRequest method.
5112//    req, resp := client.PublishTypeRequest(params)
5113//
5114//    err := req.Send()
5115//    if err == nil { // resp is now filled
5116//        fmt.Println(resp)
5117//    }
5118//
5119// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/PublishType
5120func (c *CloudFormation) PublishTypeRequest(input *PublishTypeInput) (req *request.Request, output *PublishTypeOutput) {
5121	op := &request.Operation{
5122		Name:       opPublishType,
5123		HTTPMethod: "POST",
5124		HTTPPath:   "/",
5125	}
5126
5127	if input == nil {
5128		input = &PublishTypeInput{}
5129	}
5130
5131	output = &PublishTypeOutput{}
5132	req = c.newRequest(op, input, output)
5133	return
5134}
5135
5136// PublishType API operation for AWS CloudFormation.
5137//
5138// Publishes the specified extension to the CloudFormation registry as a public
5139// extension in this region. Public extensions are available for use by all
5140// CloudFormation users. For more information on publishing extensions, see
5141// Publishing extensions to make them available for public use (https://docs.aws.amazon.com/cloudformation-cli/latest/userguide/publish-extension.html)
5142// in the CloudFormation CLI User Guide.
5143//
5144// To publish an extension, you must be registered as a publisher with CloudFormation.
5145// For more information, see RegisterPublisher (https://docs.aws.amazon.com/AWSCloudFormation/latest/APIReference/API_RegisterPublisher.html).
5146//
5147// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
5148// with awserr.Error's Code and Message methods to get detailed information about
5149// the error.
5150//
5151// See the AWS API reference guide for AWS CloudFormation's
5152// API operation PublishType for usage and error information.
5153//
5154// Returned Error Codes:
5155//   * ErrCodeCFNRegistryException "CFNRegistryException"
5156//   An error occurred during a CloudFormation registry operation.
5157//
5158//   * ErrCodeTypeNotFoundException "TypeNotFoundException"
5159//   The specified extension does not exist in the CloudFormation registry.
5160//
5161// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/PublishType
5162func (c *CloudFormation) PublishType(input *PublishTypeInput) (*PublishTypeOutput, error) {
5163	req, out := c.PublishTypeRequest(input)
5164	return out, req.Send()
5165}
5166
5167// PublishTypeWithContext is the same as PublishType with the addition of
5168// the ability to pass a context and additional request options.
5169//
5170// See PublishType for details on how to use this API operation.
5171//
5172// The context must be non-nil and will be used for request cancellation. If
5173// the context is nil a panic will occur. In the future the SDK may create
5174// sub-contexts for http.Requests. See https://golang.org/pkg/context/
5175// for more information on using Contexts.
5176func (c *CloudFormation) PublishTypeWithContext(ctx aws.Context, input *PublishTypeInput, opts ...request.Option) (*PublishTypeOutput, error) {
5177	req, out := c.PublishTypeRequest(input)
5178	req.SetContext(ctx)
5179	req.ApplyOptions(opts...)
5180	return out, req.Send()
5181}
5182
5183const opRecordHandlerProgress = "RecordHandlerProgress"
5184
5185// RecordHandlerProgressRequest generates a "aws/request.Request" representing the
5186// client's request for the RecordHandlerProgress operation. The "output" return
5187// value will be populated with the request's response once the request completes
5188// successfully.
5189//
5190// Use "Send" method on the returned Request to send the API call to the service.
5191// the "output" return value is not valid until after Send returns without error.
5192//
5193// See RecordHandlerProgress for more information on using the RecordHandlerProgress
5194// API call, and error handling.
5195//
5196// This method is useful when you want to inject custom logic or configuration
5197// into the SDK's request lifecycle. Such as custom headers, or retry logic.
5198//
5199//
5200//    // Example sending a request using the RecordHandlerProgressRequest method.
5201//    req, resp := client.RecordHandlerProgressRequest(params)
5202//
5203//    err := req.Send()
5204//    if err == nil { // resp is now filled
5205//        fmt.Println(resp)
5206//    }
5207//
5208// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/RecordHandlerProgress
5209func (c *CloudFormation) RecordHandlerProgressRequest(input *RecordHandlerProgressInput) (req *request.Request, output *RecordHandlerProgressOutput) {
5210	op := &request.Operation{
5211		Name:       opRecordHandlerProgress,
5212		HTTPMethod: "POST",
5213		HTTPPath:   "/",
5214	}
5215
5216	if input == nil {
5217		input = &RecordHandlerProgressInput{}
5218	}
5219
5220	output = &RecordHandlerProgressOutput{}
5221	req = c.newRequest(op, input, output)
5222	req.Handlers.Unmarshal.Swap(query.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
5223	return
5224}
5225
5226// RecordHandlerProgress API operation for AWS CloudFormation.
5227//
5228// Reports progress of a resource handler to CloudFormation.
5229//
5230// Reserved for use by the CloudFormation CLI (https://docs.aws.amazon.com/cloudformation-cli/latest/userguide/what-is-cloudformation-cli.html).
5231// Do not use this API in your code.
5232//
5233// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
5234// with awserr.Error's Code and Message methods to get detailed information about
5235// the error.
5236//
5237// See the AWS API reference guide for AWS CloudFormation's
5238// API operation RecordHandlerProgress for usage and error information.
5239//
5240// Returned Error Codes:
5241//   * ErrCodeInvalidStateTransitionException "InvalidStateTransition"
5242//   Error reserved for use by the CloudFormation CLI (https://docs.aws.amazon.com/cloudformation-cli/latest/userguide/what-is-cloudformation-cli.html).
5243//   CloudFormation does not return this error to users.
5244//
5245//   * ErrCodeOperationStatusCheckFailedException "ConditionalCheckFailed"
5246//   Error reserved for use by the CloudFormation CLI (https://docs.aws.amazon.com/cloudformation-cli/latest/userguide/what-is-cloudformation-cli.html).
5247//   CloudFormation does not return this error to users.
5248//
5249// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/RecordHandlerProgress
5250func (c *CloudFormation) RecordHandlerProgress(input *RecordHandlerProgressInput) (*RecordHandlerProgressOutput, error) {
5251	req, out := c.RecordHandlerProgressRequest(input)
5252	return out, req.Send()
5253}
5254
5255// RecordHandlerProgressWithContext is the same as RecordHandlerProgress with the addition of
5256// the ability to pass a context and additional request options.
5257//
5258// See RecordHandlerProgress for details on how to use this API operation.
5259//
5260// The context must be non-nil and will be used for request cancellation. If
5261// the context is nil a panic will occur. In the future the SDK may create
5262// sub-contexts for http.Requests. See https://golang.org/pkg/context/
5263// for more information on using Contexts.
5264func (c *CloudFormation) RecordHandlerProgressWithContext(ctx aws.Context, input *RecordHandlerProgressInput, opts ...request.Option) (*RecordHandlerProgressOutput, error) {
5265	req, out := c.RecordHandlerProgressRequest(input)
5266	req.SetContext(ctx)
5267	req.ApplyOptions(opts...)
5268	return out, req.Send()
5269}
5270
5271const opRegisterPublisher = "RegisterPublisher"
5272
5273// RegisterPublisherRequest generates a "aws/request.Request" representing the
5274// client's request for the RegisterPublisher operation. The "output" return
5275// value will be populated with the request's response once the request completes
5276// successfully.
5277//
5278// Use "Send" method on the returned Request to send the API call to the service.
5279// the "output" return value is not valid until after Send returns without error.
5280//
5281// See RegisterPublisher for more information on using the RegisterPublisher
5282// API call, and error handling.
5283//
5284// This method is useful when you want to inject custom logic or configuration
5285// into the SDK's request lifecycle. Such as custom headers, or retry logic.
5286//
5287//
5288//    // Example sending a request using the RegisterPublisherRequest method.
5289//    req, resp := client.RegisterPublisherRequest(params)
5290//
5291//    err := req.Send()
5292//    if err == nil { // resp is now filled
5293//        fmt.Println(resp)
5294//    }
5295//
5296// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/RegisterPublisher
5297func (c *CloudFormation) RegisterPublisherRequest(input *RegisterPublisherInput) (req *request.Request, output *RegisterPublisherOutput) {
5298	op := &request.Operation{
5299		Name:       opRegisterPublisher,
5300		HTTPMethod: "POST",
5301		HTTPPath:   "/",
5302	}
5303
5304	if input == nil {
5305		input = &RegisterPublisherInput{}
5306	}
5307
5308	output = &RegisterPublisherOutput{}
5309	req = c.newRequest(op, input, output)
5310	return
5311}
5312
5313// RegisterPublisher API operation for AWS CloudFormation.
5314//
5315// Registers your account as a publisher of public extensions in the CloudFormation
5316// registry. Public extensions are available for use by all CloudFormation users.
5317// This publisher ID applies to your account in all AWS regions.
5318//
5319// For information on requirements for registering as a public extension publisher,
5320// see Registering your account to publish CloudFormation extensions (https://docs.aws.amazon.com/cloudformation-cli/latest/userguide/publish-extension.html#publish-extension-prereqs)
5321// in the CloudFormation CLI User Guide.
5322//
5323// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
5324// with awserr.Error's Code and Message methods to get detailed information about
5325// the error.
5326//
5327// See the AWS API reference guide for AWS CloudFormation's
5328// API operation RegisterPublisher for usage and error information.
5329//
5330// Returned Error Codes:
5331//   * ErrCodeCFNRegistryException "CFNRegistryException"
5332//   An error occurred during a CloudFormation registry operation.
5333//
5334// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/RegisterPublisher
5335func (c *CloudFormation) RegisterPublisher(input *RegisterPublisherInput) (*RegisterPublisherOutput, error) {
5336	req, out := c.RegisterPublisherRequest(input)
5337	return out, req.Send()
5338}
5339
5340// RegisterPublisherWithContext is the same as RegisterPublisher with the addition of
5341// the ability to pass a context and additional request options.
5342//
5343// See RegisterPublisher for details on how to use this API operation.
5344//
5345// The context must be non-nil and will be used for request cancellation. If
5346// the context is nil a panic will occur. In the future the SDK may create
5347// sub-contexts for http.Requests. See https://golang.org/pkg/context/
5348// for more information on using Contexts.
5349func (c *CloudFormation) RegisterPublisherWithContext(ctx aws.Context, input *RegisterPublisherInput, opts ...request.Option) (*RegisterPublisherOutput, error) {
5350	req, out := c.RegisterPublisherRequest(input)
5351	req.SetContext(ctx)
5352	req.ApplyOptions(opts...)
5353	return out, req.Send()
5354}
5355
5356const opRegisterType = "RegisterType"
5357
5358// RegisterTypeRequest generates a "aws/request.Request" representing the
5359// client's request for the RegisterType operation. The "output" return
5360// value will be populated with the request's response once the request completes
5361// successfully.
5362//
5363// Use "Send" method on the returned Request to send the API call to the service.
5364// the "output" return value is not valid until after Send returns without error.
5365//
5366// See RegisterType for more information on using the RegisterType
5367// API call, and error handling.
5368//
5369// This method is useful when you want to inject custom logic or configuration
5370// into the SDK's request lifecycle. Such as custom headers, or retry logic.
5371//
5372//
5373//    // Example sending a request using the RegisterTypeRequest method.
5374//    req, resp := client.RegisterTypeRequest(params)
5375//
5376//    err := req.Send()
5377//    if err == nil { // resp is now filled
5378//        fmt.Println(resp)
5379//    }
5380//
5381// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/RegisterType
5382func (c *CloudFormation) RegisterTypeRequest(input *RegisterTypeInput) (req *request.Request, output *RegisterTypeOutput) {
5383	op := &request.Operation{
5384		Name:       opRegisterType,
5385		HTTPMethod: "POST",
5386		HTTPPath:   "/",
5387	}
5388
5389	if input == nil {
5390		input = &RegisterTypeInput{}
5391	}
5392
5393	output = &RegisterTypeOutput{}
5394	req = c.newRequest(op, input, output)
5395	return
5396}
5397
5398// RegisterType API operation for AWS CloudFormation.
5399//
5400// Registers an extension with the CloudFormation service. Registering an extension
5401// makes it available for use in CloudFormation templates in your AWS account,
5402// and includes:
5403//
5404//    * Validating the extension schema
5405//
5406//    * Determining which handlers, if any, have been specified for the extension
5407//
5408//    * Making the extension available for use in your account
5409//
5410// For more information on how to develop extensions and ready them for registeration,
5411// see Creating Resource Providers (https://docs.aws.amazon.com/cloudformation-cli/latest/userguide/resource-types.html)
5412// in the CloudFormation CLI User Guide.
5413//
5414// You can have a maximum of 50 resource extension versions registered at a
5415// time. This maximum is per account and per region. Use DeregisterType (AWSCloudFormation/latest/APIReference/API_DeregisterType.html)
5416// to deregister specific extension versions if necessary.
5417//
5418// Once you have initiated a registration request using RegisterType , you can
5419// use DescribeTypeRegistration to monitor the progress of the registration
5420// request.
5421//
5422// Once you have registered a private extension in your account and region,
5423// use SetTypeConfiguration (AWSCloudFormation/latest/APIReference/API_SetTypeConfiguration.html)
5424// to specify configuration properties for the extension. For more information,
5425// see Configuring extensions at the account level (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/registry-register.html#registry-set-configuration)
5426// in the CloudFormation User Guide.
5427//
5428// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
5429// with awserr.Error's Code and Message methods to get detailed information about
5430// the error.
5431//
5432// See the AWS API reference guide for AWS CloudFormation's
5433// API operation RegisterType for usage and error information.
5434//
5435// Returned Error Codes:
5436//   * ErrCodeCFNRegistryException "CFNRegistryException"
5437//   An error occurred during a CloudFormation registry operation.
5438//
5439// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/RegisterType
5440func (c *CloudFormation) RegisterType(input *RegisterTypeInput) (*RegisterTypeOutput, error) {
5441	req, out := c.RegisterTypeRequest(input)
5442	return out, req.Send()
5443}
5444
5445// RegisterTypeWithContext is the same as RegisterType with the addition of
5446// the ability to pass a context and additional request options.
5447//
5448// See RegisterType for details on how to use this API operation.
5449//
5450// The context must be non-nil and will be used for request cancellation. If
5451// the context is nil a panic will occur. In the future the SDK may create
5452// sub-contexts for http.Requests. See https://golang.org/pkg/context/
5453// for more information on using Contexts.
5454func (c *CloudFormation) RegisterTypeWithContext(ctx aws.Context, input *RegisterTypeInput, opts ...request.Option) (*RegisterTypeOutput, error) {
5455	req, out := c.RegisterTypeRequest(input)
5456	req.SetContext(ctx)
5457	req.ApplyOptions(opts...)
5458	return out, req.Send()
5459}
5460
5461const opSetStackPolicy = "SetStackPolicy"
5462
5463// SetStackPolicyRequest generates a "aws/request.Request" representing the
5464// client's request for the SetStackPolicy operation. The "output" return
5465// value will be populated with the request's response once the request completes
5466// successfully.
5467//
5468// Use "Send" method on the returned Request to send the API call to the service.
5469// the "output" return value is not valid until after Send returns without error.
5470//
5471// See SetStackPolicy for more information on using the SetStackPolicy
5472// API call, and error handling.
5473//
5474// This method is useful when you want to inject custom logic or configuration
5475// into the SDK's request lifecycle. Such as custom headers, or retry logic.
5476//
5477//
5478//    // Example sending a request using the SetStackPolicyRequest method.
5479//    req, resp := client.SetStackPolicyRequest(params)
5480//
5481//    err := req.Send()
5482//    if err == nil { // resp is now filled
5483//        fmt.Println(resp)
5484//    }
5485//
5486// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/SetStackPolicy
5487func (c *CloudFormation) SetStackPolicyRequest(input *SetStackPolicyInput) (req *request.Request, output *SetStackPolicyOutput) {
5488	op := &request.Operation{
5489		Name:       opSetStackPolicy,
5490		HTTPMethod: "POST",
5491		HTTPPath:   "/",
5492	}
5493
5494	if input == nil {
5495		input = &SetStackPolicyInput{}
5496	}
5497
5498	output = &SetStackPolicyOutput{}
5499	req = c.newRequest(op, input, output)
5500	req.Handlers.Unmarshal.Swap(query.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
5501	return
5502}
5503
5504// SetStackPolicy API operation for AWS CloudFormation.
5505//
5506// Sets a stack policy for a specified stack.
5507//
5508// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
5509// with awserr.Error's Code and Message methods to get detailed information about
5510// the error.
5511//
5512// See the AWS API reference guide for AWS CloudFormation's
5513// API operation SetStackPolicy for usage and error information.
5514// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/SetStackPolicy
5515func (c *CloudFormation) SetStackPolicy(input *SetStackPolicyInput) (*SetStackPolicyOutput, error) {
5516	req, out := c.SetStackPolicyRequest(input)
5517	return out, req.Send()
5518}
5519
5520// SetStackPolicyWithContext is the same as SetStackPolicy with the addition of
5521// the ability to pass a context and additional request options.
5522//
5523// See SetStackPolicy for details on how to use this API operation.
5524//
5525// The context must be non-nil and will be used for request cancellation. If
5526// the context is nil a panic will occur. In the future the SDK may create
5527// sub-contexts for http.Requests. See https://golang.org/pkg/context/
5528// for more information on using Contexts.
5529func (c *CloudFormation) SetStackPolicyWithContext(ctx aws.Context, input *SetStackPolicyInput, opts ...request.Option) (*SetStackPolicyOutput, error) {
5530	req, out := c.SetStackPolicyRequest(input)
5531	req.SetContext(ctx)
5532	req.ApplyOptions(opts...)
5533	return out, req.Send()
5534}
5535
5536const opSetTypeConfiguration = "SetTypeConfiguration"
5537
5538// SetTypeConfigurationRequest generates a "aws/request.Request" representing the
5539// client's request for the SetTypeConfiguration operation. The "output" return
5540// value will be populated with the request's response once the request completes
5541// successfully.
5542//
5543// Use "Send" method on the returned Request to send the API call to the service.
5544// the "output" return value is not valid until after Send returns without error.
5545//
5546// See SetTypeConfiguration for more information on using the SetTypeConfiguration
5547// API call, and error handling.
5548//
5549// This method is useful when you want to inject custom logic or configuration
5550// into the SDK's request lifecycle. Such as custom headers, or retry logic.
5551//
5552//
5553//    // Example sending a request using the SetTypeConfigurationRequest method.
5554//    req, resp := client.SetTypeConfigurationRequest(params)
5555//
5556//    err := req.Send()
5557//    if err == nil { // resp is now filled
5558//        fmt.Println(resp)
5559//    }
5560//
5561// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/SetTypeConfiguration
5562func (c *CloudFormation) SetTypeConfigurationRequest(input *SetTypeConfigurationInput) (req *request.Request, output *SetTypeConfigurationOutput) {
5563	op := &request.Operation{
5564		Name:       opSetTypeConfiguration,
5565		HTTPMethod: "POST",
5566		HTTPPath:   "/",
5567	}
5568
5569	if input == nil {
5570		input = &SetTypeConfigurationInput{}
5571	}
5572
5573	output = &SetTypeConfigurationOutput{}
5574	req = c.newRequest(op, input, output)
5575	return
5576}
5577
5578// SetTypeConfiguration API operation for AWS CloudFormation.
5579//
5580// Specifies the configuration data for a registered CloudFormation extension,
5581// in the given account and region.
5582//
5583// To view the current configuration data for an extension, refer to the ConfigurationSchema
5584// element of DescribeType (AWSCloudFormation/latest/APIReference/API_DescribeType.html).
5585// For more information, see Configuring extensions at the account level (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/registry-register.html#registry-set-configuration)
5586// in the CloudFormation User Guide.
5587//
5588// It is strongly recommended that you use dynamic references to restrict sensitive
5589// configuration definitions, such as third-party credentials. For more details
5590// on dynamic references, see Using dynamic references to specify template values
5591// (https://docs.aws.amazon.com/) in the AWS CloudFormation User Guide.
5592//
5593// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
5594// with awserr.Error's Code and Message methods to get detailed information about
5595// the error.
5596//
5597// See the AWS API reference guide for AWS CloudFormation's
5598// API operation SetTypeConfiguration for usage and error information.
5599//
5600// Returned Error Codes:
5601//   * ErrCodeCFNRegistryException "CFNRegistryException"
5602//   An error occurred during a CloudFormation registry operation.
5603//
5604//   * ErrCodeTypeNotFoundException "TypeNotFoundException"
5605//   The specified extension does not exist in the CloudFormation registry.
5606//
5607// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/SetTypeConfiguration
5608func (c *CloudFormation) SetTypeConfiguration(input *SetTypeConfigurationInput) (*SetTypeConfigurationOutput, error) {
5609	req, out := c.SetTypeConfigurationRequest(input)
5610	return out, req.Send()
5611}
5612
5613// SetTypeConfigurationWithContext is the same as SetTypeConfiguration with the addition of
5614// the ability to pass a context and additional request options.
5615//
5616// See SetTypeConfiguration for details on how to use this API operation.
5617//
5618// The context must be non-nil and will be used for request cancellation. If
5619// the context is nil a panic will occur. In the future the SDK may create
5620// sub-contexts for http.Requests. See https://golang.org/pkg/context/
5621// for more information on using Contexts.
5622func (c *CloudFormation) SetTypeConfigurationWithContext(ctx aws.Context, input *SetTypeConfigurationInput, opts ...request.Option) (*SetTypeConfigurationOutput, error) {
5623	req, out := c.SetTypeConfigurationRequest(input)
5624	req.SetContext(ctx)
5625	req.ApplyOptions(opts...)
5626	return out, req.Send()
5627}
5628
5629const opSetTypeDefaultVersion = "SetTypeDefaultVersion"
5630
5631// SetTypeDefaultVersionRequest generates a "aws/request.Request" representing the
5632// client's request for the SetTypeDefaultVersion operation. The "output" return
5633// value will be populated with the request's response once the request completes
5634// successfully.
5635//
5636// Use "Send" method on the returned Request to send the API call to the service.
5637// the "output" return value is not valid until after Send returns without error.
5638//
5639// See SetTypeDefaultVersion for more information on using the SetTypeDefaultVersion
5640// API call, and error handling.
5641//
5642// This method is useful when you want to inject custom logic or configuration
5643// into the SDK's request lifecycle. Such as custom headers, or retry logic.
5644//
5645//
5646//    // Example sending a request using the SetTypeDefaultVersionRequest method.
5647//    req, resp := client.SetTypeDefaultVersionRequest(params)
5648//
5649//    err := req.Send()
5650//    if err == nil { // resp is now filled
5651//        fmt.Println(resp)
5652//    }
5653//
5654// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/SetTypeDefaultVersion
5655func (c *CloudFormation) SetTypeDefaultVersionRequest(input *SetTypeDefaultVersionInput) (req *request.Request, output *SetTypeDefaultVersionOutput) {
5656	op := &request.Operation{
5657		Name:       opSetTypeDefaultVersion,
5658		HTTPMethod: "POST",
5659		HTTPPath:   "/",
5660	}
5661
5662	if input == nil {
5663		input = &SetTypeDefaultVersionInput{}
5664	}
5665
5666	output = &SetTypeDefaultVersionOutput{}
5667	req = c.newRequest(op, input, output)
5668	req.Handlers.Unmarshal.Swap(query.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
5669	return
5670}
5671
5672// SetTypeDefaultVersion API operation for AWS CloudFormation.
5673//
5674// Specify the default version of an extension. The default version of an extension
5675// will be used in CloudFormation operations.
5676//
5677// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
5678// with awserr.Error's Code and Message methods to get detailed information about
5679// the error.
5680//
5681// See the AWS API reference guide for AWS CloudFormation's
5682// API operation SetTypeDefaultVersion for usage and error information.
5683//
5684// Returned Error Codes:
5685//   * ErrCodeCFNRegistryException "CFNRegistryException"
5686//   An error occurred during a CloudFormation registry operation.
5687//
5688//   * ErrCodeTypeNotFoundException "TypeNotFoundException"
5689//   The specified extension does not exist in the CloudFormation registry.
5690//
5691// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/SetTypeDefaultVersion
5692func (c *CloudFormation) SetTypeDefaultVersion(input *SetTypeDefaultVersionInput) (*SetTypeDefaultVersionOutput, error) {
5693	req, out := c.SetTypeDefaultVersionRequest(input)
5694	return out, req.Send()
5695}
5696
5697// SetTypeDefaultVersionWithContext is the same as SetTypeDefaultVersion with the addition of
5698// the ability to pass a context and additional request options.
5699//
5700// See SetTypeDefaultVersion for details on how to use this API operation.
5701//
5702// The context must be non-nil and will be used for request cancellation. If
5703// the context is nil a panic will occur. In the future the SDK may create
5704// sub-contexts for http.Requests. See https://golang.org/pkg/context/
5705// for more information on using Contexts.
5706func (c *CloudFormation) SetTypeDefaultVersionWithContext(ctx aws.Context, input *SetTypeDefaultVersionInput, opts ...request.Option) (*SetTypeDefaultVersionOutput, error) {
5707	req, out := c.SetTypeDefaultVersionRequest(input)
5708	req.SetContext(ctx)
5709	req.ApplyOptions(opts...)
5710	return out, req.Send()
5711}
5712
5713const opSignalResource = "SignalResource"
5714
5715// SignalResourceRequest generates a "aws/request.Request" representing the
5716// client's request for the SignalResource operation. The "output" return
5717// value will be populated with the request's response once the request completes
5718// successfully.
5719//
5720// Use "Send" method on the returned Request to send the API call to the service.
5721// the "output" return value is not valid until after Send returns without error.
5722//
5723// See SignalResource for more information on using the SignalResource
5724// API call, and error handling.
5725//
5726// This method is useful when you want to inject custom logic or configuration
5727// into the SDK's request lifecycle. Such as custom headers, or retry logic.
5728//
5729//
5730//    // Example sending a request using the SignalResourceRequest method.
5731//    req, resp := client.SignalResourceRequest(params)
5732//
5733//    err := req.Send()
5734//    if err == nil { // resp is now filled
5735//        fmt.Println(resp)
5736//    }
5737//
5738// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/SignalResource
5739func (c *CloudFormation) SignalResourceRequest(input *SignalResourceInput) (req *request.Request, output *SignalResourceOutput) {
5740	op := &request.Operation{
5741		Name:       opSignalResource,
5742		HTTPMethod: "POST",
5743		HTTPPath:   "/",
5744	}
5745
5746	if input == nil {
5747		input = &SignalResourceInput{}
5748	}
5749
5750	output = &SignalResourceOutput{}
5751	req = c.newRequest(op, input, output)
5752	req.Handlers.Unmarshal.Swap(query.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
5753	return
5754}
5755
5756// SignalResource API operation for AWS CloudFormation.
5757//
5758// Sends a signal to the specified resource with a success or failure status.
5759// You can use the SignalResource API in conjunction with a creation policy
5760// or update policy. AWS CloudFormation doesn't proceed with a stack creation
5761// or update until resources receive the required number of signals or the timeout
5762// period is exceeded. The SignalResource API is useful in cases where you want
5763// to send signals from anywhere other than an Amazon EC2 instance.
5764//
5765// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
5766// with awserr.Error's Code and Message methods to get detailed information about
5767// the error.
5768//
5769// See the AWS API reference guide for AWS CloudFormation's
5770// API operation SignalResource for usage and error information.
5771// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/SignalResource
5772func (c *CloudFormation) SignalResource(input *SignalResourceInput) (*SignalResourceOutput, error) {
5773	req, out := c.SignalResourceRequest(input)
5774	return out, req.Send()
5775}
5776
5777// SignalResourceWithContext is the same as SignalResource with the addition of
5778// the ability to pass a context and additional request options.
5779//
5780// See SignalResource for details on how to use this API operation.
5781//
5782// The context must be non-nil and will be used for request cancellation. If
5783// the context is nil a panic will occur. In the future the SDK may create
5784// sub-contexts for http.Requests. See https://golang.org/pkg/context/
5785// for more information on using Contexts.
5786func (c *CloudFormation) SignalResourceWithContext(ctx aws.Context, input *SignalResourceInput, opts ...request.Option) (*SignalResourceOutput, error) {
5787	req, out := c.SignalResourceRequest(input)
5788	req.SetContext(ctx)
5789	req.ApplyOptions(opts...)
5790	return out, req.Send()
5791}
5792
5793const opStopStackSetOperation = "StopStackSetOperation"
5794
5795// StopStackSetOperationRequest generates a "aws/request.Request" representing the
5796// client's request for the StopStackSetOperation operation. The "output" return
5797// value will be populated with the request's response once the request completes
5798// successfully.
5799//
5800// Use "Send" method on the returned Request to send the API call to the service.
5801// the "output" return value is not valid until after Send returns without error.
5802//
5803// See StopStackSetOperation for more information on using the StopStackSetOperation
5804// API call, and error handling.
5805//
5806// This method is useful when you want to inject custom logic or configuration
5807// into the SDK's request lifecycle. Such as custom headers, or retry logic.
5808//
5809//
5810//    // Example sending a request using the StopStackSetOperationRequest method.
5811//    req, resp := client.StopStackSetOperationRequest(params)
5812//
5813//    err := req.Send()
5814//    if err == nil { // resp is now filled
5815//        fmt.Println(resp)
5816//    }
5817//
5818// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/StopStackSetOperation
5819func (c *CloudFormation) StopStackSetOperationRequest(input *StopStackSetOperationInput) (req *request.Request, output *StopStackSetOperationOutput) {
5820	op := &request.Operation{
5821		Name:       opStopStackSetOperation,
5822		HTTPMethod: "POST",
5823		HTTPPath:   "/",
5824	}
5825
5826	if input == nil {
5827		input = &StopStackSetOperationInput{}
5828	}
5829
5830	output = &StopStackSetOperationOutput{}
5831	req = c.newRequest(op, input, output)
5832	req.Handlers.Unmarshal.Swap(query.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
5833	return
5834}
5835
5836// StopStackSetOperation API operation for AWS CloudFormation.
5837//
5838// Stops an in-progress operation on a stack set and its associated stack instances.
5839//
5840// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
5841// with awserr.Error's Code and Message methods to get detailed information about
5842// the error.
5843//
5844// See the AWS API reference guide for AWS CloudFormation's
5845// API operation StopStackSetOperation for usage and error information.
5846//
5847// Returned Error Codes:
5848//   * ErrCodeStackSetNotFoundException "StackSetNotFoundException"
5849//   The specified stack set doesn't exist.
5850//
5851//   * ErrCodeOperationNotFoundException "OperationNotFoundException"
5852//   The specified ID refers to an operation that doesn't exist.
5853//
5854//   * ErrCodeInvalidOperationException "InvalidOperationException"
5855//   The specified operation isn't valid.
5856//
5857// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/StopStackSetOperation
5858func (c *CloudFormation) StopStackSetOperation(input *StopStackSetOperationInput) (*StopStackSetOperationOutput, error) {
5859	req, out := c.StopStackSetOperationRequest(input)
5860	return out, req.Send()
5861}
5862
5863// StopStackSetOperationWithContext is the same as StopStackSetOperation with the addition of
5864// the ability to pass a context and additional request options.
5865//
5866// See StopStackSetOperation for details on how to use this API operation.
5867//
5868// The context must be non-nil and will be used for request cancellation. If
5869// the context is nil a panic will occur. In the future the SDK may create
5870// sub-contexts for http.Requests. See https://golang.org/pkg/context/
5871// for more information on using Contexts.
5872func (c *CloudFormation) StopStackSetOperationWithContext(ctx aws.Context, input *StopStackSetOperationInput, opts ...request.Option) (*StopStackSetOperationOutput, error) {
5873	req, out := c.StopStackSetOperationRequest(input)
5874	req.SetContext(ctx)
5875	req.ApplyOptions(opts...)
5876	return out, req.Send()
5877}
5878
5879const opTestType = "TestType"
5880
5881// TestTypeRequest generates a "aws/request.Request" representing the
5882// client's request for the TestType operation. The "output" return
5883// value will be populated with the request's response once the request completes
5884// successfully.
5885//
5886// Use "Send" method on the returned Request to send the API call to the service.
5887// the "output" return value is not valid until after Send returns without error.
5888//
5889// See TestType for more information on using the TestType
5890// API call, and error handling.
5891//
5892// This method is useful when you want to inject custom logic or configuration
5893// into the SDK's request lifecycle. Such as custom headers, or retry logic.
5894//
5895//
5896//    // Example sending a request using the TestTypeRequest method.
5897//    req, resp := client.TestTypeRequest(params)
5898//
5899//    err := req.Send()
5900//    if err == nil { // resp is now filled
5901//        fmt.Println(resp)
5902//    }
5903//
5904// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/TestType
5905func (c *CloudFormation) TestTypeRequest(input *TestTypeInput) (req *request.Request, output *TestTypeOutput) {
5906	op := &request.Operation{
5907		Name:       opTestType,
5908		HTTPMethod: "POST",
5909		HTTPPath:   "/",
5910	}
5911
5912	if input == nil {
5913		input = &TestTypeInput{}
5914	}
5915
5916	output = &TestTypeOutput{}
5917	req = c.newRequest(op, input, output)
5918	return
5919}
5920
5921// TestType API operation for AWS CloudFormation.
5922//
5923// Tests a registered extension to make sure it meets all necessary requirements
5924// for being published in the CloudFormation registry.
5925//
5926//    * For resource types, this includes passing all contracts tests defined
5927//    for the type.
5928//
5929//    * For modules, this includes determining if the module's model meets all
5930//    necessary requirements.
5931//
5932// For more information, see Testing your public extension prior to publishing
5933// (https://docs.aws.amazon.com/cloudformation-cli/latest/userguide/publish-extension.html#publish-extension-testing)
5934// in the CloudFormation CLI User Guide.
5935//
5936// If you do not specify a version, CloudFormation uses the default version
5937// of the extension in your account and region for testing.
5938//
5939// To perform testing, CloudFormation assumes the execution role specified when
5940// the test was registered. For more information, see RegisterType (AWSCloudFormation/latest/APIReference/API_RegisterType.html).
5941//
5942// Once you've initiated testing on an extension using TestType, you can use
5943// DescribeType (https://docs.aws.amazon.com/AWSCloudFormation/latest/APIReference/API_DescribeType.html)
5944// to monitor the current test status and test status description for the extension.
5945//
5946// An extension must have a test status of PASSED before it can be published.
5947// For more information, see Publishing extensions to make them available for
5948// public use (https://docs.aws.amazon.com/cloudformation-cli/latest/userguide/resource-type-publish.html)
5949// in the CloudFormation CLI User Guide.
5950//
5951// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
5952// with awserr.Error's Code and Message methods to get detailed information about
5953// the error.
5954//
5955// See the AWS API reference guide for AWS CloudFormation's
5956// API operation TestType for usage and error information.
5957//
5958// Returned Error Codes:
5959//   * ErrCodeCFNRegistryException "CFNRegistryException"
5960//   An error occurred during a CloudFormation registry operation.
5961//
5962//   * ErrCodeTypeNotFoundException "TypeNotFoundException"
5963//   The specified extension does not exist in the CloudFormation registry.
5964//
5965// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/TestType
5966func (c *CloudFormation) TestType(input *TestTypeInput) (*TestTypeOutput, error) {
5967	req, out := c.TestTypeRequest(input)
5968	return out, req.Send()
5969}
5970
5971// TestTypeWithContext is the same as TestType with the addition of
5972// the ability to pass a context and additional request options.
5973//
5974// See TestType for details on how to use this API operation.
5975//
5976// The context must be non-nil and will be used for request cancellation. If
5977// the context is nil a panic will occur. In the future the SDK may create
5978// sub-contexts for http.Requests. See https://golang.org/pkg/context/
5979// for more information on using Contexts.
5980func (c *CloudFormation) TestTypeWithContext(ctx aws.Context, input *TestTypeInput, opts ...request.Option) (*TestTypeOutput, error) {
5981	req, out := c.TestTypeRequest(input)
5982	req.SetContext(ctx)
5983	req.ApplyOptions(opts...)
5984	return out, req.Send()
5985}
5986
5987const opUpdateStack = "UpdateStack"
5988
5989// UpdateStackRequest generates a "aws/request.Request" representing the
5990// client's request for the UpdateStack operation. The "output" return
5991// value will be populated with the request's response once the request completes
5992// successfully.
5993//
5994// Use "Send" method on the returned Request to send the API call to the service.
5995// the "output" return value is not valid until after Send returns without error.
5996//
5997// See UpdateStack for more information on using the UpdateStack
5998// API call, and error handling.
5999//
6000// This method is useful when you want to inject custom logic or configuration
6001// into the SDK's request lifecycle. Such as custom headers, or retry logic.
6002//
6003//
6004//    // Example sending a request using the UpdateStackRequest method.
6005//    req, resp := client.UpdateStackRequest(params)
6006//
6007//    err := req.Send()
6008//    if err == nil { // resp is now filled
6009//        fmt.Println(resp)
6010//    }
6011//
6012// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/UpdateStack
6013func (c *CloudFormation) UpdateStackRequest(input *UpdateStackInput) (req *request.Request, output *UpdateStackOutput) {
6014	op := &request.Operation{
6015		Name:       opUpdateStack,
6016		HTTPMethod: "POST",
6017		HTTPPath:   "/",
6018	}
6019
6020	if input == nil {
6021		input = &UpdateStackInput{}
6022	}
6023
6024	output = &UpdateStackOutput{}
6025	req = c.newRequest(op, input, output)
6026	return
6027}
6028
6029// UpdateStack API operation for AWS CloudFormation.
6030//
6031// Updates a stack as specified in the template. After the call completes successfully,
6032// the stack update starts. You can check the status of the stack via the DescribeStacks
6033// action.
6034//
6035// To get a copy of the template for an existing stack, you can use the GetTemplate
6036// action.
6037//
6038// For more information about creating an update template, updating a stack,
6039// and monitoring the progress of the update, see Updating a Stack (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks.html).
6040//
6041// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
6042// with awserr.Error's Code and Message methods to get detailed information about
6043// the error.
6044//
6045// See the AWS API reference guide for AWS CloudFormation's
6046// API operation UpdateStack for usage and error information.
6047//
6048// Returned Error Codes:
6049//   * ErrCodeInsufficientCapabilitiesException "InsufficientCapabilitiesException"
6050//   The template contains resources with capabilities that weren't specified
6051//   in the Capabilities parameter.
6052//
6053//   * ErrCodeTokenAlreadyExistsException "TokenAlreadyExistsException"
6054//   A client request token already exists.
6055//
6056// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/UpdateStack
6057func (c *CloudFormation) UpdateStack(input *UpdateStackInput) (*UpdateStackOutput, error) {
6058	req, out := c.UpdateStackRequest(input)
6059	return out, req.Send()
6060}
6061
6062// UpdateStackWithContext is the same as UpdateStack with the addition of
6063// the ability to pass a context and additional request options.
6064//
6065// See UpdateStack for details on how to use this API operation.
6066//
6067// The context must be non-nil and will be used for request cancellation. If
6068// the context is nil a panic will occur. In the future the SDK may create
6069// sub-contexts for http.Requests. See https://golang.org/pkg/context/
6070// for more information on using Contexts.
6071func (c *CloudFormation) UpdateStackWithContext(ctx aws.Context, input *UpdateStackInput, opts ...request.Option) (*UpdateStackOutput, error) {
6072	req, out := c.UpdateStackRequest(input)
6073	req.SetContext(ctx)
6074	req.ApplyOptions(opts...)
6075	return out, req.Send()
6076}
6077
6078const opUpdateStackInstances = "UpdateStackInstances"
6079
6080// UpdateStackInstancesRequest generates a "aws/request.Request" representing the
6081// client's request for the UpdateStackInstances operation. The "output" return
6082// value will be populated with the request's response once the request completes
6083// successfully.
6084//
6085// Use "Send" method on the returned Request to send the API call to the service.
6086// the "output" return value is not valid until after Send returns without error.
6087//
6088// See UpdateStackInstances for more information on using the UpdateStackInstances
6089// API call, and error handling.
6090//
6091// This method is useful when you want to inject custom logic or configuration
6092// into the SDK's request lifecycle. Such as custom headers, or retry logic.
6093//
6094//
6095//    // Example sending a request using the UpdateStackInstancesRequest method.
6096//    req, resp := client.UpdateStackInstancesRequest(params)
6097//
6098//    err := req.Send()
6099//    if err == nil { // resp is now filled
6100//        fmt.Println(resp)
6101//    }
6102//
6103// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/UpdateStackInstances
6104func (c *CloudFormation) UpdateStackInstancesRequest(input *UpdateStackInstancesInput) (req *request.Request, output *UpdateStackInstancesOutput) {
6105	op := &request.Operation{
6106		Name:       opUpdateStackInstances,
6107		HTTPMethod: "POST",
6108		HTTPPath:   "/",
6109	}
6110
6111	if input == nil {
6112		input = &UpdateStackInstancesInput{}
6113	}
6114
6115	output = &UpdateStackInstancesOutput{}
6116	req = c.newRequest(op, input, output)
6117	return
6118}
6119
6120// UpdateStackInstances API operation for AWS CloudFormation.
6121//
6122// Updates the parameter values for stack instances for the specified accounts,
6123// within the specified Regions. A stack instance refers to a stack in a specific
6124// account and Region.
6125//
6126// You can only update stack instances in Regions and accounts where they already
6127// exist; to create additional stack instances, use CreateStackInstances (https://docs.aws.amazon.com/AWSCloudFormation/latest/APIReference/API_CreateStackInstances.html).
6128//
6129// During stack set updates, any parameters overridden for a stack instance
6130// are not updated, but retain their overridden value.
6131//
6132// You can only update the parameter values that are specified in the stack
6133// set; to add or delete a parameter itself, use UpdateStackSet (https://docs.aws.amazon.com/AWSCloudFormation/latest/APIReference/API_UpdateStackSet.html)
6134// to update the stack set template. If you add a parameter to a template, before
6135// you can override the parameter value specified in the stack set you must
6136// first use UpdateStackSet (https://docs.aws.amazon.com/AWSCloudFormation/latest/APIReference/API_UpdateStackSet.html)
6137// to update all stack instances with the updated template and parameter value
6138// specified in the stack set. Once a stack instance has been updated with the
6139// new parameter, you can then override the parameter value using UpdateStackInstances.
6140//
6141// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
6142// with awserr.Error's Code and Message methods to get detailed information about
6143// the error.
6144//
6145// See the AWS API reference guide for AWS CloudFormation's
6146// API operation UpdateStackInstances for usage and error information.
6147//
6148// Returned Error Codes:
6149//   * ErrCodeStackSetNotFoundException "StackSetNotFoundException"
6150//   The specified stack set doesn't exist.
6151//
6152//   * ErrCodeStackInstanceNotFoundException "StackInstanceNotFoundException"
6153//   The specified stack instance doesn't exist.
6154//
6155//   * ErrCodeOperationInProgressException "OperationInProgressException"
6156//   Another operation is currently in progress for this stack set. Only one operation
6157//   can be performed for a stack set at a given time.
6158//
6159//   * ErrCodeOperationIdAlreadyExistsException "OperationIdAlreadyExistsException"
6160//   The specified operation ID already exists.
6161//
6162//   * ErrCodeStaleRequestException "StaleRequestException"
6163//   Another operation has been performed on this stack set since the specified
6164//   operation was performed.
6165//
6166//   * ErrCodeInvalidOperationException "InvalidOperationException"
6167//   The specified operation isn't valid.
6168//
6169// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/UpdateStackInstances
6170func (c *CloudFormation) UpdateStackInstances(input *UpdateStackInstancesInput) (*UpdateStackInstancesOutput, error) {
6171	req, out := c.UpdateStackInstancesRequest(input)
6172	return out, req.Send()
6173}
6174
6175// UpdateStackInstancesWithContext is the same as UpdateStackInstances with the addition of
6176// the ability to pass a context and additional request options.
6177//
6178// See UpdateStackInstances for details on how to use this API operation.
6179//
6180// The context must be non-nil and will be used for request cancellation. If
6181// the context is nil a panic will occur. In the future the SDK may create
6182// sub-contexts for http.Requests. See https://golang.org/pkg/context/
6183// for more information on using Contexts.
6184func (c *CloudFormation) UpdateStackInstancesWithContext(ctx aws.Context, input *UpdateStackInstancesInput, opts ...request.Option) (*UpdateStackInstancesOutput, error) {
6185	req, out := c.UpdateStackInstancesRequest(input)
6186	req.SetContext(ctx)
6187	req.ApplyOptions(opts...)
6188	return out, req.Send()
6189}
6190
6191const opUpdateStackSet = "UpdateStackSet"
6192
6193// UpdateStackSetRequest generates a "aws/request.Request" representing the
6194// client's request for the UpdateStackSet operation. The "output" return
6195// value will be populated with the request's response once the request completes
6196// successfully.
6197//
6198// Use "Send" method on the returned Request to send the API call to the service.
6199// the "output" return value is not valid until after Send returns without error.
6200//
6201// See UpdateStackSet for more information on using the UpdateStackSet
6202// API call, and error handling.
6203//
6204// This method is useful when you want to inject custom logic or configuration
6205// into the SDK's request lifecycle. Such as custom headers, or retry logic.
6206//
6207//
6208//    // Example sending a request using the UpdateStackSetRequest method.
6209//    req, resp := client.UpdateStackSetRequest(params)
6210//
6211//    err := req.Send()
6212//    if err == nil { // resp is now filled
6213//        fmt.Println(resp)
6214//    }
6215//
6216// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/UpdateStackSet
6217func (c *CloudFormation) UpdateStackSetRequest(input *UpdateStackSetInput) (req *request.Request, output *UpdateStackSetOutput) {
6218	op := &request.Operation{
6219		Name:       opUpdateStackSet,
6220		HTTPMethod: "POST",
6221		HTTPPath:   "/",
6222	}
6223
6224	if input == nil {
6225		input = &UpdateStackSetInput{}
6226	}
6227
6228	output = &UpdateStackSetOutput{}
6229	req = c.newRequest(op, input, output)
6230	return
6231}
6232
6233// UpdateStackSet API operation for AWS CloudFormation.
6234//
6235// Updates the stack set, and associated stack instances in the specified accounts
6236// and Regions.
6237//
6238// Even if the stack set operation created by updating the stack set fails (completely
6239// or partially, below or above a specified failure tolerance), the stack set
6240// is updated with your changes. Subsequent CreateStackInstances calls on the
6241// specified stack set use the updated stack set.
6242//
6243// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
6244// with awserr.Error's Code and Message methods to get detailed information about
6245// the error.
6246//
6247// See the AWS API reference guide for AWS CloudFormation's
6248// API operation UpdateStackSet for usage and error information.
6249//
6250// Returned Error Codes:
6251//   * ErrCodeStackSetNotFoundException "StackSetNotFoundException"
6252//   The specified stack set doesn't exist.
6253//
6254//   * ErrCodeOperationInProgressException "OperationInProgressException"
6255//   Another operation is currently in progress for this stack set. Only one operation
6256//   can be performed for a stack set at a given time.
6257//
6258//   * ErrCodeOperationIdAlreadyExistsException "OperationIdAlreadyExistsException"
6259//   The specified operation ID already exists.
6260//
6261//   * ErrCodeStaleRequestException "StaleRequestException"
6262//   Another operation has been performed on this stack set since the specified
6263//   operation was performed.
6264//
6265//   * ErrCodeInvalidOperationException "InvalidOperationException"
6266//   The specified operation isn't valid.
6267//
6268//   * ErrCodeStackInstanceNotFoundException "StackInstanceNotFoundException"
6269//   The specified stack instance doesn't exist.
6270//
6271// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/UpdateStackSet
6272func (c *CloudFormation) UpdateStackSet(input *UpdateStackSetInput) (*UpdateStackSetOutput, error) {
6273	req, out := c.UpdateStackSetRequest(input)
6274	return out, req.Send()
6275}
6276
6277// UpdateStackSetWithContext is the same as UpdateStackSet with the addition of
6278// the ability to pass a context and additional request options.
6279//
6280// See UpdateStackSet for details on how to use this API operation.
6281//
6282// The context must be non-nil and will be used for request cancellation. If
6283// the context is nil a panic will occur. In the future the SDK may create
6284// sub-contexts for http.Requests. See https://golang.org/pkg/context/
6285// for more information on using Contexts.
6286func (c *CloudFormation) UpdateStackSetWithContext(ctx aws.Context, input *UpdateStackSetInput, opts ...request.Option) (*UpdateStackSetOutput, error) {
6287	req, out := c.UpdateStackSetRequest(input)
6288	req.SetContext(ctx)
6289	req.ApplyOptions(opts...)
6290	return out, req.Send()
6291}
6292
6293const opUpdateTerminationProtection = "UpdateTerminationProtection"
6294
6295// UpdateTerminationProtectionRequest generates a "aws/request.Request" representing the
6296// client's request for the UpdateTerminationProtection operation. The "output" return
6297// value will be populated with the request's response once the request completes
6298// successfully.
6299//
6300// Use "Send" method on the returned Request to send the API call to the service.
6301// the "output" return value is not valid until after Send returns without error.
6302//
6303// See UpdateTerminationProtection for more information on using the UpdateTerminationProtection
6304// API call, and error handling.
6305//
6306// This method is useful when you want to inject custom logic or configuration
6307// into the SDK's request lifecycle. Such as custom headers, or retry logic.
6308//
6309//
6310//    // Example sending a request using the UpdateTerminationProtectionRequest method.
6311//    req, resp := client.UpdateTerminationProtectionRequest(params)
6312//
6313//    err := req.Send()
6314//    if err == nil { // resp is now filled
6315//        fmt.Println(resp)
6316//    }
6317//
6318// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/UpdateTerminationProtection
6319func (c *CloudFormation) UpdateTerminationProtectionRequest(input *UpdateTerminationProtectionInput) (req *request.Request, output *UpdateTerminationProtectionOutput) {
6320	op := &request.Operation{
6321		Name:       opUpdateTerminationProtection,
6322		HTTPMethod: "POST",
6323		HTTPPath:   "/",
6324	}
6325
6326	if input == nil {
6327		input = &UpdateTerminationProtectionInput{}
6328	}
6329
6330	output = &UpdateTerminationProtectionOutput{}
6331	req = c.newRequest(op, input, output)
6332	return
6333}
6334
6335// UpdateTerminationProtection API operation for AWS CloudFormation.
6336//
6337// Updates termination protection for the specified stack. If a user attempts
6338// to delete a stack with termination protection enabled, the operation fails
6339// and the stack remains unchanged. For more information, see Protecting a Stack
6340// From Being Deleted (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-protect-stacks.html)
6341// in the AWS CloudFormation User Guide.
6342//
6343// For nested stacks (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-nested-stacks.html),
6344// termination protection is set on the root stack and cannot be changed directly
6345// on the nested stack.
6346//
6347// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
6348// with awserr.Error's Code and Message methods to get detailed information about
6349// the error.
6350//
6351// See the AWS API reference guide for AWS CloudFormation's
6352// API operation UpdateTerminationProtection for usage and error information.
6353// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/UpdateTerminationProtection
6354func (c *CloudFormation) UpdateTerminationProtection(input *UpdateTerminationProtectionInput) (*UpdateTerminationProtectionOutput, error) {
6355	req, out := c.UpdateTerminationProtectionRequest(input)
6356	return out, req.Send()
6357}
6358
6359// UpdateTerminationProtectionWithContext is the same as UpdateTerminationProtection with the addition of
6360// the ability to pass a context and additional request options.
6361//
6362// See UpdateTerminationProtection for details on how to use this API operation.
6363//
6364// The context must be non-nil and will be used for request cancellation. If
6365// the context is nil a panic will occur. In the future the SDK may create
6366// sub-contexts for http.Requests. See https://golang.org/pkg/context/
6367// for more information on using Contexts.
6368func (c *CloudFormation) UpdateTerminationProtectionWithContext(ctx aws.Context, input *UpdateTerminationProtectionInput, opts ...request.Option) (*UpdateTerminationProtectionOutput, error) {
6369	req, out := c.UpdateTerminationProtectionRequest(input)
6370	req.SetContext(ctx)
6371	req.ApplyOptions(opts...)
6372	return out, req.Send()
6373}
6374
6375const opValidateTemplate = "ValidateTemplate"
6376
6377// ValidateTemplateRequest generates a "aws/request.Request" representing the
6378// client's request for the ValidateTemplate operation. The "output" return
6379// value will be populated with the request's response once the request completes
6380// successfully.
6381//
6382// Use "Send" method on the returned Request to send the API call to the service.
6383// the "output" return value is not valid until after Send returns without error.
6384//
6385// See ValidateTemplate for more information on using the ValidateTemplate
6386// API call, and error handling.
6387//
6388// This method is useful when you want to inject custom logic or configuration
6389// into the SDK's request lifecycle. Such as custom headers, or retry logic.
6390//
6391//
6392//    // Example sending a request using the ValidateTemplateRequest method.
6393//    req, resp := client.ValidateTemplateRequest(params)
6394//
6395//    err := req.Send()
6396//    if err == nil { // resp is now filled
6397//        fmt.Println(resp)
6398//    }
6399//
6400// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/ValidateTemplate
6401func (c *CloudFormation) ValidateTemplateRequest(input *ValidateTemplateInput) (req *request.Request, output *ValidateTemplateOutput) {
6402	op := &request.Operation{
6403		Name:       opValidateTemplate,
6404		HTTPMethod: "POST",
6405		HTTPPath:   "/",
6406	}
6407
6408	if input == nil {
6409		input = &ValidateTemplateInput{}
6410	}
6411
6412	output = &ValidateTemplateOutput{}
6413	req = c.newRequest(op, input, output)
6414	return
6415}
6416
6417// ValidateTemplate API operation for AWS CloudFormation.
6418//
6419// Validates a specified template. AWS CloudFormation first checks if the template
6420// is valid JSON. If it isn't, AWS CloudFormation checks if the template is
6421// valid YAML. If both these checks fail, AWS CloudFormation returns a template
6422// validation error.
6423//
6424// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
6425// with awserr.Error's Code and Message methods to get detailed information about
6426// the error.
6427//
6428// See the AWS API reference guide for AWS CloudFormation's
6429// API operation ValidateTemplate for usage and error information.
6430// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/ValidateTemplate
6431func (c *CloudFormation) ValidateTemplate(input *ValidateTemplateInput) (*ValidateTemplateOutput, error) {
6432	req, out := c.ValidateTemplateRequest(input)
6433	return out, req.Send()
6434}
6435
6436// ValidateTemplateWithContext is the same as ValidateTemplate with the addition of
6437// the ability to pass a context and additional request options.
6438//
6439// See ValidateTemplate for details on how to use this API operation.
6440//
6441// The context must be non-nil and will be used for request cancellation. If
6442// the context is nil a panic will occur. In the future the SDK may create
6443// sub-contexts for http.Requests. See https://golang.org/pkg/context/
6444// for more information on using Contexts.
6445func (c *CloudFormation) ValidateTemplateWithContext(ctx aws.Context, input *ValidateTemplateInput, opts ...request.Option) (*ValidateTemplateOutput, error) {
6446	req, out := c.ValidateTemplateRequest(input)
6447	req.SetContext(ctx)
6448	req.ApplyOptions(opts...)
6449	return out, req.Send()
6450}
6451
6452// Structure that contains the results of the account gate function which AWS
6453// CloudFormation invokes, if present, before proceeding with a stack set operation
6454// in an account and Region.
6455//
6456// For each account and Region, AWS CloudFormation lets you specify a Lamdba
6457// function that encapsulates any requirements that must be met before CloudFormation
6458// can proceed with a stack set operation in that account and Region. CloudFormation
6459// invokes the function each time a stack set operation is requested for that
6460// account and Region; if the function returns FAILED, CloudFormation cancels
6461// the operation in that account and Region, and sets the stack set operation
6462// result status for that account and Region to FAILED.
6463//
6464// For more information, see Configuring a target account gate (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/stacksets-account-gating.html).
6465type AccountGateResult struct {
6466	_ struct{} `type:"structure"`
6467
6468	// The status of the account gate function.
6469	//
6470	//    * SUCCEEDED: The account gate function has determined that the account
6471	//    and Region passes any requirements for a stack set operation to occur.
6472	//    AWS CloudFormation proceeds with the stack operation in that account and
6473	//    Region.
6474	//
6475	//    * FAILED: The account gate function has determined that the account and
6476	//    Region does not meet the requirements for a stack set operation to occur.
6477	//    AWS CloudFormation cancels the stack set operation in that account and
6478	//    Region, and sets the stack set operation result status for that account
6479	//    and Region to FAILED.
6480	//
6481	//    * SKIPPED: AWS CloudFormation has skipped calling the account gate function
6482	//    for this account and Region, for one of the following reasons: An account
6483	//    gate function has not been specified for the account and Region. AWS CloudFormation
6484	//    proceeds with the stack set operation in this account and Region. The
6485	//    AWSCloudFormationStackSetExecutionRole of the stack set adminstration
6486	//    account lacks permissions to invoke the function. AWS CloudFormation proceeds
6487	//    with the stack set operation in this account and Region. Either no action
6488	//    is necessary, or no action is possible, on the stack. AWS CloudFormation
6489	//    skips the stack set operation in this account and Region.
6490	Status *string `type:"string" enum:"AccountGateStatus"`
6491
6492	// The reason for the account gate status assigned to this account and Region
6493	// for the stack set operation.
6494	StatusReason *string `type:"string"`
6495}
6496
6497// String returns the string representation
6498func (s AccountGateResult) String() string {
6499	return awsutil.Prettify(s)
6500}
6501
6502// GoString returns the string representation
6503func (s AccountGateResult) GoString() string {
6504	return s.String()
6505}
6506
6507// SetStatus sets the Status field's value.
6508func (s *AccountGateResult) SetStatus(v string) *AccountGateResult {
6509	s.Status = &v
6510	return s
6511}
6512
6513// SetStatusReason sets the StatusReason field's value.
6514func (s *AccountGateResult) SetStatusReason(v string) *AccountGateResult {
6515	s.StatusReason = &v
6516	return s
6517}
6518
6519// The AccountLimit data type.
6520//
6521// CloudFormation has the following limits per account:
6522//
6523//    * Number of concurrent resources
6524//
6525//    * Number of stacks
6526//
6527//    * Number of stack outputs
6528//
6529// For more information about these account limits, and other CloudFormation
6530// limits, see AWS CloudFormation Limits (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/cloudformation-limits.html)
6531// in the AWS CloudFormation User Guide.
6532type AccountLimit struct {
6533	_ struct{} `type:"structure"`
6534
6535	// The name of the account limit.
6536	//
6537	// Values: ConcurrentResourcesLimit | StackLimit | StackOutputsLimit
6538	Name *string `type:"string"`
6539
6540	// The value that is associated with the account limit name.
6541	Value *int64 `type:"integer"`
6542}
6543
6544// String returns the string representation
6545func (s AccountLimit) String() string {
6546	return awsutil.Prettify(s)
6547}
6548
6549// GoString returns the string representation
6550func (s AccountLimit) GoString() string {
6551	return s.String()
6552}
6553
6554// SetName sets the Name field's value.
6555func (s *AccountLimit) SetName(v string) *AccountLimit {
6556	s.Name = &v
6557	return s
6558}
6559
6560// SetValue sets the Value field's value.
6561func (s *AccountLimit) SetValue(v int64) *AccountLimit {
6562	s.Value = &v
6563	return s
6564}
6565
6566type ActivateTypeInput struct {
6567	_ struct{} `type:"structure"`
6568
6569	// Whether to automatically update the extension in this account and region
6570	// when a new minor version is published by the extension publisher. Major versions
6571	// released by the publisher must be manually updated.
6572	//
6573	// The default is true.
6574	AutoUpdate *bool `type:"boolean"`
6575
6576	// The name of the IAM execution role to use to activate the extension.
6577	ExecutionRoleArn *string `min:"1" type:"string"`
6578
6579	// Contains logging configuration information for an extension.
6580	LoggingConfig *LoggingConfig `type:"structure"`
6581
6582	// The major version of this extension you want to activate, if multiple major
6583	// versions are available. The default is the latest major version. CloudFormation
6584	// uses the latest available minor version of the major version selected.
6585	//
6586	// You can specify MajorVersion or VersionBump, but not both.
6587	MajorVersion *int64 `min:"1" type:"long"`
6588
6589	// The Amazon Resource Number (ARN) of the public extension.
6590	//
6591	// Conditional: You must specify PublicTypeArn, or TypeName, Type, and PublisherId.
6592	PublicTypeArn *string `type:"string"`
6593
6594	// The ID of the extension publisher.
6595	//
6596	// Conditional: You must specify PublicTypeArn, or TypeName, Type, and PublisherId.
6597	PublisherId *string `min:"1" type:"string"`
6598
6599	// The extension type.
6600	//
6601	// Conditional: You must specify PublicTypeArn, or TypeName, Type, and PublisherId.
6602	Type *string `type:"string" enum:"ThirdPartyType"`
6603
6604	// The name of the extension.
6605	//
6606	// Conditional: You must specify PublicTypeArn, or TypeName, Type, and PublisherId.
6607	TypeName *string `min:"10" type:"string"`
6608
6609	// An alias to assign to the public extension, in this account and region. If
6610	// you specify an alias for the extension, CloudFormation treats the alias as
6611	// the extension type name within this account and region. You must use the
6612	// alias to refer to the extension in your templates, API calls, and CloudFormation
6613	// console.
6614	//
6615	// An extension alias must be unique within a given account and region. You
6616	// can activate the same public resource multiple times in the same account
6617	// and region, using different type name aliases.
6618	TypeNameAlias *string `min:"10" type:"string"`
6619
6620	// Manually updates a previously-activated type to a new major or minor version,
6621	// if available. You can also use this parameter to update the value of AutoUpdate.
6622	//
6623	//    * MAJOR: CloudFormation updates the extension to the newest major version,
6624	//    if one is available.
6625	//
6626	//    * MINOR: CloudFormation updates the extension to the newest minor version,
6627	//    if one is available.
6628	VersionBump *string `type:"string" enum:"VersionBump"`
6629}
6630
6631// String returns the string representation
6632func (s ActivateTypeInput) String() string {
6633	return awsutil.Prettify(s)
6634}
6635
6636// GoString returns the string representation
6637func (s ActivateTypeInput) GoString() string {
6638	return s.String()
6639}
6640
6641// Validate inspects the fields of the type to determine if they are valid.
6642func (s *ActivateTypeInput) Validate() error {
6643	invalidParams := request.ErrInvalidParams{Context: "ActivateTypeInput"}
6644	if s.ExecutionRoleArn != nil && len(*s.ExecutionRoleArn) < 1 {
6645		invalidParams.Add(request.NewErrParamMinLen("ExecutionRoleArn", 1))
6646	}
6647	if s.MajorVersion != nil && *s.MajorVersion < 1 {
6648		invalidParams.Add(request.NewErrParamMinValue("MajorVersion", 1))
6649	}
6650	if s.PublisherId != nil && len(*s.PublisherId) < 1 {
6651		invalidParams.Add(request.NewErrParamMinLen("PublisherId", 1))
6652	}
6653	if s.TypeName != nil && len(*s.TypeName) < 10 {
6654		invalidParams.Add(request.NewErrParamMinLen("TypeName", 10))
6655	}
6656	if s.TypeNameAlias != nil && len(*s.TypeNameAlias) < 10 {
6657		invalidParams.Add(request.NewErrParamMinLen("TypeNameAlias", 10))
6658	}
6659	if s.LoggingConfig != nil {
6660		if err := s.LoggingConfig.Validate(); err != nil {
6661			invalidParams.AddNested("LoggingConfig", err.(request.ErrInvalidParams))
6662		}
6663	}
6664
6665	if invalidParams.Len() > 0 {
6666		return invalidParams
6667	}
6668	return nil
6669}
6670
6671// SetAutoUpdate sets the AutoUpdate field's value.
6672func (s *ActivateTypeInput) SetAutoUpdate(v bool) *ActivateTypeInput {
6673	s.AutoUpdate = &v
6674	return s
6675}
6676
6677// SetExecutionRoleArn sets the ExecutionRoleArn field's value.
6678func (s *ActivateTypeInput) SetExecutionRoleArn(v string) *ActivateTypeInput {
6679	s.ExecutionRoleArn = &v
6680	return s
6681}
6682
6683// SetLoggingConfig sets the LoggingConfig field's value.
6684func (s *ActivateTypeInput) SetLoggingConfig(v *LoggingConfig) *ActivateTypeInput {
6685	s.LoggingConfig = v
6686	return s
6687}
6688
6689// SetMajorVersion sets the MajorVersion field's value.
6690func (s *ActivateTypeInput) SetMajorVersion(v int64) *ActivateTypeInput {
6691	s.MajorVersion = &v
6692	return s
6693}
6694
6695// SetPublicTypeArn sets the PublicTypeArn field's value.
6696func (s *ActivateTypeInput) SetPublicTypeArn(v string) *ActivateTypeInput {
6697	s.PublicTypeArn = &v
6698	return s
6699}
6700
6701// SetPublisherId sets the PublisherId field's value.
6702func (s *ActivateTypeInput) SetPublisherId(v string) *ActivateTypeInput {
6703	s.PublisherId = &v
6704	return s
6705}
6706
6707// SetType sets the Type field's value.
6708func (s *ActivateTypeInput) SetType(v string) *ActivateTypeInput {
6709	s.Type = &v
6710	return s
6711}
6712
6713// SetTypeName sets the TypeName field's value.
6714func (s *ActivateTypeInput) SetTypeName(v string) *ActivateTypeInput {
6715	s.TypeName = &v
6716	return s
6717}
6718
6719// SetTypeNameAlias sets the TypeNameAlias field's value.
6720func (s *ActivateTypeInput) SetTypeNameAlias(v string) *ActivateTypeInput {
6721	s.TypeNameAlias = &v
6722	return s
6723}
6724
6725// SetVersionBump sets the VersionBump field's value.
6726func (s *ActivateTypeInput) SetVersionBump(v string) *ActivateTypeInput {
6727	s.VersionBump = &v
6728	return s
6729}
6730
6731type ActivateTypeOutput struct {
6732	_ struct{} `type:"structure"`
6733
6734	// The Amazon Resource Number (ARN) of the activated extension, in this account
6735	// and region.
6736	Arn *string `type:"string"`
6737}
6738
6739// String returns the string representation
6740func (s ActivateTypeOutput) String() string {
6741	return awsutil.Prettify(s)
6742}
6743
6744// GoString returns the string representation
6745func (s ActivateTypeOutput) GoString() string {
6746	return s.String()
6747}
6748
6749// SetArn sets the Arn field's value.
6750func (s *ActivateTypeOutput) SetArn(v string) *ActivateTypeOutput {
6751	s.Arn = &v
6752	return s
6753}
6754
6755// [Service-managed permissions] Describes whether StackSets automatically deploys
6756// to AWS Organizations accounts that are added to a target organization or
6757// organizational unit (OU).
6758type AutoDeployment struct {
6759	_ struct{} `type:"structure"`
6760
6761	// If set to true, StackSets automatically deploys additional stack instances
6762	// to AWS Organizations accounts that are added to a target organization or
6763	// organizational unit (OU) in the specified Regions. If an account is removed
6764	// from a target organization or OU, StackSets deletes stack instances from
6765	// the account in the specified Regions.
6766	Enabled *bool `type:"boolean"`
6767
6768	// If set to true, stack resources are retained when an account is removed from
6769	// a target organization or OU. If set to false, stack resources are deleted.
6770	// Specify only if Enabled is set to True.
6771	RetainStacksOnAccountRemoval *bool `type:"boolean"`
6772}
6773
6774// String returns the string representation
6775func (s AutoDeployment) String() string {
6776	return awsutil.Prettify(s)
6777}
6778
6779// GoString returns the string representation
6780func (s AutoDeployment) GoString() string {
6781	return s.String()
6782}
6783
6784// SetEnabled sets the Enabled field's value.
6785func (s *AutoDeployment) SetEnabled(v bool) *AutoDeployment {
6786	s.Enabled = &v
6787	return s
6788}
6789
6790// SetRetainStacksOnAccountRemoval sets the RetainStacksOnAccountRemoval field's value.
6791func (s *AutoDeployment) SetRetainStacksOnAccountRemoval(v bool) *AutoDeployment {
6792	s.RetainStacksOnAccountRemoval = &v
6793	return s
6794}
6795
6796// Detailed information concerning an error generated during the setting of
6797// configuration data for a CloudFormation extension.
6798type BatchDescribeTypeConfigurationsError struct {
6799	_ struct{} `type:"structure"`
6800
6801	// The error code.
6802	ErrorCode *string `min:"3" type:"string"`
6803
6804	// The error message.
6805	ErrorMessage *string `min:"1" type:"string"`
6806
6807	// Identifying information for the configuration of a CloudFormation extension.
6808	TypeConfigurationIdentifier *TypeConfigurationIdentifier `type:"structure"`
6809}
6810
6811// String returns the string representation
6812func (s BatchDescribeTypeConfigurationsError) String() string {
6813	return awsutil.Prettify(s)
6814}
6815
6816// GoString returns the string representation
6817func (s BatchDescribeTypeConfigurationsError) GoString() string {
6818	return s.String()
6819}
6820
6821// SetErrorCode sets the ErrorCode field's value.
6822func (s *BatchDescribeTypeConfigurationsError) SetErrorCode(v string) *BatchDescribeTypeConfigurationsError {
6823	s.ErrorCode = &v
6824	return s
6825}
6826
6827// SetErrorMessage sets the ErrorMessage field's value.
6828func (s *BatchDescribeTypeConfigurationsError) SetErrorMessage(v string) *BatchDescribeTypeConfigurationsError {
6829	s.ErrorMessage = &v
6830	return s
6831}
6832
6833// SetTypeConfigurationIdentifier sets the TypeConfigurationIdentifier field's value.
6834func (s *BatchDescribeTypeConfigurationsError) SetTypeConfigurationIdentifier(v *TypeConfigurationIdentifier) *BatchDescribeTypeConfigurationsError {
6835	s.TypeConfigurationIdentifier = v
6836	return s
6837}
6838
6839type BatchDescribeTypeConfigurationsInput struct {
6840	_ struct{} `type:"structure"`
6841
6842	// The list of identifiers for the desired extension configurations.
6843	//
6844	// TypeConfigurationIdentifiers is a required field
6845	TypeConfigurationIdentifiers []*TypeConfigurationIdentifier `min:"1" type:"list" required:"true"`
6846}
6847
6848// String returns the string representation
6849func (s BatchDescribeTypeConfigurationsInput) String() string {
6850	return awsutil.Prettify(s)
6851}
6852
6853// GoString returns the string representation
6854func (s BatchDescribeTypeConfigurationsInput) GoString() string {
6855	return s.String()
6856}
6857
6858// Validate inspects the fields of the type to determine if they are valid.
6859func (s *BatchDescribeTypeConfigurationsInput) Validate() error {
6860	invalidParams := request.ErrInvalidParams{Context: "BatchDescribeTypeConfigurationsInput"}
6861	if s.TypeConfigurationIdentifiers == nil {
6862		invalidParams.Add(request.NewErrParamRequired("TypeConfigurationIdentifiers"))
6863	}
6864	if s.TypeConfigurationIdentifiers != nil && len(s.TypeConfigurationIdentifiers) < 1 {
6865		invalidParams.Add(request.NewErrParamMinLen("TypeConfigurationIdentifiers", 1))
6866	}
6867	if s.TypeConfigurationIdentifiers != nil {
6868		for i, v := range s.TypeConfigurationIdentifiers {
6869			if v == nil {
6870				continue
6871			}
6872			if err := v.Validate(); err != nil {
6873				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "TypeConfigurationIdentifiers", i), err.(request.ErrInvalidParams))
6874			}
6875		}
6876	}
6877
6878	if invalidParams.Len() > 0 {
6879		return invalidParams
6880	}
6881	return nil
6882}
6883
6884// SetTypeConfigurationIdentifiers sets the TypeConfigurationIdentifiers field's value.
6885func (s *BatchDescribeTypeConfigurationsInput) SetTypeConfigurationIdentifiers(v []*TypeConfigurationIdentifier) *BatchDescribeTypeConfigurationsInput {
6886	s.TypeConfigurationIdentifiers = v
6887	return s
6888}
6889
6890type BatchDescribeTypeConfigurationsOutput struct {
6891	_ struct{} `type:"structure"`
6892
6893	// A list of information concerning any errors generated during the setting
6894	// of the specified configurations.
6895	Errors []*BatchDescribeTypeConfigurationsError `type:"list"`
6896
6897	// A list of any of the specified extension configurations from the CloudFormation
6898	// registry.
6899	TypeConfigurations []*TypeConfigurationDetails `type:"list"`
6900
6901	// A list of any of the specified extension configurations that CloudFormation
6902	// could not process for any reason.
6903	UnprocessedTypeConfigurations []*TypeConfigurationIdentifier `type:"list"`
6904}
6905
6906// String returns the string representation
6907func (s BatchDescribeTypeConfigurationsOutput) String() string {
6908	return awsutil.Prettify(s)
6909}
6910
6911// GoString returns the string representation
6912func (s BatchDescribeTypeConfigurationsOutput) GoString() string {
6913	return s.String()
6914}
6915
6916// SetErrors sets the Errors field's value.
6917func (s *BatchDescribeTypeConfigurationsOutput) SetErrors(v []*BatchDescribeTypeConfigurationsError) *BatchDescribeTypeConfigurationsOutput {
6918	s.Errors = v
6919	return s
6920}
6921
6922// SetTypeConfigurations sets the TypeConfigurations field's value.
6923func (s *BatchDescribeTypeConfigurationsOutput) SetTypeConfigurations(v []*TypeConfigurationDetails) *BatchDescribeTypeConfigurationsOutput {
6924	s.TypeConfigurations = v
6925	return s
6926}
6927
6928// SetUnprocessedTypeConfigurations sets the UnprocessedTypeConfigurations field's value.
6929func (s *BatchDescribeTypeConfigurationsOutput) SetUnprocessedTypeConfigurations(v []*TypeConfigurationIdentifier) *BatchDescribeTypeConfigurationsOutput {
6930	s.UnprocessedTypeConfigurations = v
6931	return s
6932}
6933
6934// The input for the CancelUpdateStack action.
6935type CancelUpdateStackInput struct {
6936	_ struct{} `type:"structure"`
6937
6938	// A unique identifier for this CancelUpdateStack request. Specify this token
6939	// if you plan to retry requests so that AWS CloudFormation knows that you're
6940	// not attempting to cancel an update on a stack with the same name. You might
6941	// retry CancelUpdateStack requests to ensure that AWS CloudFormation successfully
6942	// received them.
6943	ClientRequestToken *string `min:"1" type:"string"`
6944
6945	// The name or the unique stack ID that is associated with the stack.
6946	//
6947	// StackName is a required field
6948	StackName *string `type:"string" required:"true"`
6949}
6950
6951// String returns the string representation
6952func (s CancelUpdateStackInput) String() string {
6953	return awsutil.Prettify(s)
6954}
6955
6956// GoString returns the string representation
6957func (s CancelUpdateStackInput) GoString() string {
6958	return s.String()
6959}
6960
6961// Validate inspects the fields of the type to determine if they are valid.
6962func (s *CancelUpdateStackInput) Validate() error {
6963	invalidParams := request.ErrInvalidParams{Context: "CancelUpdateStackInput"}
6964	if s.ClientRequestToken != nil && len(*s.ClientRequestToken) < 1 {
6965		invalidParams.Add(request.NewErrParamMinLen("ClientRequestToken", 1))
6966	}
6967	if s.StackName == nil {
6968		invalidParams.Add(request.NewErrParamRequired("StackName"))
6969	}
6970
6971	if invalidParams.Len() > 0 {
6972		return invalidParams
6973	}
6974	return nil
6975}
6976
6977// SetClientRequestToken sets the ClientRequestToken field's value.
6978func (s *CancelUpdateStackInput) SetClientRequestToken(v string) *CancelUpdateStackInput {
6979	s.ClientRequestToken = &v
6980	return s
6981}
6982
6983// SetStackName sets the StackName field's value.
6984func (s *CancelUpdateStackInput) SetStackName(v string) *CancelUpdateStackInput {
6985	s.StackName = &v
6986	return s
6987}
6988
6989type CancelUpdateStackOutput struct {
6990	_ struct{} `type:"structure"`
6991}
6992
6993// String returns the string representation
6994func (s CancelUpdateStackOutput) String() string {
6995	return awsutil.Prettify(s)
6996}
6997
6998// GoString returns the string representation
6999func (s CancelUpdateStackOutput) GoString() string {
7000	return s.String()
7001}
7002
7003// The Change structure describes the changes AWS CloudFormation will perform
7004// if you execute the change set.
7005type Change struct {
7006	_ struct{} `type:"structure"`
7007
7008	// A ResourceChange structure that describes the resource and action that AWS
7009	// CloudFormation will perform.
7010	ResourceChange *ResourceChange `type:"structure"`
7011
7012	// The type of entity that AWS CloudFormation changes. Currently, the only entity
7013	// type is Resource.
7014	Type *string `type:"string" enum:"ChangeType"`
7015}
7016
7017// String returns the string representation
7018func (s Change) String() string {
7019	return awsutil.Prettify(s)
7020}
7021
7022// GoString returns the string representation
7023func (s Change) GoString() string {
7024	return s.String()
7025}
7026
7027// SetResourceChange sets the ResourceChange field's value.
7028func (s *Change) SetResourceChange(v *ResourceChange) *Change {
7029	s.ResourceChange = v
7030	return s
7031}
7032
7033// SetType sets the Type field's value.
7034func (s *Change) SetType(v string) *Change {
7035	s.Type = &v
7036	return s
7037}
7038
7039// The ChangeSetSummary structure describes a change set, its status, and the
7040// stack with which it's associated.
7041type ChangeSetSummary struct {
7042	_ struct{} `type:"structure"`
7043
7044	// The ID of the change set.
7045	ChangeSetId *string `min:"1" type:"string"`
7046
7047	// The name of the change set.
7048	ChangeSetName *string `min:"1" type:"string"`
7049
7050	// The start time when the change set was created, in UTC.
7051	CreationTime *time.Time `type:"timestamp"`
7052
7053	// Descriptive information about the change set.
7054	Description *string `min:"1" type:"string"`
7055
7056	// If the change set execution status is AVAILABLE, you can execute the change
7057	// set. If you can’t execute the change set, the status indicates why. For
7058	// example, a change set might be in an UNAVAILABLE state because AWS CloudFormation
7059	// is still creating it or in an OBSOLETE state because the stack was already
7060	// updated.
7061	ExecutionStatus *string `type:"string" enum:"ExecutionStatus"`
7062
7063	// Specifies the current setting of IncludeNestedStacks for the change set.
7064	IncludeNestedStacks *bool `type:"boolean"`
7065
7066	// The parent change set ID.
7067	ParentChangeSetId *string `min:"1" type:"string"`
7068
7069	// The root change set ID.
7070	RootChangeSetId *string `min:"1" type:"string"`
7071
7072	// The ID of the stack with which the change set is associated.
7073	StackId *string `type:"string"`
7074
7075	// The name of the stack with which the change set is associated.
7076	StackName *string `type:"string"`
7077
7078	// The state of the change set, such as CREATE_IN_PROGRESS, CREATE_COMPLETE,
7079	// or FAILED.
7080	Status *string `type:"string" enum:"ChangeSetStatus"`
7081
7082	// A description of the change set's status. For example, if your change set
7083	// is in the FAILED state, AWS CloudFormation shows the error message.
7084	StatusReason *string `type:"string"`
7085}
7086
7087// String returns the string representation
7088func (s ChangeSetSummary) String() string {
7089	return awsutil.Prettify(s)
7090}
7091
7092// GoString returns the string representation
7093func (s ChangeSetSummary) GoString() string {
7094	return s.String()
7095}
7096
7097// SetChangeSetId sets the ChangeSetId field's value.
7098func (s *ChangeSetSummary) SetChangeSetId(v string) *ChangeSetSummary {
7099	s.ChangeSetId = &v
7100	return s
7101}
7102
7103// SetChangeSetName sets the ChangeSetName field's value.
7104func (s *ChangeSetSummary) SetChangeSetName(v string) *ChangeSetSummary {
7105	s.ChangeSetName = &v
7106	return s
7107}
7108
7109// SetCreationTime sets the CreationTime field's value.
7110func (s *ChangeSetSummary) SetCreationTime(v time.Time) *ChangeSetSummary {
7111	s.CreationTime = &v
7112	return s
7113}
7114
7115// SetDescription sets the Description field's value.
7116func (s *ChangeSetSummary) SetDescription(v string) *ChangeSetSummary {
7117	s.Description = &v
7118	return s
7119}
7120
7121// SetExecutionStatus sets the ExecutionStatus field's value.
7122func (s *ChangeSetSummary) SetExecutionStatus(v string) *ChangeSetSummary {
7123	s.ExecutionStatus = &v
7124	return s
7125}
7126
7127// SetIncludeNestedStacks sets the IncludeNestedStacks field's value.
7128func (s *ChangeSetSummary) SetIncludeNestedStacks(v bool) *ChangeSetSummary {
7129	s.IncludeNestedStacks = &v
7130	return s
7131}
7132
7133// SetParentChangeSetId sets the ParentChangeSetId field's value.
7134func (s *ChangeSetSummary) SetParentChangeSetId(v string) *ChangeSetSummary {
7135	s.ParentChangeSetId = &v
7136	return s
7137}
7138
7139// SetRootChangeSetId sets the RootChangeSetId field's value.
7140func (s *ChangeSetSummary) SetRootChangeSetId(v string) *ChangeSetSummary {
7141	s.RootChangeSetId = &v
7142	return s
7143}
7144
7145// SetStackId sets the StackId field's value.
7146func (s *ChangeSetSummary) SetStackId(v string) *ChangeSetSummary {
7147	s.StackId = &v
7148	return s
7149}
7150
7151// SetStackName sets the StackName field's value.
7152func (s *ChangeSetSummary) SetStackName(v string) *ChangeSetSummary {
7153	s.StackName = &v
7154	return s
7155}
7156
7157// SetStatus sets the Status field's value.
7158func (s *ChangeSetSummary) SetStatus(v string) *ChangeSetSummary {
7159	s.Status = &v
7160	return s
7161}
7162
7163// SetStatusReason sets the StatusReason field's value.
7164func (s *ChangeSetSummary) SetStatusReason(v string) *ChangeSetSummary {
7165	s.StatusReason = &v
7166	return s
7167}
7168
7169// The input for the ContinueUpdateRollback action.
7170type ContinueUpdateRollbackInput struct {
7171	_ struct{} `type:"structure"`
7172
7173	// A unique identifier for this ContinueUpdateRollback request. Specify this
7174	// token if you plan to retry requests so that AWS CloudFormation knows that
7175	// you're not attempting to continue the rollback to a stack with the same name.
7176	// You might retry ContinueUpdateRollback requests to ensure that AWS CloudFormation
7177	// successfully received them.
7178	ClientRequestToken *string `min:"1" type:"string"`
7179
7180	// A list of the logical IDs of the resources that AWS CloudFormation skips
7181	// during the continue update rollback operation. You can specify only resources
7182	// that are in the UPDATE_FAILED state because a rollback failed. You can't
7183	// specify resources that are in the UPDATE_FAILED state for other reasons,
7184	// for example, because an update was cancelled. To check why a resource update
7185	// failed, use the DescribeStackResources action, and view the resource status
7186	// reason.
7187	//
7188	// Specify this property to skip rolling back resources that AWS CloudFormation
7189	// 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)
7190	// resources before skipping them. AWS CloudFormation sets the status of the
7191	// specified resources to UPDATE_COMPLETE and continues to roll back the stack.
7192	// After the rollback is complete, the state of the skipped resources will be
7193	// inconsistent with the state of the resources in the stack template. Before
7194	// performing another stack update, you must update the stack or resources to
7195	// be consistent with each other. If you don't, subsequent stack updates might
7196	// fail, and the stack will become unrecoverable.
7197	//
7198	// Specify the minimum number of resources required to successfully roll back
7199	// your stack. For example, a failed resource update might cause dependent resources
7200	// to fail. In this case, it might not be necessary to skip the dependent resources.
7201	//
7202	// To skip resources that are part of nested stacks, use the following format:
7203	// NestedStackName.ResourceLogicalID. If you want to specify the logical ID
7204	// of a stack resource (Type: AWS::CloudFormation::Stack) in the ResourcesToSkip
7205	// list, then its corresponding embedded stack must be in one of the following
7206	// states: DELETE_IN_PROGRESS, DELETE_COMPLETE, or DELETE_FAILED.
7207	//
7208	// Don't confuse a child stack's name with its corresponding logical ID defined
7209	// in the parent stack. For an example of a continue update rollback operation
7210	// with nested stacks, see Using ResourcesToSkip to recover a nested stacks
7211	// hierarchy (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-continueupdaterollback.html#nested-stacks).
7212	ResourcesToSkip []*string `type:"list"`
7213
7214	// The Amazon Resource Name (ARN) of an AWS Identity and Access Management (IAM)
7215	// role that AWS CloudFormation assumes to roll back the stack. AWS CloudFormation
7216	// uses the role's credentials to make calls on your behalf. AWS CloudFormation
7217	// always uses this role for all future operations on the stack. As long as
7218	// users have permission to operate on the stack, AWS CloudFormation uses this
7219	// role even if the users don't have permission to pass it. Ensure that the
7220	// role grants least privilege.
7221	//
7222	// If you don't specify a value, AWS CloudFormation uses the role that was previously
7223	// associated with the stack. If no role is available, AWS CloudFormation uses
7224	// a temporary session that is generated from your user credentials.
7225	RoleARN *string `min:"20" type:"string"`
7226
7227	// The name or the unique ID of the stack that you want to continue rolling
7228	// back.
7229	//
7230	// Don't specify the name of a nested stack (a stack that was created by using
7231	// the AWS::CloudFormation::Stack resource). Instead, use this operation on
7232	// the parent stack (the stack that contains the AWS::CloudFormation::Stack
7233	// resource).
7234	//
7235	// StackName is a required field
7236	StackName *string `min:"1" type:"string" required:"true"`
7237}
7238
7239// String returns the string representation
7240func (s ContinueUpdateRollbackInput) String() string {
7241	return awsutil.Prettify(s)
7242}
7243
7244// GoString returns the string representation
7245func (s ContinueUpdateRollbackInput) GoString() string {
7246	return s.String()
7247}
7248
7249// Validate inspects the fields of the type to determine if they are valid.
7250func (s *ContinueUpdateRollbackInput) Validate() error {
7251	invalidParams := request.ErrInvalidParams{Context: "ContinueUpdateRollbackInput"}
7252	if s.ClientRequestToken != nil && len(*s.ClientRequestToken) < 1 {
7253		invalidParams.Add(request.NewErrParamMinLen("ClientRequestToken", 1))
7254	}
7255	if s.RoleARN != nil && len(*s.RoleARN) < 20 {
7256		invalidParams.Add(request.NewErrParamMinLen("RoleARN", 20))
7257	}
7258	if s.StackName == nil {
7259		invalidParams.Add(request.NewErrParamRequired("StackName"))
7260	}
7261	if s.StackName != nil && len(*s.StackName) < 1 {
7262		invalidParams.Add(request.NewErrParamMinLen("StackName", 1))
7263	}
7264
7265	if invalidParams.Len() > 0 {
7266		return invalidParams
7267	}
7268	return nil
7269}
7270
7271// SetClientRequestToken sets the ClientRequestToken field's value.
7272func (s *ContinueUpdateRollbackInput) SetClientRequestToken(v string) *ContinueUpdateRollbackInput {
7273	s.ClientRequestToken = &v
7274	return s
7275}
7276
7277// SetResourcesToSkip sets the ResourcesToSkip field's value.
7278func (s *ContinueUpdateRollbackInput) SetResourcesToSkip(v []*string) *ContinueUpdateRollbackInput {
7279	s.ResourcesToSkip = v
7280	return s
7281}
7282
7283// SetRoleARN sets the RoleARN field's value.
7284func (s *ContinueUpdateRollbackInput) SetRoleARN(v string) *ContinueUpdateRollbackInput {
7285	s.RoleARN = &v
7286	return s
7287}
7288
7289// SetStackName sets the StackName field's value.
7290func (s *ContinueUpdateRollbackInput) SetStackName(v string) *ContinueUpdateRollbackInput {
7291	s.StackName = &v
7292	return s
7293}
7294
7295// The output for a ContinueUpdateRollback action.
7296type ContinueUpdateRollbackOutput struct {
7297	_ struct{} `type:"structure"`
7298}
7299
7300// String returns the string representation
7301func (s ContinueUpdateRollbackOutput) String() string {
7302	return awsutil.Prettify(s)
7303}
7304
7305// GoString returns the string representation
7306func (s ContinueUpdateRollbackOutput) GoString() string {
7307	return s.String()
7308}
7309
7310// The input for the CreateChangeSet action.
7311type CreateChangeSetInput struct {
7312	_ struct{} `type:"structure"`
7313
7314	// In some cases, you must explicitly acknowledge that your stack template contains
7315	// certain capabilities in order for AWS CloudFormation to create the stack.
7316	//
7317	//    * CAPABILITY_IAM and CAPABILITY_NAMED_IAM Some stack templates might include
7318	//    resources that can affect permissions in your AWS account; for example,
7319	//    by creating new AWS Identity and Access Management (IAM) users. For those
7320	//    stacks, you must explicitly acknowledge this by specifying one of these
7321	//    capabilities. The following IAM resources require you to specify either
7322	//    the CAPABILITY_IAM or CAPABILITY_NAMED_IAM capability. If you have IAM
7323	//    resources, you can specify either capability. If you have IAM resources
7324	//    with custom names, you must specify CAPABILITY_NAMED_IAM. If you don't
7325	//    specify either of these capabilities, AWS CloudFormation returns an InsufficientCapabilities
7326	//    error. If your stack template contains these resources, we recommend that
7327	//    you review all permissions associated with them and edit their permissions
7328	//    if necessary. AWS::IAM::AccessKey (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iam-accesskey.html)
7329	//    AWS::IAM::Group (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iam-group.html)
7330	//    AWS::IAM::InstanceProfile (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iam-instanceprofile.html)
7331	//    AWS::IAM::Policy (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iam-policy.html)
7332	//    AWS::IAM::Role (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iam-role.html)
7333	//    AWS::IAM::User (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iam-user.html)
7334	//    AWS::IAM::UserToGroupAddition (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iam-addusertogroup.html)
7335	//    For more information, see Acknowledging IAM Resources in AWS CloudFormation
7336	//    Templates (http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-iam-template.html#capabilities).
7337	//
7338	//    * CAPABILITY_AUTO_EXPAND Some template contain macros. Macros perform
7339	//    custom processing on templates; this can include simple actions like find-and-replace
7340	//    operations, all the way to extensive transformations of entire templates.
7341	//    Because of this, users typically create a change set from the processed
7342	//    template, so that they can review the changes resulting from the macros
7343	//    before actually creating the stack. If your stack template contains one
7344	//    or more macros, and you choose to create a stack directly from the processed
7345	//    template, without first reviewing the resulting changes in a change set,
7346	//    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)
7347	//    and AWS::Serverless (http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/transform-aws-serverless.html)
7348	//    transforms, which are macros hosted by AWS CloudFormation. This capacity
7349	//    does not apply to creating change sets, and specifying it when creating
7350	//    change sets has no effect. If you want to create a stack from a stack
7351	//    template that contains macros and nested stacks, you must create or update
7352	//    the stack directly from the template using the CreateStack or UpdateStack
7353	//    action, and specifying this capability. For more information on macros,
7354	//    see Using AWS CloudFormation Macros to Perform Custom Processing on Templates
7355	//    (http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/template-macros.html).
7356	Capabilities []*string `type:"list"`
7357
7358	// The name of the change set. The name must be unique among all change sets
7359	// that are associated with the specified stack.
7360	//
7361	// A change set name can contain only alphanumeric, case sensitive characters
7362	// and hyphens. It must start with an alphabetic character and cannot exceed
7363	// 128 characters.
7364	//
7365	// ChangeSetName is a required field
7366	ChangeSetName *string `min:"1" type:"string" required:"true"`
7367
7368	// The type of change set operation. To create a change set for a new stack,
7369	// specify CREATE. To create a change set for an existing stack, specify UPDATE.
7370	// To create a change set for an import operation, specify IMPORT.
7371	//
7372	// If you create a change set for a new stack, AWS Cloudformation creates a
7373	// stack with a unique stack ID, but no template or resources. The stack will
7374	// be in the REVIEW_IN_PROGRESS (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-describing-stacks.html#d0e11995)
7375	// state until you execute the change set.
7376	//
7377	// By default, AWS CloudFormation specifies UPDATE. You can't use the UPDATE
7378	// type to create a change set for a new stack or the CREATE type to create
7379	// a change set for an existing stack.
7380	ChangeSetType *string `type:"string" enum:"ChangeSetType"`
7381
7382	// A unique identifier for this CreateChangeSet request. Specify this token
7383	// if you plan to retry requests so that AWS CloudFormation knows that you're
7384	// not attempting to create another change set with the same name. You might
7385	// retry CreateChangeSet requests to ensure that AWS CloudFormation successfully
7386	// received them.
7387	ClientToken *string `min:"1" type:"string"`
7388
7389	// A description to help you identify this change set.
7390	Description *string `min:"1" type:"string"`
7391
7392	// Creates a change set for the all nested stacks specified in the template.
7393	// The default behavior of this action is set to False. To include nested sets
7394	// in a change set, specify True.
7395	IncludeNestedStacks *bool `type:"boolean"`
7396
7397	// The Amazon Resource Names (ARNs) of Amazon Simple Notification Service (Amazon
7398	// SNS) topics that AWS CloudFormation associates with the stack. To remove
7399	// all associated notification topics, specify an empty list.
7400	NotificationARNs []*string `type:"list"`
7401
7402	// A list of Parameter structures that specify input parameters for the change
7403	// set. For more information, see the Parameter data type.
7404	Parameters []*Parameter `type:"list"`
7405
7406	// The template resource types that you have permissions to work with if you
7407	// execute this change set, such as AWS::EC2::Instance, AWS::EC2::*, or Custom::MyCustomInstance.
7408	//
7409	// If the list of resource types doesn't include a resource type that you're
7410	// updating, the stack update fails. By default, AWS CloudFormation grants permissions
7411	// to all resource types. AWS Identity and Access Management (IAM) uses this
7412	// parameter for condition keys in IAM policies for AWS CloudFormation. For
7413	// more information, see Controlling Access with AWS Identity and Access Management
7414	// (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-iam-template.html)
7415	// in the AWS CloudFormation User Guide.
7416	ResourceTypes []*string `type:"list"`
7417
7418	// The resources to import into your stack.
7419	ResourcesToImport []*ResourceToImport `type:"list"`
7420
7421	// The Amazon Resource Name (ARN) of an AWS Identity and Access Management (IAM)
7422	// role that AWS CloudFormation assumes when executing the change set. AWS CloudFormation
7423	// uses the role's credentials to make calls on your behalf. AWS CloudFormation
7424	// uses this role for all future operations on the stack. As long as users have
7425	// permission to operate on the stack, AWS CloudFormation uses this role even
7426	// if the users don't have permission to pass it. Ensure that the role grants
7427	// least privilege.
7428	//
7429	// If you don't specify a value, AWS CloudFormation uses the role that was previously
7430	// associated with the stack. If no role is available, AWS CloudFormation uses
7431	// a temporary session that is generated from your user credentials.
7432	RoleARN *string `min:"20" type:"string"`
7433
7434	// The rollback triggers for AWS CloudFormation to monitor during stack creation
7435	// and updating operations, and for the specified monitoring period afterwards.
7436	RollbackConfiguration *RollbackConfiguration `type:"structure"`
7437
7438	// The name or the unique ID of the stack for which you are creating a change
7439	// set. AWS CloudFormation generates the change set by comparing this stack's
7440	// information with the information that you submit, such as a modified template
7441	// or different parameter input values.
7442	//
7443	// StackName is a required field
7444	StackName *string `min:"1" type:"string" required:"true"`
7445
7446	// Key-value pairs to associate with this stack. AWS CloudFormation also propagates
7447	// these tags to resources in the stack. You can specify a maximum of 50 tags.
7448	Tags []*Tag `type:"list"`
7449
7450	// A structure that contains the body of the revised template, with a minimum
7451	// length of 1 byte and a maximum length of 51,200 bytes. AWS CloudFormation
7452	// generates the change set by comparing this template with the template of
7453	// the stack that you specified.
7454	//
7455	// Conditional: You must specify only TemplateBody or TemplateURL.
7456	TemplateBody *string `min:"1" type:"string"`
7457
7458	// The location of the file that contains the revised template. The URL must
7459	// point to a template (max size: 460,800 bytes) that is located in an S3 bucket
7460	// or a Systems Manager document. AWS CloudFormation generates the change set
7461	// by comparing this template with the stack that you specified.
7462	//
7463	// Conditional: You must specify only TemplateBody or TemplateURL.
7464	TemplateURL *string `min:"1" type:"string"`
7465
7466	// Whether to reuse the template that is associated with the stack to create
7467	// the change set.
7468	UsePreviousTemplate *bool `type:"boolean"`
7469}
7470
7471// String returns the string representation
7472func (s CreateChangeSetInput) String() string {
7473	return awsutil.Prettify(s)
7474}
7475
7476// GoString returns the string representation
7477func (s CreateChangeSetInput) GoString() string {
7478	return s.String()
7479}
7480
7481// Validate inspects the fields of the type to determine if they are valid.
7482func (s *CreateChangeSetInput) Validate() error {
7483	invalidParams := request.ErrInvalidParams{Context: "CreateChangeSetInput"}
7484	if s.ChangeSetName == nil {
7485		invalidParams.Add(request.NewErrParamRequired("ChangeSetName"))
7486	}
7487	if s.ChangeSetName != nil && len(*s.ChangeSetName) < 1 {
7488		invalidParams.Add(request.NewErrParamMinLen("ChangeSetName", 1))
7489	}
7490	if s.ClientToken != nil && len(*s.ClientToken) < 1 {
7491		invalidParams.Add(request.NewErrParamMinLen("ClientToken", 1))
7492	}
7493	if s.Description != nil && len(*s.Description) < 1 {
7494		invalidParams.Add(request.NewErrParamMinLen("Description", 1))
7495	}
7496	if s.RoleARN != nil && len(*s.RoleARN) < 20 {
7497		invalidParams.Add(request.NewErrParamMinLen("RoleARN", 20))
7498	}
7499	if s.StackName == nil {
7500		invalidParams.Add(request.NewErrParamRequired("StackName"))
7501	}
7502	if s.StackName != nil && len(*s.StackName) < 1 {
7503		invalidParams.Add(request.NewErrParamMinLen("StackName", 1))
7504	}
7505	if s.TemplateBody != nil && len(*s.TemplateBody) < 1 {
7506		invalidParams.Add(request.NewErrParamMinLen("TemplateBody", 1))
7507	}
7508	if s.TemplateURL != nil && len(*s.TemplateURL) < 1 {
7509		invalidParams.Add(request.NewErrParamMinLen("TemplateURL", 1))
7510	}
7511	if s.ResourcesToImport != nil {
7512		for i, v := range s.ResourcesToImport {
7513			if v == nil {
7514				continue
7515			}
7516			if err := v.Validate(); err != nil {
7517				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "ResourcesToImport", i), err.(request.ErrInvalidParams))
7518			}
7519		}
7520	}
7521	if s.RollbackConfiguration != nil {
7522		if err := s.RollbackConfiguration.Validate(); err != nil {
7523			invalidParams.AddNested("RollbackConfiguration", err.(request.ErrInvalidParams))
7524		}
7525	}
7526	if s.Tags != nil {
7527		for i, v := range s.Tags {
7528			if v == nil {
7529				continue
7530			}
7531			if err := v.Validate(); err != nil {
7532				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Tags", i), err.(request.ErrInvalidParams))
7533			}
7534		}
7535	}
7536
7537	if invalidParams.Len() > 0 {
7538		return invalidParams
7539	}
7540	return nil
7541}
7542
7543// SetCapabilities sets the Capabilities field's value.
7544func (s *CreateChangeSetInput) SetCapabilities(v []*string) *CreateChangeSetInput {
7545	s.Capabilities = v
7546	return s
7547}
7548
7549// SetChangeSetName sets the ChangeSetName field's value.
7550func (s *CreateChangeSetInput) SetChangeSetName(v string) *CreateChangeSetInput {
7551	s.ChangeSetName = &v
7552	return s
7553}
7554
7555// SetChangeSetType sets the ChangeSetType field's value.
7556func (s *CreateChangeSetInput) SetChangeSetType(v string) *CreateChangeSetInput {
7557	s.ChangeSetType = &v
7558	return s
7559}
7560
7561// SetClientToken sets the ClientToken field's value.
7562func (s *CreateChangeSetInput) SetClientToken(v string) *CreateChangeSetInput {
7563	s.ClientToken = &v
7564	return s
7565}
7566
7567// SetDescription sets the Description field's value.
7568func (s *CreateChangeSetInput) SetDescription(v string) *CreateChangeSetInput {
7569	s.Description = &v
7570	return s
7571}
7572
7573// SetIncludeNestedStacks sets the IncludeNestedStacks field's value.
7574func (s *CreateChangeSetInput) SetIncludeNestedStacks(v bool) *CreateChangeSetInput {
7575	s.IncludeNestedStacks = &v
7576	return s
7577}
7578
7579// SetNotificationARNs sets the NotificationARNs field's value.
7580func (s *CreateChangeSetInput) SetNotificationARNs(v []*string) *CreateChangeSetInput {
7581	s.NotificationARNs = v
7582	return s
7583}
7584
7585// SetParameters sets the Parameters field's value.
7586func (s *CreateChangeSetInput) SetParameters(v []*Parameter) *CreateChangeSetInput {
7587	s.Parameters = v
7588	return s
7589}
7590
7591// SetResourceTypes sets the ResourceTypes field's value.
7592func (s *CreateChangeSetInput) SetResourceTypes(v []*string) *CreateChangeSetInput {
7593	s.ResourceTypes = v
7594	return s
7595}
7596
7597// SetResourcesToImport sets the ResourcesToImport field's value.
7598func (s *CreateChangeSetInput) SetResourcesToImport(v []*ResourceToImport) *CreateChangeSetInput {
7599	s.ResourcesToImport = v
7600	return s
7601}
7602
7603// SetRoleARN sets the RoleARN field's value.
7604func (s *CreateChangeSetInput) SetRoleARN(v string) *CreateChangeSetInput {
7605	s.RoleARN = &v
7606	return s
7607}
7608
7609// SetRollbackConfiguration sets the RollbackConfiguration field's value.
7610func (s *CreateChangeSetInput) SetRollbackConfiguration(v *RollbackConfiguration) *CreateChangeSetInput {
7611	s.RollbackConfiguration = v
7612	return s
7613}
7614
7615// SetStackName sets the StackName field's value.
7616func (s *CreateChangeSetInput) SetStackName(v string) *CreateChangeSetInput {
7617	s.StackName = &v
7618	return s
7619}
7620
7621// SetTags sets the Tags field's value.
7622func (s *CreateChangeSetInput) SetTags(v []*Tag) *CreateChangeSetInput {
7623	s.Tags = v
7624	return s
7625}
7626
7627// SetTemplateBody sets the TemplateBody field's value.
7628func (s *CreateChangeSetInput) SetTemplateBody(v string) *CreateChangeSetInput {
7629	s.TemplateBody = &v
7630	return s
7631}
7632
7633// SetTemplateURL sets the TemplateURL field's value.
7634func (s *CreateChangeSetInput) SetTemplateURL(v string) *CreateChangeSetInput {
7635	s.TemplateURL = &v
7636	return s
7637}
7638
7639// SetUsePreviousTemplate sets the UsePreviousTemplate field's value.
7640func (s *CreateChangeSetInput) SetUsePreviousTemplate(v bool) *CreateChangeSetInput {
7641	s.UsePreviousTemplate = &v
7642	return s
7643}
7644
7645// The output for the CreateChangeSet action.
7646type CreateChangeSetOutput struct {
7647	_ struct{} `type:"structure"`
7648
7649	// The Amazon Resource Name (ARN) of the change set.
7650	Id *string `min:"1" type:"string"`
7651
7652	// The unique ID of the stack.
7653	StackId *string `type:"string"`
7654}
7655
7656// String returns the string representation
7657func (s CreateChangeSetOutput) String() string {
7658	return awsutil.Prettify(s)
7659}
7660
7661// GoString returns the string representation
7662func (s CreateChangeSetOutput) GoString() string {
7663	return s.String()
7664}
7665
7666// SetId sets the Id field's value.
7667func (s *CreateChangeSetOutput) SetId(v string) *CreateChangeSetOutput {
7668	s.Id = &v
7669	return s
7670}
7671
7672// SetStackId sets the StackId field's value.
7673func (s *CreateChangeSetOutput) SetStackId(v string) *CreateChangeSetOutput {
7674	s.StackId = &v
7675	return s
7676}
7677
7678// The input for CreateStack action.
7679type CreateStackInput struct {
7680	_ struct{} `type:"structure"`
7681
7682	// In some cases, you must explicitly acknowledge that your stack template contains
7683	// certain capabilities in order for AWS CloudFormation to create the stack.
7684	//
7685	//    * CAPABILITY_IAM and CAPABILITY_NAMED_IAM Some stack templates might include
7686	//    resources that can affect permissions in your AWS account; for example,
7687	//    by creating new AWS Identity and Access Management (IAM) users. For those
7688	//    stacks, you must explicitly acknowledge this by specifying one of these
7689	//    capabilities. The following IAM resources require you to specify either
7690	//    the CAPABILITY_IAM or CAPABILITY_NAMED_IAM capability. If you have IAM
7691	//    resources, you can specify either capability. If you have IAM resources
7692	//    with custom names, you must specify CAPABILITY_NAMED_IAM. If you don't
7693	//    specify either of these capabilities, AWS CloudFormation returns an InsufficientCapabilities
7694	//    error. If your stack template contains these resources, we recommend that
7695	//    you review all permissions associated with them and edit their permissions
7696	//    if necessary. AWS::IAM::AccessKey (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iam-accesskey.html)
7697	//    AWS::IAM::Group (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iam-group.html)
7698	//    AWS::IAM::InstanceProfile (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iam-instanceprofile.html)
7699	//    AWS::IAM::Policy (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iam-policy.html)
7700	//    AWS::IAM::Role (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iam-role.html)
7701	//    AWS::IAM::User (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iam-user.html)
7702	//    AWS::IAM::UserToGroupAddition (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iam-addusertogroup.html)
7703	//    For more information, see Acknowledging IAM Resources in AWS CloudFormation
7704	//    Templates (http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-iam-template.html#capabilities).
7705	//
7706	//    * CAPABILITY_AUTO_EXPAND Some template contain macros. Macros perform
7707	//    custom processing on templates; this can include simple actions like find-and-replace
7708	//    operations, all the way to extensive transformations of entire templates.
7709	//    Because of this, users typically create a change set from the processed
7710	//    template, so that they can review the changes resulting from the macros
7711	//    before actually creating the stack. If your stack template contains one
7712	//    or more macros, and you choose to create a stack directly from the processed
7713	//    template, without first reviewing the resulting changes in a change set,
7714	//    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)
7715	//    and AWS::Serverless (http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/transform-aws-serverless.html)
7716	//    transforms, which are macros hosted by AWS CloudFormation. If you want
7717	//    to create a stack from a stack template that contains macros and nested
7718	//    stacks, you must create the stack directly from the template using this
7719	//    capability. You should only create stacks directly from a stack template
7720	//    that contains macros if you know what processing the macro performs. Each
7721	//    macro relies on an underlying Lambda service function for processing stack
7722	//    templates. Be aware that the Lambda function owner can update the function
7723	//    operation without AWS CloudFormation being notified. For more information,
7724	//    see Using AWS CloudFormation Macros to Perform Custom Processing on Templates
7725	//    (http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/template-macros.html).
7726	Capabilities []*string `type:"list"`
7727
7728	// A unique identifier for this CreateStack request. Specify this token if you
7729	// plan to retry requests so that AWS CloudFormation knows that you're not attempting
7730	// to create a stack with the same name. You might retry CreateStack requests
7731	// to ensure that AWS CloudFormation successfully received them.
7732	//
7733	// All events triggered by a given stack operation are assigned the same client
7734	// request token, which you can use to track operations. For example, if you
7735	// execute a CreateStack operation with the token token1, then all the StackEvents
7736	// generated by that operation will have ClientRequestToken set as token1.
7737	//
7738	// In the console, stack operations display the client request token on the
7739	// Events tab. Stack operations that are initiated from the console use the
7740	// token format Console-StackOperation-ID, which helps you easily identify the
7741	// stack operation . For example, if you create a stack using the console, each
7742	// stack event would be assigned the same token in the following format: Console-CreateStack-7f59c3cf-00d2-40c7-b2ff-e75db0987002.
7743	ClientRequestToken *string `min:"1" type:"string"`
7744
7745	// Set to true to disable rollback of the stack if stack creation failed. You
7746	// can specify either DisableRollback or OnFailure, but not both.
7747	//
7748	// Default: false
7749	DisableRollback *bool `type:"boolean"`
7750
7751	// Whether to enable termination protection on the specified stack. If a user
7752	// attempts to delete a stack with termination protection enabled, the operation
7753	// fails and the stack remains unchanged. For more information, see Protecting
7754	// a Stack From Being Deleted (http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-protect-stacks.html)
7755	// in the AWS CloudFormation User Guide. Termination protection is disabled
7756	// on stacks by default.
7757	//
7758	// For nested stacks (http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-nested-stacks.html),
7759	// termination protection is set on the root stack and cannot be changed directly
7760	// on the nested stack.
7761	EnableTerminationProtection *bool `type:"boolean"`
7762
7763	// The Simple Notification Service (SNS) topic ARNs to publish stack related
7764	// events. You can find your SNS topic ARNs using the SNS console or your Command
7765	// Line Interface (CLI).
7766	NotificationARNs []*string `type:"list"`
7767
7768	// Determines what action will be taken if stack creation fails. This must be
7769	// one of: DO_NOTHING, ROLLBACK, or DELETE. You can specify either OnFailure
7770	// or DisableRollback, but not both.
7771	//
7772	// Default: ROLLBACK
7773	OnFailure *string `type:"string" enum:"OnFailure"`
7774
7775	// A list of Parameter structures that specify input parameters for the stack.
7776	// For more information, see the Parameter (https://docs.aws.amazon.com/AWSCloudFormation/latest/APIReference/API_Parameter.html)
7777	// data type.
7778	Parameters []*Parameter `type:"list"`
7779
7780	// The template resource types that you have permissions to work with for this
7781	// create stack action, such as AWS::EC2::Instance, AWS::EC2::*, or Custom::MyCustomInstance.
7782	// Use the following syntax to describe template resource types: AWS::* (for
7783	// all AWS resource), Custom::* (for all custom resources), Custom::logical_ID
7784	// (for a specific custom resource), AWS::service_name::* (for all resources
7785	// of a particular AWS service), and AWS::service_name::resource_logical_ID
7786	// (for a specific AWS resource).
7787	//
7788	// If the list of resource types doesn't include a resource that you're creating,
7789	// the stack creation fails. By default, AWS CloudFormation grants permissions
7790	// to all resource types. AWS Identity and Access Management (IAM) uses this
7791	// parameter for AWS CloudFormation-specific condition keys in IAM policies.
7792	// For more information, see Controlling Access with AWS Identity and Access
7793	// Management (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-iam-template.html).
7794	ResourceTypes []*string `type:"list"`
7795
7796	// The Amazon Resource Name (ARN) of an AWS Identity and Access Management (IAM)
7797	// role that AWS CloudFormation assumes to create the stack. AWS CloudFormation
7798	// uses the role's credentials to make calls on your behalf. AWS CloudFormation
7799	// always uses this role for all future operations on the stack. As long as
7800	// users have permission to operate on the stack, AWS CloudFormation uses this
7801	// role even if the users don't have permission to pass it. Ensure that the
7802	// role grants least privilege.
7803	//
7804	// If you don't specify a value, AWS CloudFormation uses the role that was previously
7805	// associated with the stack. If no role is available, AWS CloudFormation uses
7806	// a temporary session that is generated from your user credentials.
7807	RoleARN *string `min:"20" type:"string"`
7808
7809	// The rollback triggers for AWS CloudFormation to monitor during stack creation
7810	// and updating operations, and for the specified monitoring period afterwards.
7811	RollbackConfiguration *RollbackConfiguration `type:"structure"`
7812
7813	// The name that is associated with the stack. The name must be unique in the
7814	// Region in which you are creating the stack.
7815	//
7816	// A stack name can contain only alphanumeric characters (case sensitive) and
7817	// hyphens. It must start with an alphabetic character and cannot be longer
7818	// than 128 characters.
7819	//
7820	// StackName is a required field
7821	StackName *string `type:"string" required:"true"`
7822
7823	// Structure containing the stack policy body. For more information, go to Prevent
7824	// Updates to Stack Resources (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/protect-stack-resources.html)
7825	// in the AWS CloudFormation User Guide. You can specify either the StackPolicyBody
7826	// or the StackPolicyURL parameter, but not both.
7827	StackPolicyBody *string `min:"1" type:"string"`
7828
7829	// Location of a file containing the stack policy. The URL must point to a policy
7830	// (maximum size: 16 KB) located in an S3 bucket in the same Region as the stack.
7831	// You can specify either the StackPolicyBody or the StackPolicyURL parameter,
7832	// but not both.
7833	StackPolicyURL *string `min:"1" type:"string"`
7834
7835	// Key-value pairs to associate with this stack. AWS CloudFormation also propagates
7836	// these tags to the resources created in the stack. A maximum number of 50
7837	// tags can be specified.
7838	Tags []*Tag `type:"list"`
7839
7840	// Structure containing the template body with a minimum length of 1 byte and
7841	// a maximum length of 51,200 bytes. For more information, go to Template Anatomy
7842	// (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/template-anatomy.html)
7843	// in the AWS CloudFormation User Guide.
7844	//
7845	// Conditional: You must specify either the TemplateBody or the TemplateURL
7846	// parameter, but not both.
7847	TemplateBody *string `min:"1" type:"string"`
7848
7849	// Location of file containing the template body. The URL must point to a template
7850	// (max size: 460,800 bytes) that is located in an Amazon S3 bucket or a Systems
7851	// Manager document. For more information, go to the Template Anatomy (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/template-anatomy.html)
7852	// in the AWS CloudFormation User Guide.
7853	//
7854	// Conditional: You must specify either the TemplateBody or the TemplateURL
7855	// parameter, but not both.
7856	TemplateURL *string `min:"1" type:"string"`
7857
7858	// The amount of time that can pass before the stack status becomes CREATE_FAILED;
7859	// if DisableRollback is not set or is set to false, the stack will be rolled
7860	// back.
7861	TimeoutInMinutes *int64 `min:"1" type:"integer"`
7862}
7863
7864// String returns the string representation
7865func (s CreateStackInput) String() string {
7866	return awsutil.Prettify(s)
7867}
7868
7869// GoString returns the string representation
7870func (s CreateStackInput) GoString() string {
7871	return s.String()
7872}
7873
7874// Validate inspects the fields of the type to determine if they are valid.
7875func (s *CreateStackInput) Validate() error {
7876	invalidParams := request.ErrInvalidParams{Context: "CreateStackInput"}
7877	if s.ClientRequestToken != nil && len(*s.ClientRequestToken) < 1 {
7878		invalidParams.Add(request.NewErrParamMinLen("ClientRequestToken", 1))
7879	}
7880	if s.RoleARN != nil && len(*s.RoleARN) < 20 {
7881		invalidParams.Add(request.NewErrParamMinLen("RoleARN", 20))
7882	}
7883	if s.StackName == nil {
7884		invalidParams.Add(request.NewErrParamRequired("StackName"))
7885	}
7886	if s.StackPolicyBody != nil && len(*s.StackPolicyBody) < 1 {
7887		invalidParams.Add(request.NewErrParamMinLen("StackPolicyBody", 1))
7888	}
7889	if s.StackPolicyURL != nil && len(*s.StackPolicyURL) < 1 {
7890		invalidParams.Add(request.NewErrParamMinLen("StackPolicyURL", 1))
7891	}
7892	if s.TemplateBody != nil && len(*s.TemplateBody) < 1 {
7893		invalidParams.Add(request.NewErrParamMinLen("TemplateBody", 1))
7894	}
7895	if s.TemplateURL != nil && len(*s.TemplateURL) < 1 {
7896		invalidParams.Add(request.NewErrParamMinLen("TemplateURL", 1))
7897	}
7898	if s.TimeoutInMinutes != nil && *s.TimeoutInMinutes < 1 {
7899		invalidParams.Add(request.NewErrParamMinValue("TimeoutInMinutes", 1))
7900	}
7901	if s.RollbackConfiguration != nil {
7902		if err := s.RollbackConfiguration.Validate(); err != nil {
7903			invalidParams.AddNested("RollbackConfiguration", err.(request.ErrInvalidParams))
7904		}
7905	}
7906	if s.Tags != nil {
7907		for i, v := range s.Tags {
7908			if v == nil {
7909				continue
7910			}
7911			if err := v.Validate(); err != nil {
7912				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Tags", i), err.(request.ErrInvalidParams))
7913			}
7914		}
7915	}
7916
7917	if invalidParams.Len() > 0 {
7918		return invalidParams
7919	}
7920	return nil
7921}
7922
7923// SetCapabilities sets the Capabilities field's value.
7924func (s *CreateStackInput) SetCapabilities(v []*string) *CreateStackInput {
7925	s.Capabilities = v
7926	return s
7927}
7928
7929// SetClientRequestToken sets the ClientRequestToken field's value.
7930func (s *CreateStackInput) SetClientRequestToken(v string) *CreateStackInput {
7931	s.ClientRequestToken = &v
7932	return s
7933}
7934
7935// SetDisableRollback sets the DisableRollback field's value.
7936func (s *CreateStackInput) SetDisableRollback(v bool) *CreateStackInput {
7937	s.DisableRollback = &v
7938	return s
7939}
7940
7941// SetEnableTerminationProtection sets the EnableTerminationProtection field's value.
7942func (s *CreateStackInput) SetEnableTerminationProtection(v bool) *CreateStackInput {
7943	s.EnableTerminationProtection = &v
7944	return s
7945}
7946
7947// SetNotificationARNs sets the NotificationARNs field's value.
7948func (s *CreateStackInput) SetNotificationARNs(v []*string) *CreateStackInput {
7949	s.NotificationARNs = v
7950	return s
7951}
7952
7953// SetOnFailure sets the OnFailure field's value.
7954func (s *CreateStackInput) SetOnFailure(v string) *CreateStackInput {
7955	s.OnFailure = &v
7956	return s
7957}
7958
7959// SetParameters sets the Parameters field's value.
7960func (s *CreateStackInput) SetParameters(v []*Parameter) *CreateStackInput {
7961	s.Parameters = v
7962	return s
7963}
7964
7965// SetResourceTypes sets the ResourceTypes field's value.
7966func (s *CreateStackInput) SetResourceTypes(v []*string) *CreateStackInput {
7967	s.ResourceTypes = v
7968	return s
7969}
7970
7971// SetRoleARN sets the RoleARN field's value.
7972func (s *CreateStackInput) SetRoleARN(v string) *CreateStackInput {
7973	s.RoleARN = &v
7974	return s
7975}
7976
7977// SetRollbackConfiguration sets the RollbackConfiguration field's value.
7978func (s *CreateStackInput) SetRollbackConfiguration(v *RollbackConfiguration) *CreateStackInput {
7979	s.RollbackConfiguration = v
7980	return s
7981}
7982
7983// SetStackName sets the StackName field's value.
7984func (s *CreateStackInput) SetStackName(v string) *CreateStackInput {
7985	s.StackName = &v
7986	return s
7987}
7988
7989// SetStackPolicyBody sets the StackPolicyBody field's value.
7990func (s *CreateStackInput) SetStackPolicyBody(v string) *CreateStackInput {
7991	s.StackPolicyBody = &v
7992	return s
7993}
7994
7995// SetStackPolicyURL sets the StackPolicyURL field's value.
7996func (s *CreateStackInput) SetStackPolicyURL(v string) *CreateStackInput {
7997	s.StackPolicyURL = &v
7998	return s
7999}
8000
8001// SetTags sets the Tags field's value.
8002func (s *CreateStackInput) SetTags(v []*Tag) *CreateStackInput {
8003	s.Tags = v
8004	return s
8005}
8006
8007// SetTemplateBody sets the TemplateBody field's value.
8008func (s *CreateStackInput) SetTemplateBody(v string) *CreateStackInput {
8009	s.TemplateBody = &v
8010	return s
8011}
8012
8013// SetTemplateURL sets the TemplateURL field's value.
8014func (s *CreateStackInput) SetTemplateURL(v string) *CreateStackInput {
8015	s.TemplateURL = &v
8016	return s
8017}
8018
8019// SetTimeoutInMinutes sets the TimeoutInMinutes field's value.
8020func (s *CreateStackInput) SetTimeoutInMinutes(v int64) *CreateStackInput {
8021	s.TimeoutInMinutes = &v
8022	return s
8023}
8024
8025type CreateStackInstancesInput struct {
8026	_ struct{} `type:"structure"`
8027
8028	// [Self-managed permissions] The names of one or more AWS accounts that you
8029	// want to create stack instances in the specified Region(s) for.
8030	//
8031	// You can specify Accounts or DeploymentTargets, but not both.
8032	Accounts []*string `type:"list"`
8033
8034	// [Service-managed permissions] Specifies whether you are acting as an account
8035	// administrator in the organization's management account or as a delegated
8036	// administrator in a member account.
8037	//
8038	// By default, SELF is specified. Use SELF for stack sets with self-managed
8039	// permissions.
8040	//
8041	//    * If you are signed in to the management account, specify SELF.
8042	//
8043	//    * If you are signed in to a delegated administrator account, specify DELEGATED_ADMIN.
8044	//    Your AWS account must be registered as a delegated administrator in the
8045	//    management account. For more information, see Register a delegated administrator
8046	//    (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/stacksets-orgs-delegated-admin.html)
8047	//    in the AWS CloudFormation User Guide.
8048	CallAs *string `type:"string" enum:"CallAs"`
8049
8050	// [Service-managed permissions] The AWS Organizations accounts for which to
8051	// create stack instances in the specified Regions.
8052	//
8053	// You can specify Accounts or DeploymentTargets, but not both.
8054	DeploymentTargets *DeploymentTargets `type:"structure"`
8055
8056	// The unique identifier for this stack set operation.
8057	//
8058	// The operation ID also functions as an idempotency token, to ensure that AWS
8059	// CloudFormation performs the stack set operation only once, even if you retry
8060	// the request multiple times. You might retry stack set operation requests
8061	// to ensure that AWS CloudFormation successfully received them.
8062	//
8063	// If you don't specify an operation ID, the SDK generates one automatically.
8064	//
8065	// Repeating this stack set operation with a new operation ID retries all stack
8066	// instances whose status is OUTDATED.
8067	OperationId *string `min:"1" type:"string" idempotencyToken:"true"`
8068
8069	// Preferences for how AWS CloudFormation performs this stack set operation.
8070	OperationPreferences *StackSetOperationPreferences `type:"structure"`
8071
8072	// A list of stack set parameters whose values you want to override in the selected
8073	// stack instances.
8074	//
8075	// Any overridden parameter values will be applied to all stack instances in
8076	// the specified accounts and Regions. When specifying parameters and their
8077	// values, be aware of how AWS CloudFormation sets parameter values during stack
8078	// instance operations:
8079	//
8080	//    * To override the current value for a parameter, include the parameter
8081	//    and specify its value.
8082	//
8083	//    * To leave a parameter set to its present value, you can do one of the
8084	//    following: Do not include the parameter in the list. Include the parameter
8085	//    and specify UsePreviousValue as true. (You cannot specify both a value
8086	//    and set UsePreviousValue to true.)
8087	//
8088	//    * To set all overridden parameter back to the values specified in the
8089	//    stack set, specify a parameter list but do not include any parameters.
8090	//
8091	//    * To leave all parameters set to their present values, do not specify
8092	//    this property at all.
8093	//
8094	// During stack set updates, any parameter values overridden for a stack instance
8095	// are not updated, but retain their overridden value.
8096	//
8097	// You can only override the parameter values that are specified in the stack
8098	// set; to add or delete a parameter itself, use UpdateStackSet (https://docs.aws.amazon.com/AWSCloudFormation/latest/APIReference/API_UpdateStackSet.html)
8099	// to update the stack set template.
8100	ParameterOverrides []*Parameter `type:"list"`
8101
8102	// The names of one or more Regions where you want to create stack instances
8103	// using the specified AWS account(s).
8104	//
8105	// Regions is a required field
8106	Regions []*string `type:"list" required:"true"`
8107
8108	// The name or unique ID of the stack set that you want to create stack instances
8109	// from.
8110	//
8111	// StackSetName is a required field
8112	StackSetName *string `type:"string" required:"true"`
8113}
8114
8115// String returns the string representation
8116func (s CreateStackInstancesInput) String() string {
8117	return awsutil.Prettify(s)
8118}
8119
8120// GoString returns the string representation
8121func (s CreateStackInstancesInput) GoString() string {
8122	return s.String()
8123}
8124
8125// Validate inspects the fields of the type to determine if they are valid.
8126func (s *CreateStackInstancesInput) Validate() error {
8127	invalidParams := request.ErrInvalidParams{Context: "CreateStackInstancesInput"}
8128	if s.OperationId != nil && len(*s.OperationId) < 1 {
8129		invalidParams.Add(request.NewErrParamMinLen("OperationId", 1))
8130	}
8131	if s.Regions == nil {
8132		invalidParams.Add(request.NewErrParamRequired("Regions"))
8133	}
8134	if s.StackSetName == nil {
8135		invalidParams.Add(request.NewErrParamRequired("StackSetName"))
8136	}
8137	if s.DeploymentTargets != nil {
8138		if err := s.DeploymentTargets.Validate(); err != nil {
8139			invalidParams.AddNested("DeploymentTargets", err.(request.ErrInvalidParams))
8140		}
8141	}
8142	if s.OperationPreferences != nil {
8143		if err := s.OperationPreferences.Validate(); err != nil {
8144			invalidParams.AddNested("OperationPreferences", err.(request.ErrInvalidParams))
8145		}
8146	}
8147
8148	if invalidParams.Len() > 0 {
8149		return invalidParams
8150	}
8151	return nil
8152}
8153
8154// SetAccounts sets the Accounts field's value.
8155func (s *CreateStackInstancesInput) SetAccounts(v []*string) *CreateStackInstancesInput {
8156	s.Accounts = v
8157	return s
8158}
8159
8160// SetCallAs sets the CallAs field's value.
8161func (s *CreateStackInstancesInput) SetCallAs(v string) *CreateStackInstancesInput {
8162	s.CallAs = &v
8163	return s
8164}
8165
8166// SetDeploymentTargets sets the DeploymentTargets field's value.
8167func (s *CreateStackInstancesInput) SetDeploymentTargets(v *DeploymentTargets) *CreateStackInstancesInput {
8168	s.DeploymentTargets = v
8169	return s
8170}
8171
8172// SetOperationId sets the OperationId field's value.
8173func (s *CreateStackInstancesInput) SetOperationId(v string) *CreateStackInstancesInput {
8174	s.OperationId = &v
8175	return s
8176}
8177
8178// SetOperationPreferences sets the OperationPreferences field's value.
8179func (s *CreateStackInstancesInput) SetOperationPreferences(v *StackSetOperationPreferences) *CreateStackInstancesInput {
8180	s.OperationPreferences = v
8181	return s
8182}
8183
8184// SetParameterOverrides sets the ParameterOverrides field's value.
8185func (s *CreateStackInstancesInput) SetParameterOverrides(v []*Parameter) *CreateStackInstancesInput {
8186	s.ParameterOverrides = v
8187	return s
8188}
8189
8190// SetRegions sets the Regions field's value.
8191func (s *CreateStackInstancesInput) SetRegions(v []*string) *CreateStackInstancesInput {
8192	s.Regions = v
8193	return s
8194}
8195
8196// SetStackSetName sets the StackSetName field's value.
8197func (s *CreateStackInstancesInput) SetStackSetName(v string) *CreateStackInstancesInput {
8198	s.StackSetName = &v
8199	return s
8200}
8201
8202type CreateStackInstancesOutput struct {
8203	_ struct{} `type:"structure"`
8204
8205	// The unique identifier for this stack set operation.
8206	OperationId *string `min:"1" type:"string"`
8207}
8208
8209// String returns the string representation
8210func (s CreateStackInstancesOutput) String() string {
8211	return awsutil.Prettify(s)
8212}
8213
8214// GoString returns the string representation
8215func (s CreateStackInstancesOutput) GoString() string {
8216	return s.String()
8217}
8218
8219// SetOperationId sets the OperationId field's value.
8220func (s *CreateStackInstancesOutput) SetOperationId(v string) *CreateStackInstancesOutput {
8221	s.OperationId = &v
8222	return s
8223}
8224
8225// The output for a CreateStack action.
8226type CreateStackOutput struct {
8227	_ struct{} `type:"structure"`
8228
8229	// Unique identifier of the stack.
8230	StackId *string `type:"string"`
8231}
8232
8233// String returns the string representation
8234func (s CreateStackOutput) String() string {
8235	return awsutil.Prettify(s)
8236}
8237
8238// GoString returns the string representation
8239func (s CreateStackOutput) GoString() string {
8240	return s.String()
8241}
8242
8243// SetStackId sets the StackId field's value.
8244func (s *CreateStackOutput) SetStackId(v string) *CreateStackOutput {
8245	s.StackId = &v
8246	return s
8247}
8248
8249type CreateStackSetInput struct {
8250	_ struct{} `type:"structure"`
8251
8252	// The Amazon Resource Number (ARN) of the IAM role to use to create this stack
8253	// set.
8254	//
8255	// Specify an IAM role only if you are using customized administrator roles
8256	// to control which users or groups can manage specific stack sets within the
8257	// same administrator account. For more information, see Prerequisites: Granting
8258	// Permissions for Stack Set Operations (http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/stacksets-prereqs.html)
8259	// in the AWS CloudFormation User Guide.
8260	AdministrationRoleARN *string `min:"20" type:"string"`
8261
8262	// Describes whether StackSets automatically deploys to AWS Organizations accounts
8263	// that are added to the target organization or organizational unit (OU). Specify
8264	// only if PermissionModel is SERVICE_MANAGED.
8265	AutoDeployment *AutoDeployment `type:"structure"`
8266
8267	// [Service-managed permissions] Specifies whether you are acting as an account
8268	// administrator in the organization's management account or as a delegated
8269	// administrator in a member account.
8270	//
8271	// By default, SELF is specified. Use SELF for stack sets with self-managed
8272	// permissions.
8273	//
8274	//    * To create a stack set with service-managed permissions while signed
8275	//    in to the management account, specify SELF.
8276	//
8277	//    * To create a stack set with service-managed permissions while signed
8278	//    in to a delegated administrator account, specify DELEGATED_ADMIN. Your
8279	//    AWS account must be registered as a delegated admin in the management
8280	//    account. For more information, see Register a delegated administrator
8281	//    (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/stacksets-orgs-delegated-admin.html)
8282	//    in the AWS CloudFormation User Guide.
8283	//
8284	// Stack sets with service-managed permissions are created in the management
8285	// account, including stack sets that are created by delegated administrators.
8286	CallAs *string `type:"string" enum:"CallAs"`
8287
8288	// In some cases, you must explicitly acknowledge that your stack set template
8289	// contains certain capabilities in order for AWS CloudFormation to create the
8290	// stack set and related stack instances.
8291	//
8292	//    * CAPABILITY_IAM and CAPABILITY_NAMED_IAM Some stack templates might include
8293	//    resources that can affect permissions in your AWS account; for example,
8294	//    by creating new AWS Identity and Access Management (IAM) users. For those
8295	//    stack sets, you must explicitly acknowledge this by specifying one of
8296	//    these capabilities. The following IAM resources require you to specify
8297	//    either the CAPABILITY_IAM or CAPABILITY_NAMED_IAM capability. If you have
8298	//    IAM resources, you can specify either capability. If you have IAM resources
8299	//    with custom names, you must specify CAPABILITY_NAMED_IAM. If you don't
8300	//    specify either of these capabilities, AWS CloudFormation returns an InsufficientCapabilities
8301	//    error. If your stack template contains these resources, we recommend that
8302	//    you review all permissions associated with them and edit their permissions
8303	//    if necessary. AWS::IAM::AccessKey (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iam-accesskey.html)
8304	//    AWS::IAM::Group (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iam-group.html)
8305	//    AWS::IAM::InstanceProfile (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iam-instanceprofile.html)
8306	//    AWS::IAM::Policy (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iam-policy.html)
8307	//    AWS::IAM::Role (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iam-role.html)
8308	//    AWS::IAM::User (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iam-user.html)
8309	//    AWS::IAM::UserToGroupAddition (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iam-addusertogroup.html)
8310	//    For more information, see Acknowledging IAM Resources in AWS CloudFormation
8311	//    Templates (http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-iam-template.html#capabilities).
8312	//
8313	//    * CAPABILITY_AUTO_EXPAND Some templates reference macros. If your stack
8314	//    set template references one or more macros, you must create the stack
8315	//    set directly from the processed template, without first reviewing the
8316	//    resulting changes in a change set. To create the stack set directly, you
8317	//    must acknowledge this capability. For more information, see Using AWS
8318	//    CloudFormation Macros to Perform Custom Processing on Templates (http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/template-macros.html).
8319	//    Stack sets with service-managed permissions do not currently support the
8320	//    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)
8321	//    and AWS::Serverless (http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/transform-aws-serverless.html)
8322	//    transforms, which are macros hosted by AWS CloudFormation.) Even if you
8323	//    specify this capability for a stack set with service-managed permissions,
8324	//    if you reference a macro in your template the stack set operation will
8325	//    fail.
8326	Capabilities []*string `type:"list"`
8327
8328	// A unique identifier for this CreateStackSet request. Specify this token if
8329	// you plan to retry requests so that AWS CloudFormation knows that you're not
8330	// attempting to create another stack set with the same name. You might retry
8331	// CreateStackSet requests to ensure that AWS CloudFormation successfully received
8332	// them.
8333	//
8334	// If you don't specify an operation ID, the SDK generates one automatically.
8335	ClientRequestToken *string `min:"1" type:"string" idempotencyToken:"true"`
8336
8337	// A description of the stack set. You can use the description to identify the
8338	// stack set's purpose or other important information.
8339	Description *string `min:"1" type:"string"`
8340
8341	// The name of the IAM execution role to use to create the stack set. If you
8342	// do not specify an execution role, AWS CloudFormation uses the AWSCloudFormationStackSetExecutionRole
8343	// role for the stack set operation.
8344	//
8345	// Specify an IAM role only if you are using customized execution roles to control
8346	// which stack resources users and groups can include in their stack sets.
8347	ExecutionRoleName *string `min:"1" type:"string"`
8348
8349	// The input parameters for the stack set template.
8350	Parameters []*Parameter `type:"list"`
8351
8352	// Describes how the IAM roles required for stack set operations are created.
8353	// By default, SELF-MANAGED is specified.
8354	//
8355	//    * With self-managed permissions, you must create the administrator and
8356	//    execution roles required to deploy to target accounts. For more information,
8357	//    see Grant Self-Managed Stack Set Permissions (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/stacksets-prereqs-self-managed.html).
8358	//
8359	//    * With service-managed permissions, StackSets automatically creates the
8360	//    IAM roles required to deploy to accounts managed by AWS Organizations.
8361	//    For more information, see Grant Service-Managed Stack Set Permissions
8362	//    (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/stacksets-prereqs-service-managed.html).
8363	PermissionModel *string `type:"string" enum:"PermissionModels"`
8364
8365	// The name to associate with the stack set. The name must be unique in the
8366	// Region where you create your stack set.
8367	//
8368	// A stack name can contain only alphanumeric characters (case-sensitive) and
8369	// hyphens. It must start with an alphabetic character and can't be longer than
8370	// 128 characters.
8371	//
8372	// StackSetName is a required field
8373	StackSetName *string `type:"string" required:"true"`
8374
8375	// The key-value pairs to associate with this stack set and the stacks created
8376	// from it. AWS CloudFormation also propagates these tags to supported resources
8377	// that are created in the stacks. A maximum number of 50 tags can be specified.
8378	//
8379	// If you specify tags as part of a CreateStackSet action, AWS CloudFormation
8380	// checks to see if you have the required IAM permission to tag resources. If
8381	// you don't, the entire CreateStackSet action fails with an access denied error,
8382	// and the stack set is not created.
8383	Tags []*Tag `type:"list"`
8384
8385	// The structure that contains the template body, with a minimum length of 1
8386	// byte and a maximum length of 51,200 bytes. For more information, see Template
8387	// Anatomy (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/template-anatomy.html)
8388	// in the AWS CloudFormation User Guide.
8389	//
8390	// Conditional: You must specify either the TemplateBody or the TemplateURL
8391	// parameter, but not both.
8392	TemplateBody *string `min:"1" type:"string"`
8393
8394	// The location of the file that contains the template body. The URL must point
8395	// to a template (maximum size: 460,800 bytes) that's located in an Amazon S3
8396	// bucket or a Systems Manager document. For more information, see Template
8397	// Anatomy (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/template-anatomy.html)
8398	// in the AWS CloudFormation User Guide.
8399	//
8400	// Conditional: You must specify either the TemplateBody or the TemplateURL
8401	// parameter, but not both.
8402	TemplateURL *string `min:"1" type:"string"`
8403}
8404
8405// String returns the string representation
8406func (s CreateStackSetInput) String() string {
8407	return awsutil.Prettify(s)
8408}
8409
8410// GoString returns the string representation
8411func (s CreateStackSetInput) GoString() string {
8412	return s.String()
8413}
8414
8415// Validate inspects the fields of the type to determine if they are valid.
8416func (s *CreateStackSetInput) Validate() error {
8417	invalidParams := request.ErrInvalidParams{Context: "CreateStackSetInput"}
8418	if s.AdministrationRoleARN != nil && len(*s.AdministrationRoleARN) < 20 {
8419		invalidParams.Add(request.NewErrParamMinLen("AdministrationRoleARN", 20))
8420	}
8421	if s.ClientRequestToken != nil && len(*s.ClientRequestToken) < 1 {
8422		invalidParams.Add(request.NewErrParamMinLen("ClientRequestToken", 1))
8423	}
8424	if s.Description != nil && len(*s.Description) < 1 {
8425		invalidParams.Add(request.NewErrParamMinLen("Description", 1))
8426	}
8427	if s.ExecutionRoleName != nil && len(*s.ExecutionRoleName) < 1 {
8428		invalidParams.Add(request.NewErrParamMinLen("ExecutionRoleName", 1))
8429	}
8430	if s.StackSetName == nil {
8431		invalidParams.Add(request.NewErrParamRequired("StackSetName"))
8432	}
8433	if s.TemplateBody != nil && len(*s.TemplateBody) < 1 {
8434		invalidParams.Add(request.NewErrParamMinLen("TemplateBody", 1))
8435	}
8436	if s.TemplateURL != nil && len(*s.TemplateURL) < 1 {
8437		invalidParams.Add(request.NewErrParamMinLen("TemplateURL", 1))
8438	}
8439	if s.Tags != nil {
8440		for i, v := range s.Tags {
8441			if v == nil {
8442				continue
8443			}
8444			if err := v.Validate(); err != nil {
8445				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Tags", i), err.(request.ErrInvalidParams))
8446			}
8447		}
8448	}
8449
8450	if invalidParams.Len() > 0 {
8451		return invalidParams
8452	}
8453	return nil
8454}
8455
8456// SetAdministrationRoleARN sets the AdministrationRoleARN field's value.
8457func (s *CreateStackSetInput) SetAdministrationRoleARN(v string) *CreateStackSetInput {
8458	s.AdministrationRoleARN = &v
8459	return s
8460}
8461
8462// SetAutoDeployment sets the AutoDeployment field's value.
8463func (s *CreateStackSetInput) SetAutoDeployment(v *AutoDeployment) *CreateStackSetInput {
8464	s.AutoDeployment = v
8465	return s
8466}
8467
8468// SetCallAs sets the CallAs field's value.
8469func (s *CreateStackSetInput) SetCallAs(v string) *CreateStackSetInput {
8470	s.CallAs = &v
8471	return s
8472}
8473
8474// SetCapabilities sets the Capabilities field's value.
8475func (s *CreateStackSetInput) SetCapabilities(v []*string) *CreateStackSetInput {
8476	s.Capabilities = v
8477	return s
8478}
8479
8480// SetClientRequestToken sets the ClientRequestToken field's value.
8481func (s *CreateStackSetInput) SetClientRequestToken(v string) *CreateStackSetInput {
8482	s.ClientRequestToken = &v
8483	return s
8484}
8485
8486// SetDescription sets the Description field's value.
8487func (s *CreateStackSetInput) SetDescription(v string) *CreateStackSetInput {
8488	s.Description = &v
8489	return s
8490}
8491
8492// SetExecutionRoleName sets the ExecutionRoleName field's value.
8493func (s *CreateStackSetInput) SetExecutionRoleName(v string) *CreateStackSetInput {
8494	s.ExecutionRoleName = &v
8495	return s
8496}
8497
8498// SetParameters sets the Parameters field's value.
8499func (s *CreateStackSetInput) SetParameters(v []*Parameter) *CreateStackSetInput {
8500	s.Parameters = v
8501	return s
8502}
8503
8504// SetPermissionModel sets the PermissionModel field's value.
8505func (s *CreateStackSetInput) SetPermissionModel(v string) *CreateStackSetInput {
8506	s.PermissionModel = &v
8507	return s
8508}
8509
8510// SetStackSetName sets the StackSetName field's value.
8511func (s *CreateStackSetInput) SetStackSetName(v string) *CreateStackSetInput {
8512	s.StackSetName = &v
8513	return s
8514}
8515
8516// SetTags sets the Tags field's value.
8517func (s *CreateStackSetInput) SetTags(v []*Tag) *CreateStackSetInput {
8518	s.Tags = v
8519	return s
8520}
8521
8522// SetTemplateBody sets the TemplateBody field's value.
8523func (s *CreateStackSetInput) SetTemplateBody(v string) *CreateStackSetInput {
8524	s.TemplateBody = &v
8525	return s
8526}
8527
8528// SetTemplateURL sets the TemplateURL field's value.
8529func (s *CreateStackSetInput) SetTemplateURL(v string) *CreateStackSetInput {
8530	s.TemplateURL = &v
8531	return s
8532}
8533
8534type CreateStackSetOutput struct {
8535	_ struct{} `type:"structure"`
8536
8537	// The ID of the stack set that you're creating.
8538	StackSetId *string `type:"string"`
8539}
8540
8541// String returns the string representation
8542func (s CreateStackSetOutput) String() string {
8543	return awsutil.Prettify(s)
8544}
8545
8546// GoString returns the string representation
8547func (s CreateStackSetOutput) GoString() string {
8548	return s.String()
8549}
8550
8551// SetStackSetId sets the StackSetId field's value.
8552func (s *CreateStackSetOutput) SetStackSetId(v string) *CreateStackSetOutput {
8553	s.StackSetId = &v
8554	return s
8555}
8556
8557type DeactivateTypeInput struct {
8558	_ struct{} `type:"structure"`
8559
8560	// The Amazon Resource Name (ARN) for the extension, in this account and region.
8561	//
8562	// Conditional: You must specify either Arn, or TypeName and Type.
8563	Arn *string `type:"string"`
8564
8565	// The extension type.
8566	//
8567	// Conditional: You must specify either Arn, or TypeName and Type.
8568	Type *string `type:"string" enum:"ThirdPartyType"`
8569
8570	// The type name of the extension, in this account and region. If you specified
8571	// a type name alias when enabling the extension, use the type name alias.
8572	//
8573	// Conditional: You must specify either Arn, or TypeName and Type.
8574	TypeName *string `min:"10" type:"string"`
8575}
8576
8577// String returns the string representation
8578func (s DeactivateTypeInput) String() string {
8579	return awsutil.Prettify(s)
8580}
8581
8582// GoString returns the string representation
8583func (s DeactivateTypeInput) GoString() string {
8584	return s.String()
8585}
8586
8587// Validate inspects the fields of the type to determine if they are valid.
8588func (s *DeactivateTypeInput) Validate() error {
8589	invalidParams := request.ErrInvalidParams{Context: "DeactivateTypeInput"}
8590	if s.TypeName != nil && len(*s.TypeName) < 10 {
8591		invalidParams.Add(request.NewErrParamMinLen("TypeName", 10))
8592	}
8593
8594	if invalidParams.Len() > 0 {
8595		return invalidParams
8596	}
8597	return nil
8598}
8599
8600// SetArn sets the Arn field's value.
8601func (s *DeactivateTypeInput) SetArn(v string) *DeactivateTypeInput {
8602	s.Arn = &v
8603	return s
8604}
8605
8606// SetType sets the Type field's value.
8607func (s *DeactivateTypeInput) SetType(v string) *DeactivateTypeInput {
8608	s.Type = &v
8609	return s
8610}
8611
8612// SetTypeName sets the TypeName field's value.
8613func (s *DeactivateTypeInput) SetTypeName(v string) *DeactivateTypeInput {
8614	s.TypeName = &v
8615	return s
8616}
8617
8618type DeactivateTypeOutput struct {
8619	_ struct{} `type:"structure"`
8620}
8621
8622// String returns the string representation
8623func (s DeactivateTypeOutput) String() string {
8624	return awsutil.Prettify(s)
8625}
8626
8627// GoString returns the string representation
8628func (s DeactivateTypeOutput) GoString() string {
8629	return s.String()
8630}
8631
8632// The input for the DeleteChangeSet action.
8633type DeleteChangeSetInput struct {
8634	_ struct{} `type:"structure"`
8635
8636	// The name or Amazon Resource Name (ARN) of the change set that you want to
8637	// delete.
8638	//
8639	// ChangeSetName is a required field
8640	ChangeSetName *string `min:"1" type:"string" required:"true"`
8641
8642	// If you specified the name of a change set to delete, specify the stack name
8643	// or ID (ARN) that is associated with it.
8644	StackName *string `min:"1" type:"string"`
8645}
8646
8647// String returns the string representation
8648func (s DeleteChangeSetInput) String() string {
8649	return awsutil.Prettify(s)
8650}
8651
8652// GoString returns the string representation
8653func (s DeleteChangeSetInput) GoString() string {
8654	return s.String()
8655}
8656
8657// Validate inspects the fields of the type to determine if they are valid.
8658func (s *DeleteChangeSetInput) Validate() error {
8659	invalidParams := request.ErrInvalidParams{Context: "DeleteChangeSetInput"}
8660	if s.ChangeSetName == nil {
8661		invalidParams.Add(request.NewErrParamRequired("ChangeSetName"))
8662	}
8663	if s.ChangeSetName != nil && len(*s.ChangeSetName) < 1 {
8664		invalidParams.Add(request.NewErrParamMinLen("ChangeSetName", 1))
8665	}
8666	if s.StackName != nil && len(*s.StackName) < 1 {
8667		invalidParams.Add(request.NewErrParamMinLen("StackName", 1))
8668	}
8669
8670	if invalidParams.Len() > 0 {
8671		return invalidParams
8672	}
8673	return nil
8674}
8675
8676// SetChangeSetName sets the ChangeSetName field's value.
8677func (s *DeleteChangeSetInput) SetChangeSetName(v string) *DeleteChangeSetInput {
8678	s.ChangeSetName = &v
8679	return s
8680}
8681
8682// SetStackName sets the StackName field's value.
8683func (s *DeleteChangeSetInput) SetStackName(v string) *DeleteChangeSetInput {
8684	s.StackName = &v
8685	return s
8686}
8687
8688// The output for the DeleteChangeSet action.
8689type DeleteChangeSetOutput struct {
8690	_ struct{} `type:"structure"`
8691}
8692
8693// String returns the string representation
8694func (s DeleteChangeSetOutput) String() string {
8695	return awsutil.Prettify(s)
8696}
8697
8698// GoString returns the string representation
8699func (s DeleteChangeSetOutput) GoString() string {
8700	return s.String()
8701}
8702
8703// The input for DeleteStack action.
8704type DeleteStackInput struct {
8705	_ struct{} `type:"structure"`
8706
8707	// A unique identifier for this DeleteStack request. Specify this token if you
8708	// plan to retry requests so that AWS CloudFormation knows that you're not attempting
8709	// to delete a stack with the same name. You might retry DeleteStack requests
8710	// to ensure that AWS CloudFormation successfully received them.
8711	//
8712	// All events triggered by a given stack operation are assigned the same client
8713	// request token, which you can use to track operations. For example, if you
8714	// execute a CreateStack operation with the token token1, then all the StackEvents
8715	// generated by that operation will have ClientRequestToken set as token1.
8716	//
8717	// In the console, stack operations display the client request token on the
8718	// Events tab. Stack operations that are initiated from the console use the
8719	// token format Console-StackOperation-ID, which helps you easily identify the
8720	// stack operation . For example, if you create a stack using the console, each
8721	// stack event would be assigned the same token in the following format: Console-CreateStack-7f59c3cf-00d2-40c7-b2ff-e75db0987002.
8722	ClientRequestToken *string `min:"1" type:"string"`
8723
8724	// For stacks in the DELETE_FAILED state, a list of resource logical IDs that
8725	// are associated with the resources you want to retain. During deletion, AWS
8726	// CloudFormation deletes the stack but does not delete the retained resources.
8727	//
8728	// Retaining resources is useful when you cannot delete a resource, such as
8729	// a non-empty S3 bucket, but you want to delete the stack.
8730	RetainResources []*string `type:"list"`
8731
8732	// The Amazon Resource Name (ARN) of an AWS Identity and Access Management (IAM)
8733	// role that AWS CloudFormation assumes to delete the stack. AWS CloudFormation
8734	// uses the role's credentials to make calls on your behalf.
8735	//
8736	// If you don't specify a value, AWS CloudFormation uses the role that was previously
8737	// associated with the stack. If no role is available, AWS CloudFormation uses
8738	// a temporary session that is generated from your user credentials.
8739	RoleARN *string `min:"20" type:"string"`
8740
8741	// The name or the unique stack ID that is associated with the stack.
8742	//
8743	// StackName is a required field
8744	StackName *string `type:"string" required:"true"`
8745}
8746
8747// String returns the string representation
8748func (s DeleteStackInput) String() string {
8749	return awsutil.Prettify(s)
8750}
8751
8752// GoString returns the string representation
8753func (s DeleteStackInput) GoString() string {
8754	return s.String()
8755}
8756
8757// Validate inspects the fields of the type to determine if they are valid.
8758func (s *DeleteStackInput) Validate() error {
8759	invalidParams := request.ErrInvalidParams{Context: "DeleteStackInput"}
8760	if s.ClientRequestToken != nil && len(*s.ClientRequestToken) < 1 {
8761		invalidParams.Add(request.NewErrParamMinLen("ClientRequestToken", 1))
8762	}
8763	if s.RoleARN != nil && len(*s.RoleARN) < 20 {
8764		invalidParams.Add(request.NewErrParamMinLen("RoleARN", 20))
8765	}
8766	if s.StackName == nil {
8767		invalidParams.Add(request.NewErrParamRequired("StackName"))
8768	}
8769
8770	if invalidParams.Len() > 0 {
8771		return invalidParams
8772	}
8773	return nil
8774}
8775
8776// SetClientRequestToken sets the ClientRequestToken field's value.
8777func (s *DeleteStackInput) SetClientRequestToken(v string) *DeleteStackInput {
8778	s.ClientRequestToken = &v
8779	return s
8780}
8781
8782// SetRetainResources sets the RetainResources field's value.
8783func (s *DeleteStackInput) SetRetainResources(v []*string) *DeleteStackInput {
8784	s.RetainResources = v
8785	return s
8786}
8787
8788// SetRoleARN sets the RoleARN field's value.
8789func (s *DeleteStackInput) SetRoleARN(v string) *DeleteStackInput {
8790	s.RoleARN = &v
8791	return s
8792}
8793
8794// SetStackName sets the StackName field's value.
8795func (s *DeleteStackInput) SetStackName(v string) *DeleteStackInput {
8796	s.StackName = &v
8797	return s
8798}
8799
8800type DeleteStackInstancesInput struct {
8801	_ struct{} `type:"structure"`
8802
8803	// [Self-managed permissions] The names of the AWS accounts that you want to
8804	// delete stack instances for.
8805	//
8806	// You can specify Accounts or DeploymentTargets, but not both.
8807	Accounts []*string `type:"list"`
8808
8809	// [Service-managed permissions] Specifies whether you are acting as an account
8810	// administrator in the organization's management account or as a delegated
8811	// administrator in a member account.
8812	//
8813	// By default, SELF is specified. Use SELF for stack sets with self-managed
8814	// permissions.
8815	//
8816	//    * If you are signed in to the management account, specify SELF.
8817	//
8818	//    * If you are signed in to a delegated administrator account, specify DELEGATED_ADMIN.
8819	//    Your AWS account must be registered as a delegated administrator in the
8820	//    management account. For more information, see Register a delegated administrator
8821	//    (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/stacksets-orgs-delegated-admin.html)
8822	//    in the AWS CloudFormation User Guide.
8823	CallAs *string `type:"string" enum:"CallAs"`
8824
8825	// [Service-managed permissions] The AWS Organizations accounts from which to
8826	// delete stack instances.
8827	//
8828	// You can specify Accounts or DeploymentTargets, but not both.
8829	DeploymentTargets *DeploymentTargets `type:"structure"`
8830
8831	// The unique identifier for this stack set operation.
8832	//
8833	// If you don't specify an operation ID, the SDK generates one automatically.
8834	//
8835	// The operation ID also functions as an idempotency token, to ensure that AWS
8836	// CloudFormation performs the stack set operation only once, even if you retry
8837	// the request multiple times. You can retry stack set operation requests to
8838	// ensure that AWS CloudFormation successfully received them.
8839	//
8840	// Repeating this stack set operation with a new operation ID retries all stack
8841	// instances whose status is OUTDATED.
8842	OperationId *string `min:"1" type:"string" idempotencyToken:"true"`
8843
8844	// Preferences for how AWS CloudFormation performs this stack set operation.
8845	OperationPreferences *StackSetOperationPreferences `type:"structure"`
8846
8847	// The Regions where you want to delete stack set instances.
8848	//
8849	// Regions is a required field
8850	Regions []*string `type:"list" required:"true"`
8851
8852	// Removes the stack instances from the specified stack set, but doesn't delete
8853	// the stacks. You can't reassociate a retained stack or add an existing, saved
8854	// stack to a new stack set.
8855	//
8856	// For more information, see Stack set operation options (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/stacksets-concepts.html#stackset-ops-options).
8857	//
8858	// RetainStacks is a required field
8859	RetainStacks *bool `type:"boolean" required:"true"`
8860
8861	// The name or unique ID of the stack set that you want to delete stack instances
8862	// for.
8863	//
8864	// StackSetName is a required field
8865	StackSetName *string `type:"string" required:"true"`
8866}
8867
8868// String returns the string representation
8869func (s DeleteStackInstancesInput) String() string {
8870	return awsutil.Prettify(s)
8871}
8872
8873// GoString returns the string representation
8874func (s DeleteStackInstancesInput) GoString() string {
8875	return s.String()
8876}
8877
8878// Validate inspects the fields of the type to determine if they are valid.
8879func (s *DeleteStackInstancesInput) Validate() error {
8880	invalidParams := request.ErrInvalidParams{Context: "DeleteStackInstancesInput"}
8881	if s.OperationId != nil && len(*s.OperationId) < 1 {
8882		invalidParams.Add(request.NewErrParamMinLen("OperationId", 1))
8883	}
8884	if s.Regions == nil {
8885		invalidParams.Add(request.NewErrParamRequired("Regions"))
8886	}
8887	if s.RetainStacks == nil {
8888		invalidParams.Add(request.NewErrParamRequired("RetainStacks"))
8889	}
8890	if s.StackSetName == nil {
8891		invalidParams.Add(request.NewErrParamRequired("StackSetName"))
8892	}
8893	if s.DeploymentTargets != nil {
8894		if err := s.DeploymentTargets.Validate(); err != nil {
8895			invalidParams.AddNested("DeploymentTargets", err.(request.ErrInvalidParams))
8896		}
8897	}
8898	if s.OperationPreferences != nil {
8899		if err := s.OperationPreferences.Validate(); err != nil {
8900			invalidParams.AddNested("OperationPreferences", err.(request.ErrInvalidParams))
8901		}
8902	}
8903
8904	if invalidParams.Len() > 0 {
8905		return invalidParams
8906	}
8907	return nil
8908}
8909
8910// SetAccounts sets the Accounts field's value.
8911func (s *DeleteStackInstancesInput) SetAccounts(v []*string) *DeleteStackInstancesInput {
8912	s.Accounts = v
8913	return s
8914}
8915
8916// SetCallAs sets the CallAs field's value.
8917func (s *DeleteStackInstancesInput) SetCallAs(v string) *DeleteStackInstancesInput {
8918	s.CallAs = &v
8919	return s
8920}
8921
8922// SetDeploymentTargets sets the DeploymentTargets field's value.
8923func (s *DeleteStackInstancesInput) SetDeploymentTargets(v *DeploymentTargets) *DeleteStackInstancesInput {
8924	s.DeploymentTargets = v
8925	return s
8926}
8927
8928// SetOperationId sets the OperationId field's value.
8929func (s *DeleteStackInstancesInput) SetOperationId(v string) *DeleteStackInstancesInput {
8930	s.OperationId = &v
8931	return s
8932}
8933
8934// SetOperationPreferences sets the OperationPreferences field's value.
8935func (s *DeleteStackInstancesInput) SetOperationPreferences(v *StackSetOperationPreferences) *DeleteStackInstancesInput {
8936	s.OperationPreferences = v
8937	return s
8938}
8939
8940// SetRegions sets the Regions field's value.
8941func (s *DeleteStackInstancesInput) SetRegions(v []*string) *DeleteStackInstancesInput {
8942	s.Regions = v
8943	return s
8944}
8945
8946// SetRetainStacks sets the RetainStacks field's value.
8947func (s *DeleteStackInstancesInput) SetRetainStacks(v bool) *DeleteStackInstancesInput {
8948	s.RetainStacks = &v
8949	return s
8950}
8951
8952// SetStackSetName sets the StackSetName field's value.
8953func (s *DeleteStackInstancesInput) SetStackSetName(v string) *DeleteStackInstancesInput {
8954	s.StackSetName = &v
8955	return s
8956}
8957
8958type DeleteStackInstancesOutput struct {
8959	_ struct{} `type:"structure"`
8960
8961	// The unique identifier for this stack set operation.
8962	OperationId *string `min:"1" type:"string"`
8963}
8964
8965// String returns the string representation
8966func (s DeleteStackInstancesOutput) String() string {
8967	return awsutil.Prettify(s)
8968}
8969
8970// GoString returns the string representation
8971func (s DeleteStackInstancesOutput) GoString() string {
8972	return s.String()
8973}
8974
8975// SetOperationId sets the OperationId field's value.
8976func (s *DeleteStackInstancesOutput) SetOperationId(v string) *DeleteStackInstancesOutput {
8977	s.OperationId = &v
8978	return s
8979}
8980
8981type DeleteStackOutput struct {
8982	_ struct{} `type:"structure"`
8983}
8984
8985// String returns the string representation
8986func (s DeleteStackOutput) String() string {
8987	return awsutil.Prettify(s)
8988}
8989
8990// GoString returns the string representation
8991func (s DeleteStackOutput) GoString() string {
8992	return s.String()
8993}
8994
8995type DeleteStackSetInput struct {
8996	_ struct{} `type:"structure"`
8997
8998	// [Service-managed permissions] Specifies whether you are acting as an account
8999	// administrator in the organization's management account or as a delegated
9000	// administrator in a member account.
9001	//
9002	// By default, SELF is specified. Use SELF for stack sets with self-managed
9003	// permissions.
9004	//
9005	//    * If you are signed in to the management account, specify SELF.
9006	//
9007	//    * If you are signed in to a delegated administrator account, specify DELEGATED_ADMIN.
9008	//    Your AWS account must be registered as a delegated administrator in the
9009	//    management account. For more information, see Register a delegated administrator
9010	//    (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/stacksets-orgs-delegated-admin.html)
9011	//    in the AWS CloudFormation User Guide.
9012	CallAs *string `type:"string" enum:"CallAs"`
9013
9014	// The name or unique ID of the stack set that you're deleting. You can obtain
9015	// this value by running ListStackSets.
9016	//
9017	// StackSetName is a required field
9018	StackSetName *string `type:"string" required:"true"`
9019}
9020
9021// String returns the string representation
9022func (s DeleteStackSetInput) String() string {
9023	return awsutil.Prettify(s)
9024}
9025
9026// GoString returns the string representation
9027func (s DeleteStackSetInput) GoString() string {
9028	return s.String()
9029}
9030
9031// Validate inspects the fields of the type to determine if they are valid.
9032func (s *DeleteStackSetInput) Validate() error {
9033	invalidParams := request.ErrInvalidParams{Context: "DeleteStackSetInput"}
9034	if s.StackSetName == nil {
9035		invalidParams.Add(request.NewErrParamRequired("StackSetName"))
9036	}
9037
9038	if invalidParams.Len() > 0 {
9039		return invalidParams
9040	}
9041	return nil
9042}
9043
9044// SetCallAs sets the CallAs field's value.
9045func (s *DeleteStackSetInput) SetCallAs(v string) *DeleteStackSetInput {
9046	s.CallAs = &v
9047	return s
9048}
9049
9050// SetStackSetName sets the StackSetName field's value.
9051func (s *DeleteStackSetInput) SetStackSetName(v string) *DeleteStackSetInput {
9052	s.StackSetName = &v
9053	return s
9054}
9055
9056type DeleteStackSetOutput struct {
9057	_ struct{} `type:"structure"`
9058}
9059
9060// String returns the string representation
9061func (s DeleteStackSetOutput) String() string {
9062	return awsutil.Prettify(s)
9063}
9064
9065// GoString returns the string representation
9066func (s DeleteStackSetOutput) GoString() string {
9067	return s.String()
9068}
9069
9070// [Service-managed permissions] The AWS Organizations accounts to which StackSets
9071// deploys. StackSets does not deploy stack instances to the organization management
9072// account, even if the organization management account is in your organization
9073// or in an OU in your organization.
9074//
9075// For update operations, you can specify either Accounts or OrganizationalUnitIds.
9076// For create and delete operations, specify OrganizationalUnitIds.
9077type DeploymentTargets struct {
9078	_ struct{} `type:"structure"`
9079
9080	// The names of one or more AWS accounts for which you want to deploy stack
9081	// set updates.
9082	Accounts []*string `type:"list"`
9083
9084	// Returns the value of the AccountsUrl property.
9085	AccountsUrl *string `min:"1" type:"string"`
9086
9087	// The organization root ID or organizational unit (OU) IDs to which StackSets
9088	// deploys.
9089	OrganizationalUnitIds []*string `type:"list"`
9090}
9091
9092// String returns the string representation
9093func (s DeploymentTargets) String() string {
9094	return awsutil.Prettify(s)
9095}
9096
9097// GoString returns the string representation
9098func (s DeploymentTargets) GoString() string {
9099	return s.String()
9100}
9101
9102// Validate inspects the fields of the type to determine if they are valid.
9103func (s *DeploymentTargets) Validate() error {
9104	invalidParams := request.ErrInvalidParams{Context: "DeploymentTargets"}
9105	if s.AccountsUrl != nil && len(*s.AccountsUrl) < 1 {
9106		invalidParams.Add(request.NewErrParamMinLen("AccountsUrl", 1))
9107	}
9108
9109	if invalidParams.Len() > 0 {
9110		return invalidParams
9111	}
9112	return nil
9113}
9114
9115// SetAccounts sets the Accounts field's value.
9116func (s *DeploymentTargets) SetAccounts(v []*string) *DeploymentTargets {
9117	s.Accounts = v
9118	return s
9119}
9120
9121// SetAccountsUrl sets the AccountsUrl field's value.
9122func (s *DeploymentTargets) SetAccountsUrl(v string) *DeploymentTargets {
9123	s.AccountsUrl = &v
9124	return s
9125}
9126
9127// SetOrganizationalUnitIds sets the OrganizationalUnitIds field's value.
9128func (s *DeploymentTargets) SetOrganizationalUnitIds(v []*string) *DeploymentTargets {
9129	s.OrganizationalUnitIds = v
9130	return s
9131}
9132
9133type DeregisterTypeInput struct {
9134	_ struct{} `type:"structure"`
9135
9136	// The Amazon Resource Name (ARN) of the extension.
9137	//
9138	// Conditional: You must specify either TypeName and Type, or Arn.
9139	Arn *string `type:"string"`
9140
9141	// The kind of extension.
9142	//
9143	// Conditional: You must specify either TypeName and Type, or Arn.
9144	Type *string `type:"string" enum:"RegistryType"`
9145
9146	// The name of the extension.
9147	//
9148	// Conditional: You must specify either TypeName and Type, or Arn.
9149	TypeName *string `min:"10" type:"string"`
9150
9151	// The ID of a specific version of the extension. The version ID is the value
9152	// at the end of the Amazon Resource Name (ARN) assigned to the extension version
9153	// when it is registered.
9154	VersionId *string `min:"1" type:"string"`
9155}
9156
9157// String returns the string representation
9158func (s DeregisterTypeInput) String() string {
9159	return awsutil.Prettify(s)
9160}
9161
9162// GoString returns the string representation
9163func (s DeregisterTypeInput) GoString() string {
9164	return s.String()
9165}
9166
9167// Validate inspects the fields of the type to determine if they are valid.
9168func (s *DeregisterTypeInput) Validate() error {
9169	invalidParams := request.ErrInvalidParams{Context: "DeregisterTypeInput"}
9170	if s.TypeName != nil && len(*s.TypeName) < 10 {
9171		invalidParams.Add(request.NewErrParamMinLen("TypeName", 10))
9172	}
9173	if s.VersionId != nil && len(*s.VersionId) < 1 {
9174		invalidParams.Add(request.NewErrParamMinLen("VersionId", 1))
9175	}
9176
9177	if invalidParams.Len() > 0 {
9178		return invalidParams
9179	}
9180	return nil
9181}
9182
9183// SetArn sets the Arn field's value.
9184func (s *DeregisterTypeInput) SetArn(v string) *DeregisterTypeInput {
9185	s.Arn = &v
9186	return s
9187}
9188
9189// SetType sets the Type field's value.
9190func (s *DeregisterTypeInput) SetType(v string) *DeregisterTypeInput {
9191	s.Type = &v
9192	return s
9193}
9194
9195// SetTypeName sets the TypeName field's value.
9196func (s *DeregisterTypeInput) SetTypeName(v string) *DeregisterTypeInput {
9197	s.TypeName = &v
9198	return s
9199}
9200
9201// SetVersionId sets the VersionId field's value.
9202func (s *DeregisterTypeInput) SetVersionId(v string) *DeregisterTypeInput {
9203	s.VersionId = &v
9204	return s
9205}
9206
9207type DeregisterTypeOutput struct {
9208	_ struct{} `type:"structure"`
9209}
9210
9211// String returns the string representation
9212func (s DeregisterTypeOutput) String() string {
9213	return awsutil.Prettify(s)
9214}
9215
9216// GoString returns the string representation
9217func (s DeregisterTypeOutput) GoString() string {
9218	return s.String()
9219}
9220
9221// The input for the DescribeAccountLimits action.
9222type DescribeAccountLimitsInput struct {
9223	_ struct{} `type:"structure"`
9224
9225	// A string that identifies the next page of limits that you want to retrieve.
9226	NextToken *string `min:"1" type:"string"`
9227}
9228
9229// String returns the string representation
9230func (s DescribeAccountLimitsInput) String() string {
9231	return awsutil.Prettify(s)
9232}
9233
9234// GoString returns the string representation
9235func (s DescribeAccountLimitsInput) GoString() string {
9236	return s.String()
9237}
9238
9239// Validate inspects the fields of the type to determine if they are valid.
9240func (s *DescribeAccountLimitsInput) Validate() error {
9241	invalidParams := request.ErrInvalidParams{Context: "DescribeAccountLimitsInput"}
9242	if s.NextToken != nil && len(*s.NextToken) < 1 {
9243		invalidParams.Add(request.NewErrParamMinLen("NextToken", 1))
9244	}
9245
9246	if invalidParams.Len() > 0 {
9247		return invalidParams
9248	}
9249	return nil
9250}
9251
9252// SetNextToken sets the NextToken field's value.
9253func (s *DescribeAccountLimitsInput) SetNextToken(v string) *DescribeAccountLimitsInput {
9254	s.NextToken = &v
9255	return s
9256}
9257
9258// The output for the DescribeAccountLimits action.
9259type DescribeAccountLimitsOutput struct {
9260	_ struct{} `type:"structure"`
9261
9262	// An account limit structure that contain a list of AWS CloudFormation account
9263	// limits and their values.
9264	AccountLimits []*AccountLimit `type:"list"`
9265
9266	// If the output exceeds 1 MB in size, a string that identifies the next page
9267	// of limits. If no additional page exists, this value is null.
9268	NextToken *string `min:"1" type:"string"`
9269}
9270
9271// String returns the string representation
9272func (s DescribeAccountLimitsOutput) String() string {
9273	return awsutil.Prettify(s)
9274}
9275
9276// GoString returns the string representation
9277func (s DescribeAccountLimitsOutput) GoString() string {
9278	return s.String()
9279}
9280
9281// SetAccountLimits sets the AccountLimits field's value.
9282func (s *DescribeAccountLimitsOutput) SetAccountLimits(v []*AccountLimit) *DescribeAccountLimitsOutput {
9283	s.AccountLimits = v
9284	return s
9285}
9286
9287// SetNextToken sets the NextToken field's value.
9288func (s *DescribeAccountLimitsOutput) SetNextToken(v string) *DescribeAccountLimitsOutput {
9289	s.NextToken = &v
9290	return s
9291}
9292
9293// The input for the DescribeChangeSet action.
9294type DescribeChangeSetInput struct {
9295	_ struct{} `type:"structure"`
9296
9297	// The name or Amazon Resource Name (ARN) of the change set that you want to
9298	// describe.
9299	//
9300	// ChangeSetName is a required field
9301	ChangeSetName *string `min:"1" type:"string" required:"true"`
9302
9303	// A string (provided by the DescribeChangeSet response output) that identifies
9304	// the next page of information that you want to retrieve.
9305	NextToken *string `min:"1" type:"string"`
9306
9307	// If you specified the name of a change set, specify the stack name or ID (ARN)
9308	// of the change set you want to describe.
9309	StackName *string `min:"1" type:"string"`
9310}
9311
9312// String returns the string representation
9313func (s DescribeChangeSetInput) String() string {
9314	return awsutil.Prettify(s)
9315}
9316
9317// GoString returns the string representation
9318func (s DescribeChangeSetInput) GoString() string {
9319	return s.String()
9320}
9321
9322// Validate inspects the fields of the type to determine if they are valid.
9323func (s *DescribeChangeSetInput) Validate() error {
9324	invalidParams := request.ErrInvalidParams{Context: "DescribeChangeSetInput"}
9325	if s.ChangeSetName == nil {
9326		invalidParams.Add(request.NewErrParamRequired("ChangeSetName"))
9327	}
9328	if s.ChangeSetName != nil && len(*s.ChangeSetName) < 1 {
9329		invalidParams.Add(request.NewErrParamMinLen("ChangeSetName", 1))
9330	}
9331	if s.NextToken != nil && len(*s.NextToken) < 1 {
9332		invalidParams.Add(request.NewErrParamMinLen("NextToken", 1))
9333	}
9334	if s.StackName != nil && len(*s.StackName) < 1 {
9335		invalidParams.Add(request.NewErrParamMinLen("StackName", 1))
9336	}
9337
9338	if invalidParams.Len() > 0 {
9339		return invalidParams
9340	}
9341	return nil
9342}
9343
9344// SetChangeSetName sets the ChangeSetName field's value.
9345func (s *DescribeChangeSetInput) SetChangeSetName(v string) *DescribeChangeSetInput {
9346	s.ChangeSetName = &v
9347	return s
9348}
9349
9350// SetNextToken sets the NextToken field's value.
9351func (s *DescribeChangeSetInput) SetNextToken(v string) *DescribeChangeSetInput {
9352	s.NextToken = &v
9353	return s
9354}
9355
9356// SetStackName sets the StackName field's value.
9357func (s *DescribeChangeSetInput) SetStackName(v string) *DescribeChangeSetInput {
9358	s.StackName = &v
9359	return s
9360}
9361
9362// The output for the DescribeChangeSet action.
9363type DescribeChangeSetOutput struct {
9364	_ struct{} `type:"structure"`
9365
9366	// If you execute the change set, the list of capabilities that were explicitly
9367	// acknowledged when the change set was created.
9368	Capabilities []*string `type:"list"`
9369
9370	// The ARN of the change set.
9371	ChangeSetId *string `min:"1" type:"string"`
9372
9373	// The name of the change set.
9374	ChangeSetName *string `min:"1" type:"string"`
9375
9376	// A list of Change structures that describes the resources AWS CloudFormation
9377	// changes if you execute the change set.
9378	Changes []*Change `type:"list"`
9379
9380	// The start time when the change set was created, in UTC.
9381	CreationTime *time.Time `type:"timestamp"`
9382
9383	// Information about the change set.
9384	Description *string `min:"1" type:"string"`
9385
9386	// If the change set execution status is AVAILABLE, you can execute the change
9387	// set. If you can’t execute the change set, the status indicates why. For
9388	// example, a change set might be in an UNAVAILABLE state because AWS CloudFormation
9389	// is still creating it or in an OBSOLETE state because the stack was already
9390	// updated.
9391	ExecutionStatus *string `type:"string" enum:"ExecutionStatus"`
9392
9393	// Verifies if IncludeNestedStacks is set to True.
9394	IncludeNestedStacks *bool `type:"boolean"`
9395
9396	// If the output exceeds 1 MB, a string that identifies the next page of changes.
9397	// If there is no additional page, this value is null.
9398	NextToken *string `min:"1" type:"string"`
9399
9400	// The ARNs of the Amazon Simple Notification Service (Amazon SNS) topics that
9401	// will be associated with the stack if you execute the change set.
9402	NotificationARNs []*string `type:"list"`
9403
9404	// A list of Parameter structures that describes the input parameters and their
9405	// values used to create the change set. For more information, see the Parameter
9406	// (https://docs.aws.amazon.com/AWSCloudFormation/latest/APIReference/API_Parameter.html)
9407	// data type.
9408	Parameters []*Parameter `type:"list"`
9409
9410	// Specifies the change set ID of the parent change set in the current nested
9411	// change set hierarchy.
9412	ParentChangeSetId *string `min:"1" type:"string"`
9413
9414	// The rollback triggers for AWS CloudFormation to monitor during stack creation
9415	// and updating operations, and for the specified monitoring period afterwards.
9416	RollbackConfiguration *RollbackConfiguration `type:"structure"`
9417
9418	// Specifies the change set ID of the root change set in the current nested
9419	// change set hierarchy.
9420	RootChangeSetId *string `min:"1" type:"string"`
9421
9422	// The ARN of the stack that is associated with the change set.
9423	StackId *string `type:"string"`
9424
9425	// The name of the stack that is associated with the change set.
9426	StackName *string `type:"string"`
9427
9428	// The current status of the change set, such as CREATE_IN_PROGRESS, CREATE_COMPLETE,
9429	// or FAILED.
9430	Status *string `type:"string" enum:"ChangeSetStatus"`
9431
9432	// A description of the change set's status. For example, if your attempt to
9433	// create a change set failed, AWS CloudFormation shows the error message.
9434	StatusReason *string `type:"string"`
9435
9436	// If you execute the change set, the tags that will be associated with the
9437	// stack.
9438	Tags []*Tag `type:"list"`
9439}
9440
9441// String returns the string representation
9442func (s DescribeChangeSetOutput) String() string {
9443	return awsutil.Prettify(s)
9444}
9445
9446// GoString returns the string representation
9447func (s DescribeChangeSetOutput) GoString() string {
9448	return s.String()
9449}
9450
9451// SetCapabilities sets the Capabilities field's value.
9452func (s *DescribeChangeSetOutput) SetCapabilities(v []*string) *DescribeChangeSetOutput {
9453	s.Capabilities = v
9454	return s
9455}
9456
9457// SetChangeSetId sets the ChangeSetId field's value.
9458func (s *DescribeChangeSetOutput) SetChangeSetId(v string) *DescribeChangeSetOutput {
9459	s.ChangeSetId = &v
9460	return s
9461}
9462
9463// SetChangeSetName sets the ChangeSetName field's value.
9464func (s *DescribeChangeSetOutput) SetChangeSetName(v string) *DescribeChangeSetOutput {
9465	s.ChangeSetName = &v
9466	return s
9467}
9468
9469// SetChanges sets the Changes field's value.
9470func (s *DescribeChangeSetOutput) SetChanges(v []*Change) *DescribeChangeSetOutput {
9471	s.Changes = v
9472	return s
9473}
9474
9475// SetCreationTime sets the CreationTime field's value.
9476func (s *DescribeChangeSetOutput) SetCreationTime(v time.Time) *DescribeChangeSetOutput {
9477	s.CreationTime = &v
9478	return s
9479}
9480
9481// SetDescription sets the Description field's value.
9482func (s *DescribeChangeSetOutput) SetDescription(v string) *DescribeChangeSetOutput {
9483	s.Description = &v
9484	return s
9485}
9486
9487// SetExecutionStatus sets the ExecutionStatus field's value.
9488func (s *DescribeChangeSetOutput) SetExecutionStatus(v string) *DescribeChangeSetOutput {
9489	s.ExecutionStatus = &v
9490	return s
9491}
9492
9493// SetIncludeNestedStacks sets the IncludeNestedStacks field's value.
9494func (s *DescribeChangeSetOutput) SetIncludeNestedStacks(v bool) *DescribeChangeSetOutput {
9495	s.IncludeNestedStacks = &v
9496	return s
9497}
9498
9499// SetNextToken sets the NextToken field's value.
9500func (s *DescribeChangeSetOutput) SetNextToken(v string) *DescribeChangeSetOutput {
9501	s.NextToken = &v
9502	return s
9503}
9504
9505// SetNotificationARNs sets the NotificationARNs field's value.
9506func (s *DescribeChangeSetOutput) SetNotificationARNs(v []*string) *DescribeChangeSetOutput {
9507	s.NotificationARNs = v
9508	return s
9509}
9510
9511// SetParameters sets the Parameters field's value.
9512func (s *DescribeChangeSetOutput) SetParameters(v []*Parameter) *DescribeChangeSetOutput {
9513	s.Parameters = v
9514	return s
9515}
9516
9517// SetParentChangeSetId sets the ParentChangeSetId field's value.
9518func (s *DescribeChangeSetOutput) SetParentChangeSetId(v string) *DescribeChangeSetOutput {
9519	s.ParentChangeSetId = &v
9520	return s
9521}
9522
9523// SetRollbackConfiguration sets the RollbackConfiguration field's value.
9524func (s *DescribeChangeSetOutput) SetRollbackConfiguration(v *RollbackConfiguration) *DescribeChangeSetOutput {
9525	s.RollbackConfiguration = v
9526	return s
9527}
9528
9529// SetRootChangeSetId sets the RootChangeSetId field's value.
9530func (s *DescribeChangeSetOutput) SetRootChangeSetId(v string) *DescribeChangeSetOutput {
9531	s.RootChangeSetId = &v
9532	return s
9533}
9534
9535// SetStackId sets the StackId field's value.
9536func (s *DescribeChangeSetOutput) SetStackId(v string) *DescribeChangeSetOutput {
9537	s.StackId = &v
9538	return s
9539}
9540
9541// SetStackName sets the StackName field's value.
9542func (s *DescribeChangeSetOutput) SetStackName(v string) *DescribeChangeSetOutput {
9543	s.StackName = &v
9544	return s
9545}
9546
9547// SetStatus sets the Status field's value.
9548func (s *DescribeChangeSetOutput) SetStatus(v string) *DescribeChangeSetOutput {
9549	s.Status = &v
9550	return s
9551}
9552
9553// SetStatusReason sets the StatusReason field's value.
9554func (s *DescribeChangeSetOutput) SetStatusReason(v string) *DescribeChangeSetOutput {
9555	s.StatusReason = &v
9556	return s
9557}
9558
9559// SetTags sets the Tags field's value.
9560func (s *DescribeChangeSetOutput) SetTags(v []*Tag) *DescribeChangeSetOutput {
9561	s.Tags = v
9562	return s
9563}
9564
9565type DescribePublisherInput struct {
9566	_ struct{} `type:"structure"`
9567
9568	// The ID of the extension publisher.
9569	//
9570	// If you do not supply a PublisherId, and you have registered as an extension
9571	// publisher, DescribePublisher returns information about your own publisher
9572	// account.
9573	PublisherId *string `min:"1" type:"string"`
9574}
9575
9576// String returns the string representation
9577func (s DescribePublisherInput) String() string {
9578	return awsutil.Prettify(s)
9579}
9580
9581// GoString returns the string representation
9582func (s DescribePublisherInput) GoString() string {
9583	return s.String()
9584}
9585
9586// Validate inspects the fields of the type to determine if they are valid.
9587func (s *DescribePublisherInput) Validate() error {
9588	invalidParams := request.ErrInvalidParams{Context: "DescribePublisherInput"}
9589	if s.PublisherId != nil && len(*s.PublisherId) < 1 {
9590		invalidParams.Add(request.NewErrParamMinLen("PublisherId", 1))
9591	}
9592
9593	if invalidParams.Len() > 0 {
9594		return invalidParams
9595	}
9596	return nil
9597}
9598
9599// SetPublisherId sets the PublisherId field's value.
9600func (s *DescribePublisherInput) SetPublisherId(v string) *DescribePublisherInput {
9601	s.PublisherId = &v
9602	return s
9603}
9604
9605type DescribePublisherOutput struct {
9606	_ struct{} `type:"structure"`
9607
9608	// The type of account used as the identity provider when registering this publisher
9609	// with CloudFormation.
9610	IdentityProvider *string `type:"string" enum:"IdentityProvider"`
9611
9612	// The ID of the extension publisher.
9613	PublisherId *string `min:"1" type:"string"`
9614
9615	// The URL to the publisher's profile with the identity provider.
9616	PublisherProfile *string `type:"string"`
9617
9618	// Whether the publisher is verified. Currently, all registered publishers are
9619	// verified.
9620	PublisherStatus *string `type:"string" enum:"PublisherStatus"`
9621}
9622
9623// String returns the string representation
9624func (s DescribePublisherOutput) String() string {
9625	return awsutil.Prettify(s)
9626}
9627
9628// GoString returns the string representation
9629func (s DescribePublisherOutput) GoString() string {
9630	return s.String()
9631}
9632
9633// SetIdentityProvider sets the IdentityProvider field's value.
9634func (s *DescribePublisherOutput) SetIdentityProvider(v string) *DescribePublisherOutput {
9635	s.IdentityProvider = &v
9636	return s
9637}
9638
9639// SetPublisherId sets the PublisherId field's value.
9640func (s *DescribePublisherOutput) SetPublisherId(v string) *DescribePublisherOutput {
9641	s.PublisherId = &v
9642	return s
9643}
9644
9645// SetPublisherProfile sets the PublisherProfile field's value.
9646func (s *DescribePublisherOutput) SetPublisherProfile(v string) *DescribePublisherOutput {
9647	s.PublisherProfile = &v
9648	return s
9649}
9650
9651// SetPublisherStatus sets the PublisherStatus field's value.
9652func (s *DescribePublisherOutput) SetPublisherStatus(v string) *DescribePublisherOutput {
9653	s.PublisherStatus = &v
9654	return s
9655}
9656
9657type DescribeStackDriftDetectionStatusInput struct {
9658	_ struct{} `type:"structure"`
9659
9660	// The ID of the drift detection results of this operation.
9661	//
9662	// AWS CloudFormation generates new results, with a new drift detection ID,
9663	// each time this operation is run. However, the number of drift results AWS
9664	// CloudFormation retains for any given stack, and for how long, may vary.
9665	//
9666	// StackDriftDetectionId is a required field
9667	StackDriftDetectionId *string `min:"1" type:"string" required:"true"`
9668}
9669
9670// String returns the string representation
9671func (s DescribeStackDriftDetectionStatusInput) String() string {
9672	return awsutil.Prettify(s)
9673}
9674
9675// GoString returns the string representation
9676func (s DescribeStackDriftDetectionStatusInput) GoString() string {
9677	return s.String()
9678}
9679
9680// Validate inspects the fields of the type to determine if they are valid.
9681func (s *DescribeStackDriftDetectionStatusInput) Validate() error {
9682	invalidParams := request.ErrInvalidParams{Context: "DescribeStackDriftDetectionStatusInput"}
9683	if s.StackDriftDetectionId == nil {
9684		invalidParams.Add(request.NewErrParamRequired("StackDriftDetectionId"))
9685	}
9686	if s.StackDriftDetectionId != nil && len(*s.StackDriftDetectionId) < 1 {
9687		invalidParams.Add(request.NewErrParamMinLen("StackDriftDetectionId", 1))
9688	}
9689
9690	if invalidParams.Len() > 0 {
9691		return invalidParams
9692	}
9693	return nil
9694}
9695
9696// SetStackDriftDetectionId sets the StackDriftDetectionId field's value.
9697func (s *DescribeStackDriftDetectionStatusInput) SetStackDriftDetectionId(v string) *DescribeStackDriftDetectionStatusInput {
9698	s.StackDriftDetectionId = &v
9699	return s
9700}
9701
9702type DescribeStackDriftDetectionStatusOutput struct {
9703	_ struct{} `type:"structure"`
9704
9705	// The status of the stack drift detection operation.
9706	//
9707	//    * DETECTION_COMPLETE: The stack drift detection operation has successfully
9708	//    completed for all resources in the stack that support drift detection.
9709	//    (Resources that do not currently support stack detection remain unchecked.)
9710	//    If you specified logical resource IDs for AWS CloudFormation to use as
9711	//    a filter for the stack drift detection operation, only the resources with
9712	//    those logical IDs are checked for drift.
9713	//
9714	//    * DETECTION_FAILED: The stack drift detection operation has failed for
9715	//    at least one resource in the stack. Results will be available for resources
9716	//    on which AWS CloudFormation successfully completed drift detection.
9717	//
9718	//    * DETECTION_IN_PROGRESS: The stack drift detection operation is currently
9719	//    in progress.
9720	//
9721	// DetectionStatus is a required field
9722	DetectionStatus *string `type:"string" required:"true" enum:"StackDriftDetectionStatus"`
9723
9724	// The reason the stack drift detection operation has its current status.
9725	DetectionStatusReason *string `type:"string"`
9726
9727	// Total number of stack resources that have drifted. This is NULL until the
9728	// drift detection operation reaches a status of DETECTION_COMPLETE. This value
9729	// will be 0 for stacks whose drift status is IN_SYNC.
9730	DriftedStackResourceCount *int64 `type:"integer"`
9731
9732	// The ID of the drift detection results of this operation.
9733	//
9734	// AWS CloudFormation generates new results, with a new drift detection ID,
9735	// each time this operation is run. However, the number of reports AWS CloudFormation
9736	// retains for any given stack, and for how long, may vary.
9737	//
9738	// StackDriftDetectionId is a required field
9739	StackDriftDetectionId *string `min:"1" type:"string" required:"true"`
9740
9741	// Status of the stack's actual configuration compared to its expected configuration.
9742	//
9743	//    * DRIFTED: The stack differs from its expected template configuration.
9744	//    A stack is considered to have drifted if one or more of its resources
9745	//    have drifted.
9746	//
9747	//    * NOT_CHECKED: AWS CloudFormation has not checked if the stack differs
9748	//    from its expected template configuration.
9749	//
9750	//    * IN_SYNC: The stack's actual configuration matches its expected template
9751	//    configuration.
9752	//
9753	//    * UNKNOWN: This value is reserved for future use.
9754	StackDriftStatus *string `type:"string" enum:"StackDriftStatus"`
9755
9756	// The ID of the stack.
9757	//
9758	// StackId is a required field
9759	StackId *string `type:"string" required:"true"`
9760
9761	// Time at which the stack drift detection operation was initiated.
9762	//
9763	// Timestamp is a required field
9764	Timestamp *time.Time `type:"timestamp" required:"true"`
9765}
9766
9767// String returns the string representation
9768func (s DescribeStackDriftDetectionStatusOutput) String() string {
9769	return awsutil.Prettify(s)
9770}
9771
9772// GoString returns the string representation
9773func (s DescribeStackDriftDetectionStatusOutput) GoString() string {
9774	return s.String()
9775}
9776
9777// SetDetectionStatus sets the DetectionStatus field's value.
9778func (s *DescribeStackDriftDetectionStatusOutput) SetDetectionStatus(v string) *DescribeStackDriftDetectionStatusOutput {
9779	s.DetectionStatus = &v
9780	return s
9781}
9782
9783// SetDetectionStatusReason sets the DetectionStatusReason field's value.
9784func (s *DescribeStackDriftDetectionStatusOutput) SetDetectionStatusReason(v string) *DescribeStackDriftDetectionStatusOutput {
9785	s.DetectionStatusReason = &v
9786	return s
9787}
9788
9789// SetDriftedStackResourceCount sets the DriftedStackResourceCount field's value.
9790func (s *DescribeStackDriftDetectionStatusOutput) SetDriftedStackResourceCount(v int64) *DescribeStackDriftDetectionStatusOutput {
9791	s.DriftedStackResourceCount = &v
9792	return s
9793}
9794
9795// SetStackDriftDetectionId sets the StackDriftDetectionId field's value.
9796func (s *DescribeStackDriftDetectionStatusOutput) SetStackDriftDetectionId(v string) *DescribeStackDriftDetectionStatusOutput {
9797	s.StackDriftDetectionId = &v
9798	return s
9799}
9800
9801// SetStackDriftStatus sets the StackDriftStatus field's value.
9802func (s *DescribeStackDriftDetectionStatusOutput) SetStackDriftStatus(v string) *DescribeStackDriftDetectionStatusOutput {
9803	s.StackDriftStatus = &v
9804	return s
9805}
9806
9807// SetStackId sets the StackId field's value.
9808func (s *DescribeStackDriftDetectionStatusOutput) SetStackId(v string) *DescribeStackDriftDetectionStatusOutput {
9809	s.StackId = &v
9810	return s
9811}
9812
9813// SetTimestamp sets the Timestamp field's value.
9814func (s *DescribeStackDriftDetectionStatusOutput) SetTimestamp(v time.Time) *DescribeStackDriftDetectionStatusOutput {
9815	s.Timestamp = &v
9816	return s
9817}
9818
9819// The input for DescribeStackEvents action.
9820type DescribeStackEventsInput struct {
9821	_ struct{} `type:"structure"`
9822
9823	// A string that identifies the next page of events that you want to retrieve.
9824	NextToken *string `min:"1" type:"string"`
9825
9826	// The name or the unique stack ID that is associated with the stack, which
9827	// are not always interchangeable:
9828	//
9829	//    * Running stacks: You can specify either the stack's name or its unique
9830	//    stack ID.
9831	//
9832	//    * Deleted stacks: You must specify the unique stack ID.
9833	//
9834	// Default: There is no default value.
9835	StackName *string `type:"string"`
9836}
9837
9838// String returns the string representation
9839func (s DescribeStackEventsInput) String() string {
9840	return awsutil.Prettify(s)
9841}
9842
9843// GoString returns the string representation
9844func (s DescribeStackEventsInput) GoString() string {
9845	return s.String()
9846}
9847
9848// Validate inspects the fields of the type to determine if they are valid.
9849func (s *DescribeStackEventsInput) Validate() error {
9850	invalidParams := request.ErrInvalidParams{Context: "DescribeStackEventsInput"}
9851	if s.NextToken != nil && len(*s.NextToken) < 1 {
9852		invalidParams.Add(request.NewErrParamMinLen("NextToken", 1))
9853	}
9854
9855	if invalidParams.Len() > 0 {
9856		return invalidParams
9857	}
9858	return nil
9859}
9860
9861// SetNextToken sets the NextToken field's value.
9862func (s *DescribeStackEventsInput) SetNextToken(v string) *DescribeStackEventsInput {
9863	s.NextToken = &v
9864	return s
9865}
9866
9867// SetStackName sets the StackName field's value.
9868func (s *DescribeStackEventsInput) SetStackName(v string) *DescribeStackEventsInput {
9869	s.StackName = &v
9870	return s
9871}
9872
9873// The output for a DescribeStackEvents action.
9874type DescribeStackEventsOutput struct {
9875	_ struct{} `type:"structure"`
9876
9877	// If the output exceeds 1 MB in size, a string that identifies the next page
9878	// of events. If no additional page exists, this value is null.
9879	NextToken *string `min:"1" type:"string"`
9880
9881	// A list of StackEvents structures.
9882	StackEvents []*StackEvent `type:"list"`
9883}
9884
9885// String returns the string representation
9886func (s DescribeStackEventsOutput) String() string {
9887	return awsutil.Prettify(s)
9888}
9889
9890// GoString returns the string representation
9891func (s DescribeStackEventsOutput) GoString() string {
9892	return s.String()
9893}
9894
9895// SetNextToken sets the NextToken field's value.
9896func (s *DescribeStackEventsOutput) SetNextToken(v string) *DescribeStackEventsOutput {
9897	s.NextToken = &v
9898	return s
9899}
9900
9901// SetStackEvents sets the StackEvents field's value.
9902func (s *DescribeStackEventsOutput) SetStackEvents(v []*StackEvent) *DescribeStackEventsOutput {
9903	s.StackEvents = v
9904	return s
9905}
9906
9907type DescribeStackInstanceInput struct {
9908	_ struct{} `type:"structure"`
9909
9910	// [Service-managed permissions] Specifies whether you are acting as an account
9911	// administrator in the organization's management account or as a delegated
9912	// administrator in a member account.
9913	//
9914	// By default, SELF is specified. Use SELF for stack sets with self-managed
9915	// permissions.
9916	//
9917	//    * If you are signed in to the management account, specify SELF.
9918	//
9919	//    * If you are signed in to a delegated administrator account, specify DELEGATED_ADMIN.
9920	//    Your AWS account must be registered as a delegated administrator in the
9921	//    management account. For more information, see Register a delegated administrator
9922	//    (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/stacksets-orgs-delegated-admin.html)
9923	//    in the AWS CloudFormation User Guide.
9924	CallAs *string `type:"string" enum:"CallAs"`
9925
9926	// The ID of an AWS account that's associated with this stack instance.
9927	//
9928	// StackInstanceAccount is a required field
9929	StackInstanceAccount *string `type:"string" required:"true"`
9930
9931	// The name of a Region that's associated with this stack instance.
9932	//
9933	// StackInstanceRegion is a required field
9934	StackInstanceRegion *string `type:"string" required:"true"`
9935
9936	// The name or the unique stack ID of the stack set that you want to get stack
9937	// instance information for.
9938	//
9939	// StackSetName is a required field
9940	StackSetName *string `type:"string" required:"true"`
9941}
9942
9943// String returns the string representation
9944func (s DescribeStackInstanceInput) String() string {
9945	return awsutil.Prettify(s)
9946}
9947
9948// GoString returns the string representation
9949func (s DescribeStackInstanceInput) GoString() string {
9950	return s.String()
9951}
9952
9953// Validate inspects the fields of the type to determine if they are valid.
9954func (s *DescribeStackInstanceInput) Validate() error {
9955	invalidParams := request.ErrInvalidParams{Context: "DescribeStackInstanceInput"}
9956	if s.StackInstanceAccount == nil {
9957		invalidParams.Add(request.NewErrParamRequired("StackInstanceAccount"))
9958	}
9959	if s.StackInstanceRegion == nil {
9960		invalidParams.Add(request.NewErrParamRequired("StackInstanceRegion"))
9961	}
9962	if s.StackSetName == nil {
9963		invalidParams.Add(request.NewErrParamRequired("StackSetName"))
9964	}
9965
9966	if invalidParams.Len() > 0 {
9967		return invalidParams
9968	}
9969	return nil
9970}
9971
9972// SetCallAs sets the CallAs field's value.
9973func (s *DescribeStackInstanceInput) SetCallAs(v string) *DescribeStackInstanceInput {
9974	s.CallAs = &v
9975	return s
9976}
9977
9978// SetStackInstanceAccount sets the StackInstanceAccount field's value.
9979func (s *DescribeStackInstanceInput) SetStackInstanceAccount(v string) *DescribeStackInstanceInput {
9980	s.StackInstanceAccount = &v
9981	return s
9982}
9983
9984// SetStackInstanceRegion sets the StackInstanceRegion field's value.
9985func (s *DescribeStackInstanceInput) SetStackInstanceRegion(v string) *DescribeStackInstanceInput {
9986	s.StackInstanceRegion = &v
9987	return s
9988}
9989
9990// SetStackSetName sets the StackSetName field's value.
9991func (s *DescribeStackInstanceInput) SetStackSetName(v string) *DescribeStackInstanceInput {
9992	s.StackSetName = &v
9993	return s
9994}
9995
9996type DescribeStackInstanceOutput struct {
9997	_ struct{} `type:"structure"`
9998
9999	// The stack instance that matches the specified request parameters.
10000	StackInstance *StackInstance `type:"structure"`
10001}
10002
10003// String returns the string representation
10004func (s DescribeStackInstanceOutput) String() string {
10005	return awsutil.Prettify(s)
10006}
10007
10008// GoString returns the string representation
10009func (s DescribeStackInstanceOutput) GoString() string {
10010	return s.String()
10011}
10012
10013// SetStackInstance sets the StackInstance field's value.
10014func (s *DescribeStackInstanceOutput) SetStackInstance(v *StackInstance) *DescribeStackInstanceOutput {
10015	s.StackInstance = v
10016	return s
10017}
10018
10019type DescribeStackResourceDriftsInput struct {
10020	_ struct{} `type:"structure"`
10021
10022	// The maximum number of results to be returned with a single call. If the number
10023	// of available results exceeds this maximum, the response includes a NextToken
10024	// value that you can assign to the NextToken request parameter to get the next
10025	// set of results.
10026	MaxResults *int64 `min:"1" type:"integer"`
10027
10028	// A string that identifies the next page of stack resource drift results.
10029	NextToken *string `min:"1" type:"string"`
10030
10031	// The name of the stack for which you want drift information.
10032	//
10033	// StackName is a required field
10034	StackName *string `min:"1" type:"string" required:"true"`
10035
10036	// The resource drift status values to use as filters for the resource drift
10037	// results returned.
10038	//
10039	//    * DELETED: The resource differs from its expected template configuration
10040	//    in that the resource has been deleted.
10041	//
10042	//    * MODIFIED: One or more resource properties differ from their expected
10043	//    template values.
10044	//
10045	//    * IN_SYNC: The resources's actual configuration matches its expected template
10046	//    configuration.
10047	//
10048	//    * NOT_CHECKED: AWS CloudFormation does not currently return this value.
10049	StackResourceDriftStatusFilters []*string `min:"1" type:"list"`
10050}
10051
10052// String returns the string representation
10053func (s DescribeStackResourceDriftsInput) String() string {
10054	return awsutil.Prettify(s)
10055}
10056
10057// GoString returns the string representation
10058func (s DescribeStackResourceDriftsInput) GoString() string {
10059	return s.String()
10060}
10061
10062// Validate inspects the fields of the type to determine if they are valid.
10063func (s *DescribeStackResourceDriftsInput) Validate() error {
10064	invalidParams := request.ErrInvalidParams{Context: "DescribeStackResourceDriftsInput"}
10065	if s.MaxResults != nil && *s.MaxResults < 1 {
10066		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
10067	}
10068	if s.NextToken != nil && len(*s.NextToken) < 1 {
10069		invalidParams.Add(request.NewErrParamMinLen("NextToken", 1))
10070	}
10071	if s.StackName == nil {
10072		invalidParams.Add(request.NewErrParamRequired("StackName"))
10073	}
10074	if s.StackName != nil && len(*s.StackName) < 1 {
10075		invalidParams.Add(request.NewErrParamMinLen("StackName", 1))
10076	}
10077	if s.StackResourceDriftStatusFilters != nil && len(s.StackResourceDriftStatusFilters) < 1 {
10078		invalidParams.Add(request.NewErrParamMinLen("StackResourceDriftStatusFilters", 1))
10079	}
10080
10081	if invalidParams.Len() > 0 {
10082		return invalidParams
10083	}
10084	return nil
10085}
10086
10087// SetMaxResults sets the MaxResults field's value.
10088func (s *DescribeStackResourceDriftsInput) SetMaxResults(v int64) *DescribeStackResourceDriftsInput {
10089	s.MaxResults = &v
10090	return s
10091}
10092
10093// SetNextToken sets the NextToken field's value.
10094func (s *DescribeStackResourceDriftsInput) SetNextToken(v string) *DescribeStackResourceDriftsInput {
10095	s.NextToken = &v
10096	return s
10097}
10098
10099// SetStackName sets the StackName field's value.
10100func (s *DescribeStackResourceDriftsInput) SetStackName(v string) *DescribeStackResourceDriftsInput {
10101	s.StackName = &v
10102	return s
10103}
10104
10105// SetStackResourceDriftStatusFilters sets the StackResourceDriftStatusFilters field's value.
10106func (s *DescribeStackResourceDriftsInput) SetStackResourceDriftStatusFilters(v []*string) *DescribeStackResourceDriftsInput {
10107	s.StackResourceDriftStatusFilters = v
10108	return s
10109}
10110
10111type DescribeStackResourceDriftsOutput struct {
10112	_ struct{} `type:"structure"`
10113
10114	// If the request doesn't return all of the remaining results, NextToken is
10115	// set to a token. To retrieve the next set of results, call DescribeStackResourceDrifts
10116	// again and assign that token to the request object's NextToken parameter.
10117	// If the request returns all results, NextToken is set to null.
10118	NextToken *string `min:"1" type:"string"`
10119
10120	// Drift information for the resources that have been checked for drift in the
10121	// specified stack. This includes actual and expected configuration values for
10122	// resources where AWS CloudFormation detects drift.
10123	//
10124	// For a given stack, there will be one StackResourceDrift for each stack resource
10125	// that has been checked for drift. Resources that have not yet been checked
10126	// for drift are not included. Resources that do not currently support drift
10127	// detection are not checked, and so not included. For a list of resources that
10128	// support drift detection, see Resources that Support Drift Detection (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-stack-drift-resource-list.html).
10129	//
10130	// StackResourceDrifts is a required field
10131	StackResourceDrifts []*StackResourceDrift `type:"list" required:"true"`
10132}
10133
10134// String returns the string representation
10135func (s DescribeStackResourceDriftsOutput) String() string {
10136	return awsutil.Prettify(s)
10137}
10138
10139// GoString returns the string representation
10140func (s DescribeStackResourceDriftsOutput) GoString() string {
10141	return s.String()
10142}
10143
10144// SetNextToken sets the NextToken field's value.
10145func (s *DescribeStackResourceDriftsOutput) SetNextToken(v string) *DescribeStackResourceDriftsOutput {
10146	s.NextToken = &v
10147	return s
10148}
10149
10150// SetStackResourceDrifts sets the StackResourceDrifts field's value.
10151func (s *DescribeStackResourceDriftsOutput) SetStackResourceDrifts(v []*StackResourceDrift) *DescribeStackResourceDriftsOutput {
10152	s.StackResourceDrifts = v
10153	return s
10154}
10155
10156// The input for DescribeStackResource action.
10157type DescribeStackResourceInput struct {
10158	_ struct{} `type:"structure"`
10159
10160	// The logical name of the resource as specified in the template.
10161	//
10162	// Default: There is no default value.
10163	//
10164	// LogicalResourceId is a required field
10165	LogicalResourceId *string `type:"string" required:"true"`
10166
10167	// The name or the unique stack ID that is associated with the stack, which
10168	// are not always interchangeable:
10169	//
10170	//    * Running stacks: You can specify either the stack's name or its unique
10171	//    stack ID.
10172	//
10173	//    * Deleted stacks: You must specify the unique stack ID.
10174	//
10175	// Default: There is no default value.
10176	//
10177	// StackName is a required field
10178	StackName *string `type:"string" required:"true"`
10179}
10180
10181// String returns the string representation
10182func (s DescribeStackResourceInput) String() string {
10183	return awsutil.Prettify(s)
10184}
10185
10186// GoString returns the string representation
10187func (s DescribeStackResourceInput) GoString() string {
10188	return s.String()
10189}
10190
10191// Validate inspects the fields of the type to determine if they are valid.
10192func (s *DescribeStackResourceInput) Validate() error {
10193	invalidParams := request.ErrInvalidParams{Context: "DescribeStackResourceInput"}
10194	if s.LogicalResourceId == nil {
10195		invalidParams.Add(request.NewErrParamRequired("LogicalResourceId"))
10196	}
10197	if s.StackName == nil {
10198		invalidParams.Add(request.NewErrParamRequired("StackName"))
10199	}
10200
10201	if invalidParams.Len() > 0 {
10202		return invalidParams
10203	}
10204	return nil
10205}
10206
10207// SetLogicalResourceId sets the LogicalResourceId field's value.
10208func (s *DescribeStackResourceInput) SetLogicalResourceId(v string) *DescribeStackResourceInput {
10209	s.LogicalResourceId = &v
10210	return s
10211}
10212
10213// SetStackName sets the StackName field's value.
10214func (s *DescribeStackResourceInput) SetStackName(v string) *DescribeStackResourceInput {
10215	s.StackName = &v
10216	return s
10217}
10218
10219// The output for a DescribeStackResource action.
10220type DescribeStackResourceOutput struct {
10221	_ struct{} `type:"structure"`
10222
10223	// A StackResourceDetail structure containing the description of the specified
10224	// resource in the specified stack.
10225	StackResourceDetail *StackResourceDetail `type:"structure"`
10226}
10227
10228// String returns the string representation
10229func (s DescribeStackResourceOutput) String() string {
10230	return awsutil.Prettify(s)
10231}
10232
10233// GoString returns the string representation
10234func (s DescribeStackResourceOutput) GoString() string {
10235	return s.String()
10236}
10237
10238// SetStackResourceDetail sets the StackResourceDetail field's value.
10239func (s *DescribeStackResourceOutput) SetStackResourceDetail(v *StackResourceDetail) *DescribeStackResourceOutput {
10240	s.StackResourceDetail = v
10241	return s
10242}
10243
10244// The input for DescribeStackResources action.
10245type DescribeStackResourcesInput struct {
10246	_ struct{} `type:"structure"`
10247
10248	// The logical name of the resource as specified in the template.
10249	//
10250	// Default: There is no default value.
10251	LogicalResourceId *string `type:"string"`
10252
10253	// The name or unique identifier that corresponds to a physical instance ID
10254	// of a resource supported by AWS CloudFormation.
10255	//
10256	// For example, for an Amazon Elastic Compute Cloud (EC2) instance, PhysicalResourceId
10257	// corresponds to the InstanceId. You can pass the EC2 InstanceId to DescribeStackResources
10258	// to find which stack the instance belongs to and what other resources are
10259	// part of the stack.
10260	//
10261	// Required: Conditional. If you do not specify PhysicalResourceId, you must
10262	// specify StackName.
10263	//
10264	// Default: There is no default value.
10265	PhysicalResourceId *string `type:"string"`
10266
10267	// The name or the unique stack ID that is associated with the stack, which
10268	// are not always interchangeable:
10269	//
10270	//    * Running stacks: You can specify either the stack's name or its unique
10271	//    stack ID.
10272	//
10273	//    * Deleted stacks: You must specify the unique stack ID.
10274	//
10275	// Default: There is no default value.
10276	//
10277	// Required: Conditional. If you do not specify StackName, you must specify
10278	// PhysicalResourceId.
10279	StackName *string `type:"string"`
10280}
10281
10282// String returns the string representation
10283func (s DescribeStackResourcesInput) String() string {
10284	return awsutil.Prettify(s)
10285}
10286
10287// GoString returns the string representation
10288func (s DescribeStackResourcesInput) GoString() string {
10289	return s.String()
10290}
10291
10292// SetLogicalResourceId sets the LogicalResourceId field's value.
10293func (s *DescribeStackResourcesInput) SetLogicalResourceId(v string) *DescribeStackResourcesInput {
10294	s.LogicalResourceId = &v
10295	return s
10296}
10297
10298// SetPhysicalResourceId sets the PhysicalResourceId field's value.
10299func (s *DescribeStackResourcesInput) SetPhysicalResourceId(v string) *DescribeStackResourcesInput {
10300	s.PhysicalResourceId = &v
10301	return s
10302}
10303
10304// SetStackName sets the StackName field's value.
10305func (s *DescribeStackResourcesInput) SetStackName(v string) *DescribeStackResourcesInput {
10306	s.StackName = &v
10307	return s
10308}
10309
10310// The output for a DescribeStackResources action.
10311type DescribeStackResourcesOutput struct {
10312	_ struct{} `type:"structure"`
10313
10314	// A list of StackResource structures.
10315	StackResources []*StackResource `type:"list"`
10316}
10317
10318// String returns the string representation
10319func (s DescribeStackResourcesOutput) String() string {
10320	return awsutil.Prettify(s)
10321}
10322
10323// GoString returns the string representation
10324func (s DescribeStackResourcesOutput) GoString() string {
10325	return s.String()
10326}
10327
10328// SetStackResources sets the StackResources field's value.
10329func (s *DescribeStackResourcesOutput) SetStackResources(v []*StackResource) *DescribeStackResourcesOutput {
10330	s.StackResources = v
10331	return s
10332}
10333
10334type DescribeStackSetInput struct {
10335	_ struct{} `type:"structure"`
10336
10337	// [Service-managed permissions] Specifies whether you are acting as an account
10338	// administrator in the organization's management account or as a delegated
10339	// administrator in a member account.
10340	//
10341	// By default, SELF is specified. Use SELF for stack sets with self-managed
10342	// permissions.
10343	//
10344	//    * If you are signed in to the management account, specify SELF.
10345	//
10346	//    * If you are signed in to a delegated administrator account, specify DELEGATED_ADMIN.
10347	//    Your AWS account must be registered as a delegated administrator in the
10348	//    management account. For more information, see Register a delegated administrator
10349	//    (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/stacksets-orgs-delegated-admin.html)
10350	//    in the AWS CloudFormation User Guide.
10351	CallAs *string `type:"string" enum:"CallAs"`
10352
10353	// The name or unique ID of the stack set whose description you want.
10354	//
10355	// StackSetName is a required field
10356	StackSetName *string `type:"string" required:"true"`
10357}
10358
10359// String returns the string representation
10360func (s DescribeStackSetInput) String() string {
10361	return awsutil.Prettify(s)
10362}
10363
10364// GoString returns the string representation
10365func (s DescribeStackSetInput) GoString() string {
10366	return s.String()
10367}
10368
10369// Validate inspects the fields of the type to determine if they are valid.
10370func (s *DescribeStackSetInput) Validate() error {
10371	invalidParams := request.ErrInvalidParams{Context: "DescribeStackSetInput"}
10372	if s.StackSetName == nil {
10373		invalidParams.Add(request.NewErrParamRequired("StackSetName"))
10374	}
10375
10376	if invalidParams.Len() > 0 {
10377		return invalidParams
10378	}
10379	return nil
10380}
10381
10382// SetCallAs sets the CallAs field's value.
10383func (s *DescribeStackSetInput) SetCallAs(v string) *DescribeStackSetInput {
10384	s.CallAs = &v
10385	return s
10386}
10387
10388// SetStackSetName sets the StackSetName field's value.
10389func (s *DescribeStackSetInput) SetStackSetName(v string) *DescribeStackSetInput {
10390	s.StackSetName = &v
10391	return s
10392}
10393
10394type DescribeStackSetOperationInput struct {
10395	_ struct{} `type:"structure"`
10396
10397	// [Service-managed permissions] Specifies whether you are acting as an account
10398	// administrator in the organization's management account or as a delegated
10399	// administrator in a member account.
10400	//
10401	// By default, SELF is specified. Use SELF for stack sets with self-managed
10402	// permissions.
10403	//
10404	//    * If you are signed in to the management account, specify SELF.
10405	//
10406	//    * If you are signed in to a delegated administrator account, specify DELEGATED_ADMIN.
10407	//    Your AWS account must be registered as a delegated administrator in the
10408	//    management account. For more information, see Register a delegated administrator
10409	//    (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/stacksets-orgs-delegated-admin.html)
10410	//    in the AWS CloudFormation User Guide.
10411	CallAs *string `type:"string" enum:"CallAs"`
10412
10413	// The unique ID of the stack set operation.
10414	//
10415	// OperationId is a required field
10416	OperationId *string `min:"1" type:"string" required:"true"`
10417
10418	// The name or the unique stack ID of the stack set for the stack operation.
10419	//
10420	// StackSetName is a required field
10421	StackSetName *string `type:"string" required:"true"`
10422}
10423
10424// String returns the string representation
10425func (s DescribeStackSetOperationInput) String() string {
10426	return awsutil.Prettify(s)
10427}
10428
10429// GoString returns the string representation
10430func (s DescribeStackSetOperationInput) GoString() string {
10431	return s.String()
10432}
10433
10434// Validate inspects the fields of the type to determine if they are valid.
10435func (s *DescribeStackSetOperationInput) Validate() error {
10436	invalidParams := request.ErrInvalidParams{Context: "DescribeStackSetOperationInput"}
10437	if s.OperationId == nil {
10438		invalidParams.Add(request.NewErrParamRequired("OperationId"))
10439	}
10440	if s.OperationId != nil && len(*s.OperationId) < 1 {
10441		invalidParams.Add(request.NewErrParamMinLen("OperationId", 1))
10442	}
10443	if s.StackSetName == nil {
10444		invalidParams.Add(request.NewErrParamRequired("StackSetName"))
10445	}
10446
10447	if invalidParams.Len() > 0 {
10448		return invalidParams
10449	}
10450	return nil
10451}
10452
10453// SetCallAs sets the CallAs field's value.
10454func (s *DescribeStackSetOperationInput) SetCallAs(v string) *DescribeStackSetOperationInput {
10455	s.CallAs = &v
10456	return s
10457}
10458
10459// SetOperationId sets the OperationId field's value.
10460func (s *DescribeStackSetOperationInput) SetOperationId(v string) *DescribeStackSetOperationInput {
10461	s.OperationId = &v
10462	return s
10463}
10464
10465// SetStackSetName sets the StackSetName field's value.
10466func (s *DescribeStackSetOperationInput) SetStackSetName(v string) *DescribeStackSetOperationInput {
10467	s.StackSetName = &v
10468	return s
10469}
10470
10471type DescribeStackSetOperationOutput struct {
10472	_ struct{} `type:"structure"`
10473
10474	// The specified stack set operation.
10475	StackSetOperation *StackSetOperation `type:"structure"`
10476}
10477
10478// String returns the string representation
10479func (s DescribeStackSetOperationOutput) String() string {
10480	return awsutil.Prettify(s)
10481}
10482
10483// GoString returns the string representation
10484func (s DescribeStackSetOperationOutput) GoString() string {
10485	return s.String()
10486}
10487
10488// SetStackSetOperation sets the StackSetOperation field's value.
10489func (s *DescribeStackSetOperationOutput) SetStackSetOperation(v *StackSetOperation) *DescribeStackSetOperationOutput {
10490	s.StackSetOperation = v
10491	return s
10492}
10493
10494type DescribeStackSetOutput struct {
10495	_ struct{} `type:"structure"`
10496
10497	// The specified stack set.
10498	StackSet *StackSet `type:"structure"`
10499}
10500
10501// String returns the string representation
10502func (s DescribeStackSetOutput) String() string {
10503	return awsutil.Prettify(s)
10504}
10505
10506// GoString returns the string representation
10507func (s DescribeStackSetOutput) GoString() string {
10508	return s.String()
10509}
10510
10511// SetStackSet sets the StackSet field's value.
10512func (s *DescribeStackSetOutput) SetStackSet(v *StackSet) *DescribeStackSetOutput {
10513	s.StackSet = v
10514	return s
10515}
10516
10517// The input for DescribeStacks action.
10518type DescribeStacksInput struct {
10519	_ struct{} `type:"structure"`
10520
10521	// A string that identifies the next page of stacks that you want to retrieve.
10522	NextToken *string `min:"1" type:"string"`
10523
10524	// The name or the unique stack ID that is associated with the stack, which
10525	// are not always interchangeable:
10526	//
10527	//    * Running stacks: You can specify either the stack's name or its unique
10528	//    stack ID.
10529	//
10530	//    * Deleted stacks: You must specify the unique stack ID.
10531	//
10532	// Default: There is no default value.
10533	StackName *string `type:"string"`
10534}
10535
10536// String returns the string representation
10537func (s DescribeStacksInput) String() string {
10538	return awsutil.Prettify(s)
10539}
10540
10541// GoString returns the string representation
10542func (s DescribeStacksInput) GoString() string {
10543	return s.String()
10544}
10545
10546// Validate inspects the fields of the type to determine if they are valid.
10547func (s *DescribeStacksInput) Validate() error {
10548	invalidParams := request.ErrInvalidParams{Context: "DescribeStacksInput"}
10549	if s.NextToken != nil && len(*s.NextToken) < 1 {
10550		invalidParams.Add(request.NewErrParamMinLen("NextToken", 1))
10551	}
10552
10553	if invalidParams.Len() > 0 {
10554		return invalidParams
10555	}
10556	return nil
10557}
10558
10559// SetNextToken sets the NextToken field's value.
10560func (s *DescribeStacksInput) SetNextToken(v string) *DescribeStacksInput {
10561	s.NextToken = &v
10562	return s
10563}
10564
10565// SetStackName sets the StackName field's value.
10566func (s *DescribeStacksInput) SetStackName(v string) *DescribeStacksInput {
10567	s.StackName = &v
10568	return s
10569}
10570
10571// The output for a DescribeStacks action.
10572type DescribeStacksOutput struct {
10573	_ struct{} `type:"structure"`
10574
10575	// If the output exceeds 1 MB in size, a string that identifies the next page
10576	// of stacks. If no additional page exists, this value is null.
10577	NextToken *string `min:"1" type:"string"`
10578
10579	// A list of stack structures.
10580	Stacks []*Stack `type:"list"`
10581}
10582
10583// String returns the string representation
10584func (s DescribeStacksOutput) String() string {
10585	return awsutil.Prettify(s)
10586}
10587
10588// GoString returns the string representation
10589func (s DescribeStacksOutput) GoString() string {
10590	return s.String()
10591}
10592
10593// SetNextToken sets the NextToken field's value.
10594func (s *DescribeStacksOutput) SetNextToken(v string) *DescribeStacksOutput {
10595	s.NextToken = &v
10596	return s
10597}
10598
10599// SetStacks sets the Stacks field's value.
10600func (s *DescribeStacksOutput) SetStacks(v []*Stack) *DescribeStacksOutput {
10601	s.Stacks = v
10602	return s
10603}
10604
10605type DescribeTypeInput struct {
10606	_ struct{} `type:"structure"`
10607
10608	// The Amazon Resource Name (ARN) of the extension.
10609	//
10610	// Conditional: You must specify either TypeName and Type, or Arn.
10611	Arn *string `type:"string"`
10612
10613	// The version number of a public third-party extension.
10614	PublicVersionNumber *string `min:"5" type:"string"`
10615
10616	// The publisher ID of the extension publisher.
10617	//
10618	// Extensions provided by Amazon are not assigned a publisher ID.
10619	PublisherId *string `min:"1" type:"string"`
10620
10621	// The kind of extension.
10622	//
10623	// Conditional: You must specify either TypeName and Type, or Arn.
10624	Type *string `type:"string" enum:"RegistryType"`
10625
10626	// The name of the extension.
10627	//
10628	// Conditional: You must specify either TypeName and Type, or Arn.
10629	TypeName *string `min:"10" type:"string"`
10630
10631	// The ID of a specific version of the extension. The version ID is the value
10632	// at the end of the Amazon Resource Name (ARN) assigned to the extension version
10633	// when it is registered.
10634	//
10635	// If you specify a VersionId, DescribeType returns information about that specific
10636	// extension version. Otherwise, it returns information about the default extension
10637	// version.
10638	VersionId *string `min:"1" type:"string"`
10639}
10640
10641// String returns the string representation
10642func (s DescribeTypeInput) String() string {
10643	return awsutil.Prettify(s)
10644}
10645
10646// GoString returns the string representation
10647func (s DescribeTypeInput) GoString() string {
10648	return s.String()
10649}
10650
10651// Validate inspects the fields of the type to determine if they are valid.
10652func (s *DescribeTypeInput) Validate() error {
10653	invalidParams := request.ErrInvalidParams{Context: "DescribeTypeInput"}
10654	if s.PublicVersionNumber != nil && len(*s.PublicVersionNumber) < 5 {
10655		invalidParams.Add(request.NewErrParamMinLen("PublicVersionNumber", 5))
10656	}
10657	if s.PublisherId != nil && len(*s.PublisherId) < 1 {
10658		invalidParams.Add(request.NewErrParamMinLen("PublisherId", 1))
10659	}
10660	if s.TypeName != nil && len(*s.TypeName) < 10 {
10661		invalidParams.Add(request.NewErrParamMinLen("TypeName", 10))
10662	}
10663	if s.VersionId != nil && len(*s.VersionId) < 1 {
10664		invalidParams.Add(request.NewErrParamMinLen("VersionId", 1))
10665	}
10666
10667	if invalidParams.Len() > 0 {
10668		return invalidParams
10669	}
10670	return nil
10671}
10672
10673// SetArn sets the Arn field's value.
10674func (s *DescribeTypeInput) SetArn(v string) *DescribeTypeInput {
10675	s.Arn = &v
10676	return s
10677}
10678
10679// SetPublicVersionNumber sets the PublicVersionNumber field's value.
10680func (s *DescribeTypeInput) SetPublicVersionNumber(v string) *DescribeTypeInput {
10681	s.PublicVersionNumber = &v
10682	return s
10683}
10684
10685// SetPublisherId sets the PublisherId field's value.
10686func (s *DescribeTypeInput) SetPublisherId(v string) *DescribeTypeInput {
10687	s.PublisherId = &v
10688	return s
10689}
10690
10691// SetType sets the Type field's value.
10692func (s *DescribeTypeInput) SetType(v string) *DescribeTypeInput {
10693	s.Type = &v
10694	return s
10695}
10696
10697// SetTypeName sets the TypeName field's value.
10698func (s *DescribeTypeInput) SetTypeName(v string) *DescribeTypeInput {
10699	s.TypeName = &v
10700	return s
10701}
10702
10703// SetVersionId sets the VersionId field's value.
10704func (s *DescribeTypeInput) SetVersionId(v string) *DescribeTypeInput {
10705	s.VersionId = &v
10706	return s
10707}
10708
10709type DescribeTypeOutput struct {
10710	_ struct{} `type:"structure"`
10711
10712	// The Amazon Resource Name (ARN) of the extension.
10713	Arn *string `type:"string"`
10714
10715	// Whether CloudFormation automatically updates the extension in this account
10716	// and region when a new minor version is published by the extension publisher.
10717	// Major versions released by the publisher must be manually updated. For more
10718	// information, see Activating public extensions for use in your account (AWSCloudFormation/latest/UserGuide/registry-public.html#registry-public-enable)
10719	// in the AWS CloudFormation User Guide.
10720	AutoUpdate *bool `type:"boolean"`
10721
10722	// A JSON string that represent the current configuration data for the extension
10723	// in this account and region.
10724	//
10725	// To set the configuration data for an extension, use SetTypeConfiguration
10726	// (https://docs.aws.amazon.com/AWSCloudFormation/latest/APIReference/API_SetTypeConfiguration.html).
10727	// For more information, see Configuring extensions at the account level (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/registry-register.html#registry-set-configuration)
10728	// in the CloudFormation User Guide.
10729	ConfigurationSchema *string `min:"1" type:"string"`
10730
10731	// The ID of the default version of the extension. The default version is used
10732	// when the extension version is not specified.
10733	//
10734	// This applies only to private extensions you have registered in your account.
10735	// For public extensions, both those provided by Amazon and published by third
10736	// parties, CloudFormation returns null. For more information, see RegisterType
10737	// (https://docs.aws.amazon.com/AWSCloudFormation/latest/APIReference/API_RegisterType.html).
10738	//
10739	// To set the default version of an extension, use SetTypeDefaultVersion .
10740	DefaultVersionId *string `min:"1" type:"string"`
10741
10742	// The deprecation status of the extension version.
10743	//
10744	// Valid values include:
10745	//
10746	//    * LIVE: The extension is activated or registered and can be used in CloudFormation
10747	//    operations, dependent on its provisioning behavior and visibility scope.
10748	//
10749	//    * DEPRECATED: The extension has been deactivated or deregistered and can
10750	//    no longer be used in CloudFormation operations.
10751	//
10752	// For public third-party extensions, CloudFormation returns null.
10753	DeprecatedStatus *string `type:"string" enum:"DeprecatedStatus"`
10754
10755	// The description of the extension.
10756	Description *string `min:"1" type:"string"`
10757
10758	// The URL of a page providing detailed documentation for this extension.
10759	DocumentationUrl *string `type:"string"`
10760
10761	// The Amazon Resource Name (ARN) of the IAM execution role used to register
10762	// the extension. This applies only to private extensions you have registered
10763	// in your account. For more information, see RegisterType (https://docs.aws.amazon.com/AWSCloudFormation/latest/APIReference/API_RegisterType.html).
10764	//
10765	// If the registered extension calls any AWS APIs, you must create an IAM execution
10766	// role (https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles.html) that
10767	// includes the necessary permissions to call those AWS APIs, and provision
10768	// that execution role in your account. CloudFormation then assumes that execution
10769	// role to provide your extension with the appropriate credentials.
10770	ExecutionRoleArn *string `min:"1" type:"string"`
10771
10772	// Whether or not the extension is activated in the account and region.
10773	//
10774	// This only applies to public third-party extensions. For all other extensions,
10775	// CloudFormation returns null.
10776	IsActivated *bool `type:"boolean"`
10777
10778	// Whether the specified extension version is set as the default version.
10779	//
10780	// This applies only to private extensions you have registered in your account,
10781	// and extensions published by Amazon. For public third-party extensions, whether
10782	// or not they are activated in your account, CloudFormation returns null.
10783	IsDefaultVersion *bool `type:"boolean"`
10784
10785	// When the specified extension version was registered. This applies only to:
10786	//
10787	//    * Private extensions you have registered in your account. For more information,
10788	//    see RegisterType (https://docs.aws.amazon.com/AWSCloudFormation/latest/APIReference/API_RegisterType.html).
10789	//
10790	//    * Public extensions you have activated in your account with auto-update
10791	//    specified. For more information, see ActivateType (https://docs.aws.amazon.com/AWSCloudFormation/latest/APIReference/API_ActivateType.html).
10792	LastUpdated *time.Time `type:"timestamp"`
10793
10794	// The latest version of a public extension that is available for use.
10795	//
10796	// This only applies if you specify a public extension, and you do not specify
10797	// a version. For all other requests, CloudFormation returns null.
10798	LatestPublicVersion *string `min:"5" type:"string"`
10799
10800	// Contains logging configuration information for private extensions. This applies
10801	// only to private extensions you have registered in your account. For public
10802	// extensions, both those provided by Amazon and published by third parties,
10803	// CloudFormation returns null. For more information, see RegisterType (https://docs.aws.amazon.com/AWSCloudFormation/latest/APIReference/API_RegisterType.html).
10804	LoggingConfig *LoggingConfig `type:"structure"`
10805
10806	// For public extensions that have been activated for this account and region,
10807	// the Amazon Resource Name (ARN) of the public extension.
10808	OriginalTypeArn *string `type:"string"`
10809
10810	// For public extensions that have been activated for this account and region,
10811	// the type name of the public extension.
10812	//
10813	// If you specified a TypeNameAlias when enabling the extension in this account
10814	// and region, CloudFormation treats that alias as the extension's type name
10815	// within the account and region, not the type name of the public extension.
10816	// 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)
10817	// in the CloudFormation User Guide.
10818	OriginalTypeName *string `min:"10" type:"string"`
10819
10820	// For resource type extensions, the provisioning behavior of the resource type.
10821	// AWS CloudFormation determines the provisioning type during registration,
10822	// based on the types of handlers in the schema handler package submitted.
10823	//
10824	// Valid values include:
10825	//
10826	//    * FULLY_MUTABLE: The resource type includes an update handler to process
10827	//    updates to the type during stack update operations.
10828	//
10829	//    * IMMUTABLE: The resource type does not include an update handler, so
10830	//    the type cannot be updated and must instead be replaced during stack update
10831	//    operations.
10832	//
10833	//    * NON_PROVISIONABLE: The resource type does not include all of the following
10834	//    handlers, and therefore cannot actually be provisioned. create read delete
10835	ProvisioningType *string `type:"string" enum:"ProvisioningType"`
10836
10837	// The version number of a public third-party extension.
10838	//
10839	// This applies only if you specify a public extension you have activated in
10840	// your account, or specify a public extension without specifying a version.
10841	// For all other extensions, CloudFormation returns null.
10842	PublicVersionNumber *string `min:"5" type:"string"`
10843
10844	// The publisher ID of the extension publisher.
10845	//
10846	// This applies only to public third-party extensions. For private registered
10847	// extensions, and extensions provided by Amazon, CloudFormation returns null.
10848	PublisherId *string `min:"1" type:"string"`
10849
10850	// For extensions that are modules, the public third-party extensions that must
10851	// be activated in your account in order for the module itself to be activated.
10852	RequiredActivatedTypes []*RequiredActivatedType `type:"list"`
10853
10854	// The schema that defines the extension.
10855	//
10856	// For more information on extension schemas, see Resource Provider Schema (https://docs.aws.amazon.com/cloudformation-cli/latest/userguide/resource-type-schema.html)
10857	// in the CloudFormation CLI User Guide.
10858	Schema *string `min:"1" type:"string"`
10859
10860	// The URL of the source code for the extension.
10861	SourceUrl *string `type:"string"`
10862
10863	// When the specified private extension version was registered or activated
10864	// in your account.
10865	TimeCreated *time.Time `type:"timestamp"`
10866
10867	// The kind of extension.
10868	Type *string `type:"string" enum:"RegistryType"`
10869
10870	// The name of the extension.
10871	//
10872	// If the extension is a public third-party type you have activated with a type
10873	// name alias, CloudFormation returns the type name alias. For more information,
10874	// see ActivateType (https://docs.aws.amazon.com/AWSCloudFormation/latest/APIReference/API_ActivateType.html).
10875	TypeName *string `min:"10" type:"string"`
10876
10877	// The contract test status of the registered extension version. To return the
10878	// extension test status of a specifc extension version, you must specify VersionId.
10879	//
10880	// This applies only to registered private extension versions. CloudFormation
10881	// does not return this information for public extensions, whether or not they
10882	// are activated in your account.
10883	//
10884	//    * PASSED: The extension has passed all its contract tests. An extension
10885	//    must have a test status of PASSED before it can be published. For more
10886	//    information, see Publishing extensions to make them available for public
10887	//    use (https://docs.aws.amazon.com/cloudformation-cli/latest/userguide/resource-type-publish.html)
10888	//    in the CloudFormation Command Line Interface User Guide.
10889	//
10890	//    * FAILED: The extension has failed one or more contract tests.
10891	//
10892	//    * IN_PROGRESS: Contract tests are currently being performed on the extension.
10893	//
10894	//    * NOT_TESTED: Contract tests have not been performed on the extension.
10895	TypeTestsStatus *string `type:"string" enum:"TypeTestsStatus"`
10896
10897	// The description of the test status. To return the extension test status of
10898	// a specifc extension version, you must specify VersionId.
10899	//
10900	// This applies only to registered private extension versions. CloudFormation
10901	// does not return this information for public extensions, whether or not they
10902	// are activated in your account.
10903	TypeTestsStatusDescription *string `min:"1" type:"string"`
10904
10905	// The scope at which the extension is visible and usable in CloudFormation
10906	// operations.
10907	//
10908	// Valid values include:
10909	//
10910	//    * PRIVATE: The extension is only visible and usable within the account
10911	//    in which it is registered. AWS CloudFormation marks any extensions you
10912	//    register as PRIVATE.
10913	//
10914	//    * PUBLIC: The extension is publically visible and usable within any Amazon
10915	//    account.
10916	Visibility *string `type:"string" enum:"Visibility"`
10917}
10918
10919// String returns the string representation
10920func (s DescribeTypeOutput) String() string {
10921	return awsutil.Prettify(s)
10922}
10923
10924// GoString returns the string representation
10925func (s DescribeTypeOutput) GoString() string {
10926	return s.String()
10927}
10928
10929// SetArn sets the Arn field's value.
10930func (s *DescribeTypeOutput) SetArn(v string) *DescribeTypeOutput {
10931	s.Arn = &v
10932	return s
10933}
10934
10935// SetAutoUpdate sets the AutoUpdate field's value.
10936func (s *DescribeTypeOutput) SetAutoUpdate(v bool) *DescribeTypeOutput {
10937	s.AutoUpdate = &v
10938	return s
10939}
10940
10941// SetConfigurationSchema sets the ConfigurationSchema field's value.
10942func (s *DescribeTypeOutput) SetConfigurationSchema(v string) *DescribeTypeOutput {
10943	s.ConfigurationSchema = &v
10944	return s
10945}
10946
10947// SetDefaultVersionId sets the DefaultVersionId field's value.
10948func (s *DescribeTypeOutput) SetDefaultVersionId(v string) *DescribeTypeOutput {
10949	s.DefaultVersionId = &v
10950	return s
10951}
10952
10953// SetDeprecatedStatus sets the DeprecatedStatus field's value.
10954func (s *DescribeTypeOutput) SetDeprecatedStatus(v string) *DescribeTypeOutput {
10955	s.DeprecatedStatus = &v
10956	return s
10957}
10958
10959// SetDescription sets the Description field's value.
10960func (s *DescribeTypeOutput) SetDescription(v string) *DescribeTypeOutput {
10961	s.Description = &v
10962	return s
10963}
10964
10965// SetDocumentationUrl sets the DocumentationUrl field's value.
10966func (s *DescribeTypeOutput) SetDocumentationUrl(v string) *DescribeTypeOutput {
10967	s.DocumentationUrl = &v
10968	return s
10969}
10970
10971// SetExecutionRoleArn sets the ExecutionRoleArn field's value.
10972func (s *DescribeTypeOutput) SetExecutionRoleArn(v string) *DescribeTypeOutput {
10973	s.ExecutionRoleArn = &v
10974	return s
10975}
10976
10977// SetIsActivated sets the IsActivated field's value.
10978func (s *DescribeTypeOutput) SetIsActivated(v bool) *DescribeTypeOutput {
10979	s.IsActivated = &v
10980	return s
10981}
10982
10983// SetIsDefaultVersion sets the IsDefaultVersion field's value.
10984func (s *DescribeTypeOutput) SetIsDefaultVersion(v bool) *DescribeTypeOutput {
10985	s.IsDefaultVersion = &v
10986	return s
10987}
10988
10989// SetLastUpdated sets the LastUpdated field's value.
10990func (s *DescribeTypeOutput) SetLastUpdated(v time.Time) *DescribeTypeOutput {
10991	s.LastUpdated = &v
10992	return s
10993}
10994
10995// SetLatestPublicVersion sets the LatestPublicVersion field's value.
10996func (s *DescribeTypeOutput) SetLatestPublicVersion(v string) *DescribeTypeOutput {
10997	s.LatestPublicVersion = &v
10998	return s
10999}
11000
11001// SetLoggingConfig sets the LoggingConfig field's value.
11002func (s *DescribeTypeOutput) SetLoggingConfig(v *LoggingConfig) *DescribeTypeOutput {
11003	s.LoggingConfig = v
11004	return s
11005}
11006
11007// SetOriginalTypeArn sets the OriginalTypeArn field's value.
11008func (s *DescribeTypeOutput) SetOriginalTypeArn(v string) *DescribeTypeOutput {
11009	s.OriginalTypeArn = &v
11010	return s
11011}
11012
11013// SetOriginalTypeName sets the OriginalTypeName field's value.
11014func (s *DescribeTypeOutput) SetOriginalTypeName(v string) *DescribeTypeOutput {
11015	s.OriginalTypeName = &v
11016	return s
11017}
11018
11019// SetProvisioningType sets the ProvisioningType field's value.
11020func (s *DescribeTypeOutput) SetProvisioningType(v string) *DescribeTypeOutput {
11021	s.ProvisioningType = &v
11022	return s
11023}
11024
11025// SetPublicVersionNumber sets the PublicVersionNumber field's value.
11026func (s *DescribeTypeOutput) SetPublicVersionNumber(v string) *DescribeTypeOutput {
11027	s.PublicVersionNumber = &v
11028	return s
11029}
11030
11031// SetPublisherId sets the PublisherId field's value.
11032func (s *DescribeTypeOutput) SetPublisherId(v string) *DescribeTypeOutput {
11033	s.PublisherId = &v
11034	return s
11035}
11036
11037// SetRequiredActivatedTypes sets the RequiredActivatedTypes field's value.
11038func (s *DescribeTypeOutput) SetRequiredActivatedTypes(v []*RequiredActivatedType) *DescribeTypeOutput {
11039	s.RequiredActivatedTypes = v
11040	return s
11041}
11042
11043// SetSchema sets the Schema field's value.
11044func (s *DescribeTypeOutput) SetSchema(v string) *DescribeTypeOutput {
11045	s.Schema = &v
11046	return s
11047}
11048
11049// SetSourceUrl sets the SourceUrl field's value.
11050func (s *DescribeTypeOutput) SetSourceUrl(v string) *DescribeTypeOutput {
11051	s.SourceUrl = &v
11052	return s
11053}
11054
11055// SetTimeCreated sets the TimeCreated field's value.
11056func (s *DescribeTypeOutput) SetTimeCreated(v time.Time) *DescribeTypeOutput {
11057	s.TimeCreated = &v
11058	return s
11059}
11060
11061// SetType sets the Type field's value.
11062func (s *DescribeTypeOutput) SetType(v string) *DescribeTypeOutput {
11063	s.Type = &v
11064	return s
11065}
11066
11067// SetTypeName sets the TypeName field's value.
11068func (s *DescribeTypeOutput) SetTypeName(v string) *DescribeTypeOutput {
11069	s.TypeName = &v
11070	return s
11071}
11072
11073// SetTypeTestsStatus sets the TypeTestsStatus field's value.
11074func (s *DescribeTypeOutput) SetTypeTestsStatus(v string) *DescribeTypeOutput {
11075	s.TypeTestsStatus = &v
11076	return s
11077}
11078
11079// SetTypeTestsStatusDescription sets the TypeTestsStatusDescription field's value.
11080func (s *DescribeTypeOutput) SetTypeTestsStatusDescription(v string) *DescribeTypeOutput {
11081	s.TypeTestsStatusDescription = &v
11082	return s
11083}
11084
11085// SetVisibility sets the Visibility field's value.
11086func (s *DescribeTypeOutput) SetVisibility(v string) *DescribeTypeOutput {
11087	s.Visibility = &v
11088	return s
11089}
11090
11091type DescribeTypeRegistrationInput struct {
11092	_ struct{} `type:"structure"`
11093
11094	// The identifier for this registration request.
11095	//
11096	// This registration token is generated by CloudFormation when you initiate
11097	// a registration request using RegisterType .
11098	//
11099	// RegistrationToken is a required field
11100	RegistrationToken *string `min:"1" type:"string" required:"true"`
11101}
11102
11103// String returns the string representation
11104func (s DescribeTypeRegistrationInput) String() string {
11105	return awsutil.Prettify(s)
11106}
11107
11108// GoString returns the string representation
11109func (s DescribeTypeRegistrationInput) GoString() string {
11110	return s.String()
11111}
11112
11113// Validate inspects the fields of the type to determine if they are valid.
11114func (s *DescribeTypeRegistrationInput) Validate() error {
11115	invalidParams := request.ErrInvalidParams{Context: "DescribeTypeRegistrationInput"}
11116	if s.RegistrationToken == nil {
11117		invalidParams.Add(request.NewErrParamRequired("RegistrationToken"))
11118	}
11119	if s.RegistrationToken != nil && len(*s.RegistrationToken) < 1 {
11120		invalidParams.Add(request.NewErrParamMinLen("RegistrationToken", 1))
11121	}
11122
11123	if invalidParams.Len() > 0 {
11124		return invalidParams
11125	}
11126	return nil
11127}
11128
11129// SetRegistrationToken sets the RegistrationToken field's value.
11130func (s *DescribeTypeRegistrationInput) SetRegistrationToken(v string) *DescribeTypeRegistrationInput {
11131	s.RegistrationToken = &v
11132	return s
11133}
11134
11135type DescribeTypeRegistrationOutput struct {
11136	_ struct{} `type:"structure"`
11137
11138	// The description of the extension registration request.
11139	Description *string `min:"1" type:"string"`
11140
11141	// The current status of the extension registration request.
11142	ProgressStatus *string `type:"string" enum:"RegistrationStatus"`
11143
11144	// The Amazon Resource Name (ARN) of the extension being registered.
11145	//
11146	// For registration requests with a ProgressStatus of other than COMPLETE, this
11147	// will be null.
11148	TypeArn *string `type:"string"`
11149
11150	// The Amazon Resource Name (ARN) of this specific version of the extension
11151	// being registered.
11152	//
11153	// For registration requests with a ProgressStatus of other than COMPLETE, this
11154	// will be null.
11155	TypeVersionArn *string `type:"string"`
11156}
11157
11158// String returns the string representation
11159func (s DescribeTypeRegistrationOutput) String() string {
11160	return awsutil.Prettify(s)
11161}
11162
11163// GoString returns the string representation
11164func (s DescribeTypeRegistrationOutput) GoString() string {
11165	return s.String()
11166}
11167
11168// SetDescription sets the Description field's value.
11169func (s *DescribeTypeRegistrationOutput) SetDescription(v string) *DescribeTypeRegistrationOutput {
11170	s.Description = &v
11171	return s
11172}
11173
11174// SetProgressStatus sets the ProgressStatus field's value.
11175func (s *DescribeTypeRegistrationOutput) SetProgressStatus(v string) *DescribeTypeRegistrationOutput {
11176	s.ProgressStatus = &v
11177	return s
11178}
11179
11180// SetTypeArn sets the TypeArn field's value.
11181func (s *DescribeTypeRegistrationOutput) SetTypeArn(v string) *DescribeTypeRegistrationOutput {
11182	s.TypeArn = &v
11183	return s
11184}
11185
11186// SetTypeVersionArn sets the TypeVersionArn field's value.
11187func (s *DescribeTypeRegistrationOutput) SetTypeVersionArn(v string) *DescribeTypeRegistrationOutput {
11188	s.TypeVersionArn = &v
11189	return s
11190}
11191
11192type DetectStackDriftInput struct {
11193	_ struct{} `type:"structure"`
11194
11195	// The logical names of any resources you want to use as filters.
11196	LogicalResourceIds []*string `min:"1" type:"list"`
11197
11198	// The name of the stack for which you want to detect drift.
11199	//
11200	// StackName is a required field
11201	StackName *string `min:"1" type:"string" required:"true"`
11202}
11203
11204// String returns the string representation
11205func (s DetectStackDriftInput) String() string {
11206	return awsutil.Prettify(s)
11207}
11208
11209// GoString returns the string representation
11210func (s DetectStackDriftInput) GoString() string {
11211	return s.String()
11212}
11213
11214// Validate inspects the fields of the type to determine if they are valid.
11215func (s *DetectStackDriftInput) Validate() error {
11216	invalidParams := request.ErrInvalidParams{Context: "DetectStackDriftInput"}
11217	if s.LogicalResourceIds != nil && len(s.LogicalResourceIds) < 1 {
11218		invalidParams.Add(request.NewErrParamMinLen("LogicalResourceIds", 1))
11219	}
11220	if s.StackName == nil {
11221		invalidParams.Add(request.NewErrParamRequired("StackName"))
11222	}
11223	if s.StackName != nil && len(*s.StackName) < 1 {
11224		invalidParams.Add(request.NewErrParamMinLen("StackName", 1))
11225	}
11226
11227	if invalidParams.Len() > 0 {
11228		return invalidParams
11229	}
11230	return nil
11231}
11232
11233// SetLogicalResourceIds sets the LogicalResourceIds field's value.
11234func (s *DetectStackDriftInput) SetLogicalResourceIds(v []*string) *DetectStackDriftInput {
11235	s.LogicalResourceIds = v
11236	return s
11237}
11238
11239// SetStackName sets the StackName field's value.
11240func (s *DetectStackDriftInput) SetStackName(v string) *DetectStackDriftInput {
11241	s.StackName = &v
11242	return s
11243}
11244
11245type DetectStackDriftOutput struct {
11246	_ struct{} `type:"structure"`
11247
11248	// The ID of the drift detection results of this operation.
11249	//
11250	// AWS CloudFormation generates new results, with a new drift detection ID,
11251	// each time this operation is run. However, the number of drift results AWS
11252	// CloudFormation retains for any given stack, and for how long, may vary.
11253	//
11254	// StackDriftDetectionId is a required field
11255	StackDriftDetectionId *string `min:"1" type:"string" required:"true"`
11256}
11257
11258// String returns the string representation
11259func (s DetectStackDriftOutput) String() string {
11260	return awsutil.Prettify(s)
11261}
11262
11263// GoString returns the string representation
11264func (s DetectStackDriftOutput) GoString() string {
11265	return s.String()
11266}
11267
11268// SetStackDriftDetectionId sets the StackDriftDetectionId field's value.
11269func (s *DetectStackDriftOutput) SetStackDriftDetectionId(v string) *DetectStackDriftOutput {
11270	s.StackDriftDetectionId = &v
11271	return s
11272}
11273
11274type DetectStackResourceDriftInput struct {
11275	_ struct{} `type:"structure"`
11276
11277	// The logical name of the resource for which to return drift information.
11278	//
11279	// LogicalResourceId is a required field
11280	LogicalResourceId *string `type:"string" required:"true"`
11281
11282	// The name of the stack to which the resource belongs.
11283	//
11284	// StackName is a required field
11285	StackName *string `min:"1" type:"string" required:"true"`
11286}
11287
11288// String returns the string representation
11289func (s DetectStackResourceDriftInput) String() string {
11290	return awsutil.Prettify(s)
11291}
11292
11293// GoString returns the string representation
11294func (s DetectStackResourceDriftInput) GoString() string {
11295	return s.String()
11296}
11297
11298// Validate inspects the fields of the type to determine if they are valid.
11299func (s *DetectStackResourceDriftInput) Validate() error {
11300	invalidParams := request.ErrInvalidParams{Context: "DetectStackResourceDriftInput"}
11301	if s.LogicalResourceId == nil {
11302		invalidParams.Add(request.NewErrParamRequired("LogicalResourceId"))
11303	}
11304	if s.StackName == nil {
11305		invalidParams.Add(request.NewErrParamRequired("StackName"))
11306	}
11307	if s.StackName != nil && len(*s.StackName) < 1 {
11308		invalidParams.Add(request.NewErrParamMinLen("StackName", 1))
11309	}
11310
11311	if invalidParams.Len() > 0 {
11312		return invalidParams
11313	}
11314	return nil
11315}
11316
11317// SetLogicalResourceId sets the LogicalResourceId field's value.
11318func (s *DetectStackResourceDriftInput) SetLogicalResourceId(v string) *DetectStackResourceDriftInput {
11319	s.LogicalResourceId = &v
11320	return s
11321}
11322
11323// SetStackName sets the StackName field's value.
11324func (s *DetectStackResourceDriftInput) SetStackName(v string) *DetectStackResourceDriftInput {
11325	s.StackName = &v
11326	return s
11327}
11328
11329type DetectStackResourceDriftOutput struct {
11330	_ struct{} `type:"structure"`
11331
11332	// Information about whether the resource's actual configuration has drifted
11333	// from its expected template configuration, including actual and expected property
11334	// values and any differences detected.
11335	//
11336	// StackResourceDrift is a required field
11337	StackResourceDrift *StackResourceDrift `type:"structure" required:"true"`
11338}
11339
11340// String returns the string representation
11341func (s DetectStackResourceDriftOutput) String() string {
11342	return awsutil.Prettify(s)
11343}
11344
11345// GoString returns the string representation
11346func (s DetectStackResourceDriftOutput) GoString() string {
11347	return s.String()
11348}
11349
11350// SetStackResourceDrift sets the StackResourceDrift field's value.
11351func (s *DetectStackResourceDriftOutput) SetStackResourceDrift(v *StackResourceDrift) *DetectStackResourceDriftOutput {
11352	s.StackResourceDrift = v
11353	return s
11354}
11355
11356type DetectStackSetDriftInput struct {
11357	_ struct{} `type:"structure"`
11358
11359	// [Service-managed permissions] Specifies whether you are acting as an account
11360	// administrator in the organization's management account or as a delegated
11361	// administrator in a member account.
11362	//
11363	// By default, SELF is specified. Use SELF for stack sets with self-managed
11364	// permissions.
11365	//
11366	//    * If you are signed in to the management account, specify SELF.
11367	//
11368	//    * If you are signed in to a delegated administrator account, specify DELEGATED_ADMIN.
11369	//    Your AWS account must be registered as a delegated administrator in the
11370	//    management account. For more information, see Register a delegated administrator
11371	//    (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/stacksets-orgs-delegated-admin.html)
11372	//    in the AWS CloudFormation User Guide.
11373	CallAs *string `type:"string" enum:"CallAs"`
11374
11375	// The ID of the stack set operation.
11376	OperationId *string `min:"1" type:"string" idempotencyToken:"true"`
11377
11378	// The user-specified preferences for how AWS CloudFormation performs a stack
11379	// set operation.
11380	//
11381	// For more information on maximum concurrent accounts and failure tolerance,
11382	// see Stack set operation options (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/stacksets-concepts.html#stackset-ops-options).
11383	OperationPreferences *StackSetOperationPreferences `type:"structure"`
11384
11385	// The name of the stack set on which to perform the drift detection operation.
11386	//
11387	// StackSetName is a required field
11388	StackSetName *string `type:"string" required:"true"`
11389}
11390
11391// String returns the string representation
11392func (s DetectStackSetDriftInput) String() string {
11393	return awsutil.Prettify(s)
11394}
11395
11396// GoString returns the string representation
11397func (s DetectStackSetDriftInput) GoString() string {
11398	return s.String()
11399}
11400
11401// Validate inspects the fields of the type to determine if they are valid.
11402func (s *DetectStackSetDriftInput) Validate() error {
11403	invalidParams := request.ErrInvalidParams{Context: "DetectStackSetDriftInput"}
11404	if s.OperationId != nil && len(*s.OperationId) < 1 {
11405		invalidParams.Add(request.NewErrParamMinLen("OperationId", 1))
11406	}
11407	if s.StackSetName == nil {
11408		invalidParams.Add(request.NewErrParamRequired("StackSetName"))
11409	}
11410	if s.OperationPreferences != nil {
11411		if err := s.OperationPreferences.Validate(); err != nil {
11412			invalidParams.AddNested("OperationPreferences", err.(request.ErrInvalidParams))
11413		}
11414	}
11415
11416	if invalidParams.Len() > 0 {
11417		return invalidParams
11418	}
11419	return nil
11420}
11421
11422// SetCallAs sets the CallAs field's value.
11423func (s *DetectStackSetDriftInput) SetCallAs(v string) *DetectStackSetDriftInput {
11424	s.CallAs = &v
11425	return s
11426}
11427
11428// SetOperationId sets the OperationId field's value.
11429func (s *DetectStackSetDriftInput) SetOperationId(v string) *DetectStackSetDriftInput {
11430	s.OperationId = &v
11431	return s
11432}
11433
11434// SetOperationPreferences sets the OperationPreferences field's value.
11435func (s *DetectStackSetDriftInput) SetOperationPreferences(v *StackSetOperationPreferences) *DetectStackSetDriftInput {
11436	s.OperationPreferences = v
11437	return s
11438}
11439
11440// SetStackSetName sets the StackSetName field's value.
11441func (s *DetectStackSetDriftInput) SetStackSetName(v string) *DetectStackSetDriftInput {
11442	s.StackSetName = &v
11443	return s
11444}
11445
11446type DetectStackSetDriftOutput struct {
11447	_ struct{} `type:"structure"`
11448
11449	// The ID of the drift detection stack set operation.
11450	//
11451	// you can use this operation id with DescribeStackSetOperation to monitor the
11452	// progress of the drift detection operation.
11453	OperationId *string `min:"1" type:"string"`
11454}
11455
11456// String returns the string representation
11457func (s DetectStackSetDriftOutput) String() string {
11458	return awsutil.Prettify(s)
11459}
11460
11461// GoString returns the string representation
11462func (s DetectStackSetDriftOutput) GoString() string {
11463	return s.String()
11464}
11465
11466// SetOperationId sets the OperationId field's value.
11467func (s *DetectStackSetDriftOutput) SetOperationId(v string) *DetectStackSetDriftOutput {
11468	s.OperationId = &v
11469	return s
11470}
11471
11472// The input for an EstimateTemplateCost action.
11473type EstimateTemplateCostInput struct {
11474	_ struct{} `type:"structure"`
11475
11476	// A list of Parameter structures that specify input parameters.
11477	Parameters []*Parameter `type:"list"`
11478
11479	// Structure containing the template body with a minimum length of 1 byte and
11480	// a maximum length of 51,200 bytes. (For more information, go to Template Anatomy
11481	// (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/template-anatomy.html)
11482	// in the AWS CloudFormation User Guide.)
11483	//
11484	// Conditional: You must pass TemplateBody or TemplateURL. If both are passed,
11485	// only TemplateBody is used.
11486	TemplateBody *string `min:"1" type:"string"`
11487
11488	// Location of file containing the template body. The URL must point to a template
11489	// that is located in an Amazon S3 bucket or a Systems Manager document. For
11490	// more information, go to Template Anatomy (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/template-anatomy.html)
11491	// in the AWS CloudFormation User Guide.
11492	//
11493	// Conditional: You must pass TemplateURL or TemplateBody. If both are passed,
11494	// only TemplateBody is used.
11495	TemplateURL *string `min:"1" type:"string"`
11496}
11497
11498// String returns the string representation
11499func (s EstimateTemplateCostInput) String() string {
11500	return awsutil.Prettify(s)
11501}
11502
11503// GoString returns the string representation
11504func (s EstimateTemplateCostInput) GoString() string {
11505	return s.String()
11506}
11507
11508// Validate inspects the fields of the type to determine if they are valid.
11509func (s *EstimateTemplateCostInput) Validate() error {
11510	invalidParams := request.ErrInvalidParams{Context: "EstimateTemplateCostInput"}
11511	if s.TemplateBody != nil && len(*s.TemplateBody) < 1 {
11512		invalidParams.Add(request.NewErrParamMinLen("TemplateBody", 1))
11513	}
11514	if s.TemplateURL != nil && len(*s.TemplateURL) < 1 {
11515		invalidParams.Add(request.NewErrParamMinLen("TemplateURL", 1))
11516	}
11517
11518	if invalidParams.Len() > 0 {
11519		return invalidParams
11520	}
11521	return nil
11522}
11523
11524// SetParameters sets the Parameters field's value.
11525func (s *EstimateTemplateCostInput) SetParameters(v []*Parameter) *EstimateTemplateCostInput {
11526	s.Parameters = v
11527	return s
11528}
11529
11530// SetTemplateBody sets the TemplateBody field's value.
11531func (s *EstimateTemplateCostInput) SetTemplateBody(v string) *EstimateTemplateCostInput {
11532	s.TemplateBody = &v
11533	return s
11534}
11535
11536// SetTemplateURL sets the TemplateURL field's value.
11537func (s *EstimateTemplateCostInput) SetTemplateURL(v string) *EstimateTemplateCostInput {
11538	s.TemplateURL = &v
11539	return s
11540}
11541
11542// The output for a EstimateTemplateCost action.
11543type EstimateTemplateCostOutput struct {
11544	_ struct{} `type:"structure"`
11545
11546	// An AWS Simple Monthly Calculator URL with a query string that describes the
11547	// resources required to run the template.
11548	Url *string `type:"string"`
11549}
11550
11551// String returns the string representation
11552func (s EstimateTemplateCostOutput) String() string {
11553	return awsutil.Prettify(s)
11554}
11555
11556// GoString returns the string representation
11557func (s EstimateTemplateCostOutput) GoString() string {
11558	return s.String()
11559}
11560
11561// SetUrl sets the Url field's value.
11562func (s *EstimateTemplateCostOutput) SetUrl(v string) *EstimateTemplateCostOutput {
11563	s.Url = &v
11564	return s
11565}
11566
11567// The input for the ExecuteChangeSet action.
11568type ExecuteChangeSetInput struct {
11569	_ struct{} `type:"structure"`
11570
11571	// The name or ARN of the change set that you want use to update the specified
11572	// stack.
11573	//
11574	// ChangeSetName is a required field
11575	ChangeSetName *string `min:"1" type:"string" required:"true"`
11576
11577	// A unique identifier for this ExecuteChangeSet request. Specify this token
11578	// if you plan to retry requests so that AWS CloudFormation knows that you're
11579	// not attempting to execute a change set to update a stack with the same name.
11580	// You might retry ExecuteChangeSet requests to ensure that AWS CloudFormation
11581	// successfully received them.
11582	ClientRequestToken *string `min:"1" type:"string"`
11583
11584	// If you specified the name of a change set, specify the stack name or ID (ARN)
11585	// that is associated with the change set you want to execute.
11586	StackName *string `min:"1" type:"string"`
11587}
11588
11589// String returns the string representation
11590func (s ExecuteChangeSetInput) String() string {
11591	return awsutil.Prettify(s)
11592}
11593
11594// GoString returns the string representation
11595func (s ExecuteChangeSetInput) GoString() string {
11596	return s.String()
11597}
11598
11599// Validate inspects the fields of the type to determine if they are valid.
11600func (s *ExecuteChangeSetInput) Validate() error {
11601	invalidParams := request.ErrInvalidParams{Context: "ExecuteChangeSetInput"}
11602	if s.ChangeSetName == nil {
11603		invalidParams.Add(request.NewErrParamRequired("ChangeSetName"))
11604	}
11605	if s.ChangeSetName != nil && len(*s.ChangeSetName) < 1 {
11606		invalidParams.Add(request.NewErrParamMinLen("ChangeSetName", 1))
11607	}
11608	if s.ClientRequestToken != nil && len(*s.ClientRequestToken) < 1 {
11609		invalidParams.Add(request.NewErrParamMinLen("ClientRequestToken", 1))
11610	}
11611	if s.StackName != nil && len(*s.StackName) < 1 {
11612		invalidParams.Add(request.NewErrParamMinLen("StackName", 1))
11613	}
11614
11615	if invalidParams.Len() > 0 {
11616		return invalidParams
11617	}
11618	return nil
11619}
11620
11621// SetChangeSetName sets the ChangeSetName field's value.
11622func (s *ExecuteChangeSetInput) SetChangeSetName(v string) *ExecuteChangeSetInput {
11623	s.ChangeSetName = &v
11624	return s
11625}
11626
11627// SetClientRequestToken sets the ClientRequestToken field's value.
11628func (s *ExecuteChangeSetInput) SetClientRequestToken(v string) *ExecuteChangeSetInput {
11629	s.ClientRequestToken = &v
11630	return s
11631}
11632
11633// SetStackName sets the StackName field's value.
11634func (s *ExecuteChangeSetInput) SetStackName(v string) *ExecuteChangeSetInput {
11635	s.StackName = &v
11636	return s
11637}
11638
11639// The output for the ExecuteChangeSet action.
11640type ExecuteChangeSetOutput struct {
11641	_ struct{} `type:"structure"`
11642}
11643
11644// String returns the string representation
11645func (s ExecuteChangeSetOutput) String() string {
11646	return awsutil.Prettify(s)
11647}
11648
11649// GoString returns the string representation
11650func (s ExecuteChangeSetOutput) GoString() string {
11651	return s.String()
11652}
11653
11654// The Export structure describes the exported output values for a stack.
11655type Export struct {
11656	_ struct{} `type:"structure"`
11657
11658	// The stack that contains the exported output name and value.
11659	ExportingStackId *string `type:"string"`
11660
11661	// The name of exported output value. Use this name and the Fn::ImportValue
11662	// function to import the associated value into other stacks. The name is defined
11663	// in the Export field in the associated stack's Outputs section.
11664	Name *string `type:"string"`
11665
11666	// The value of the exported output, such as a resource physical ID. This value
11667	// is defined in the Export field in the associated stack's Outputs section.
11668	Value *string `type:"string"`
11669}
11670
11671// String returns the string representation
11672func (s Export) String() string {
11673	return awsutil.Prettify(s)
11674}
11675
11676// GoString returns the string representation
11677func (s Export) GoString() string {
11678	return s.String()
11679}
11680
11681// SetExportingStackId sets the ExportingStackId field's value.
11682func (s *Export) SetExportingStackId(v string) *Export {
11683	s.ExportingStackId = &v
11684	return s
11685}
11686
11687// SetName sets the Name field's value.
11688func (s *Export) SetName(v string) *Export {
11689	s.Name = &v
11690	return s
11691}
11692
11693// SetValue sets the Value field's value.
11694func (s *Export) SetValue(v string) *Export {
11695	s.Value = &v
11696	return s
11697}
11698
11699// The input for the GetStackPolicy action.
11700type GetStackPolicyInput struct {
11701	_ struct{} `type:"structure"`
11702
11703	// The name or unique stack ID that is associated with the stack whose policy
11704	// you want to get.
11705	//
11706	// StackName is a required field
11707	StackName *string `type:"string" required:"true"`
11708}
11709
11710// String returns the string representation
11711func (s GetStackPolicyInput) String() string {
11712	return awsutil.Prettify(s)
11713}
11714
11715// GoString returns the string representation
11716func (s GetStackPolicyInput) GoString() string {
11717	return s.String()
11718}
11719
11720// Validate inspects the fields of the type to determine if they are valid.
11721func (s *GetStackPolicyInput) Validate() error {
11722	invalidParams := request.ErrInvalidParams{Context: "GetStackPolicyInput"}
11723	if s.StackName == nil {
11724		invalidParams.Add(request.NewErrParamRequired("StackName"))
11725	}
11726
11727	if invalidParams.Len() > 0 {
11728		return invalidParams
11729	}
11730	return nil
11731}
11732
11733// SetStackName sets the StackName field's value.
11734func (s *GetStackPolicyInput) SetStackName(v string) *GetStackPolicyInput {
11735	s.StackName = &v
11736	return s
11737}
11738
11739// The output for the GetStackPolicy action.
11740type GetStackPolicyOutput struct {
11741	_ struct{} `type:"structure"`
11742
11743	// Structure containing the stack policy body. (For more information, go to
11744	// Prevent Updates to Stack Resources (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/protect-stack-resources.html)
11745	// in the AWS CloudFormation User Guide.)
11746	StackPolicyBody *string `min:"1" type:"string"`
11747}
11748
11749// String returns the string representation
11750func (s GetStackPolicyOutput) String() string {
11751	return awsutil.Prettify(s)
11752}
11753
11754// GoString returns the string representation
11755func (s GetStackPolicyOutput) GoString() string {
11756	return s.String()
11757}
11758
11759// SetStackPolicyBody sets the StackPolicyBody field's value.
11760func (s *GetStackPolicyOutput) SetStackPolicyBody(v string) *GetStackPolicyOutput {
11761	s.StackPolicyBody = &v
11762	return s
11763}
11764
11765// The input for a GetTemplate action.
11766type GetTemplateInput struct {
11767	_ struct{} `type:"structure"`
11768
11769	// The name or Amazon Resource Name (ARN) of a change set for which AWS CloudFormation
11770	// returns the associated template. If you specify a name, you must also specify
11771	// the StackName.
11772	ChangeSetName *string `min:"1" type:"string"`
11773
11774	// The name or the unique stack ID that is associated with the stack, which
11775	// are not always interchangeable:
11776	//
11777	//    * Running stacks: You can specify either the stack's name or its unique
11778	//    stack ID.
11779	//
11780	//    * Deleted stacks: You must specify the unique stack ID.
11781	//
11782	// Default: There is no default value.
11783	StackName *string `type:"string"`
11784
11785	// For templates that include transforms, the stage of the template that AWS
11786	// CloudFormation returns. To get the user-submitted template, specify Original.
11787	// To get the template after AWS CloudFormation has processed all transforms,
11788	// specify Processed.
11789	//
11790	// If the template doesn't include transforms, Original and Processed return
11791	// the same template. By default, AWS CloudFormation specifies Processed.
11792	TemplateStage *string `type:"string" enum:"TemplateStage"`
11793}
11794
11795// String returns the string representation
11796func (s GetTemplateInput) String() string {
11797	return awsutil.Prettify(s)
11798}
11799
11800// GoString returns the string representation
11801func (s GetTemplateInput) GoString() string {
11802	return s.String()
11803}
11804
11805// Validate inspects the fields of the type to determine if they are valid.
11806func (s *GetTemplateInput) Validate() error {
11807	invalidParams := request.ErrInvalidParams{Context: "GetTemplateInput"}
11808	if s.ChangeSetName != nil && len(*s.ChangeSetName) < 1 {
11809		invalidParams.Add(request.NewErrParamMinLen("ChangeSetName", 1))
11810	}
11811
11812	if invalidParams.Len() > 0 {
11813		return invalidParams
11814	}
11815	return nil
11816}
11817
11818// SetChangeSetName sets the ChangeSetName field's value.
11819func (s *GetTemplateInput) SetChangeSetName(v string) *GetTemplateInput {
11820	s.ChangeSetName = &v
11821	return s
11822}
11823
11824// SetStackName sets the StackName field's value.
11825func (s *GetTemplateInput) SetStackName(v string) *GetTemplateInput {
11826	s.StackName = &v
11827	return s
11828}
11829
11830// SetTemplateStage sets the TemplateStage field's value.
11831func (s *GetTemplateInput) SetTemplateStage(v string) *GetTemplateInput {
11832	s.TemplateStage = &v
11833	return s
11834}
11835
11836// The output for GetTemplate action.
11837type GetTemplateOutput struct {
11838	_ struct{} `type:"structure"`
11839
11840	// The stage of the template that you can retrieve. For stacks, the Original
11841	// and Processed templates are always available. For change sets, the Original
11842	// template is always available. After AWS CloudFormation finishes creating
11843	// the change set, the Processed template becomes available.
11844	StagesAvailable []*string `type:"list"`
11845
11846	// Structure containing the template body. (For more information, go to Template
11847	// Anatomy (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/template-anatomy.html)
11848	// in the AWS CloudFormation User Guide.)
11849	//
11850	// AWS CloudFormation returns the same template that was used when the stack
11851	// was created.
11852	TemplateBody *string `min:"1" type:"string"`
11853}
11854
11855// String returns the string representation
11856func (s GetTemplateOutput) String() string {
11857	return awsutil.Prettify(s)
11858}
11859
11860// GoString returns the string representation
11861func (s GetTemplateOutput) GoString() string {
11862	return s.String()
11863}
11864
11865// SetStagesAvailable sets the StagesAvailable field's value.
11866func (s *GetTemplateOutput) SetStagesAvailable(v []*string) *GetTemplateOutput {
11867	s.StagesAvailable = v
11868	return s
11869}
11870
11871// SetTemplateBody sets the TemplateBody field's value.
11872func (s *GetTemplateOutput) SetTemplateBody(v string) *GetTemplateOutput {
11873	s.TemplateBody = &v
11874	return s
11875}
11876
11877// The input for the GetTemplateSummary action.
11878type GetTemplateSummaryInput struct {
11879	_ struct{} `type:"structure"`
11880
11881	// [Service-managed permissions] Specifies whether you are acting as an account
11882	// administrator in the organization's management account or as a delegated
11883	// administrator in a member account.
11884	//
11885	// By default, SELF is specified. Use SELF for stack sets with self-managed
11886	// permissions.
11887	//
11888	//    * If you are signed in to the management account, specify SELF.
11889	//
11890	//    * If you are signed in to a delegated administrator account, specify DELEGATED_ADMIN.
11891	//    Your AWS account must be registered as a delegated administrator in the
11892	//    management account. For more information, see Register a delegated administrator
11893	//    (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/stacksets-orgs-delegated-admin.html)
11894	//    in the AWS CloudFormation User Guide.
11895	CallAs *string `type:"string" enum:"CallAs"`
11896
11897	// The name or the stack ID that is associated with the stack, which are not
11898	// always interchangeable. For running stacks, you can specify either the stack's
11899	// name or its unique stack ID. For deleted stack, you must specify the unique
11900	// stack ID.
11901	//
11902	// Conditional: You must specify only one of the following parameters: StackName,
11903	// StackSetName, TemplateBody, or TemplateURL.
11904	StackName *string `min:"1" type:"string"`
11905
11906	// The name or unique ID of the stack set from which the stack was created.
11907	//
11908	// Conditional: You must specify only one of the following parameters: StackName,
11909	// StackSetName, TemplateBody, or TemplateURL.
11910	StackSetName *string `type:"string"`
11911
11912	// Structure containing the template body with a minimum length of 1 byte and
11913	// a maximum length of 51,200 bytes. For more information about templates, see
11914	// Template Anatomy (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/template-anatomy.html)
11915	// in the AWS CloudFormation User Guide.
11916	//
11917	// Conditional: You must specify only one of the following parameters: StackName,
11918	// StackSetName, TemplateBody, or TemplateURL.
11919	TemplateBody *string `min:"1" type:"string"`
11920
11921	// Location of file containing the template body. The URL must point to a template
11922	// (max size: 460,800 bytes) that is located in an Amazon S3 bucket or a Systems
11923	// Manager document. For more information about templates, see Template Anatomy
11924	// (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/template-anatomy.html)
11925	// in the AWS CloudFormation User Guide.
11926	//
11927	// Conditional: You must specify only one of the following parameters: StackName,
11928	// StackSetName, TemplateBody, or TemplateURL.
11929	TemplateURL *string `min:"1" type:"string"`
11930}
11931
11932// String returns the string representation
11933func (s GetTemplateSummaryInput) String() string {
11934	return awsutil.Prettify(s)
11935}
11936
11937// GoString returns the string representation
11938func (s GetTemplateSummaryInput) GoString() string {
11939	return s.String()
11940}
11941
11942// Validate inspects the fields of the type to determine if they are valid.
11943func (s *GetTemplateSummaryInput) Validate() error {
11944	invalidParams := request.ErrInvalidParams{Context: "GetTemplateSummaryInput"}
11945	if s.StackName != nil && len(*s.StackName) < 1 {
11946		invalidParams.Add(request.NewErrParamMinLen("StackName", 1))
11947	}
11948	if s.TemplateBody != nil && len(*s.TemplateBody) < 1 {
11949		invalidParams.Add(request.NewErrParamMinLen("TemplateBody", 1))
11950	}
11951	if s.TemplateURL != nil && len(*s.TemplateURL) < 1 {
11952		invalidParams.Add(request.NewErrParamMinLen("TemplateURL", 1))
11953	}
11954
11955	if invalidParams.Len() > 0 {
11956		return invalidParams
11957	}
11958	return nil
11959}
11960
11961// SetCallAs sets the CallAs field's value.
11962func (s *GetTemplateSummaryInput) SetCallAs(v string) *GetTemplateSummaryInput {
11963	s.CallAs = &v
11964	return s
11965}
11966
11967// SetStackName sets the StackName field's value.
11968func (s *GetTemplateSummaryInput) SetStackName(v string) *GetTemplateSummaryInput {
11969	s.StackName = &v
11970	return s
11971}
11972
11973// SetStackSetName sets the StackSetName field's value.
11974func (s *GetTemplateSummaryInput) SetStackSetName(v string) *GetTemplateSummaryInput {
11975	s.StackSetName = &v
11976	return s
11977}
11978
11979// SetTemplateBody sets the TemplateBody field's value.
11980func (s *GetTemplateSummaryInput) SetTemplateBody(v string) *GetTemplateSummaryInput {
11981	s.TemplateBody = &v
11982	return s
11983}
11984
11985// SetTemplateURL sets the TemplateURL field's value.
11986func (s *GetTemplateSummaryInput) SetTemplateURL(v string) *GetTemplateSummaryInput {
11987	s.TemplateURL = &v
11988	return s
11989}
11990
11991// The output for the GetTemplateSummary action.
11992type GetTemplateSummaryOutput struct {
11993	_ struct{} `type:"structure"`
11994
11995	// The capabilities found within the template. If your template contains IAM
11996	// resources, you must specify the CAPABILITY_IAM or CAPABILITY_NAMED_IAM value
11997	// for this parameter when you use the CreateStack or UpdateStack actions with
11998	// your template; otherwise, those actions return an InsufficientCapabilities
11999	// error.
12000	//
12001	// For more information, see Acknowledging IAM Resources in AWS CloudFormation
12002	// Templates (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-iam-template.html#capabilities).
12003	Capabilities []*string `type:"list"`
12004
12005	// The list of resources that generated the values in the Capabilities response
12006	// element.
12007	CapabilitiesReason *string `type:"string"`
12008
12009	// A list of the transforms that are declared in the template.
12010	DeclaredTransforms []*string `type:"list"`
12011
12012	// The value that is defined in the Description property of the template.
12013	Description *string `min:"1" type:"string"`
12014
12015	// The value that is defined for the Metadata property of the template.
12016	Metadata *string `type:"string"`
12017
12018	// A list of parameter declarations that describe various properties for each
12019	// parameter.
12020	Parameters []*ParameterDeclaration `type:"list"`
12021
12022	// A list of resource identifier summaries that describe the target resources
12023	// of an import operation and the properties you can provide during the import
12024	// to identify the target resources. For example, BucketName is a possible identifier
12025	// property for an AWS::S3::Bucket resource.
12026	ResourceIdentifierSummaries []*ResourceIdentifierSummary `type:"list"`
12027
12028	// A list of all the template resource types that are defined in the template,
12029	// such as AWS::EC2::Instance, AWS::Dynamo::Table, and Custom::MyCustomInstance.
12030	ResourceTypes []*string `type:"list"`
12031
12032	// The AWS template format version, which identifies the capabilities of the
12033	// template.
12034	Version *string `type:"string"`
12035}
12036
12037// String returns the string representation
12038func (s GetTemplateSummaryOutput) String() string {
12039	return awsutil.Prettify(s)
12040}
12041
12042// GoString returns the string representation
12043func (s GetTemplateSummaryOutput) GoString() string {
12044	return s.String()
12045}
12046
12047// SetCapabilities sets the Capabilities field's value.
12048func (s *GetTemplateSummaryOutput) SetCapabilities(v []*string) *GetTemplateSummaryOutput {
12049	s.Capabilities = v
12050	return s
12051}
12052
12053// SetCapabilitiesReason sets the CapabilitiesReason field's value.
12054func (s *GetTemplateSummaryOutput) SetCapabilitiesReason(v string) *GetTemplateSummaryOutput {
12055	s.CapabilitiesReason = &v
12056	return s
12057}
12058
12059// SetDeclaredTransforms sets the DeclaredTransforms field's value.
12060func (s *GetTemplateSummaryOutput) SetDeclaredTransforms(v []*string) *GetTemplateSummaryOutput {
12061	s.DeclaredTransforms = v
12062	return s
12063}
12064
12065// SetDescription sets the Description field's value.
12066func (s *GetTemplateSummaryOutput) SetDescription(v string) *GetTemplateSummaryOutput {
12067	s.Description = &v
12068	return s
12069}
12070
12071// SetMetadata sets the Metadata field's value.
12072func (s *GetTemplateSummaryOutput) SetMetadata(v string) *GetTemplateSummaryOutput {
12073	s.Metadata = &v
12074	return s
12075}
12076
12077// SetParameters sets the Parameters field's value.
12078func (s *GetTemplateSummaryOutput) SetParameters(v []*ParameterDeclaration) *GetTemplateSummaryOutput {
12079	s.Parameters = v
12080	return s
12081}
12082
12083// SetResourceIdentifierSummaries sets the ResourceIdentifierSummaries field's value.
12084func (s *GetTemplateSummaryOutput) SetResourceIdentifierSummaries(v []*ResourceIdentifierSummary) *GetTemplateSummaryOutput {
12085	s.ResourceIdentifierSummaries = v
12086	return s
12087}
12088
12089// SetResourceTypes sets the ResourceTypes field's value.
12090func (s *GetTemplateSummaryOutput) SetResourceTypes(v []*string) *GetTemplateSummaryOutput {
12091	s.ResourceTypes = v
12092	return s
12093}
12094
12095// SetVersion sets the Version field's value.
12096func (s *GetTemplateSummaryOutput) SetVersion(v string) *GetTemplateSummaryOutput {
12097	s.Version = &v
12098	return s
12099}
12100
12101// The input for the ListChangeSets action.
12102type ListChangeSetsInput struct {
12103	_ struct{} `type:"structure"`
12104
12105	// A string (provided by the ListChangeSets response output) that identifies
12106	// the next page of change sets that you want to retrieve.
12107	NextToken *string `min:"1" type:"string"`
12108
12109	// The name or the Amazon Resource Name (ARN) of the stack for which you want
12110	// to list change sets.
12111	//
12112	// StackName is a required field
12113	StackName *string `min:"1" type:"string" required:"true"`
12114}
12115
12116// String returns the string representation
12117func (s ListChangeSetsInput) String() string {
12118	return awsutil.Prettify(s)
12119}
12120
12121// GoString returns the string representation
12122func (s ListChangeSetsInput) GoString() string {
12123	return s.String()
12124}
12125
12126// Validate inspects the fields of the type to determine if they are valid.
12127func (s *ListChangeSetsInput) Validate() error {
12128	invalidParams := request.ErrInvalidParams{Context: "ListChangeSetsInput"}
12129	if s.NextToken != nil && len(*s.NextToken) < 1 {
12130		invalidParams.Add(request.NewErrParamMinLen("NextToken", 1))
12131	}
12132	if s.StackName == nil {
12133		invalidParams.Add(request.NewErrParamRequired("StackName"))
12134	}
12135	if s.StackName != nil && len(*s.StackName) < 1 {
12136		invalidParams.Add(request.NewErrParamMinLen("StackName", 1))
12137	}
12138
12139	if invalidParams.Len() > 0 {
12140		return invalidParams
12141	}
12142	return nil
12143}
12144
12145// SetNextToken sets the NextToken field's value.
12146func (s *ListChangeSetsInput) SetNextToken(v string) *ListChangeSetsInput {
12147	s.NextToken = &v
12148	return s
12149}
12150
12151// SetStackName sets the StackName field's value.
12152func (s *ListChangeSetsInput) SetStackName(v string) *ListChangeSetsInput {
12153	s.StackName = &v
12154	return s
12155}
12156
12157// The output for the ListChangeSets action.
12158type ListChangeSetsOutput struct {
12159	_ struct{} `type:"structure"`
12160
12161	// If the output exceeds 1 MB, a string that identifies the next page of change
12162	// sets. If there is no additional page, this value is null.
12163	NextToken *string `min:"1" type:"string"`
12164
12165	// A list of ChangeSetSummary structures that provides the ID and status of
12166	// each change set for the specified stack.
12167	Summaries []*ChangeSetSummary `type:"list"`
12168}
12169
12170// String returns the string representation
12171func (s ListChangeSetsOutput) String() string {
12172	return awsutil.Prettify(s)
12173}
12174
12175// GoString returns the string representation
12176func (s ListChangeSetsOutput) GoString() string {
12177	return s.String()
12178}
12179
12180// SetNextToken sets the NextToken field's value.
12181func (s *ListChangeSetsOutput) SetNextToken(v string) *ListChangeSetsOutput {
12182	s.NextToken = &v
12183	return s
12184}
12185
12186// SetSummaries sets the Summaries field's value.
12187func (s *ListChangeSetsOutput) SetSummaries(v []*ChangeSetSummary) *ListChangeSetsOutput {
12188	s.Summaries = v
12189	return s
12190}
12191
12192type ListExportsInput struct {
12193	_ struct{} `type:"structure"`
12194
12195	// A string (provided by the ListExports response output) that identifies the
12196	// next page of exported output values that you asked to retrieve.
12197	NextToken *string `min:"1" type:"string"`
12198}
12199
12200// String returns the string representation
12201func (s ListExportsInput) String() string {
12202	return awsutil.Prettify(s)
12203}
12204
12205// GoString returns the string representation
12206func (s ListExportsInput) GoString() string {
12207	return s.String()
12208}
12209
12210// Validate inspects the fields of the type to determine if they are valid.
12211func (s *ListExportsInput) Validate() error {
12212	invalidParams := request.ErrInvalidParams{Context: "ListExportsInput"}
12213	if s.NextToken != nil && len(*s.NextToken) < 1 {
12214		invalidParams.Add(request.NewErrParamMinLen("NextToken", 1))
12215	}
12216
12217	if invalidParams.Len() > 0 {
12218		return invalidParams
12219	}
12220	return nil
12221}
12222
12223// SetNextToken sets the NextToken field's value.
12224func (s *ListExportsInput) SetNextToken(v string) *ListExportsInput {
12225	s.NextToken = &v
12226	return s
12227}
12228
12229type ListExportsOutput struct {
12230	_ struct{} `type:"structure"`
12231
12232	// The output for the ListExports action.
12233	Exports []*Export `type:"list"`
12234
12235	// If the output exceeds 100 exported output values, a string that identifies
12236	// the next page of exports. If there is no additional page, this value is null.
12237	NextToken *string `min:"1" type:"string"`
12238}
12239
12240// String returns the string representation
12241func (s ListExportsOutput) String() string {
12242	return awsutil.Prettify(s)
12243}
12244
12245// GoString returns the string representation
12246func (s ListExportsOutput) GoString() string {
12247	return s.String()
12248}
12249
12250// SetExports sets the Exports field's value.
12251func (s *ListExportsOutput) SetExports(v []*Export) *ListExportsOutput {
12252	s.Exports = v
12253	return s
12254}
12255
12256// SetNextToken sets the NextToken field's value.
12257func (s *ListExportsOutput) SetNextToken(v string) *ListExportsOutput {
12258	s.NextToken = &v
12259	return s
12260}
12261
12262type ListImportsInput struct {
12263	_ struct{} `type:"structure"`
12264
12265	// The name of the exported output value. AWS CloudFormation returns the stack
12266	// names that are importing this value.
12267	//
12268	// ExportName is a required field
12269	ExportName *string `type:"string" required:"true"`
12270
12271	// A string (provided by the ListImports response output) that identifies the
12272	// next page of stacks that are importing the specified exported output value.
12273	NextToken *string `min:"1" type:"string"`
12274}
12275
12276// String returns the string representation
12277func (s ListImportsInput) String() string {
12278	return awsutil.Prettify(s)
12279}
12280
12281// GoString returns the string representation
12282func (s ListImportsInput) GoString() string {
12283	return s.String()
12284}
12285
12286// Validate inspects the fields of the type to determine if they are valid.
12287func (s *ListImportsInput) Validate() error {
12288	invalidParams := request.ErrInvalidParams{Context: "ListImportsInput"}
12289	if s.ExportName == nil {
12290		invalidParams.Add(request.NewErrParamRequired("ExportName"))
12291	}
12292	if s.NextToken != nil && len(*s.NextToken) < 1 {
12293		invalidParams.Add(request.NewErrParamMinLen("NextToken", 1))
12294	}
12295
12296	if invalidParams.Len() > 0 {
12297		return invalidParams
12298	}
12299	return nil
12300}
12301
12302// SetExportName sets the ExportName field's value.
12303func (s *ListImportsInput) SetExportName(v string) *ListImportsInput {
12304	s.ExportName = &v
12305	return s
12306}
12307
12308// SetNextToken sets the NextToken field's value.
12309func (s *ListImportsInput) SetNextToken(v string) *ListImportsInput {
12310	s.NextToken = &v
12311	return s
12312}
12313
12314type ListImportsOutput struct {
12315	_ struct{} `type:"structure"`
12316
12317	// A list of stack names that are importing the specified exported output value.
12318	Imports []*string `type:"list"`
12319
12320	// A string that identifies the next page of exports. If there is no additional
12321	// page, this value is null.
12322	NextToken *string `min:"1" type:"string"`
12323}
12324
12325// String returns the string representation
12326func (s ListImportsOutput) String() string {
12327	return awsutil.Prettify(s)
12328}
12329
12330// GoString returns the string representation
12331func (s ListImportsOutput) GoString() string {
12332	return s.String()
12333}
12334
12335// SetImports sets the Imports field's value.
12336func (s *ListImportsOutput) SetImports(v []*string) *ListImportsOutput {
12337	s.Imports = v
12338	return s
12339}
12340
12341// SetNextToken sets the NextToken field's value.
12342func (s *ListImportsOutput) SetNextToken(v string) *ListImportsOutput {
12343	s.NextToken = &v
12344	return s
12345}
12346
12347type ListStackInstancesInput struct {
12348	_ struct{} `type:"structure"`
12349
12350	// [Service-managed permissions] Specifies whether you are acting as an account
12351	// administrator in the organization's management account or as a delegated
12352	// administrator in a member account.
12353	//
12354	// By default, SELF is specified. Use SELF for stack sets with self-managed
12355	// permissions.
12356	//
12357	//    * If you are signed in to the management account, specify SELF.
12358	//
12359	//    * If you are signed in to a delegated administrator account, specify DELEGATED_ADMIN.
12360	//    Your AWS account must be registered as a delegated administrator in the
12361	//    management account. For more information, see Register a delegated administrator
12362	//    (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/stacksets-orgs-delegated-admin.html)
12363	//    in the AWS CloudFormation User Guide.
12364	CallAs *string `type:"string" enum:"CallAs"`
12365
12366	// The status that stack instances are filtered by.
12367	Filters []*StackInstanceFilter `type:"list"`
12368
12369	// The maximum number of results to be returned with a single call. If the number
12370	// of available results exceeds this maximum, the response includes a NextToken
12371	// value that you can assign to the NextToken request parameter to get the next
12372	// set of results.
12373	MaxResults *int64 `min:"1" type:"integer"`
12374
12375	// If the previous request didn't return all of the remaining results, the response's
12376	// NextToken parameter value is set to a token. To retrieve the next set of
12377	// results, call ListStackInstances again and assign that token to the request
12378	// object's NextToken parameter. If there are no remaining results, the previous
12379	// response object's NextToken parameter is set to null.
12380	NextToken *string `min:"1" type:"string"`
12381
12382	// The name of the AWS account that you want to list stack instances for.
12383	StackInstanceAccount *string `type:"string"`
12384
12385	// The name of the Region where you want to list stack instances.
12386	StackInstanceRegion *string `type:"string"`
12387
12388	// The name or unique ID of the stack set that you want to list stack instances
12389	// for.
12390	//
12391	// StackSetName is a required field
12392	StackSetName *string `type:"string" required:"true"`
12393}
12394
12395// String returns the string representation
12396func (s ListStackInstancesInput) String() string {
12397	return awsutil.Prettify(s)
12398}
12399
12400// GoString returns the string representation
12401func (s ListStackInstancesInput) GoString() string {
12402	return s.String()
12403}
12404
12405// Validate inspects the fields of the type to determine if they are valid.
12406func (s *ListStackInstancesInput) Validate() error {
12407	invalidParams := request.ErrInvalidParams{Context: "ListStackInstancesInput"}
12408	if s.MaxResults != nil && *s.MaxResults < 1 {
12409		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
12410	}
12411	if s.NextToken != nil && len(*s.NextToken) < 1 {
12412		invalidParams.Add(request.NewErrParamMinLen("NextToken", 1))
12413	}
12414	if s.StackSetName == nil {
12415		invalidParams.Add(request.NewErrParamRequired("StackSetName"))
12416	}
12417	if s.Filters != nil {
12418		for i, v := range s.Filters {
12419			if v == nil {
12420				continue
12421			}
12422			if err := v.Validate(); err != nil {
12423				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Filters", i), err.(request.ErrInvalidParams))
12424			}
12425		}
12426	}
12427
12428	if invalidParams.Len() > 0 {
12429		return invalidParams
12430	}
12431	return nil
12432}
12433
12434// SetCallAs sets the CallAs field's value.
12435func (s *ListStackInstancesInput) SetCallAs(v string) *ListStackInstancesInput {
12436	s.CallAs = &v
12437	return s
12438}
12439
12440// SetFilters sets the Filters field's value.
12441func (s *ListStackInstancesInput) SetFilters(v []*StackInstanceFilter) *ListStackInstancesInput {
12442	s.Filters = v
12443	return s
12444}
12445
12446// SetMaxResults sets the MaxResults field's value.
12447func (s *ListStackInstancesInput) SetMaxResults(v int64) *ListStackInstancesInput {
12448	s.MaxResults = &v
12449	return s
12450}
12451
12452// SetNextToken sets the NextToken field's value.
12453func (s *ListStackInstancesInput) SetNextToken(v string) *ListStackInstancesInput {
12454	s.NextToken = &v
12455	return s
12456}
12457
12458// SetStackInstanceAccount sets the StackInstanceAccount field's value.
12459func (s *ListStackInstancesInput) SetStackInstanceAccount(v string) *ListStackInstancesInput {
12460	s.StackInstanceAccount = &v
12461	return s
12462}
12463
12464// SetStackInstanceRegion sets the StackInstanceRegion field's value.
12465func (s *ListStackInstancesInput) SetStackInstanceRegion(v string) *ListStackInstancesInput {
12466	s.StackInstanceRegion = &v
12467	return s
12468}
12469
12470// SetStackSetName sets the StackSetName field's value.
12471func (s *ListStackInstancesInput) SetStackSetName(v string) *ListStackInstancesInput {
12472	s.StackSetName = &v
12473	return s
12474}
12475
12476type ListStackInstancesOutput struct {
12477	_ struct{} `type:"structure"`
12478
12479	// If the request doesn't return all of the remaining results, NextToken is
12480	// set to a token. To retrieve the next set of results, call ListStackInstances
12481	// again and assign that token to the request object's NextToken parameter.
12482	// If the request returns all results, NextToken is set to null.
12483	NextToken *string `min:"1" type:"string"`
12484
12485	// A list of StackInstanceSummary structures that contain information about
12486	// the specified stack instances.
12487	Summaries []*StackInstanceSummary `type:"list"`
12488}
12489
12490// String returns the string representation
12491func (s ListStackInstancesOutput) String() string {
12492	return awsutil.Prettify(s)
12493}
12494
12495// GoString returns the string representation
12496func (s ListStackInstancesOutput) GoString() string {
12497	return s.String()
12498}
12499
12500// SetNextToken sets the NextToken field's value.
12501func (s *ListStackInstancesOutput) SetNextToken(v string) *ListStackInstancesOutput {
12502	s.NextToken = &v
12503	return s
12504}
12505
12506// SetSummaries sets the Summaries field's value.
12507func (s *ListStackInstancesOutput) SetSummaries(v []*StackInstanceSummary) *ListStackInstancesOutput {
12508	s.Summaries = v
12509	return s
12510}
12511
12512// The input for the ListStackResource action.
12513type ListStackResourcesInput struct {
12514	_ struct{} `type:"structure"`
12515
12516	// A string that identifies the next page of stack resources that you want to
12517	// retrieve.
12518	NextToken *string `min:"1" type:"string"`
12519
12520	// The name or the unique stack ID that is associated with the stack, which
12521	// are not always interchangeable:
12522	//
12523	//    * Running stacks: You can specify either the stack's name or its unique
12524	//    stack ID.
12525	//
12526	//    * Deleted stacks: You must specify the unique stack ID.
12527	//
12528	// Default: There is no default value.
12529	//
12530	// StackName is a required field
12531	StackName *string `type:"string" required:"true"`
12532}
12533
12534// String returns the string representation
12535func (s ListStackResourcesInput) String() string {
12536	return awsutil.Prettify(s)
12537}
12538
12539// GoString returns the string representation
12540func (s ListStackResourcesInput) GoString() string {
12541	return s.String()
12542}
12543
12544// Validate inspects the fields of the type to determine if they are valid.
12545func (s *ListStackResourcesInput) Validate() error {
12546	invalidParams := request.ErrInvalidParams{Context: "ListStackResourcesInput"}
12547	if s.NextToken != nil && len(*s.NextToken) < 1 {
12548		invalidParams.Add(request.NewErrParamMinLen("NextToken", 1))
12549	}
12550	if s.StackName == nil {
12551		invalidParams.Add(request.NewErrParamRequired("StackName"))
12552	}
12553
12554	if invalidParams.Len() > 0 {
12555		return invalidParams
12556	}
12557	return nil
12558}
12559
12560// SetNextToken sets the NextToken field's value.
12561func (s *ListStackResourcesInput) SetNextToken(v string) *ListStackResourcesInput {
12562	s.NextToken = &v
12563	return s
12564}
12565
12566// SetStackName sets the StackName field's value.
12567func (s *ListStackResourcesInput) SetStackName(v string) *ListStackResourcesInput {
12568	s.StackName = &v
12569	return s
12570}
12571
12572// The output for a ListStackResources action.
12573type ListStackResourcesOutput struct {
12574	_ struct{} `type:"structure"`
12575
12576	// If the output exceeds 1 MB, a string that identifies the next page of stack
12577	// resources. If no additional page exists, this value is null.
12578	NextToken *string `min:"1" type:"string"`
12579
12580	// A list of StackResourceSummary structures.
12581	StackResourceSummaries []*StackResourceSummary `type:"list"`
12582}
12583
12584// String returns the string representation
12585func (s ListStackResourcesOutput) String() string {
12586	return awsutil.Prettify(s)
12587}
12588
12589// GoString returns the string representation
12590func (s ListStackResourcesOutput) GoString() string {
12591	return s.String()
12592}
12593
12594// SetNextToken sets the NextToken field's value.
12595func (s *ListStackResourcesOutput) SetNextToken(v string) *ListStackResourcesOutput {
12596	s.NextToken = &v
12597	return s
12598}
12599
12600// SetStackResourceSummaries sets the StackResourceSummaries field's value.
12601func (s *ListStackResourcesOutput) SetStackResourceSummaries(v []*StackResourceSummary) *ListStackResourcesOutput {
12602	s.StackResourceSummaries = v
12603	return s
12604}
12605
12606type ListStackSetOperationResultsInput struct {
12607	_ struct{} `type:"structure"`
12608
12609	// [Service-managed permissions] Specifies whether you are acting as an account
12610	// administrator in the organization's management account or as a delegated
12611	// administrator in a member account.
12612	//
12613	// By default, SELF is specified. Use SELF for stack sets with self-managed
12614	// permissions.
12615	//
12616	//    * If you are signed in to the management account, specify SELF.
12617	//
12618	//    * If you are signed in to a delegated administrator account, specify DELEGATED_ADMIN.
12619	//    Your AWS account must be registered as a delegated administrator in the
12620	//    management account. For more information, see Register a delegated administrator
12621	//    (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/stacksets-orgs-delegated-admin.html)
12622	//    in the AWS CloudFormation User Guide.
12623	CallAs *string `type:"string" enum:"CallAs"`
12624
12625	// The maximum number of results to be returned with a single call. If the number
12626	// of available results exceeds this maximum, the response includes a NextToken
12627	// value that you can assign to the NextToken request parameter to get the next
12628	// set of results.
12629	MaxResults *int64 `min:"1" type:"integer"`
12630
12631	// If the previous request didn't return all of the remaining results, the response
12632	// object's NextToken parameter value is set to a token. To retrieve the next
12633	// set of results, call ListStackSetOperationResults again and assign that token
12634	// to the request object's NextToken parameter. If there are no remaining results,
12635	// the previous response object's NextToken parameter is set to null.
12636	NextToken *string `min:"1" type:"string"`
12637
12638	// The ID of the stack set operation.
12639	//
12640	// OperationId is a required field
12641	OperationId *string `min:"1" type:"string" required:"true"`
12642
12643	// The name or unique ID of the stack set that you want to get operation results
12644	// for.
12645	//
12646	// StackSetName is a required field
12647	StackSetName *string `type:"string" required:"true"`
12648}
12649
12650// String returns the string representation
12651func (s ListStackSetOperationResultsInput) String() string {
12652	return awsutil.Prettify(s)
12653}
12654
12655// GoString returns the string representation
12656func (s ListStackSetOperationResultsInput) GoString() string {
12657	return s.String()
12658}
12659
12660// Validate inspects the fields of the type to determine if they are valid.
12661func (s *ListStackSetOperationResultsInput) Validate() error {
12662	invalidParams := request.ErrInvalidParams{Context: "ListStackSetOperationResultsInput"}
12663	if s.MaxResults != nil && *s.MaxResults < 1 {
12664		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
12665	}
12666	if s.NextToken != nil && len(*s.NextToken) < 1 {
12667		invalidParams.Add(request.NewErrParamMinLen("NextToken", 1))
12668	}
12669	if s.OperationId == nil {
12670		invalidParams.Add(request.NewErrParamRequired("OperationId"))
12671	}
12672	if s.OperationId != nil && len(*s.OperationId) < 1 {
12673		invalidParams.Add(request.NewErrParamMinLen("OperationId", 1))
12674	}
12675	if s.StackSetName == nil {
12676		invalidParams.Add(request.NewErrParamRequired("StackSetName"))
12677	}
12678
12679	if invalidParams.Len() > 0 {
12680		return invalidParams
12681	}
12682	return nil
12683}
12684
12685// SetCallAs sets the CallAs field's value.
12686func (s *ListStackSetOperationResultsInput) SetCallAs(v string) *ListStackSetOperationResultsInput {
12687	s.CallAs = &v
12688	return s
12689}
12690
12691// SetMaxResults sets the MaxResults field's value.
12692func (s *ListStackSetOperationResultsInput) SetMaxResults(v int64) *ListStackSetOperationResultsInput {
12693	s.MaxResults = &v
12694	return s
12695}
12696
12697// SetNextToken sets the NextToken field's value.
12698func (s *ListStackSetOperationResultsInput) SetNextToken(v string) *ListStackSetOperationResultsInput {
12699	s.NextToken = &v
12700	return s
12701}
12702
12703// SetOperationId sets the OperationId field's value.
12704func (s *ListStackSetOperationResultsInput) SetOperationId(v string) *ListStackSetOperationResultsInput {
12705	s.OperationId = &v
12706	return s
12707}
12708
12709// SetStackSetName sets the StackSetName field's value.
12710func (s *ListStackSetOperationResultsInput) SetStackSetName(v string) *ListStackSetOperationResultsInput {
12711	s.StackSetName = &v
12712	return s
12713}
12714
12715type ListStackSetOperationResultsOutput struct {
12716	_ struct{} `type:"structure"`
12717
12718	// If the request doesn't return all results, NextToken is set to a token. To
12719	// retrieve the next set of results, call ListOperationResults again and assign
12720	// that token to the request object's NextToken parameter. If there are no remaining
12721	// results, NextToken is set to null.
12722	NextToken *string `min:"1" type:"string"`
12723
12724	// A list of StackSetOperationResultSummary structures that contain information
12725	// about the specified operation results, for accounts and Regions that are
12726	// included in the operation.
12727	Summaries []*StackSetOperationResultSummary `type:"list"`
12728}
12729
12730// String returns the string representation
12731func (s ListStackSetOperationResultsOutput) String() string {
12732	return awsutil.Prettify(s)
12733}
12734
12735// GoString returns the string representation
12736func (s ListStackSetOperationResultsOutput) GoString() string {
12737	return s.String()
12738}
12739
12740// SetNextToken sets the NextToken field's value.
12741func (s *ListStackSetOperationResultsOutput) SetNextToken(v string) *ListStackSetOperationResultsOutput {
12742	s.NextToken = &v
12743	return s
12744}
12745
12746// SetSummaries sets the Summaries field's value.
12747func (s *ListStackSetOperationResultsOutput) SetSummaries(v []*StackSetOperationResultSummary) *ListStackSetOperationResultsOutput {
12748	s.Summaries = v
12749	return s
12750}
12751
12752type ListStackSetOperationsInput struct {
12753	_ struct{} `type:"structure"`
12754
12755	// [Service-managed permissions] Specifies whether you are acting as an account
12756	// administrator in the organization's management account or as a delegated
12757	// administrator in a member account.
12758	//
12759	// By default, SELF is specified. Use SELF for stack sets with self-managed
12760	// permissions.
12761	//
12762	//    * If you are signed in to the management account, specify SELF.
12763	//
12764	//    * If you are signed in to a delegated administrator account, specify DELEGATED_ADMIN.
12765	//    Your AWS account must be registered as a delegated administrator in the
12766	//    management account. For more information, see Register a delegated administrator
12767	//    (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/stacksets-orgs-delegated-admin.html)
12768	//    in the AWS CloudFormation User Guide.
12769	CallAs *string `type:"string" enum:"CallAs"`
12770
12771	// The maximum number of results to be returned with a single call. If the number
12772	// of available results exceeds this maximum, the response includes a NextToken
12773	// value that you can assign to the NextToken request parameter to get the next
12774	// set of results.
12775	MaxResults *int64 `min:"1" type:"integer"`
12776
12777	// If the previous paginated request didn't return all of the remaining results,
12778	// the response object's NextToken parameter value is set to a token. To retrieve
12779	// the next set of results, call ListStackSetOperations again and assign that
12780	// token to the request object's NextToken parameter. If there are no remaining
12781	// results, the previous response object's NextToken parameter is set to null.
12782	NextToken *string `min:"1" type:"string"`
12783
12784	// The name or unique ID of the stack set that you want to get operation summaries
12785	// for.
12786	//
12787	// StackSetName is a required field
12788	StackSetName *string `type:"string" required:"true"`
12789}
12790
12791// String returns the string representation
12792func (s ListStackSetOperationsInput) String() string {
12793	return awsutil.Prettify(s)
12794}
12795
12796// GoString returns the string representation
12797func (s ListStackSetOperationsInput) GoString() string {
12798	return s.String()
12799}
12800
12801// Validate inspects the fields of the type to determine if they are valid.
12802func (s *ListStackSetOperationsInput) Validate() error {
12803	invalidParams := request.ErrInvalidParams{Context: "ListStackSetOperationsInput"}
12804	if s.MaxResults != nil && *s.MaxResults < 1 {
12805		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
12806	}
12807	if s.NextToken != nil && len(*s.NextToken) < 1 {
12808		invalidParams.Add(request.NewErrParamMinLen("NextToken", 1))
12809	}
12810	if s.StackSetName == nil {
12811		invalidParams.Add(request.NewErrParamRequired("StackSetName"))
12812	}
12813
12814	if invalidParams.Len() > 0 {
12815		return invalidParams
12816	}
12817	return nil
12818}
12819
12820// SetCallAs sets the CallAs field's value.
12821func (s *ListStackSetOperationsInput) SetCallAs(v string) *ListStackSetOperationsInput {
12822	s.CallAs = &v
12823	return s
12824}
12825
12826// SetMaxResults sets the MaxResults field's value.
12827func (s *ListStackSetOperationsInput) SetMaxResults(v int64) *ListStackSetOperationsInput {
12828	s.MaxResults = &v
12829	return s
12830}
12831
12832// SetNextToken sets the NextToken field's value.
12833func (s *ListStackSetOperationsInput) SetNextToken(v string) *ListStackSetOperationsInput {
12834	s.NextToken = &v
12835	return s
12836}
12837
12838// SetStackSetName sets the StackSetName field's value.
12839func (s *ListStackSetOperationsInput) SetStackSetName(v string) *ListStackSetOperationsInput {
12840	s.StackSetName = &v
12841	return s
12842}
12843
12844type ListStackSetOperationsOutput struct {
12845	_ struct{} `type:"structure"`
12846
12847	// If the request doesn't return all results, NextToken is set to a token. To
12848	// retrieve the next set of results, call ListOperationResults again and assign
12849	// that token to the request object's NextToken parameter. If there are no remaining
12850	// results, NextToken is set to null.
12851	NextToken *string `min:"1" type:"string"`
12852
12853	// A list of StackSetOperationSummary structures that contain summary information
12854	// about operations for the specified stack set.
12855	Summaries []*StackSetOperationSummary `type:"list"`
12856}
12857
12858// String returns the string representation
12859func (s ListStackSetOperationsOutput) String() string {
12860	return awsutil.Prettify(s)
12861}
12862
12863// GoString returns the string representation
12864func (s ListStackSetOperationsOutput) GoString() string {
12865	return s.String()
12866}
12867
12868// SetNextToken sets the NextToken field's value.
12869func (s *ListStackSetOperationsOutput) SetNextToken(v string) *ListStackSetOperationsOutput {
12870	s.NextToken = &v
12871	return s
12872}
12873
12874// SetSummaries sets the Summaries field's value.
12875func (s *ListStackSetOperationsOutput) SetSummaries(v []*StackSetOperationSummary) *ListStackSetOperationsOutput {
12876	s.Summaries = v
12877	return s
12878}
12879
12880type ListStackSetsInput struct {
12881	_ struct{} `type:"structure"`
12882
12883	// [Service-managed permissions] Specifies whether you are acting as an account
12884	// administrator in the management account or as a delegated administrator in
12885	// a member account.
12886	//
12887	// By default, SELF is specified. Use SELF for stack sets with self-managed
12888	// permissions.
12889	//
12890	//    * If you are signed in to the management account, specify SELF.
12891	//
12892	//    * If you are signed in to a delegated administrator account, specify DELEGATED_ADMIN.
12893	//    Your AWS account must be registered as a delegated administrator in the
12894	//    management account. For more information, see Register a delegated administrator
12895	//    (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/stacksets-orgs-delegated-admin.html)
12896	//    in the AWS CloudFormation User Guide.
12897	CallAs *string `type:"string" enum:"CallAs"`
12898
12899	// The maximum number of results to be returned with a single call. If the number
12900	// of available results exceeds this maximum, the response includes a NextToken
12901	// value that you can assign to the NextToken request parameter to get the next
12902	// set of results.
12903	MaxResults *int64 `min:"1" type:"integer"`
12904
12905	// If the previous paginated request didn't return all of the remaining results,
12906	// the response object's NextToken parameter value is set to a token. To retrieve
12907	// the next set of results, call ListStackSets again and assign that token to
12908	// the request object's NextToken parameter. If there are no remaining results,
12909	// the previous response object's NextToken parameter is set to null.
12910	NextToken *string `min:"1" type:"string"`
12911
12912	// The status of the stack sets that you want to get summary information about.
12913	Status *string `type:"string" enum:"StackSetStatus"`
12914}
12915
12916// String returns the string representation
12917func (s ListStackSetsInput) String() string {
12918	return awsutil.Prettify(s)
12919}
12920
12921// GoString returns the string representation
12922func (s ListStackSetsInput) GoString() string {
12923	return s.String()
12924}
12925
12926// Validate inspects the fields of the type to determine if they are valid.
12927func (s *ListStackSetsInput) Validate() error {
12928	invalidParams := request.ErrInvalidParams{Context: "ListStackSetsInput"}
12929	if s.MaxResults != nil && *s.MaxResults < 1 {
12930		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
12931	}
12932	if s.NextToken != nil && len(*s.NextToken) < 1 {
12933		invalidParams.Add(request.NewErrParamMinLen("NextToken", 1))
12934	}
12935
12936	if invalidParams.Len() > 0 {
12937		return invalidParams
12938	}
12939	return nil
12940}
12941
12942// SetCallAs sets the CallAs field's value.
12943func (s *ListStackSetsInput) SetCallAs(v string) *ListStackSetsInput {
12944	s.CallAs = &v
12945	return s
12946}
12947
12948// SetMaxResults sets the MaxResults field's value.
12949func (s *ListStackSetsInput) SetMaxResults(v int64) *ListStackSetsInput {
12950	s.MaxResults = &v
12951	return s
12952}
12953
12954// SetNextToken sets the NextToken field's value.
12955func (s *ListStackSetsInput) SetNextToken(v string) *ListStackSetsInput {
12956	s.NextToken = &v
12957	return s
12958}
12959
12960// SetStatus sets the Status field's value.
12961func (s *ListStackSetsInput) SetStatus(v string) *ListStackSetsInput {
12962	s.Status = &v
12963	return s
12964}
12965
12966type ListStackSetsOutput struct {
12967	_ struct{} `type:"structure"`
12968
12969	// If the request doesn't return all of the remaining results, NextToken is
12970	// set to a token. To retrieve the next set of results, call ListStackInstances
12971	// again and assign that token to the request object's NextToken parameter.
12972	// If the request returns all results, NextToken is set to null.
12973	NextToken *string `min:"1" type:"string"`
12974
12975	// A list of StackSetSummary structures that contain information about the user's
12976	// stack sets.
12977	Summaries []*StackSetSummary `type:"list"`
12978}
12979
12980// String returns the string representation
12981func (s ListStackSetsOutput) String() string {
12982	return awsutil.Prettify(s)
12983}
12984
12985// GoString returns the string representation
12986func (s ListStackSetsOutput) GoString() string {
12987	return s.String()
12988}
12989
12990// SetNextToken sets the NextToken field's value.
12991func (s *ListStackSetsOutput) SetNextToken(v string) *ListStackSetsOutput {
12992	s.NextToken = &v
12993	return s
12994}
12995
12996// SetSummaries sets the Summaries field's value.
12997func (s *ListStackSetsOutput) SetSummaries(v []*StackSetSummary) *ListStackSetsOutput {
12998	s.Summaries = v
12999	return s
13000}
13001
13002// The input for ListStacks action.
13003type ListStacksInput struct {
13004	_ struct{} `type:"structure"`
13005
13006	// A string that identifies the next page of stacks that you want to retrieve.
13007	NextToken *string `min:"1" type:"string"`
13008
13009	// Stack status to use as a filter. Specify one or more stack status codes to
13010	// list only stacks with the specified status codes. For a complete list of
13011	// stack status codes, see the StackStatus parameter of the Stack data type.
13012	StackStatusFilter []*string `type:"list"`
13013}
13014
13015// String returns the string representation
13016func (s ListStacksInput) String() string {
13017	return awsutil.Prettify(s)
13018}
13019
13020// GoString returns the string representation
13021func (s ListStacksInput) GoString() string {
13022	return s.String()
13023}
13024
13025// Validate inspects the fields of the type to determine if they are valid.
13026func (s *ListStacksInput) Validate() error {
13027	invalidParams := request.ErrInvalidParams{Context: "ListStacksInput"}
13028	if s.NextToken != nil && len(*s.NextToken) < 1 {
13029		invalidParams.Add(request.NewErrParamMinLen("NextToken", 1))
13030	}
13031
13032	if invalidParams.Len() > 0 {
13033		return invalidParams
13034	}
13035	return nil
13036}
13037
13038// SetNextToken sets the NextToken field's value.
13039func (s *ListStacksInput) SetNextToken(v string) *ListStacksInput {
13040	s.NextToken = &v
13041	return s
13042}
13043
13044// SetStackStatusFilter sets the StackStatusFilter field's value.
13045func (s *ListStacksInput) SetStackStatusFilter(v []*string) *ListStacksInput {
13046	s.StackStatusFilter = v
13047	return s
13048}
13049
13050// The output for ListStacks action.
13051type ListStacksOutput struct {
13052	_ struct{} `type:"structure"`
13053
13054	// If the output exceeds 1 MB in size, a string that identifies the next page
13055	// of stacks. If no additional page exists, this value is null.
13056	NextToken *string `min:"1" type:"string"`
13057
13058	// A list of StackSummary structures containing information about the specified
13059	// stacks.
13060	StackSummaries []*StackSummary `type:"list"`
13061}
13062
13063// String returns the string representation
13064func (s ListStacksOutput) String() string {
13065	return awsutil.Prettify(s)
13066}
13067
13068// GoString returns the string representation
13069func (s ListStacksOutput) GoString() string {
13070	return s.String()
13071}
13072
13073// SetNextToken sets the NextToken field's value.
13074func (s *ListStacksOutput) SetNextToken(v string) *ListStacksOutput {
13075	s.NextToken = &v
13076	return s
13077}
13078
13079// SetStackSummaries sets the StackSummaries field's value.
13080func (s *ListStacksOutput) SetStackSummaries(v []*StackSummary) *ListStacksOutput {
13081	s.StackSummaries = v
13082	return s
13083}
13084
13085type ListTypeRegistrationsInput struct {
13086	_ struct{} `type:"structure"`
13087
13088	// The maximum number of results to be returned with a single call. If the number
13089	// of available results exceeds this maximum, the response includes a NextToken
13090	// value that you can assign to the NextToken request parameter to get the next
13091	// set of results.
13092	MaxResults *int64 `min:"1" type:"integer"`
13093
13094	// If the previous paginated request didn't return all of the remaining results,
13095	// the response object's NextToken parameter value is set to a token. To retrieve
13096	// the next set of results, call this action again and assign that token to
13097	// the request object's NextToken parameter. If there are no remaining results,
13098	// the previous response object's NextToken parameter is set to null.
13099	NextToken *string `min:"1" type:"string"`
13100
13101	// The current status of the extension registration request.
13102	//
13103	// The default is IN_PROGRESS.
13104	RegistrationStatusFilter *string `type:"string" enum:"RegistrationStatus"`
13105
13106	// The kind of extension.
13107	//
13108	// Conditional: You must specify either TypeName and Type, or Arn.
13109	Type *string `type:"string" enum:"RegistryType"`
13110
13111	// The Amazon Resource Name (ARN) of the extension.
13112	//
13113	// Conditional: You must specify either TypeName and Type, or Arn.
13114	TypeArn *string `type:"string"`
13115
13116	// The name of the extension.
13117	//
13118	// Conditional: You must specify either TypeName and Type, or Arn.
13119	TypeName *string `min:"10" type:"string"`
13120}
13121
13122// String returns the string representation
13123func (s ListTypeRegistrationsInput) String() string {
13124	return awsutil.Prettify(s)
13125}
13126
13127// GoString returns the string representation
13128func (s ListTypeRegistrationsInput) GoString() string {
13129	return s.String()
13130}
13131
13132// Validate inspects the fields of the type to determine if they are valid.
13133func (s *ListTypeRegistrationsInput) Validate() error {
13134	invalidParams := request.ErrInvalidParams{Context: "ListTypeRegistrationsInput"}
13135	if s.MaxResults != nil && *s.MaxResults < 1 {
13136		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
13137	}
13138	if s.NextToken != nil && len(*s.NextToken) < 1 {
13139		invalidParams.Add(request.NewErrParamMinLen("NextToken", 1))
13140	}
13141	if s.TypeName != nil && len(*s.TypeName) < 10 {
13142		invalidParams.Add(request.NewErrParamMinLen("TypeName", 10))
13143	}
13144
13145	if invalidParams.Len() > 0 {
13146		return invalidParams
13147	}
13148	return nil
13149}
13150
13151// SetMaxResults sets the MaxResults field's value.
13152func (s *ListTypeRegistrationsInput) SetMaxResults(v int64) *ListTypeRegistrationsInput {
13153	s.MaxResults = &v
13154	return s
13155}
13156
13157// SetNextToken sets the NextToken field's value.
13158func (s *ListTypeRegistrationsInput) SetNextToken(v string) *ListTypeRegistrationsInput {
13159	s.NextToken = &v
13160	return s
13161}
13162
13163// SetRegistrationStatusFilter sets the RegistrationStatusFilter field's value.
13164func (s *ListTypeRegistrationsInput) SetRegistrationStatusFilter(v string) *ListTypeRegistrationsInput {
13165	s.RegistrationStatusFilter = &v
13166	return s
13167}
13168
13169// SetType sets the Type field's value.
13170func (s *ListTypeRegistrationsInput) SetType(v string) *ListTypeRegistrationsInput {
13171	s.Type = &v
13172	return s
13173}
13174
13175// SetTypeArn sets the TypeArn field's value.
13176func (s *ListTypeRegistrationsInput) SetTypeArn(v string) *ListTypeRegistrationsInput {
13177	s.TypeArn = &v
13178	return s
13179}
13180
13181// SetTypeName sets the TypeName field's value.
13182func (s *ListTypeRegistrationsInput) SetTypeName(v string) *ListTypeRegistrationsInput {
13183	s.TypeName = &v
13184	return s
13185}
13186
13187type ListTypeRegistrationsOutput struct {
13188	_ struct{} `type:"structure"`
13189
13190	// If the request doesn't return all of the remaining results, NextToken is
13191	// set to a token. To retrieve the next set of results, call this action again
13192	// and assign that token to the request object's NextToken parameter. If the
13193	// request returns all results, NextToken is set to null.
13194	NextToken *string `min:"1" type:"string"`
13195
13196	// A list of extension registration tokens.
13197	//
13198	// Use DescribeTypeRegistration to return detailed information about a type
13199	// registration request.
13200	RegistrationTokenList []*string `type:"list"`
13201}
13202
13203// String returns the string representation
13204func (s ListTypeRegistrationsOutput) String() string {
13205	return awsutil.Prettify(s)
13206}
13207
13208// GoString returns the string representation
13209func (s ListTypeRegistrationsOutput) GoString() string {
13210	return s.String()
13211}
13212
13213// SetNextToken sets the NextToken field's value.
13214func (s *ListTypeRegistrationsOutput) SetNextToken(v string) *ListTypeRegistrationsOutput {
13215	s.NextToken = &v
13216	return s
13217}
13218
13219// SetRegistrationTokenList sets the RegistrationTokenList field's value.
13220func (s *ListTypeRegistrationsOutput) SetRegistrationTokenList(v []*string) *ListTypeRegistrationsOutput {
13221	s.RegistrationTokenList = v
13222	return s
13223}
13224
13225type ListTypeVersionsInput struct {
13226	_ struct{} `type:"structure"`
13227
13228	// The Amazon Resource Name (ARN) of the extension for which you want version
13229	// summary information.
13230	//
13231	// Conditional: You must specify either TypeName and Type, or Arn.
13232	Arn *string `type:"string"`
13233
13234	// The deprecation status of the extension versions that you want to get summary
13235	// information about.
13236	//
13237	// Valid values include:
13238	//
13239	//    * LIVE: The extension version is registered and can be used in CloudFormation
13240	//    operations, dependent on its provisioning behavior and visibility scope.
13241	//
13242	//    * DEPRECATED: The extension version has been deregistered and can no longer
13243	//    be used in CloudFormation operations.
13244	//
13245	// The default is LIVE.
13246	DeprecatedStatus *string `type:"string" enum:"DeprecatedStatus"`
13247
13248	// The maximum number of results to be returned with a single call. If the number
13249	// of available results exceeds this maximum, the response includes a NextToken
13250	// value that you can assign to the NextToken request parameter to get the next
13251	// set of results.
13252	MaxResults *int64 `min:"1" type:"integer"`
13253
13254	// If the previous paginated request didn't return all of the remaining results,
13255	// the response object's NextToken parameter value is set to a token. To retrieve
13256	// the next set of results, call this action again and assign that token to
13257	// the request object's NextToken parameter. If there are no remaining results,
13258	// the previous response object's NextToken parameter is set to null.
13259	NextToken *string `min:"1" type:"string"`
13260
13261	// The publisher ID of the extension publisher.
13262	//
13263	// Extensions published by Amazon are not assigned a publisher ID.
13264	PublisherId *string `min:"1" type:"string"`
13265
13266	// The kind of the extension.
13267	//
13268	// Conditional: You must specify either TypeName and Type, or Arn.
13269	Type *string `type:"string" enum:"RegistryType"`
13270
13271	// The name of the extension for which you want version summary information.
13272	//
13273	// Conditional: You must specify either TypeName and Type, or Arn.
13274	TypeName *string `min:"10" type:"string"`
13275}
13276
13277// String returns the string representation
13278func (s ListTypeVersionsInput) String() string {
13279	return awsutil.Prettify(s)
13280}
13281
13282// GoString returns the string representation
13283func (s ListTypeVersionsInput) GoString() string {
13284	return s.String()
13285}
13286
13287// Validate inspects the fields of the type to determine if they are valid.
13288func (s *ListTypeVersionsInput) Validate() error {
13289	invalidParams := request.ErrInvalidParams{Context: "ListTypeVersionsInput"}
13290	if s.MaxResults != nil && *s.MaxResults < 1 {
13291		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
13292	}
13293	if s.NextToken != nil && len(*s.NextToken) < 1 {
13294		invalidParams.Add(request.NewErrParamMinLen("NextToken", 1))
13295	}
13296	if s.PublisherId != nil && len(*s.PublisherId) < 1 {
13297		invalidParams.Add(request.NewErrParamMinLen("PublisherId", 1))
13298	}
13299	if s.TypeName != nil && len(*s.TypeName) < 10 {
13300		invalidParams.Add(request.NewErrParamMinLen("TypeName", 10))
13301	}
13302
13303	if invalidParams.Len() > 0 {
13304		return invalidParams
13305	}
13306	return nil
13307}
13308
13309// SetArn sets the Arn field's value.
13310func (s *ListTypeVersionsInput) SetArn(v string) *ListTypeVersionsInput {
13311	s.Arn = &v
13312	return s
13313}
13314
13315// SetDeprecatedStatus sets the DeprecatedStatus field's value.
13316func (s *ListTypeVersionsInput) SetDeprecatedStatus(v string) *ListTypeVersionsInput {
13317	s.DeprecatedStatus = &v
13318	return s
13319}
13320
13321// SetMaxResults sets the MaxResults field's value.
13322func (s *ListTypeVersionsInput) SetMaxResults(v int64) *ListTypeVersionsInput {
13323	s.MaxResults = &v
13324	return s
13325}
13326
13327// SetNextToken sets the NextToken field's value.
13328func (s *ListTypeVersionsInput) SetNextToken(v string) *ListTypeVersionsInput {
13329	s.NextToken = &v
13330	return s
13331}
13332
13333// SetPublisherId sets the PublisherId field's value.
13334func (s *ListTypeVersionsInput) SetPublisherId(v string) *ListTypeVersionsInput {
13335	s.PublisherId = &v
13336	return s
13337}
13338
13339// SetType sets the Type field's value.
13340func (s *ListTypeVersionsInput) SetType(v string) *ListTypeVersionsInput {
13341	s.Type = &v
13342	return s
13343}
13344
13345// SetTypeName sets the TypeName field's value.
13346func (s *ListTypeVersionsInput) SetTypeName(v string) *ListTypeVersionsInput {
13347	s.TypeName = &v
13348	return s
13349}
13350
13351type ListTypeVersionsOutput struct {
13352	_ struct{} `type:"structure"`
13353
13354	// If the request doesn't return all of the remaining results, NextToken is
13355	// set to a token. To retrieve the next set of results, call this action again
13356	// and assign that token to the request object's NextToken parameter. If the
13357	// request returns all results, NextToken is set to null.
13358	NextToken *string `min:"1" type:"string"`
13359
13360	// A list of TypeVersionSummary structures that contain information about the
13361	// specified extension's versions.
13362	TypeVersionSummaries []*TypeVersionSummary `type:"list"`
13363}
13364
13365// String returns the string representation
13366func (s ListTypeVersionsOutput) String() string {
13367	return awsutil.Prettify(s)
13368}
13369
13370// GoString returns the string representation
13371func (s ListTypeVersionsOutput) GoString() string {
13372	return s.String()
13373}
13374
13375// SetNextToken sets the NextToken field's value.
13376func (s *ListTypeVersionsOutput) SetNextToken(v string) *ListTypeVersionsOutput {
13377	s.NextToken = &v
13378	return s
13379}
13380
13381// SetTypeVersionSummaries sets the TypeVersionSummaries field's value.
13382func (s *ListTypeVersionsOutput) SetTypeVersionSummaries(v []*TypeVersionSummary) *ListTypeVersionsOutput {
13383	s.TypeVersionSummaries = v
13384	return s
13385}
13386
13387type ListTypesInput struct {
13388	_ struct{} `type:"structure"`
13389
13390	// The deprecation status of the extension that you want to get summary information
13391	// about.
13392	//
13393	// Valid values include:
13394	//
13395	//    * LIVE: The extension is registered for use in CloudFormation operations.
13396	//
13397	//    * DEPRECATED: The extension has been deregistered and can no longer be
13398	//    used in CloudFormation operations.
13399	DeprecatedStatus *string `type:"string" enum:"DeprecatedStatus"`
13400
13401	// Filter criteria to use in determining which extensions to return.
13402	//
13403	// If you specify a filter, CloudFormation ignores any specified Visibility
13404	// value when returning the list of types.
13405	Filters *TypeFilters `type:"structure"`
13406
13407	// The maximum number of results to be returned with a single call. If the number
13408	// of available results exceeds this maximum, the response includes a NextToken
13409	// value that you can assign to the NextToken request parameter to get the next
13410	// set of results.
13411	MaxResults *int64 `min:"1" type:"integer"`
13412
13413	// If the previous paginated request didn't return all of the remaining results,
13414	// the response object's NextToken parameter value is set to a token. To retrieve
13415	// the next set of results, call this action again and assign that token to
13416	// the request object's NextToken parameter. If there are no remaining results,
13417	// the previous response object's NextToken parameter is set to null.
13418	NextToken *string `min:"1" type:"string"`
13419
13420	// For resource types, the provisioning behavior of the resource type. AWS CloudFormation
13421	// determines the provisioning type during registration, based on the types
13422	// of handlers in the schema handler package submitted.
13423	//
13424	// Valid values include:
13425	//
13426	//    * FULLY_MUTABLE: The resource type includes an update handler to process
13427	//    updates to the type during stack update operations.
13428	//
13429	//    * IMMUTABLE: The resource type does not include an update handler, so
13430	//    the type cannot be updated and must instead be replaced during stack update
13431	//    operations.
13432	//
13433	//    * NON_PROVISIONABLE: The resource type does not include create, read,
13434	//    and delete handlers, and therefore cannot actually be provisioned.
13435	//
13436	// The default is FULLY_MUTABLE.
13437	ProvisioningType *string `type:"string" enum:"ProvisioningType"`
13438
13439	// The type of extension.
13440	Type *string `type:"string" enum:"RegistryType"`
13441
13442	// The scope at which the extensions are visible and usable in CloudFormation
13443	// operations.
13444	//
13445	// Valid values include:
13446	//
13447	//    * PRIVATE: Extensions that are visible and usable within this account
13448	//    and region. This includes: Private extensions you have registered in this
13449	//    account and region. Public extensions that you have activated in this
13450	//    account and region.
13451	//
13452	//    * PUBLIC: Extensions that are publicly visible and available to be activated
13453	//    within any Amazon account. This includes extensions from Amazon, as well
13454	//    as third-party publishers.
13455	//
13456	// The default is PRIVATE.
13457	Visibility *string `type:"string" enum:"Visibility"`
13458}
13459
13460// String returns the string representation
13461func (s ListTypesInput) String() string {
13462	return awsutil.Prettify(s)
13463}
13464
13465// GoString returns the string representation
13466func (s ListTypesInput) GoString() string {
13467	return s.String()
13468}
13469
13470// Validate inspects the fields of the type to determine if they are valid.
13471func (s *ListTypesInput) Validate() error {
13472	invalidParams := request.ErrInvalidParams{Context: "ListTypesInput"}
13473	if s.MaxResults != nil && *s.MaxResults < 1 {
13474		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
13475	}
13476	if s.NextToken != nil && len(*s.NextToken) < 1 {
13477		invalidParams.Add(request.NewErrParamMinLen("NextToken", 1))
13478	}
13479	if s.Filters != nil {
13480		if err := s.Filters.Validate(); err != nil {
13481			invalidParams.AddNested("Filters", err.(request.ErrInvalidParams))
13482		}
13483	}
13484
13485	if invalidParams.Len() > 0 {
13486		return invalidParams
13487	}
13488	return nil
13489}
13490
13491// SetDeprecatedStatus sets the DeprecatedStatus field's value.
13492func (s *ListTypesInput) SetDeprecatedStatus(v string) *ListTypesInput {
13493	s.DeprecatedStatus = &v
13494	return s
13495}
13496
13497// SetFilters sets the Filters field's value.
13498func (s *ListTypesInput) SetFilters(v *TypeFilters) *ListTypesInput {
13499	s.Filters = v
13500	return s
13501}
13502
13503// SetMaxResults sets the MaxResults field's value.
13504func (s *ListTypesInput) SetMaxResults(v int64) *ListTypesInput {
13505	s.MaxResults = &v
13506	return s
13507}
13508
13509// SetNextToken sets the NextToken field's value.
13510func (s *ListTypesInput) SetNextToken(v string) *ListTypesInput {
13511	s.NextToken = &v
13512	return s
13513}
13514
13515// SetProvisioningType sets the ProvisioningType field's value.
13516func (s *ListTypesInput) SetProvisioningType(v string) *ListTypesInput {
13517	s.ProvisioningType = &v
13518	return s
13519}
13520
13521// SetType sets the Type field's value.
13522func (s *ListTypesInput) SetType(v string) *ListTypesInput {
13523	s.Type = &v
13524	return s
13525}
13526
13527// SetVisibility sets the Visibility field's value.
13528func (s *ListTypesInput) SetVisibility(v string) *ListTypesInput {
13529	s.Visibility = &v
13530	return s
13531}
13532
13533type ListTypesOutput struct {
13534	_ struct{} `type:"structure"`
13535
13536	// If the request doesn't return all of the remaining results, NextToken is
13537	// set to a token. To retrieve the next set of results, call this action again
13538	// and assign that token to the request object's NextToken parameter. If the
13539	// request returns all results, NextToken is set to null.
13540	NextToken *string `min:"1" type:"string"`
13541
13542	// A list of TypeSummary structures that contain information about the specified
13543	// extensions.
13544	TypeSummaries []*TypeSummary `type:"list"`
13545}
13546
13547// String returns the string representation
13548func (s ListTypesOutput) String() string {
13549	return awsutil.Prettify(s)
13550}
13551
13552// GoString returns the string representation
13553func (s ListTypesOutput) GoString() string {
13554	return s.String()
13555}
13556
13557// SetNextToken sets the NextToken field's value.
13558func (s *ListTypesOutput) SetNextToken(v string) *ListTypesOutput {
13559	s.NextToken = &v
13560	return s
13561}
13562
13563// SetTypeSummaries sets the TypeSummaries field's value.
13564func (s *ListTypesOutput) SetTypeSummaries(v []*TypeSummary) *ListTypesOutput {
13565	s.TypeSummaries = v
13566	return s
13567}
13568
13569// Contains logging configuration information for an extension.
13570type LoggingConfig struct {
13571	_ struct{} `type:"structure"`
13572
13573	// The Amazon CloudWatch log group to which CloudFormation sends error logging
13574	// information when invoking the extension's handlers.
13575	//
13576	// LogGroupName is a required field
13577	LogGroupName *string `min:"1" type:"string" required:"true"`
13578
13579	// The ARN of the role that CloudFormation should assume when sending log entries
13580	// to CloudWatch logs.
13581	//
13582	// LogRoleArn is a required field
13583	LogRoleArn *string `min:"1" type:"string" required:"true"`
13584}
13585
13586// String returns the string representation
13587func (s LoggingConfig) String() string {
13588	return awsutil.Prettify(s)
13589}
13590
13591// GoString returns the string representation
13592func (s LoggingConfig) GoString() string {
13593	return s.String()
13594}
13595
13596// Validate inspects the fields of the type to determine if they are valid.
13597func (s *LoggingConfig) Validate() error {
13598	invalidParams := request.ErrInvalidParams{Context: "LoggingConfig"}
13599	if s.LogGroupName == nil {
13600		invalidParams.Add(request.NewErrParamRequired("LogGroupName"))
13601	}
13602	if s.LogGroupName != nil && len(*s.LogGroupName) < 1 {
13603		invalidParams.Add(request.NewErrParamMinLen("LogGroupName", 1))
13604	}
13605	if s.LogRoleArn == nil {
13606		invalidParams.Add(request.NewErrParamRequired("LogRoleArn"))
13607	}
13608	if s.LogRoleArn != nil && len(*s.LogRoleArn) < 1 {
13609		invalidParams.Add(request.NewErrParamMinLen("LogRoleArn", 1))
13610	}
13611
13612	if invalidParams.Len() > 0 {
13613		return invalidParams
13614	}
13615	return nil
13616}
13617
13618// SetLogGroupName sets the LogGroupName field's value.
13619func (s *LoggingConfig) SetLogGroupName(v string) *LoggingConfig {
13620	s.LogGroupName = &v
13621	return s
13622}
13623
13624// SetLogRoleArn sets the LogRoleArn field's value.
13625func (s *LoggingConfig) SetLogRoleArn(v string) *LoggingConfig {
13626	s.LogRoleArn = &v
13627	return s
13628}
13629
13630// Contains information about the module from which the resource was created,
13631// if the resource was created from a module included in the stack template.
13632//
13633// For more information on modules, see Using modules to encapsulate and reuse
13634// resource configurations (AWSCloudFormation/latest/UserGuide/modules.html)
13635// in the CloudFormation User Guide.
13636type ModuleInfo struct {
13637	_ struct{} `type:"structure"`
13638
13639	// A concantenated list of the logical IDs of the module or modules containing
13640	// the resource. Modules are listed starting with the inner-most nested module,
13641	// and separated by /.
13642	//
13643	// In the following example, the resource was created from a module, moduleA,
13644	// that is nested inside a parent module, moduleB.
13645	//
13646	// moduleA/moduleB
13647	//
13648	// For more information, see Referencing resources in a module (AWSCloudFormation/latest/UserGuide/modules.html#module-ref-resources)
13649	// in the CloudFormation User Guide.
13650	LogicalIdHierarchy *string `type:"string"`
13651
13652	// A concantenated list of the the module type or types containing the resource.
13653	// Module types are listed starting with the inner-most nested module, and separated
13654	// by /.
13655	//
13656	// In the following example, the resource was created from a module of type
13657	// AWS::First::Example::MODULE, that is nested inside a parent module of type
13658	// AWS::Second::Example::MODULE.
13659	//
13660	// AWS::First::Example::MODULE/AWS::Second::Example::MODULE
13661	TypeHierarchy *string `type:"string"`
13662}
13663
13664// String returns the string representation
13665func (s ModuleInfo) String() string {
13666	return awsutil.Prettify(s)
13667}
13668
13669// GoString returns the string representation
13670func (s ModuleInfo) GoString() string {
13671	return s.String()
13672}
13673
13674// SetLogicalIdHierarchy sets the LogicalIdHierarchy field's value.
13675func (s *ModuleInfo) SetLogicalIdHierarchy(v string) *ModuleInfo {
13676	s.LogicalIdHierarchy = &v
13677	return s
13678}
13679
13680// SetTypeHierarchy sets the TypeHierarchy field's value.
13681func (s *ModuleInfo) SetTypeHierarchy(v string) *ModuleInfo {
13682	s.TypeHierarchy = &v
13683	return s
13684}
13685
13686// The Output data type.
13687type Output struct {
13688	_ struct{} `type:"structure"`
13689
13690	// User defined description associated with the output.
13691	Description *string `min:"1" type:"string"`
13692
13693	// The name of the export associated with the output.
13694	ExportName *string `type:"string"`
13695
13696	// The key associated with the output.
13697	OutputKey *string `type:"string"`
13698
13699	// The value associated with the output.
13700	OutputValue *string `type:"string"`
13701}
13702
13703// String returns the string representation
13704func (s Output) String() string {
13705	return awsutil.Prettify(s)
13706}
13707
13708// GoString returns the string representation
13709func (s Output) GoString() string {
13710	return s.String()
13711}
13712
13713// SetDescription sets the Description field's value.
13714func (s *Output) SetDescription(v string) *Output {
13715	s.Description = &v
13716	return s
13717}
13718
13719// SetExportName sets the ExportName field's value.
13720func (s *Output) SetExportName(v string) *Output {
13721	s.ExportName = &v
13722	return s
13723}
13724
13725// SetOutputKey sets the OutputKey field's value.
13726func (s *Output) SetOutputKey(v string) *Output {
13727	s.OutputKey = &v
13728	return s
13729}
13730
13731// SetOutputValue sets the OutputValue field's value.
13732func (s *Output) SetOutputValue(v string) *Output {
13733	s.OutputValue = &v
13734	return s
13735}
13736
13737// The Parameter data type.
13738type Parameter struct {
13739	_ struct{} `type:"structure"`
13740
13741	// The key associated with the parameter. If you don't specify a key and value
13742	// for a particular parameter, AWS CloudFormation uses the default value that
13743	// is specified in your template.
13744	ParameterKey *string `type:"string"`
13745
13746	// The input value associated with the parameter.
13747	ParameterValue *string `type:"string"`
13748
13749	// Read-only. The value that corresponds to a Systems Manager parameter key.
13750	// 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)
13751	// in the template.
13752	ResolvedValue *string `type:"string"`
13753
13754	// During a stack update, use the existing parameter value that the stack is
13755	// using for a given parameter key. If you specify true, do not specify a parameter
13756	// value.
13757	UsePreviousValue *bool `type:"boolean"`
13758}
13759
13760// String returns the string representation
13761func (s Parameter) String() string {
13762	return awsutil.Prettify(s)
13763}
13764
13765// GoString returns the string representation
13766func (s Parameter) GoString() string {
13767	return s.String()
13768}
13769
13770// SetParameterKey sets the ParameterKey field's value.
13771func (s *Parameter) SetParameterKey(v string) *Parameter {
13772	s.ParameterKey = &v
13773	return s
13774}
13775
13776// SetParameterValue sets the ParameterValue field's value.
13777func (s *Parameter) SetParameterValue(v string) *Parameter {
13778	s.ParameterValue = &v
13779	return s
13780}
13781
13782// SetResolvedValue sets the ResolvedValue field's value.
13783func (s *Parameter) SetResolvedValue(v string) *Parameter {
13784	s.ResolvedValue = &v
13785	return s
13786}
13787
13788// SetUsePreviousValue sets the UsePreviousValue field's value.
13789func (s *Parameter) SetUsePreviousValue(v bool) *Parameter {
13790	s.UsePreviousValue = &v
13791	return s
13792}
13793
13794// A set of criteria that AWS CloudFormation uses to validate parameter values.
13795// Although other constraints might be defined in the stack template, AWS CloudFormation
13796// returns only the AllowedValues property.
13797type ParameterConstraints struct {
13798	_ struct{} `type:"structure"`
13799
13800	// A list of values that are permitted for a parameter.
13801	AllowedValues []*string `type:"list"`
13802}
13803
13804// String returns the string representation
13805func (s ParameterConstraints) String() string {
13806	return awsutil.Prettify(s)
13807}
13808
13809// GoString returns the string representation
13810func (s ParameterConstraints) GoString() string {
13811	return s.String()
13812}
13813
13814// SetAllowedValues sets the AllowedValues field's value.
13815func (s *ParameterConstraints) SetAllowedValues(v []*string) *ParameterConstraints {
13816	s.AllowedValues = v
13817	return s
13818}
13819
13820// The ParameterDeclaration data type.
13821type ParameterDeclaration struct {
13822	_ struct{} `type:"structure"`
13823
13824	// The default value of the parameter.
13825	DefaultValue *string `type:"string"`
13826
13827	// The description that is associate with the parameter.
13828	Description *string `min:"1" type:"string"`
13829
13830	// Flag that indicates whether the parameter value is shown as plain text in
13831	// logs and in the AWS Management Console.
13832	NoEcho *bool `type:"boolean"`
13833
13834	// The criteria that AWS CloudFormation uses to validate parameter values.
13835	ParameterConstraints *ParameterConstraints `type:"structure"`
13836
13837	// The name that is associated with the parameter.
13838	ParameterKey *string `type:"string"`
13839
13840	// The type of parameter.
13841	ParameterType *string `type:"string"`
13842}
13843
13844// String returns the string representation
13845func (s ParameterDeclaration) String() string {
13846	return awsutil.Prettify(s)
13847}
13848
13849// GoString returns the string representation
13850func (s ParameterDeclaration) GoString() string {
13851	return s.String()
13852}
13853
13854// SetDefaultValue sets the DefaultValue field's value.
13855func (s *ParameterDeclaration) SetDefaultValue(v string) *ParameterDeclaration {
13856	s.DefaultValue = &v
13857	return s
13858}
13859
13860// SetDescription sets the Description field's value.
13861func (s *ParameterDeclaration) SetDescription(v string) *ParameterDeclaration {
13862	s.Description = &v
13863	return s
13864}
13865
13866// SetNoEcho sets the NoEcho field's value.
13867func (s *ParameterDeclaration) SetNoEcho(v bool) *ParameterDeclaration {
13868	s.NoEcho = &v
13869	return s
13870}
13871
13872// SetParameterConstraints sets the ParameterConstraints field's value.
13873func (s *ParameterDeclaration) SetParameterConstraints(v *ParameterConstraints) *ParameterDeclaration {
13874	s.ParameterConstraints = v
13875	return s
13876}
13877
13878// SetParameterKey sets the ParameterKey field's value.
13879func (s *ParameterDeclaration) SetParameterKey(v string) *ParameterDeclaration {
13880	s.ParameterKey = &v
13881	return s
13882}
13883
13884// SetParameterType sets the ParameterType field's value.
13885func (s *ParameterDeclaration) SetParameterType(v string) *ParameterDeclaration {
13886	s.ParameterType = &v
13887	return s
13888}
13889
13890// Context information that enables AWS CloudFormation to uniquely identify
13891// a resource. AWS CloudFormation uses context key-value pairs in cases where
13892// a resource's logical and physical IDs are not enough to uniquely identify
13893// that resource. Each context key-value pair specifies a resource that contains
13894// the targeted resource.
13895type PhysicalResourceIdContextKeyValuePair struct {
13896	_ struct{} `type:"structure"`
13897
13898	// The resource context key.
13899	//
13900	// Key is a required field
13901	Key *string `type:"string" required:"true"`
13902
13903	// The resource context value.
13904	//
13905	// Value is a required field
13906	Value *string `type:"string" required:"true"`
13907}
13908
13909// String returns the string representation
13910func (s PhysicalResourceIdContextKeyValuePair) String() string {
13911	return awsutil.Prettify(s)
13912}
13913
13914// GoString returns the string representation
13915func (s PhysicalResourceIdContextKeyValuePair) GoString() string {
13916	return s.String()
13917}
13918
13919// SetKey sets the Key field's value.
13920func (s *PhysicalResourceIdContextKeyValuePair) SetKey(v string) *PhysicalResourceIdContextKeyValuePair {
13921	s.Key = &v
13922	return s
13923}
13924
13925// SetValue sets the Value field's value.
13926func (s *PhysicalResourceIdContextKeyValuePair) SetValue(v string) *PhysicalResourceIdContextKeyValuePair {
13927	s.Value = &v
13928	return s
13929}
13930
13931// Information about a resource property whose actual value differs from its
13932// expected value, as defined in the stack template and any values specified
13933// as template parameters. These will be present only for resources whose StackResourceDriftStatus
13934// is MODIFIED. For more information, see Detecting Unregulated Configuration
13935// Changes to Stacks and Resources (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-stack-drift.html).
13936type PropertyDifference struct {
13937	_ struct{} `type:"structure"`
13938
13939	// The actual property value of the resource property.
13940	//
13941	// ActualValue is a required field
13942	ActualValue *string `type:"string" required:"true"`
13943
13944	// The type of property difference.
13945	//
13946	//    * ADD: A value has been added to a resource property that is an array
13947	//    or list data type.
13948	//
13949	//    * REMOVE: The property has been removed from the current resource configuration.
13950	//
13951	//    * NOT_EQUAL: The current property value differs from its expected value
13952	//    (as defined in the stack template and any values specified as template
13953	//    parameters).
13954	//
13955	// DifferenceType is a required field
13956	DifferenceType *string `type:"string" required:"true" enum:"DifferenceType"`
13957
13958	// The expected property value of the resource property, as defined in the stack
13959	// template and any values specified as template parameters.
13960	//
13961	// ExpectedValue is a required field
13962	ExpectedValue *string `type:"string" required:"true"`
13963
13964	// The fully-qualified path to the resource property.
13965	//
13966	// PropertyPath is a required field
13967	PropertyPath *string `type:"string" required:"true"`
13968}
13969
13970// String returns the string representation
13971func (s PropertyDifference) String() string {
13972	return awsutil.Prettify(s)
13973}
13974
13975// GoString returns the string representation
13976func (s PropertyDifference) GoString() string {
13977	return s.String()
13978}
13979
13980// SetActualValue sets the ActualValue field's value.
13981func (s *PropertyDifference) SetActualValue(v string) *PropertyDifference {
13982	s.ActualValue = &v
13983	return s
13984}
13985
13986// SetDifferenceType sets the DifferenceType field's value.
13987func (s *PropertyDifference) SetDifferenceType(v string) *PropertyDifference {
13988	s.DifferenceType = &v
13989	return s
13990}
13991
13992// SetExpectedValue sets the ExpectedValue field's value.
13993func (s *PropertyDifference) SetExpectedValue(v string) *PropertyDifference {
13994	s.ExpectedValue = &v
13995	return s
13996}
13997
13998// SetPropertyPath sets the PropertyPath field's value.
13999func (s *PropertyDifference) SetPropertyPath(v string) *PropertyDifference {
14000	s.PropertyPath = &v
14001	return s
14002}
14003
14004type PublishTypeInput struct {
14005	_ struct{} `type:"structure"`
14006
14007	// The Amazon Resource Number (ARN) of the extension.
14008	//
14009	// Conditional: You must specify Arn, or TypeName and Type.
14010	Arn *string `type:"string"`
14011
14012	// The version number to assign to this version of the extension.
14013	//
14014	// Use the following format, and adhere to semantic versioning when assigning
14015	// a version number to your extension:
14016	//
14017	// MAJOR.MINOR.PATCH
14018	//
14019	// For more information, see Semantic Versioning 2.0.0 (https://semver.org/).
14020	//
14021	// If you do not specify a version number, CloudFormation increments the version
14022	// number by one minor version release.
14023	PublicVersionNumber *string `min:"5" type:"string"`
14024
14025	// The type of the extension.
14026	//
14027	// Conditional: You must specify Arn, or TypeName and Type.
14028	Type *string `type:"string" enum:"ThirdPartyType"`
14029
14030	// The name of the extension.
14031	//
14032	// Conditional: You must specify Arn, or TypeName and Type.
14033	TypeName *string `min:"10" type:"string"`
14034}
14035
14036// String returns the string representation
14037func (s PublishTypeInput) String() string {
14038	return awsutil.Prettify(s)
14039}
14040
14041// GoString returns the string representation
14042func (s PublishTypeInput) GoString() string {
14043	return s.String()
14044}
14045
14046// Validate inspects the fields of the type to determine if they are valid.
14047func (s *PublishTypeInput) Validate() error {
14048	invalidParams := request.ErrInvalidParams{Context: "PublishTypeInput"}
14049	if s.PublicVersionNumber != nil && len(*s.PublicVersionNumber) < 5 {
14050		invalidParams.Add(request.NewErrParamMinLen("PublicVersionNumber", 5))
14051	}
14052	if s.TypeName != nil && len(*s.TypeName) < 10 {
14053		invalidParams.Add(request.NewErrParamMinLen("TypeName", 10))
14054	}
14055
14056	if invalidParams.Len() > 0 {
14057		return invalidParams
14058	}
14059	return nil
14060}
14061
14062// SetArn sets the Arn field's value.
14063func (s *PublishTypeInput) SetArn(v string) *PublishTypeInput {
14064	s.Arn = &v
14065	return s
14066}
14067
14068// SetPublicVersionNumber sets the PublicVersionNumber field's value.
14069func (s *PublishTypeInput) SetPublicVersionNumber(v string) *PublishTypeInput {
14070	s.PublicVersionNumber = &v
14071	return s
14072}
14073
14074// SetType sets the Type field's value.
14075func (s *PublishTypeInput) SetType(v string) *PublishTypeInput {
14076	s.Type = &v
14077	return s
14078}
14079
14080// SetTypeName sets the TypeName field's value.
14081func (s *PublishTypeInput) SetTypeName(v string) *PublishTypeInput {
14082	s.TypeName = &v
14083	return s
14084}
14085
14086type PublishTypeOutput struct {
14087	_ struct{} `type:"structure"`
14088
14089	// The Amazon Resource Number (ARN) assigned to the public extension upon publication.
14090	PublicTypeArn *string `type:"string"`
14091}
14092
14093// String returns the string representation
14094func (s PublishTypeOutput) String() string {
14095	return awsutil.Prettify(s)
14096}
14097
14098// GoString returns the string representation
14099func (s PublishTypeOutput) GoString() string {
14100	return s.String()
14101}
14102
14103// SetPublicTypeArn sets the PublicTypeArn field's value.
14104func (s *PublishTypeOutput) SetPublicTypeArn(v string) *PublishTypeOutput {
14105	s.PublicTypeArn = &v
14106	return s
14107}
14108
14109type RecordHandlerProgressInput struct {
14110	_ struct{} `type:"structure"`
14111
14112	// Reserved for use by the CloudFormation CLI (https://docs.aws.amazon.com/cloudformation-cli/latest/userguide/what-is-cloudformation-cli.html).
14113	//
14114	// BearerToken is a required field
14115	BearerToken *string `min:"1" type:"string" required:"true"`
14116
14117	// Reserved for use by the CloudFormation CLI (https://docs.aws.amazon.com/cloudformation-cli/latest/userguide/what-is-cloudformation-cli.html).
14118	ClientRequestToken *string `min:"1" type:"string"`
14119
14120	// Reserved for use by the CloudFormation CLI (https://docs.aws.amazon.com/cloudformation-cli/latest/userguide/what-is-cloudformation-cli.html).
14121	CurrentOperationStatus *string `type:"string" enum:"OperationStatus"`
14122
14123	// Reserved for use by the CloudFormation CLI (https://docs.aws.amazon.com/cloudformation-cli/latest/userguide/what-is-cloudformation-cli.html).
14124	ErrorCode *string `type:"string" enum:"HandlerErrorCode"`
14125
14126	// Reserved for use by the CloudFormation CLI (https://docs.aws.amazon.com/cloudformation-cli/latest/userguide/what-is-cloudformation-cli.html).
14127	//
14128	// OperationStatus is a required field
14129	OperationStatus *string `type:"string" required:"true" enum:"OperationStatus"`
14130
14131	// Reserved for use by the CloudFormation CLI (https://docs.aws.amazon.com/cloudformation-cli/latest/userguide/what-is-cloudformation-cli.html).
14132	ResourceModel *string `min:"1" type:"string"`
14133
14134	// Reserved for use by the CloudFormation CLI (https://docs.aws.amazon.com/cloudformation-cli/latest/userguide/what-is-cloudformation-cli.html).
14135	StatusMessage *string `type:"string"`
14136}
14137
14138// String returns the string representation
14139func (s RecordHandlerProgressInput) String() string {
14140	return awsutil.Prettify(s)
14141}
14142
14143// GoString returns the string representation
14144func (s RecordHandlerProgressInput) GoString() string {
14145	return s.String()
14146}
14147
14148// Validate inspects the fields of the type to determine if they are valid.
14149func (s *RecordHandlerProgressInput) Validate() error {
14150	invalidParams := request.ErrInvalidParams{Context: "RecordHandlerProgressInput"}
14151	if s.BearerToken == nil {
14152		invalidParams.Add(request.NewErrParamRequired("BearerToken"))
14153	}
14154	if s.BearerToken != nil && len(*s.BearerToken) < 1 {
14155		invalidParams.Add(request.NewErrParamMinLen("BearerToken", 1))
14156	}
14157	if s.ClientRequestToken != nil && len(*s.ClientRequestToken) < 1 {
14158		invalidParams.Add(request.NewErrParamMinLen("ClientRequestToken", 1))
14159	}
14160	if s.OperationStatus == nil {
14161		invalidParams.Add(request.NewErrParamRequired("OperationStatus"))
14162	}
14163	if s.ResourceModel != nil && len(*s.ResourceModel) < 1 {
14164		invalidParams.Add(request.NewErrParamMinLen("ResourceModel", 1))
14165	}
14166
14167	if invalidParams.Len() > 0 {
14168		return invalidParams
14169	}
14170	return nil
14171}
14172
14173// SetBearerToken sets the BearerToken field's value.
14174func (s *RecordHandlerProgressInput) SetBearerToken(v string) *RecordHandlerProgressInput {
14175	s.BearerToken = &v
14176	return s
14177}
14178
14179// SetClientRequestToken sets the ClientRequestToken field's value.
14180func (s *RecordHandlerProgressInput) SetClientRequestToken(v string) *RecordHandlerProgressInput {
14181	s.ClientRequestToken = &v
14182	return s
14183}
14184
14185// SetCurrentOperationStatus sets the CurrentOperationStatus field's value.
14186func (s *RecordHandlerProgressInput) SetCurrentOperationStatus(v string) *RecordHandlerProgressInput {
14187	s.CurrentOperationStatus = &v
14188	return s
14189}
14190
14191// SetErrorCode sets the ErrorCode field's value.
14192func (s *RecordHandlerProgressInput) SetErrorCode(v string) *RecordHandlerProgressInput {
14193	s.ErrorCode = &v
14194	return s
14195}
14196
14197// SetOperationStatus sets the OperationStatus field's value.
14198func (s *RecordHandlerProgressInput) SetOperationStatus(v string) *RecordHandlerProgressInput {
14199	s.OperationStatus = &v
14200	return s
14201}
14202
14203// SetResourceModel sets the ResourceModel field's value.
14204func (s *RecordHandlerProgressInput) SetResourceModel(v string) *RecordHandlerProgressInput {
14205	s.ResourceModel = &v
14206	return s
14207}
14208
14209// SetStatusMessage sets the StatusMessage field's value.
14210func (s *RecordHandlerProgressInput) SetStatusMessage(v string) *RecordHandlerProgressInput {
14211	s.StatusMessage = &v
14212	return s
14213}
14214
14215type RecordHandlerProgressOutput struct {
14216	_ struct{} `type:"structure"`
14217}
14218
14219// String returns the string representation
14220func (s RecordHandlerProgressOutput) String() string {
14221	return awsutil.Prettify(s)
14222}
14223
14224// GoString returns the string representation
14225func (s RecordHandlerProgressOutput) GoString() string {
14226	return s.String()
14227}
14228
14229type RegisterPublisherInput struct {
14230	_ struct{} `type:"structure"`
14231
14232	// Whether you accept the terms and conditions for publishing extensions in
14233	// the CloudFormation registry. You must accept the terms and conditions in
14234	// order to register to publish public extensions to the CloudFormation registry.
14235	//
14236	// The default is false.
14237	AcceptTermsAndConditions *bool `type:"boolean"`
14238
14239	// If you are using a Bitbucket or GitHub account for identity verification,
14240	// the Amazon Resource Name (ARN) for your connection to that account.
14241	//
14242	// For more information, see Registering your account to publish CloudFormation
14243	// extensions (https://docs.aws.amazon.com/cloudformation-cli/latest/userguide/publish-extension.html#publish-extension-prereqs)
14244	// in the CloudFormation CLI User Guide.
14245	ConnectionArn *string `min:"1" type:"string"`
14246}
14247
14248// String returns the string representation
14249func (s RegisterPublisherInput) String() string {
14250	return awsutil.Prettify(s)
14251}
14252
14253// GoString returns the string representation
14254func (s RegisterPublisherInput) GoString() string {
14255	return s.String()
14256}
14257
14258// Validate inspects the fields of the type to determine if they are valid.
14259func (s *RegisterPublisherInput) Validate() error {
14260	invalidParams := request.ErrInvalidParams{Context: "RegisterPublisherInput"}
14261	if s.ConnectionArn != nil && len(*s.ConnectionArn) < 1 {
14262		invalidParams.Add(request.NewErrParamMinLen("ConnectionArn", 1))
14263	}
14264
14265	if invalidParams.Len() > 0 {
14266		return invalidParams
14267	}
14268	return nil
14269}
14270
14271// SetAcceptTermsAndConditions sets the AcceptTermsAndConditions field's value.
14272func (s *RegisterPublisherInput) SetAcceptTermsAndConditions(v bool) *RegisterPublisherInput {
14273	s.AcceptTermsAndConditions = &v
14274	return s
14275}
14276
14277// SetConnectionArn sets the ConnectionArn field's value.
14278func (s *RegisterPublisherInput) SetConnectionArn(v string) *RegisterPublisherInput {
14279	s.ConnectionArn = &v
14280	return s
14281}
14282
14283type RegisterPublisherOutput struct {
14284	_ struct{} `type:"structure"`
14285
14286	// The ID assigned this account by CloudFormation for publishing extensions.
14287	PublisherId *string `min:"1" type:"string"`
14288}
14289
14290// String returns the string representation
14291func (s RegisterPublisherOutput) String() string {
14292	return awsutil.Prettify(s)
14293}
14294
14295// GoString returns the string representation
14296func (s RegisterPublisherOutput) GoString() string {
14297	return s.String()
14298}
14299
14300// SetPublisherId sets the PublisherId field's value.
14301func (s *RegisterPublisherOutput) SetPublisherId(v string) *RegisterPublisherOutput {
14302	s.PublisherId = &v
14303	return s
14304}
14305
14306type RegisterTypeInput struct {
14307	_ struct{} `type:"structure"`
14308
14309	// A unique identifier that acts as an idempotency key for this registration
14310	// request. Specifying a client request token prevents CloudFormation from generating
14311	// more than one version of an extension from the same registeration request,
14312	// even if the request is submitted multiple times.
14313	ClientRequestToken *string `min:"1" type:"string"`
14314
14315	// The Amazon Resource Name (ARN) of the IAM role for CloudFormation to assume
14316	// when invoking the extension.
14317	//
14318	// For CloudFormation to assume the specified execution role, the role must
14319	// contain a trust relationship with the CloudFormation service principle (resources.cloudformation.amazonaws.com).
14320	// For more information on adding trust relationships, see Modifying a role
14321	// trust policy (IAM/latest/UserGuide/roles-managingrole-editing-console.html#roles-managingrole_edit-trust-policy)
14322	// in the AWS Identity and Access Management User Guide.
14323	//
14324	// If your extension calls AWS APIs in any of its handlers, you must create
14325	// an IAM execution role (https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles.html)
14326	// that includes the necessary permissions to call those AWS APIs, and provision
14327	// that execution role in your account. When CloudFormation needs to invoke
14328	// the resource type handler, CloudFormation assumes this execution role to
14329	// create a temporary session token, which it then passes to the resource type
14330	// handler, thereby supplying your resource type with the appropriate credentials.
14331	ExecutionRoleArn *string `min:"1" type:"string"`
14332
14333	// Specifies logging configuration information for an extension.
14334	LoggingConfig *LoggingConfig `type:"structure"`
14335
14336	// A url to the S3 bucket containing the extension project package that contains
14337	// the neccessary files for the extension you want to register.
14338	//
14339	// For information on generating a schema handler package for the extension
14340	// you want to register, see submit (https://docs.aws.amazon.com/cloudformation-cli/latest/userguide/resource-type-cli-submit.html)
14341	// in the CloudFormation CLI User Guide.
14342	//
14343	// The user registering the extension must be able to access the package in
14344	// the S3 bucket. That is, the user needs to have GetObject (https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetObject.html)
14345	// permissions for the schema handler package. For more information, see Actions,
14346	// Resources, and Condition Keys for Amazon S3 (https://docs.aws.amazon.com/IAM/latest/UserGuide/list_amazons3.html)
14347	// in the AWS Identity and Access Management User Guide.
14348	//
14349	// SchemaHandlerPackage is a required field
14350	SchemaHandlerPackage *string `min:"1" type:"string" required:"true"`
14351
14352	// The kind of extension.
14353	Type *string `type:"string" enum:"RegistryType"`
14354
14355	// The name of the extension being registered.
14356	//
14357	// We recommend that extension names adhere to the following patterns:
14358	//
14359	//    * For resource types, company_or_organization::service::type.
14360	//
14361	//    * For modules, company_or_organization::service::type::MODULE.
14362	//
14363	// The following organization namespaces are reserved and cannot be used in
14364	// your extension names:
14365	//
14366	//    * Alexa
14367	//
14368	//    * AMZN
14369	//
14370	//    * Amazon
14371	//
14372	//    * AWS
14373	//
14374	//    * Custom
14375	//
14376	//    * Dev
14377	//
14378	// TypeName is a required field
14379	TypeName *string `min:"10" type:"string" required:"true"`
14380}
14381
14382// String returns the string representation
14383func (s RegisterTypeInput) String() string {
14384	return awsutil.Prettify(s)
14385}
14386
14387// GoString returns the string representation
14388func (s RegisterTypeInput) GoString() string {
14389	return s.String()
14390}
14391
14392// Validate inspects the fields of the type to determine if they are valid.
14393func (s *RegisterTypeInput) Validate() error {
14394	invalidParams := request.ErrInvalidParams{Context: "RegisterTypeInput"}
14395	if s.ClientRequestToken != nil && len(*s.ClientRequestToken) < 1 {
14396		invalidParams.Add(request.NewErrParamMinLen("ClientRequestToken", 1))
14397	}
14398	if s.ExecutionRoleArn != nil && len(*s.ExecutionRoleArn) < 1 {
14399		invalidParams.Add(request.NewErrParamMinLen("ExecutionRoleArn", 1))
14400	}
14401	if s.SchemaHandlerPackage == nil {
14402		invalidParams.Add(request.NewErrParamRequired("SchemaHandlerPackage"))
14403	}
14404	if s.SchemaHandlerPackage != nil && len(*s.SchemaHandlerPackage) < 1 {
14405		invalidParams.Add(request.NewErrParamMinLen("SchemaHandlerPackage", 1))
14406	}
14407	if s.TypeName == nil {
14408		invalidParams.Add(request.NewErrParamRequired("TypeName"))
14409	}
14410	if s.TypeName != nil && len(*s.TypeName) < 10 {
14411		invalidParams.Add(request.NewErrParamMinLen("TypeName", 10))
14412	}
14413	if s.LoggingConfig != nil {
14414		if err := s.LoggingConfig.Validate(); err != nil {
14415			invalidParams.AddNested("LoggingConfig", err.(request.ErrInvalidParams))
14416		}
14417	}
14418
14419	if invalidParams.Len() > 0 {
14420		return invalidParams
14421	}
14422	return nil
14423}
14424
14425// SetClientRequestToken sets the ClientRequestToken field's value.
14426func (s *RegisterTypeInput) SetClientRequestToken(v string) *RegisterTypeInput {
14427	s.ClientRequestToken = &v
14428	return s
14429}
14430
14431// SetExecutionRoleArn sets the ExecutionRoleArn field's value.
14432func (s *RegisterTypeInput) SetExecutionRoleArn(v string) *RegisterTypeInput {
14433	s.ExecutionRoleArn = &v
14434	return s
14435}
14436
14437// SetLoggingConfig sets the LoggingConfig field's value.
14438func (s *RegisterTypeInput) SetLoggingConfig(v *LoggingConfig) *RegisterTypeInput {
14439	s.LoggingConfig = v
14440	return s
14441}
14442
14443// SetSchemaHandlerPackage sets the SchemaHandlerPackage field's value.
14444func (s *RegisterTypeInput) SetSchemaHandlerPackage(v string) *RegisterTypeInput {
14445	s.SchemaHandlerPackage = &v
14446	return s
14447}
14448
14449// SetType sets the Type field's value.
14450func (s *RegisterTypeInput) SetType(v string) *RegisterTypeInput {
14451	s.Type = &v
14452	return s
14453}
14454
14455// SetTypeName sets the TypeName field's value.
14456func (s *RegisterTypeInput) SetTypeName(v string) *RegisterTypeInput {
14457	s.TypeName = &v
14458	return s
14459}
14460
14461type RegisterTypeOutput struct {
14462	_ struct{} `type:"structure"`
14463
14464	// The identifier for this registration request.
14465	//
14466	// Use this registration token when calling DescribeTypeRegistration , which
14467	// returns information about the status and IDs of the extension registration.
14468	RegistrationToken *string `min:"1" type:"string"`
14469}
14470
14471// String returns the string representation
14472func (s RegisterTypeOutput) String() string {
14473	return awsutil.Prettify(s)
14474}
14475
14476// GoString returns the string representation
14477func (s RegisterTypeOutput) GoString() string {
14478	return s.String()
14479}
14480
14481// SetRegistrationToken sets the RegistrationToken field's value.
14482func (s *RegisterTypeOutput) SetRegistrationToken(v string) *RegisterTypeOutput {
14483	s.RegistrationToken = &v
14484	return s
14485}
14486
14487// For extensions that are modules, a public third-party extension that must
14488// be activated in your account in order for the module itself to be activated.
14489//
14490// For more information, see Activating public modules for use in your account
14491// (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/modules.html#module-enabling)
14492// in the AWS CloudFormation User Guide.
14493type RequiredActivatedType struct {
14494	_ struct{} `type:"structure"`
14495
14496	// The type name of the public extension.
14497	//
14498	// If you specified a TypeNameAlias when enabling the extension in this account
14499	// and region, CloudFormation treats that alias as the extension's type name
14500	// within the account and region, not the type name of the public extension.
14501	// 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)
14502	// in the CloudFormation User Guide.
14503	OriginalTypeName *string `min:"10" type:"string"`
14504
14505	// The publisher ID of the extension publisher.
14506	PublisherId *string `min:"1" type:"string"`
14507
14508	// A list of the major versions of the extension type that the macro supports.
14509	SupportedMajorVersions []*int64 `type:"list"`
14510
14511	// An alias assigned to the public extension, in this account and region. If
14512	// you specify an alias for the extension, CloudFormation treats the alias as
14513	// the extension type name within this account and region. You must use the
14514	// alias to refer to the extension in your templates, API calls, and CloudFormation
14515	// console.
14516	TypeNameAlias *string `min:"10" type:"string"`
14517}
14518
14519// String returns the string representation
14520func (s RequiredActivatedType) String() string {
14521	return awsutil.Prettify(s)
14522}
14523
14524// GoString returns the string representation
14525func (s RequiredActivatedType) GoString() string {
14526	return s.String()
14527}
14528
14529// SetOriginalTypeName sets the OriginalTypeName field's value.
14530func (s *RequiredActivatedType) SetOriginalTypeName(v string) *RequiredActivatedType {
14531	s.OriginalTypeName = &v
14532	return s
14533}
14534
14535// SetPublisherId sets the PublisherId field's value.
14536func (s *RequiredActivatedType) SetPublisherId(v string) *RequiredActivatedType {
14537	s.PublisherId = &v
14538	return s
14539}
14540
14541// SetSupportedMajorVersions sets the SupportedMajorVersions field's value.
14542func (s *RequiredActivatedType) SetSupportedMajorVersions(v []*int64) *RequiredActivatedType {
14543	s.SupportedMajorVersions = v
14544	return s
14545}
14546
14547// SetTypeNameAlias sets the TypeNameAlias field's value.
14548func (s *RequiredActivatedType) SetTypeNameAlias(v string) *RequiredActivatedType {
14549	s.TypeNameAlias = &v
14550	return s
14551}
14552
14553// The ResourceChange structure describes the resource and the action that AWS
14554// CloudFormation will perform on it if you execute this change set.
14555type ResourceChange struct {
14556	_ struct{} `type:"structure"`
14557
14558	// The action that AWS CloudFormation takes on the resource, such as Add (adds
14559	// a new resource), Modify (changes a resource), Remove (deletes a resource),
14560	// Import (imports a resource), or Dynamic (exact action for the resource cannot
14561	// be determined).
14562	Action *string `type:"string" enum:"ChangeAction"`
14563
14564	// The change set ID of the nested change set.
14565	ChangeSetId *string `min:"1" type:"string"`
14566
14567	// For the Modify action, a list of ResourceChangeDetail structures that describes
14568	// the changes that AWS CloudFormation will make to the resource.
14569	Details []*ResourceChangeDetail `type:"list"`
14570
14571	// The resource's logical ID, which is defined in the stack's template.
14572	LogicalResourceId *string `type:"string"`
14573
14574	// Contains information about the module from which the resource was created,
14575	// if the resource was created from a module included in the stack template.
14576	ModuleInfo *ModuleInfo `type:"structure"`
14577
14578	// The resource's physical ID (resource name). Resources that you are adding
14579	// don't have physical IDs because they haven't been created.
14580	PhysicalResourceId *string `type:"string"`
14581
14582	// For the Modify action, indicates whether AWS CloudFormation will replace
14583	// the resource by creating a new one and deleting the old one. This value depends
14584	// on the value of the RequiresRecreation property in the ResourceTargetDefinition
14585	// structure. For example, if the RequiresRecreation field is Always and the
14586	// Evaluation field is Static, Replacement is True. If the RequiresRecreation
14587	// field is Always and the Evaluation field is Dynamic, Replacement is Conditionally.
14588	//
14589	// If you have multiple changes with different RequiresRecreation values, the
14590	// Replacement value depends on the change with the most impact. A RequiresRecreation
14591	// value of Always has the most impact, followed by Conditionally, and then
14592	// Never.
14593	Replacement *string `type:"string" enum:"Replacement"`
14594
14595	// The type of AWS CloudFormation resource, such as AWS::S3::Bucket.
14596	ResourceType *string `min:"1" type:"string"`
14597
14598	// For the Modify action, indicates which resource attribute is triggering this
14599	// update, such as a change in the resource attribute's Metadata, Properties,
14600	// or Tags.
14601	Scope []*string `type:"list"`
14602}
14603
14604// String returns the string representation
14605func (s ResourceChange) String() string {
14606	return awsutil.Prettify(s)
14607}
14608
14609// GoString returns the string representation
14610func (s ResourceChange) GoString() string {
14611	return s.String()
14612}
14613
14614// SetAction sets the Action field's value.
14615func (s *ResourceChange) SetAction(v string) *ResourceChange {
14616	s.Action = &v
14617	return s
14618}
14619
14620// SetChangeSetId sets the ChangeSetId field's value.
14621func (s *ResourceChange) SetChangeSetId(v string) *ResourceChange {
14622	s.ChangeSetId = &v
14623	return s
14624}
14625
14626// SetDetails sets the Details field's value.
14627func (s *ResourceChange) SetDetails(v []*ResourceChangeDetail) *ResourceChange {
14628	s.Details = v
14629	return s
14630}
14631
14632// SetLogicalResourceId sets the LogicalResourceId field's value.
14633func (s *ResourceChange) SetLogicalResourceId(v string) *ResourceChange {
14634	s.LogicalResourceId = &v
14635	return s
14636}
14637
14638// SetModuleInfo sets the ModuleInfo field's value.
14639func (s *ResourceChange) SetModuleInfo(v *ModuleInfo) *ResourceChange {
14640	s.ModuleInfo = v
14641	return s
14642}
14643
14644// SetPhysicalResourceId sets the PhysicalResourceId field's value.
14645func (s *ResourceChange) SetPhysicalResourceId(v string) *ResourceChange {
14646	s.PhysicalResourceId = &v
14647	return s
14648}
14649
14650// SetReplacement sets the Replacement field's value.
14651func (s *ResourceChange) SetReplacement(v string) *ResourceChange {
14652	s.Replacement = &v
14653	return s
14654}
14655
14656// SetResourceType sets the ResourceType field's value.
14657func (s *ResourceChange) SetResourceType(v string) *ResourceChange {
14658	s.ResourceType = &v
14659	return s
14660}
14661
14662// SetScope sets the Scope field's value.
14663func (s *ResourceChange) SetScope(v []*string) *ResourceChange {
14664	s.Scope = v
14665	return s
14666}
14667
14668// For a resource with Modify as the action, the ResourceChange structure describes
14669// the changes AWS CloudFormation will make to that resource.
14670type ResourceChangeDetail struct {
14671	_ struct{} `type:"structure"`
14672
14673	// The identity of the entity that triggered this change. This entity is a member
14674	// of the group that is specified by the ChangeSource field. For example, if
14675	// you modified the value of the KeyPairName parameter, the CausingEntity is
14676	// the name of the parameter (KeyPairName).
14677	//
14678	// If the ChangeSource value is DirectModification, no value is given for CausingEntity.
14679	CausingEntity *string `type:"string"`
14680
14681	// The group to which the CausingEntity value belongs. There are five entity
14682	// groups:
14683	//
14684	//    * ResourceReference entities are Ref intrinsic functions that refer to
14685	//    resources in the template, such as { "Ref" : "MyEC2InstanceResource" }.
14686	//
14687	//    * ParameterReference entities are Ref intrinsic functions that get template
14688	//    parameter values, such as { "Ref" : "MyPasswordParameter" }.
14689	//
14690	//    * ResourceAttribute entities are Fn::GetAtt intrinsic functions that get
14691	//    resource attribute values, such as { "Fn::GetAtt" : [ "MyEC2InstanceResource",
14692	//    "PublicDnsName" ] }.
14693	//
14694	//    * DirectModification entities are changes that are made directly to the
14695	//    template.
14696	//
14697	//    * Automatic entities are AWS::CloudFormation::Stack resource types, which
14698	//    are also known as nested stacks. If you made no changes to the AWS::CloudFormation::Stack
14699	//    resource, AWS CloudFormation sets the ChangeSource to Automatic because
14700	//    the nested stack's template might have changed. Changes to a nested stack's
14701	//    template aren't visible to AWS CloudFormation until you run an update
14702	//    on the parent stack.
14703	ChangeSource *string `type:"string" enum:"ChangeSource"`
14704
14705	// Indicates whether AWS CloudFormation can determine the target value, and
14706	// whether the target value will change before you execute a change set.
14707	//
14708	// For Static evaluations, AWS CloudFormation can determine that the target
14709	// value will change, and its value. For example, if you directly modify the
14710	// InstanceType property of an EC2 instance, AWS CloudFormation knows that this
14711	// property value will change, and its value, so this is a Static evaluation.
14712	//
14713	// For Dynamic evaluations, cannot determine the target value because it depends
14714	// on the result of an intrinsic function, such as a Ref or Fn::GetAtt intrinsic
14715	// function, when the stack is updated. For example, if your template includes
14716	// a reference to a resource that is conditionally recreated, the value of the
14717	// reference (the physical ID of the resource) might change, depending on if
14718	// the resource is recreated. If the resource is recreated, it will have a new
14719	// physical ID, so all references to that resource will also be updated.
14720	Evaluation *string `type:"string" enum:"EvaluationType"`
14721
14722	// A ResourceTargetDefinition structure that describes the field that AWS CloudFormation
14723	// will change and whether the resource will be recreated.
14724	Target *ResourceTargetDefinition `type:"structure"`
14725}
14726
14727// String returns the string representation
14728func (s ResourceChangeDetail) String() string {
14729	return awsutil.Prettify(s)
14730}
14731
14732// GoString returns the string representation
14733func (s ResourceChangeDetail) GoString() string {
14734	return s.String()
14735}
14736
14737// SetCausingEntity sets the CausingEntity field's value.
14738func (s *ResourceChangeDetail) SetCausingEntity(v string) *ResourceChangeDetail {
14739	s.CausingEntity = &v
14740	return s
14741}
14742
14743// SetChangeSource sets the ChangeSource field's value.
14744func (s *ResourceChangeDetail) SetChangeSource(v string) *ResourceChangeDetail {
14745	s.ChangeSource = &v
14746	return s
14747}
14748
14749// SetEvaluation sets the Evaluation field's value.
14750func (s *ResourceChangeDetail) SetEvaluation(v string) *ResourceChangeDetail {
14751	s.Evaluation = &v
14752	return s
14753}
14754
14755// SetTarget sets the Target field's value.
14756func (s *ResourceChangeDetail) SetTarget(v *ResourceTargetDefinition) *ResourceChangeDetail {
14757	s.Target = v
14758	return s
14759}
14760
14761// Describes the target resources of a specific type in your import template
14762// (for example, all AWS::S3::Bucket resources) and the properties you can provide
14763// during the import to identify resources of that type.
14764type ResourceIdentifierSummary struct {
14765	_ struct{} `type:"structure"`
14766
14767	// The logical IDs of the target resources of the specified ResourceType, as
14768	// defined in the import template.
14769	LogicalResourceIds []*string `min:"1" type:"list"`
14770
14771	// The resource properties you can provide during the import to identify your
14772	// target resources. For example, BucketName is a possible identifier property
14773	// for AWS::S3::Bucket resources.
14774	ResourceIdentifiers []*string `type:"list"`
14775
14776	// The template resource type of the target resources, such as AWS::S3::Bucket.
14777	ResourceType *string `min:"1" type:"string"`
14778}
14779
14780// String returns the string representation
14781func (s ResourceIdentifierSummary) String() string {
14782	return awsutil.Prettify(s)
14783}
14784
14785// GoString returns the string representation
14786func (s ResourceIdentifierSummary) GoString() string {
14787	return s.String()
14788}
14789
14790// SetLogicalResourceIds sets the LogicalResourceIds field's value.
14791func (s *ResourceIdentifierSummary) SetLogicalResourceIds(v []*string) *ResourceIdentifierSummary {
14792	s.LogicalResourceIds = v
14793	return s
14794}
14795
14796// SetResourceIdentifiers sets the ResourceIdentifiers field's value.
14797func (s *ResourceIdentifierSummary) SetResourceIdentifiers(v []*string) *ResourceIdentifierSummary {
14798	s.ResourceIdentifiers = v
14799	return s
14800}
14801
14802// SetResourceType sets the ResourceType field's value.
14803func (s *ResourceIdentifierSummary) SetResourceType(v string) *ResourceIdentifierSummary {
14804	s.ResourceType = &v
14805	return s
14806}
14807
14808// The field that AWS CloudFormation will change, such as the name of a resource's
14809// property, and whether the resource will be recreated.
14810type ResourceTargetDefinition struct {
14811	_ struct{} `type:"structure"`
14812
14813	// Indicates which resource attribute is triggering this update, such as a change
14814	// in the resource attribute's Metadata, Properties, or Tags.
14815	Attribute *string `type:"string" enum:"ResourceAttribute"`
14816
14817	// If the Attribute value is Properties, the name of the property. For all other
14818	// attributes, the value is null.
14819	Name *string `type:"string"`
14820
14821	// If the Attribute value is Properties, indicates whether a change to this
14822	// property causes the resource to be recreated. The value can be Never, Always,
14823	// or Conditionally. To determine the conditions for a Conditionally recreation,
14824	// see the update behavior for that property (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-template-resource-type-ref.html)
14825	// in the AWS CloudFormation User Guide.
14826	RequiresRecreation *string `type:"string" enum:"RequiresRecreation"`
14827}
14828
14829// String returns the string representation
14830func (s ResourceTargetDefinition) String() string {
14831	return awsutil.Prettify(s)
14832}
14833
14834// GoString returns the string representation
14835func (s ResourceTargetDefinition) GoString() string {
14836	return s.String()
14837}
14838
14839// SetAttribute sets the Attribute field's value.
14840func (s *ResourceTargetDefinition) SetAttribute(v string) *ResourceTargetDefinition {
14841	s.Attribute = &v
14842	return s
14843}
14844
14845// SetName sets the Name field's value.
14846func (s *ResourceTargetDefinition) SetName(v string) *ResourceTargetDefinition {
14847	s.Name = &v
14848	return s
14849}
14850
14851// SetRequiresRecreation sets the RequiresRecreation field's value.
14852func (s *ResourceTargetDefinition) SetRequiresRecreation(v string) *ResourceTargetDefinition {
14853	s.RequiresRecreation = &v
14854	return s
14855}
14856
14857// Describes the target resource of an import operation.
14858type ResourceToImport struct {
14859	_ struct{} `type:"structure"`
14860
14861	// The logical ID of the target resource as specified in the template.
14862	//
14863	// LogicalResourceId is a required field
14864	LogicalResourceId *string `type:"string" required:"true"`
14865
14866	// A key-value pair that identifies the target resource. The key is an identifier
14867	// property (for example, BucketName for AWS::S3::Bucket resources) and the
14868	// value is the actual property value (for example, MyS3Bucket).
14869	//
14870	// ResourceIdentifier is a required field
14871	ResourceIdentifier map[string]*string `min:"1" type:"map" required:"true"`
14872
14873	// The type of resource to import into your stack, such as AWS::S3::Bucket.
14874	// For a list of supported resource types, see Resources that support import
14875	// operations (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/resource-import-supported-resources.html)
14876	// in the AWS CloudFormation User Guide.
14877	//
14878	// ResourceType is a required field
14879	ResourceType *string `min:"1" type:"string" required:"true"`
14880}
14881
14882// String returns the string representation
14883func (s ResourceToImport) String() string {
14884	return awsutil.Prettify(s)
14885}
14886
14887// GoString returns the string representation
14888func (s ResourceToImport) GoString() string {
14889	return s.String()
14890}
14891
14892// Validate inspects the fields of the type to determine if they are valid.
14893func (s *ResourceToImport) Validate() error {
14894	invalidParams := request.ErrInvalidParams{Context: "ResourceToImport"}
14895	if s.LogicalResourceId == nil {
14896		invalidParams.Add(request.NewErrParamRequired("LogicalResourceId"))
14897	}
14898	if s.ResourceIdentifier == nil {
14899		invalidParams.Add(request.NewErrParamRequired("ResourceIdentifier"))
14900	}
14901	if s.ResourceIdentifier != nil && len(s.ResourceIdentifier) < 1 {
14902		invalidParams.Add(request.NewErrParamMinLen("ResourceIdentifier", 1))
14903	}
14904	if s.ResourceType == nil {
14905		invalidParams.Add(request.NewErrParamRequired("ResourceType"))
14906	}
14907	if s.ResourceType != nil && len(*s.ResourceType) < 1 {
14908		invalidParams.Add(request.NewErrParamMinLen("ResourceType", 1))
14909	}
14910
14911	if invalidParams.Len() > 0 {
14912		return invalidParams
14913	}
14914	return nil
14915}
14916
14917// SetLogicalResourceId sets the LogicalResourceId field's value.
14918func (s *ResourceToImport) SetLogicalResourceId(v string) *ResourceToImport {
14919	s.LogicalResourceId = &v
14920	return s
14921}
14922
14923// SetResourceIdentifier sets the ResourceIdentifier field's value.
14924func (s *ResourceToImport) SetResourceIdentifier(v map[string]*string) *ResourceToImport {
14925	s.ResourceIdentifier = v
14926	return s
14927}
14928
14929// SetResourceType sets the ResourceType field's value.
14930func (s *ResourceToImport) SetResourceType(v string) *ResourceToImport {
14931	s.ResourceType = &v
14932	return s
14933}
14934
14935// Structure containing the rollback triggers for AWS CloudFormation to monitor
14936// during stack creation and updating operations, and for the specified monitoring
14937// period afterwards.
14938//
14939// Rollback triggers enable you to have AWS CloudFormation monitor the state
14940// of your application during stack creation and updating, and to roll back
14941// that operation if the application breaches the threshold of any of the alarms
14942// you've specified. For more information, see Monitor and Roll Back Stack Operations
14943// (http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-rollback-triggers.html).
14944type RollbackConfiguration struct {
14945	_ struct{} `type:"structure"`
14946
14947	// The amount of time, in minutes, during which CloudFormation should monitor
14948	// all the rollback triggers after the stack creation or update operation deploys
14949	// all necessary resources.
14950	//
14951	// The default is 0 minutes.
14952	//
14953	// If you specify a monitoring period but do not specify any rollback triggers,
14954	// CloudFormation still waits the specified period of time before cleaning up
14955	// old resources after update operations. You can use this monitoring period
14956	// to perform any manual stack validation desired, and manually cancel the stack
14957	// creation or update (using CancelUpdateStack (https://docs.aws.amazon.com/AWSCloudFormation/latest/APIReference/API_CancelUpdateStack.html),
14958	// for example) as necessary.
14959	//
14960	// If you specify 0 for this parameter, CloudFormation still monitors the specified
14961	// rollback triggers during stack creation and update operations. Then, for
14962	// update operations, it begins disposing of old resources immediately once
14963	// the operation completes.
14964	MonitoringTimeInMinutes *int64 `type:"integer"`
14965
14966	// The triggers to monitor during stack creation or update actions.
14967	//
14968	// By default, AWS CloudFormation saves the rollback triggers specified for
14969	// a stack and applies them to any subsequent update operations for the stack,
14970	// unless you specify otherwise. If you do specify rollback triggers for this
14971	// parameter, those triggers replace any list of triggers previously specified
14972	// for the stack. This means:
14973	//
14974	//    * To use the rollback triggers previously specified for this stack, if
14975	//    any, don't specify this parameter.
14976	//
14977	//    * To specify new or updated rollback triggers, you must specify all the
14978	//    triggers that you want used for this stack, even triggers you've specifed
14979	//    before (for example, when creating the stack or during a previous stack
14980	//    update). Any triggers that you don't include in the updated list of triggers
14981	//    are no longer applied to the stack.
14982	//
14983	//    * To remove all currently specified triggers, specify an empty list for
14984	//    this parameter.
14985	//
14986	// If a specified trigger is missing, the entire stack operation fails and is
14987	// rolled back.
14988	RollbackTriggers []*RollbackTrigger `type:"list"`
14989}
14990
14991// String returns the string representation
14992func (s RollbackConfiguration) String() string {
14993	return awsutil.Prettify(s)
14994}
14995
14996// GoString returns the string representation
14997func (s RollbackConfiguration) GoString() string {
14998	return s.String()
14999}
15000
15001// Validate inspects the fields of the type to determine if they are valid.
15002func (s *RollbackConfiguration) Validate() error {
15003	invalidParams := request.ErrInvalidParams{Context: "RollbackConfiguration"}
15004	if s.RollbackTriggers != nil {
15005		for i, v := range s.RollbackTriggers {
15006			if v == nil {
15007				continue
15008			}
15009			if err := v.Validate(); err != nil {
15010				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "RollbackTriggers", i), err.(request.ErrInvalidParams))
15011			}
15012		}
15013	}
15014
15015	if invalidParams.Len() > 0 {
15016		return invalidParams
15017	}
15018	return nil
15019}
15020
15021// SetMonitoringTimeInMinutes sets the MonitoringTimeInMinutes field's value.
15022func (s *RollbackConfiguration) SetMonitoringTimeInMinutes(v int64) *RollbackConfiguration {
15023	s.MonitoringTimeInMinutes = &v
15024	return s
15025}
15026
15027// SetRollbackTriggers sets the RollbackTriggers field's value.
15028func (s *RollbackConfiguration) SetRollbackTriggers(v []*RollbackTrigger) *RollbackConfiguration {
15029	s.RollbackTriggers = v
15030	return s
15031}
15032
15033// A rollback trigger AWS CloudFormation monitors during creation and updating
15034// of stacks. If any of the alarms you specify goes to ALARM state during the
15035// stack operation or within the specified monitoring period afterwards, CloudFormation
15036// rolls back the entire stack operation.
15037type RollbackTrigger struct {
15038	_ struct{} `type:"structure"`
15039
15040	// The Amazon Resource Name (ARN) of the rollback trigger.
15041	//
15042	// If a specified trigger is missing, the entire stack operation fails and is
15043	// rolled back.
15044	//
15045	// Arn is a required field
15046	Arn *string `type:"string" required:"true"`
15047
15048	// The resource type of the rollback trigger. Currently, AWS::CloudWatch::Alarm
15049	// (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cw-alarm.html)
15050	// is the only supported resource type.
15051	//
15052	// Type is a required field
15053	Type *string `type:"string" required:"true"`
15054}
15055
15056// String returns the string representation
15057func (s RollbackTrigger) String() string {
15058	return awsutil.Prettify(s)
15059}
15060
15061// GoString returns the string representation
15062func (s RollbackTrigger) GoString() string {
15063	return s.String()
15064}
15065
15066// Validate inspects the fields of the type to determine if they are valid.
15067func (s *RollbackTrigger) Validate() error {
15068	invalidParams := request.ErrInvalidParams{Context: "RollbackTrigger"}
15069	if s.Arn == nil {
15070		invalidParams.Add(request.NewErrParamRequired("Arn"))
15071	}
15072	if s.Type == nil {
15073		invalidParams.Add(request.NewErrParamRequired("Type"))
15074	}
15075
15076	if invalidParams.Len() > 0 {
15077		return invalidParams
15078	}
15079	return nil
15080}
15081
15082// SetArn sets the Arn field's value.
15083func (s *RollbackTrigger) SetArn(v string) *RollbackTrigger {
15084	s.Arn = &v
15085	return s
15086}
15087
15088// SetType sets the Type field's value.
15089func (s *RollbackTrigger) SetType(v string) *RollbackTrigger {
15090	s.Type = &v
15091	return s
15092}
15093
15094// The input for the SetStackPolicy action.
15095type SetStackPolicyInput struct {
15096	_ struct{} `type:"structure"`
15097
15098	// The name or unique stack ID that you want to associate a policy with.
15099	//
15100	// StackName is a required field
15101	StackName *string `type:"string" required:"true"`
15102
15103	// Structure containing the stack policy body. For more information, go to Prevent
15104	// Updates to Stack Resources (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/protect-stack-resources.html)
15105	// in the AWS CloudFormation User Guide. You can specify either the StackPolicyBody
15106	// or the StackPolicyURL parameter, but not both.
15107	StackPolicyBody *string `min:"1" type:"string"`
15108
15109	// Location of a file containing the stack policy. The URL must point to a policy
15110	// (maximum size: 16 KB) located in an S3 bucket in the same Region as the stack.
15111	// You can specify either the StackPolicyBody or the StackPolicyURL parameter,
15112	// but not both.
15113	StackPolicyURL *string `min:"1" type:"string"`
15114}
15115
15116// String returns the string representation
15117func (s SetStackPolicyInput) String() string {
15118	return awsutil.Prettify(s)
15119}
15120
15121// GoString returns the string representation
15122func (s SetStackPolicyInput) GoString() string {
15123	return s.String()
15124}
15125
15126// Validate inspects the fields of the type to determine if they are valid.
15127func (s *SetStackPolicyInput) Validate() error {
15128	invalidParams := request.ErrInvalidParams{Context: "SetStackPolicyInput"}
15129	if s.StackName == nil {
15130		invalidParams.Add(request.NewErrParamRequired("StackName"))
15131	}
15132	if s.StackPolicyBody != nil && len(*s.StackPolicyBody) < 1 {
15133		invalidParams.Add(request.NewErrParamMinLen("StackPolicyBody", 1))
15134	}
15135	if s.StackPolicyURL != nil && len(*s.StackPolicyURL) < 1 {
15136		invalidParams.Add(request.NewErrParamMinLen("StackPolicyURL", 1))
15137	}
15138
15139	if invalidParams.Len() > 0 {
15140		return invalidParams
15141	}
15142	return nil
15143}
15144
15145// SetStackName sets the StackName field's value.
15146func (s *SetStackPolicyInput) SetStackName(v string) *SetStackPolicyInput {
15147	s.StackName = &v
15148	return s
15149}
15150
15151// SetStackPolicyBody sets the StackPolicyBody field's value.
15152func (s *SetStackPolicyInput) SetStackPolicyBody(v string) *SetStackPolicyInput {
15153	s.StackPolicyBody = &v
15154	return s
15155}
15156
15157// SetStackPolicyURL sets the StackPolicyURL field's value.
15158func (s *SetStackPolicyInput) SetStackPolicyURL(v string) *SetStackPolicyInput {
15159	s.StackPolicyURL = &v
15160	return s
15161}
15162
15163type SetStackPolicyOutput struct {
15164	_ struct{} `type:"structure"`
15165}
15166
15167// String returns the string representation
15168func (s SetStackPolicyOutput) String() string {
15169	return awsutil.Prettify(s)
15170}
15171
15172// GoString returns the string representation
15173func (s SetStackPolicyOutput) GoString() string {
15174	return s.String()
15175}
15176
15177type SetTypeConfigurationInput struct {
15178	_ struct{} `type:"structure"`
15179
15180	// The configuration data for the extension, in this account and region.
15181	//
15182	// The configuration data must be formatted as JSON, and validate against the
15183	// schema returned in the ConfigurationSchema response element of API_DescribeType
15184	// (AWSCloudFormation/latest/APIReference/API_DescribeType.html). For more information,
15185	// 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)
15186	// in the CloudFormation CLI User Guide.
15187	//
15188	// Configuration is a required field
15189	Configuration *string `min:"1" type:"string" required:"true"`
15190
15191	// An alias by which to refer to this extension configuration data.
15192	//
15193	// Conditional: Specifying a configuration alias is required when setting a
15194	// configuration for a resource type extension.
15195	ConfigurationAlias *string `min:"1" type:"string"`
15196
15197	// The type of extension.
15198	//
15199	// Conditional: You must specify ConfigurationArn, or Type and TypeName.
15200	Type *string `type:"string" enum:"ThirdPartyType"`
15201
15202	// The Amazon Resource Name (ARN) for the extension, in this account and region.
15203	//
15204	// For public extensions, this will be the ARN assigned when you activate the
15205	// type (https://docs.aws.amazon.com/AWSCloudFormation/latest/APIReference/API_ActivateType.html)
15206	// in this account and region. For private extensions, this will be the ARN
15207	// assigned when you register the type (https://docs.aws.amazon.com/AWSCloudFormation/latest/APIReference/API_RegisterType.html)
15208	// in this account and region.
15209	//
15210	// Do not include the extension versions suffix at the end of the ARN. You can
15211	// set the configuration for an extension, but not for a specific extension
15212	// version.
15213	TypeArn *string `type:"string"`
15214
15215	// The name of the extension.
15216	//
15217	// Conditional: You must specify ConfigurationArn, or Type and TypeName.
15218	TypeName *string `min:"10" type:"string"`
15219}
15220
15221// String returns the string representation
15222func (s SetTypeConfigurationInput) String() string {
15223	return awsutil.Prettify(s)
15224}
15225
15226// GoString returns the string representation
15227func (s SetTypeConfigurationInput) GoString() string {
15228	return s.String()
15229}
15230
15231// Validate inspects the fields of the type to determine if they are valid.
15232func (s *SetTypeConfigurationInput) Validate() error {
15233	invalidParams := request.ErrInvalidParams{Context: "SetTypeConfigurationInput"}
15234	if s.Configuration == nil {
15235		invalidParams.Add(request.NewErrParamRequired("Configuration"))
15236	}
15237	if s.Configuration != nil && len(*s.Configuration) < 1 {
15238		invalidParams.Add(request.NewErrParamMinLen("Configuration", 1))
15239	}
15240	if s.ConfigurationAlias != nil && len(*s.ConfigurationAlias) < 1 {
15241		invalidParams.Add(request.NewErrParamMinLen("ConfigurationAlias", 1))
15242	}
15243	if s.TypeName != nil && len(*s.TypeName) < 10 {
15244		invalidParams.Add(request.NewErrParamMinLen("TypeName", 10))
15245	}
15246
15247	if invalidParams.Len() > 0 {
15248		return invalidParams
15249	}
15250	return nil
15251}
15252
15253// SetConfiguration sets the Configuration field's value.
15254func (s *SetTypeConfigurationInput) SetConfiguration(v string) *SetTypeConfigurationInput {
15255	s.Configuration = &v
15256	return s
15257}
15258
15259// SetConfigurationAlias sets the ConfigurationAlias field's value.
15260func (s *SetTypeConfigurationInput) SetConfigurationAlias(v string) *SetTypeConfigurationInput {
15261	s.ConfigurationAlias = &v
15262	return s
15263}
15264
15265// SetType sets the Type field's value.
15266func (s *SetTypeConfigurationInput) SetType(v string) *SetTypeConfigurationInput {
15267	s.Type = &v
15268	return s
15269}
15270
15271// SetTypeArn sets the TypeArn field's value.
15272func (s *SetTypeConfigurationInput) SetTypeArn(v string) *SetTypeConfigurationInput {
15273	s.TypeArn = &v
15274	return s
15275}
15276
15277// SetTypeName sets the TypeName field's value.
15278func (s *SetTypeConfigurationInput) SetTypeName(v string) *SetTypeConfigurationInput {
15279	s.TypeName = &v
15280	return s
15281}
15282
15283type SetTypeConfigurationOutput struct {
15284	_ struct{} `type:"structure"`
15285
15286	// The Amazon Resource Name (ARN) for the configuration data, in this account
15287	// and region.
15288	//
15289	// Conditional: You must specify ConfigurationArn, or Type and TypeName.
15290	ConfigurationArn *string `type:"string"`
15291}
15292
15293// String returns the string representation
15294func (s SetTypeConfigurationOutput) String() string {
15295	return awsutil.Prettify(s)
15296}
15297
15298// GoString returns the string representation
15299func (s SetTypeConfigurationOutput) GoString() string {
15300	return s.String()
15301}
15302
15303// SetConfigurationArn sets the ConfigurationArn field's value.
15304func (s *SetTypeConfigurationOutput) SetConfigurationArn(v string) *SetTypeConfigurationOutput {
15305	s.ConfigurationArn = &v
15306	return s
15307}
15308
15309type SetTypeDefaultVersionInput struct {
15310	_ struct{} `type:"structure"`
15311
15312	// The Amazon Resource Name (ARN) of the extension for which you want version
15313	// summary information.
15314	//
15315	// Conditional: You must specify either TypeName and Type, or Arn.
15316	Arn *string `type:"string"`
15317
15318	// The kind of extension.
15319	//
15320	// Conditional: You must specify either TypeName and Type, or Arn.
15321	Type *string `type:"string" enum:"RegistryType"`
15322
15323	// The name of the extension.
15324	//
15325	// Conditional: You must specify either TypeName and Type, or Arn.
15326	TypeName *string `min:"10" type:"string"`
15327
15328	// The ID of a specific version of the extension. The version ID is the value
15329	// at the end of the Amazon Resource Name (ARN) assigned to the extension version
15330	// when it is registered.
15331	VersionId *string `min:"1" type:"string"`
15332}
15333
15334// String returns the string representation
15335func (s SetTypeDefaultVersionInput) String() string {
15336	return awsutil.Prettify(s)
15337}
15338
15339// GoString returns the string representation
15340func (s SetTypeDefaultVersionInput) GoString() string {
15341	return s.String()
15342}
15343
15344// Validate inspects the fields of the type to determine if they are valid.
15345func (s *SetTypeDefaultVersionInput) Validate() error {
15346	invalidParams := request.ErrInvalidParams{Context: "SetTypeDefaultVersionInput"}
15347	if s.TypeName != nil && len(*s.TypeName) < 10 {
15348		invalidParams.Add(request.NewErrParamMinLen("TypeName", 10))
15349	}
15350	if s.VersionId != nil && len(*s.VersionId) < 1 {
15351		invalidParams.Add(request.NewErrParamMinLen("VersionId", 1))
15352	}
15353
15354	if invalidParams.Len() > 0 {
15355		return invalidParams
15356	}
15357	return nil
15358}
15359
15360// SetArn sets the Arn field's value.
15361func (s *SetTypeDefaultVersionInput) SetArn(v string) *SetTypeDefaultVersionInput {
15362	s.Arn = &v
15363	return s
15364}
15365
15366// SetType sets the Type field's value.
15367func (s *SetTypeDefaultVersionInput) SetType(v string) *SetTypeDefaultVersionInput {
15368	s.Type = &v
15369	return s
15370}
15371
15372// SetTypeName sets the TypeName field's value.
15373func (s *SetTypeDefaultVersionInput) SetTypeName(v string) *SetTypeDefaultVersionInput {
15374	s.TypeName = &v
15375	return s
15376}
15377
15378// SetVersionId sets the VersionId field's value.
15379func (s *SetTypeDefaultVersionInput) SetVersionId(v string) *SetTypeDefaultVersionInput {
15380	s.VersionId = &v
15381	return s
15382}
15383
15384type SetTypeDefaultVersionOutput struct {
15385	_ struct{} `type:"structure"`
15386}
15387
15388// String returns the string representation
15389func (s SetTypeDefaultVersionOutput) String() string {
15390	return awsutil.Prettify(s)
15391}
15392
15393// GoString returns the string representation
15394func (s SetTypeDefaultVersionOutput) GoString() string {
15395	return s.String()
15396}
15397
15398// The input for the SignalResource action.
15399type SignalResourceInput struct {
15400	_ struct{} `type:"structure"`
15401
15402	// The logical ID of the resource that you want to signal. The logical ID is
15403	// the name of the resource that given in the template.
15404	//
15405	// LogicalResourceId is a required field
15406	LogicalResourceId *string `type:"string" required:"true"`
15407
15408	// The stack name or unique stack ID that includes the resource that you want
15409	// to signal.
15410	//
15411	// StackName is a required field
15412	StackName *string `min:"1" type:"string" required:"true"`
15413
15414	// The status of the signal, which is either success or failure. A failure signal
15415	// causes AWS CloudFormation to immediately fail the stack creation or update.
15416	//
15417	// Status is a required field
15418	Status *string `type:"string" required:"true" enum:"ResourceSignalStatus"`
15419
15420	// A unique ID of the signal. When you signal Amazon EC2 instances or Auto Scaling
15421	// groups, specify the instance ID that you are signaling as the unique ID.
15422	// If you send multiple signals to a single resource (such as signaling a wait
15423	// condition), each signal requires a different unique ID.
15424	//
15425	// UniqueId is a required field
15426	UniqueId *string `min:"1" type:"string" required:"true"`
15427}
15428
15429// String returns the string representation
15430func (s SignalResourceInput) String() string {
15431	return awsutil.Prettify(s)
15432}
15433
15434// GoString returns the string representation
15435func (s SignalResourceInput) GoString() string {
15436	return s.String()
15437}
15438
15439// Validate inspects the fields of the type to determine if they are valid.
15440func (s *SignalResourceInput) Validate() error {
15441	invalidParams := request.ErrInvalidParams{Context: "SignalResourceInput"}
15442	if s.LogicalResourceId == nil {
15443		invalidParams.Add(request.NewErrParamRequired("LogicalResourceId"))
15444	}
15445	if s.StackName == nil {
15446		invalidParams.Add(request.NewErrParamRequired("StackName"))
15447	}
15448	if s.StackName != nil && len(*s.StackName) < 1 {
15449		invalidParams.Add(request.NewErrParamMinLen("StackName", 1))
15450	}
15451	if s.Status == nil {
15452		invalidParams.Add(request.NewErrParamRequired("Status"))
15453	}
15454	if s.UniqueId == nil {
15455		invalidParams.Add(request.NewErrParamRequired("UniqueId"))
15456	}
15457	if s.UniqueId != nil && len(*s.UniqueId) < 1 {
15458		invalidParams.Add(request.NewErrParamMinLen("UniqueId", 1))
15459	}
15460
15461	if invalidParams.Len() > 0 {
15462		return invalidParams
15463	}
15464	return nil
15465}
15466
15467// SetLogicalResourceId sets the LogicalResourceId field's value.
15468func (s *SignalResourceInput) SetLogicalResourceId(v string) *SignalResourceInput {
15469	s.LogicalResourceId = &v
15470	return s
15471}
15472
15473// SetStackName sets the StackName field's value.
15474func (s *SignalResourceInput) SetStackName(v string) *SignalResourceInput {
15475	s.StackName = &v
15476	return s
15477}
15478
15479// SetStatus sets the Status field's value.
15480func (s *SignalResourceInput) SetStatus(v string) *SignalResourceInput {
15481	s.Status = &v
15482	return s
15483}
15484
15485// SetUniqueId sets the UniqueId field's value.
15486func (s *SignalResourceInput) SetUniqueId(v string) *SignalResourceInput {
15487	s.UniqueId = &v
15488	return s
15489}
15490
15491type SignalResourceOutput struct {
15492	_ struct{} `type:"structure"`
15493}
15494
15495// String returns the string representation
15496func (s SignalResourceOutput) String() string {
15497	return awsutil.Prettify(s)
15498}
15499
15500// GoString returns the string representation
15501func (s SignalResourceOutput) GoString() string {
15502	return s.String()
15503}
15504
15505// The Stack data type.
15506type Stack struct {
15507	_ struct{} `type:"structure"`
15508
15509	// The capabilities allowed in the stack.
15510	Capabilities []*string `type:"list"`
15511
15512	// The unique ID of the change set.
15513	ChangeSetId *string `min:"1" type:"string"`
15514
15515	// The time at which the stack was created.
15516	//
15517	// CreationTime is a required field
15518	CreationTime *time.Time `type:"timestamp" required:"true"`
15519
15520	// The time the stack was deleted.
15521	DeletionTime *time.Time `type:"timestamp"`
15522
15523	// A user-defined description associated with the stack.
15524	Description *string `min:"1" type:"string"`
15525
15526	// Boolean to enable or disable rollback on stack creation failures:
15527	//
15528	//    * true: disable rollback
15529	//
15530	//    * false: enable rollback
15531	DisableRollback *bool `type:"boolean"`
15532
15533	// Information on whether a stack's actual configuration differs, or has drifted,
15534	// from it's expected configuration, as defined in the stack template and any
15535	// values specified as template parameters. For more information, see Detecting
15536	// Unregulated Configuration Changes to Stacks and Resources (http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-stack-drift.html).
15537	DriftInformation *StackDriftInformation `type:"structure"`
15538
15539	// Whether termination protection is enabled for the stack.
15540	//
15541	// For nested stacks (http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-nested-stacks.html),
15542	// termination protection is set on the root stack and cannot be changed directly
15543	// on the nested stack. For more information, see Protecting a Stack From Being
15544	// Deleted (http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-protect-stacks.html)
15545	// in the AWS CloudFormation User Guide.
15546	EnableTerminationProtection *bool `type:"boolean"`
15547
15548	// The time the stack was last updated. This field will only be returned if
15549	// the stack has been updated at least once.
15550	LastUpdatedTime *time.Time `type:"timestamp"`
15551
15552	// SNS topic ARNs to which stack related events are published.
15553	NotificationARNs []*string `type:"list"`
15554
15555	// A list of output structures.
15556	Outputs []*Output `type:"list"`
15557
15558	// A list of Parameter structures.
15559	Parameters []*Parameter `type:"list"`
15560
15561	// For nested stacks--stacks created as resources for another stack--the stack
15562	// ID of the direct parent of this stack. For the first level of nested stacks,
15563	// the root stack is also the parent stack.
15564	//
15565	// For more information, see Working with Nested Stacks (http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-nested-stacks.html)
15566	// in the AWS CloudFormation User Guide.
15567	ParentId *string `type:"string"`
15568
15569	// The Amazon Resource Name (ARN) of an AWS Identity and Access Management (IAM)
15570	// role that is associated with the stack. During a stack operation, AWS CloudFormation
15571	// uses this role's credentials to make calls on your behalf.
15572	RoleARN *string `min:"20" type:"string"`
15573
15574	// The rollback triggers for AWS CloudFormation to monitor during stack creation
15575	// and updating operations, and for the specified monitoring period afterwards.
15576	RollbackConfiguration *RollbackConfiguration `type:"structure"`
15577
15578	// For nested stacks--stacks created as resources for another stack--the stack
15579	// ID of the top-level stack to which the nested stack ultimately belongs.
15580	//
15581	// For more information, see Working with Nested Stacks (http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-nested-stacks.html)
15582	// in the AWS CloudFormation User Guide.
15583	RootId *string `type:"string"`
15584
15585	// Unique identifier of the stack.
15586	StackId *string `type:"string"`
15587
15588	// The name associated with the stack.
15589	//
15590	// StackName is a required field
15591	StackName *string `type:"string" required:"true"`
15592
15593	// Current status of the stack.
15594	//
15595	// StackStatus is a required field
15596	StackStatus *string `type:"string" required:"true" enum:"StackStatus"`
15597
15598	// Success/failure message associated with the stack status.
15599	StackStatusReason *string `type:"string"`
15600
15601	// A list of Tags that specify information about the stack.
15602	Tags []*Tag `type:"list"`
15603
15604	// The amount of time within which stack creation should complete.
15605	TimeoutInMinutes *int64 `min:"1" type:"integer"`
15606}
15607
15608// String returns the string representation
15609func (s Stack) String() string {
15610	return awsutil.Prettify(s)
15611}
15612
15613// GoString returns the string representation
15614func (s Stack) GoString() string {
15615	return s.String()
15616}
15617
15618// SetCapabilities sets the Capabilities field's value.
15619func (s *Stack) SetCapabilities(v []*string) *Stack {
15620	s.Capabilities = v
15621	return s
15622}
15623
15624// SetChangeSetId sets the ChangeSetId field's value.
15625func (s *Stack) SetChangeSetId(v string) *Stack {
15626	s.ChangeSetId = &v
15627	return s
15628}
15629
15630// SetCreationTime sets the CreationTime field's value.
15631func (s *Stack) SetCreationTime(v time.Time) *Stack {
15632	s.CreationTime = &v
15633	return s
15634}
15635
15636// SetDeletionTime sets the DeletionTime field's value.
15637func (s *Stack) SetDeletionTime(v time.Time) *Stack {
15638	s.DeletionTime = &v
15639	return s
15640}
15641
15642// SetDescription sets the Description field's value.
15643func (s *Stack) SetDescription(v string) *Stack {
15644	s.Description = &v
15645	return s
15646}
15647
15648// SetDisableRollback sets the DisableRollback field's value.
15649func (s *Stack) SetDisableRollback(v bool) *Stack {
15650	s.DisableRollback = &v
15651	return s
15652}
15653
15654// SetDriftInformation sets the DriftInformation field's value.
15655func (s *Stack) SetDriftInformation(v *StackDriftInformation) *Stack {
15656	s.DriftInformation = v
15657	return s
15658}
15659
15660// SetEnableTerminationProtection sets the EnableTerminationProtection field's value.
15661func (s *Stack) SetEnableTerminationProtection(v bool) *Stack {
15662	s.EnableTerminationProtection = &v
15663	return s
15664}
15665
15666// SetLastUpdatedTime sets the LastUpdatedTime field's value.
15667func (s *Stack) SetLastUpdatedTime(v time.Time) *Stack {
15668	s.LastUpdatedTime = &v
15669	return s
15670}
15671
15672// SetNotificationARNs sets the NotificationARNs field's value.
15673func (s *Stack) SetNotificationARNs(v []*string) *Stack {
15674	s.NotificationARNs = v
15675	return s
15676}
15677
15678// SetOutputs sets the Outputs field's value.
15679func (s *Stack) SetOutputs(v []*Output) *Stack {
15680	s.Outputs = v
15681	return s
15682}
15683
15684// SetParameters sets the Parameters field's value.
15685func (s *Stack) SetParameters(v []*Parameter) *Stack {
15686	s.Parameters = v
15687	return s
15688}
15689
15690// SetParentId sets the ParentId field's value.
15691func (s *Stack) SetParentId(v string) *Stack {
15692	s.ParentId = &v
15693	return s
15694}
15695
15696// SetRoleARN sets the RoleARN field's value.
15697func (s *Stack) SetRoleARN(v string) *Stack {
15698	s.RoleARN = &v
15699	return s
15700}
15701
15702// SetRollbackConfiguration sets the RollbackConfiguration field's value.
15703func (s *Stack) SetRollbackConfiguration(v *RollbackConfiguration) *Stack {
15704	s.RollbackConfiguration = v
15705	return s
15706}
15707
15708// SetRootId sets the RootId field's value.
15709func (s *Stack) SetRootId(v string) *Stack {
15710	s.RootId = &v
15711	return s
15712}
15713
15714// SetStackId sets the StackId field's value.
15715func (s *Stack) SetStackId(v string) *Stack {
15716	s.StackId = &v
15717	return s
15718}
15719
15720// SetStackName sets the StackName field's value.
15721func (s *Stack) SetStackName(v string) *Stack {
15722	s.StackName = &v
15723	return s
15724}
15725
15726// SetStackStatus sets the StackStatus field's value.
15727func (s *Stack) SetStackStatus(v string) *Stack {
15728	s.StackStatus = &v
15729	return s
15730}
15731
15732// SetStackStatusReason sets the StackStatusReason field's value.
15733func (s *Stack) SetStackStatusReason(v string) *Stack {
15734	s.StackStatusReason = &v
15735	return s
15736}
15737
15738// SetTags sets the Tags field's value.
15739func (s *Stack) SetTags(v []*Tag) *Stack {
15740	s.Tags = v
15741	return s
15742}
15743
15744// SetTimeoutInMinutes sets the TimeoutInMinutes field's value.
15745func (s *Stack) SetTimeoutInMinutes(v int64) *Stack {
15746	s.TimeoutInMinutes = &v
15747	return s
15748}
15749
15750// Contains information about whether the stack's actual configuration differs,
15751// or has drifted, from its expected configuration, as defined in the stack
15752// template and any values specified as template parameters. A stack is considered
15753// to have drifted if one or more of its resources have drifted.
15754type StackDriftInformation struct {
15755	_ struct{} `type:"structure"`
15756
15757	// Most recent time when a drift detection operation was initiated on the stack,
15758	// or any of its individual resources that support drift detection.
15759	LastCheckTimestamp *time.Time `type:"timestamp"`
15760
15761	// Status of the stack's actual configuration compared to its expected template
15762	// configuration.
15763	//
15764	//    * DRIFTED: The stack differs from its expected template configuration.
15765	//    A stack is considered to have drifted if one or more of its resources
15766	//    have drifted.
15767	//
15768	//    * NOT_CHECKED: AWS CloudFormation has not checked if the stack differs
15769	//    from its expected template configuration.
15770	//
15771	//    * IN_SYNC: The stack's actual configuration matches its expected template
15772	//    configuration.
15773	//
15774	//    * UNKNOWN: This value is reserved for future use.
15775	//
15776	// StackDriftStatus is a required field
15777	StackDriftStatus *string `type:"string" required:"true" enum:"StackDriftStatus"`
15778}
15779
15780// String returns the string representation
15781func (s StackDriftInformation) String() string {
15782	return awsutil.Prettify(s)
15783}
15784
15785// GoString returns the string representation
15786func (s StackDriftInformation) GoString() string {
15787	return s.String()
15788}
15789
15790// SetLastCheckTimestamp sets the LastCheckTimestamp field's value.
15791func (s *StackDriftInformation) SetLastCheckTimestamp(v time.Time) *StackDriftInformation {
15792	s.LastCheckTimestamp = &v
15793	return s
15794}
15795
15796// SetStackDriftStatus sets the StackDriftStatus field's value.
15797func (s *StackDriftInformation) SetStackDriftStatus(v string) *StackDriftInformation {
15798	s.StackDriftStatus = &v
15799	return s
15800}
15801
15802// Contains information about whether the stack's actual configuration differs,
15803// or has drifted, from its expected configuration, as defined in the stack
15804// template and any values specified as template parameters. A stack is considered
15805// to have drifted if one or more of its resources have drifted.
15806type StackDriftInformationSummary struct {
15807	_ struct{} `type:"structure"`
15808
15809	// Most recent time when a drift detection operation was initiated on the stack,
15810	// or any of its individual resources that support drift detection.
15811	LastCheckTimestamp *time.Time `type:"timestamp"`
15812
15813	// Status of the stack's actual configuration compared to its expected template
15814	// configuration.
15815	//
15816	//    * DRIFTED: The stack differs from its expected template configuration.
15817	//    A stack is considered to have drifted if one or more of its resources
15818	//    have drifted.
15819	//
15820	//    * NOT_CHECKED: AWS CloudFormation has not checked if the stack differs
15821	//    from its expected template configuration.
15822	//
15823	//    * IN_SYNC: The stack's actual configuration matches its expected template
15824	//    configuration.
15825	//
15826	//    * UNKNOWN: This value is reserved for future use.
15827	//
15828	// StackDriftStatus is a required field
15829	StackDriftStatus *string `type:"string" required:"true" enum:"StackDriftStatus"`
15830}
15831
15832// String returns the string representation
15833func (s StackDriftInformationSummary) String() string {
15834	return awsutil.Prettify(s)
15835}
15836
15837// GoString returns the string representation
15838func (s StackDriftInformationSummary) GoString() string {
15839	return s.String()
15840}
15841
15842// SetLastCheckTimestamp sets the LastCheckTimestamp field's value.
15843func (s *StackDriftInformationSummary) SetLastCheckTimestamp(v time.Time) *StackDriftInformationSummary {
15844	s.LastCheckTimestamp = &v
15845	return s
15846}
15847
15848// SetStackDriftStatus sets the StackDriftStatus field's value.
15849func (s *StackDriftInformationSummary) SetStackDriftStatus(v string) *StackDriftInformationSummary {
15850	s.StackDriftStatus = &v
15851	return s
15852}
15853
15854// The StackEvent data type.
15855type StackEvent struct {
15856	_ struct{} `type:"structure"`
15857
15858	// The token passed to the operation that generated this event.
15859	//
15860	// All events triggered by a given stack operation are assigned the same client
15861	// request token, which you can use to track operations. For example, if you
15862	// execute a CreateStack operation with the token token1, then all the StackEvents
15863	// generated by that operation will have ClientRequestToken set as token1.
15864	//
15865	// In the console, stack operations display the client request token on the
15866	// Events tab. Stack operations that are initiated from the console use the
15867	// token format Console-StackOperation-ID, which helps you easily identify the
15868	// stack operation . For example, if you create a stack using the console, each
15869	// stack event would be assigned the same token in the following format: Console-CreateStack-7f59c3cf-00d2-40c7-b2ff-e75db0987002.
15870	ClientRequestToken *string `min:"1" type:"string"`
15871
15872	// The unique ID of this event.
15873	//
15874	// EventId is a required field
15875	EventId *string `type:"string" required:"true"`
15876
15877	// The logical name of the resource specified in the template.
15878	LogicalResourceId *string `type:"string"`
15879
15880	// The name or unique identifier associated with the physical instance of the
15881	// resource.
15882	PhysicalResourceId *string `type:"string"`
15883
15884	// BLOB of the properties used to create the resource.
15885	ResourceProperties *string `type:"string"`
15886
15887	// Current status of the resource.
15888	ResourceStatus *string `type:"string" enum:"ResourceStatus"`
15889
15890	// Success/failure message associated with the resource.
15891	ResourceStatusReason *string `type:"string"`
15892
15893	// Type of resource. (For more information, go to AWS Resource Types Reference
15894	// (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-template-resource-type-ref.html)
15895	// in the AWS CloudFormation User Guide.)
15896	ResourceType *string `min:"1" type:"string"`
15897
15898	// The unique ID name of the instance of the stack.
15899	//
15900	// StackId is a required field
15901	StackId *string `type:"string" required:"true"`
15902
15903	// The name associated with a stack.
15904	//
15905	// StackName is a required field
15906	StackName *string `type:"string" required:"true"`
15907
15908	// Time the status was updated.
15909	//
15910	// Timestamp is a required field
15911	Timestamp *time.Time `type:"timestamp" required:"true"`
15912}
15913
15914// String returns the string representation
15915func (s StackEvent) String() string {
15916	return awsutil.Prettify(s)
15917}
15918
15919// GoString returns the string representation
15920func (s StackEvent) GoString() string {
15921	return s.String()
15922}
15923
15924// SetClientRequestToken sets the ClientRequestToken field's value.
15925func (s *StackEvent) SetClientRequestToken(v string) *StackEvent {
15926	s.ClientRequestToken = &v
15927	return s
15928}
15929
15930// SetEventId sets the EventId field's value.
15931func (s *StackEvent) SetEventId(v string) *StackEvent {
15932	s.EventId = &v
15933	return s
15934}
15935
15936// SetLogicalResourceId sets the LogicalResourceId field's value.
15937func (s *StackEvent) SetLogicalResourceId(v string) *StackEvent {
15938	s.LogicalResourceId = &v
15939	return s
15940}
15941
15942// SetPhysicalResourceId sets the PhysicalResourceId field's value.
15943func (s *StackEvent) SetPhysicalResourceId(v string) *StackEvent {
15944	s.PhysicalResourceId = &v
15945	return s
15946}
15947
15948// SetResourceProperties sets the ResourceProperties field's value.
15949func (s *StackEvent) SetResourceProperties(v string) *StackEvent {
15950	s.ResourceProperties = &v
15951	return s
15952}
15953
15954// SetResourceStatus sets the ResourceStatus field's value.
15955func (s *StackEvent) SetResourceStatus(v string) *StackEvent {
15956	s.ResourceStatus = &v
15957	return s
15958}
15959
15960// SetResourceStatusReason sets the ResourceStatusReason field's value.
15961func (s *StackEvent) SetResourceStatusReason(v string) *StackEvent {
15962	s.ResourceStatusReason = &v
15963	return s
15964}
15965
15966// SetResourceType sets the ResourceType field's value.
15967func (s *StackEvent) SetResourceType(v string) *StackEvent {
15968	s.ResourceType = &v
15969	return s
15970}
15971
15972// SetStackId sets the StackId field's value.
15973func (s *StackEvent) SetStackId(v string) *StackEvent {
15974	s.StackId = &v
15975	return s
15976}
15977
15978// SetStackName sets the StackName field's value.
15979func (s *StackEvent) SetStackName(v string) *StackEvent {
15980	s.StackName = &v
15981	return s
15982}
15983
15984// SetTimestamp sets the Timestamp field's value.
15985func (s *StackEvent) SetTimestamp(v time.Time) *StackEvent {
15986	s.Timestamp = &v
15987	return s
15988}
15989
15990// An AWS CloudFormation stack, in a specific account and Region, that's part
15991// of a stack set operation. A stack instance is a reference to an attempted
15992// or actual stack in a given account within a given Region. A stack instance
15993// can exist without a stack—for example, if the stack couldn't be created
15994// for some reason. A stack instance is associated with only one stack set.
15995// Each stack instance contains the ID of its associated stack set, as well
15996// as the ID of the actual stack and the stack status.
15997type StackInstance struct {
15998	_ struct{} `type:"structure"`
15999
16000	// [Self-managed permissions] The name of the AWS account that the stack instance
16001	// is associated with.
16002	Account *string `type:"string"`
16003
16004	// Status of the stack instance's actual configuration compared to the expected
16005	// template and parameter configuration of the stack set to which it belongs.
16006	//
16007	//    * DRIFTED: The stack differs from the expected template and parameter
16008	//    configuration of the stack set to which it belongs. A stack instance is
16009	//    considered to have drifted if one or more of the resources in the associated
16010	//    stack have drifted.
16011	//
16012	//    * NOT_CHECKED: AWS CloudFormation has not checked if the stack instance
16013	//    differs from its expected stack set configuration.
16014	//
16015	//    * IN_SYNC: The stack instance's actual configuration matches its expected
16016	//    stack set configuration.
16017	//
16018	//    * UNKNOWN: This value is reserved for future use.
16019	DriftStatus *string `type:"string" enum:"StackDriftStatus"`
16020
16021	// Most recent time when CloudFormation performed a drift detection operation
16022	// on the stack instance. This value will be NULL for any stack instance on
16023	// which drift detection has not yet been performed.
16024	LastDriftCheckTimestamp *time.Time `type:"timestamp"`
16025
16026	// [Service-managed permissions] The organization root ID or organizational
16027	// unit (OU) IDs that you specified for DeploymentTargets (https://docs.aws.amazon.com/AWSCloudFormation/latest/APIReference/API_DeploymentTargets.html).
16028	OrganizationalUnitId *string `type:"string"`
16029
16030	// A list of parameters from the stack set template whose values have been overridden
16031	// in this stack instance.
16032	ParameterOverrides []*Parameter `type:"list"`
16033
16034	// The name of the AWS Region that the stack instance is associated with.
16035	Region *string `type:"string"`
16036
16037	// The ID of the stack instance.
16038	StackId *string `type:"string"`
16039
16040	// The detailed status of the stack instance.
16041	StackInstanceStatus *StackInstanceComprehensiveStatus `type:"structure"`
16042
16043	// The name or unique ID of the stack set that the stack instance is associated
16044	// with.
16045	StackSetId *string `type:"string"`
16046
16047	// The status of the stack instance, in terms of its synchronization with its
16048	// associated stack set.
16049	//
16050	//    * INOPERABLE: A DeleteStackInstances operation has failed and left the
16051	//    stack in an unstable state. Stacks in this state are excluded from further
16052	//    UpdateStackSet operations. You might need to perform a DeleteStackInstances
16053	//    operation, with RetainStacks set to true, to delete the stack instance,
16054	//    and then delete the stack manually.
16055	//
16056	//    * OUTDATED: The stack isn't currently up to date with the stack set because:
16057	//    The associated stack failed during a CreateStackSet or UpdateStackSet
16058	//    operation. The stack was part of a CreateStackSet or UpdateStackSet operation
16059	//    that failed or was stopped before the stack was created or updated.
16060	//
16061	//    * CURRENT: The stack is currently up to date with the stack set.
16062	Status *string `type:"string" enum:"StackInstanceStatus"`
16063
16064	// The explanation for the specific status code that is assigned to this stack
16065	// instance.
16066	StatusReason *string `type:"string"`
16067}
16068
16069// String returns the string representation
16070func (s StackInstance) String() string {
16071	return awsutil.Prettify(s)
16072}
16073
16074// GoString returns the string representation
16075func (s StackInstance) GoString() string {
16076	return s.String()
16077}
16078
16079// SetAccount sets the Account field's value.
16080func (s *StackInstance) SetAccount(v string) *StackInstance {
16081	s.Account = &v
16082	return s
16083}
16084
16085// SetDriftStatus sets the DriftStatus field's value.
16086func (s *StackInstance) SetDriftStatus(v string) *StackInstance {
16087	s.DriftStatus = &v
16088	return s
16089}
16090
16091// SetLastDriftCheckTimestamp sets the LastDriftCheckTimestamp field's value.
16092func (s *StackInstance) SetLastDriftCheckTimestamp(v time.Time) *StackInstance {
16093	s.LastDriftCheckTimestamp = &v
16094	return s
16095}
16096
16097// SetOrganizationalUnitId sets the OrganizationalUnitId field's value.
16098func (s *StackInstance) SetOrganizationalUnitId(v string) *StackInstance {
16099	s.OrganizationalUnitId = &v
16100	return s
16101}
16102
16103// SetParameterOverrides sets the ParameterOverrides field's value.
16104func (s *StackInstance) SetParameterOverrides(v []*Parameter) *StackInstance {
16105	s.ParameterOverrides = v
16106	return s
16107}
16108
16109// SetRegion sets the Region field's value.
16110func (s *StackInstance) SetRegion(v string) *StackInstance {
16111	s.Region = &v
16112	return s
16113}
16114
16115// SetStackId sets the StackId field's value.
16116func (s *StackInstance) SetStackId(v string) *StackInstance {
16117	s.StackId = &v
16118	return s
16119}
16120
16121// SetStackInstanceStatus sets the StackInstanceStatus field's value.
16122func (s *StackInstance) SetStackInstanceStatus(v *StackInstanceComprehensiveStatus) *StackInstance {
16123	s.StackInstanceStatus = v
16124	return s
16125}
16126
16127// SetStackSetId sets the StackSetId field's value.
16128func (s *StackInstance) SetStackSetId(v string) *StackInstance {
16129	s.StackSetId = &v
16130	return s
16131}
16132
16133// SetStatus sets the Status field's value.
16134func (s *StackInstance) SetStatus(v string) *StackInstance {
16135	s.Status = &v
16136	return s
16137}
16138
16139// SetStatusReason sets the StatusReason field's value.
16140func (s *StackInstance) SetStatusReason(v string) *StackInstance {
16141	s.StatusReason = &v
16142	return s
16143}
16144
16145// The detailed status of the stack instance.
16146type StackInstanceComprehensiveStatus struct {
16147	_ struct{} `type:"structure"`
16148
16149	//    * CANCELLED: The operation in the specified account and Region has been
16150	//    cancelled. This is either because a user has stopped the stack set operation,
16151	//    or because the failure tolerance of the stack set operation has been exceeded.
16152	//
16153	//    * FAILED: The operation in the specified account and Region failed. If
16154	//    the stack set operation fails in enough accounts within a Region, the
16155	//    failure tolerance for the stack set operation as a whole might be exceeded.
16156	//
16157	//    * INOPERABLE: A DeleteStackInstances operation has failed and left the
16158	//    stack in an unstable state. Stacks in this state are excluded from further
16159	//    UpdateStackSet operations. You might need to perform a DeleteStackInstances
16160	//    operation, with RetainStacks set to true, to delete the stack instance,
16161	//    and then delete the stack manually.
16162	//
16163	//    * PENDING: The operation in the specified account and Region has yet to
16164	//    start.
16165	//
16166	//    * RUNNING: The operation in the specified account and Region is currently
16167	//    in progress.
16168	//
16169	//    * SUCCEEDED: The operation in the specified account and Region completed
16170	//    successfully.
16171	DetailedStatus *string `type:"string" enum:"StackInstanceDetailedStatus"`
16172}
16173
16174// String returns the string representation
16175func (s StackInstanceComprehensiveStatus) String() string {
16176	return awsutil.Prettify(s)
16177}
16178
16179// GoString returns the string representation
16180func (s StackInstanceComprehensiveStatus) GoString() string {
16181	return s.String()
16182}
16183
16184// SetDetailedStatus sets the DetailedStatus field's value.
16185func (s *StackInstanceComprehensiveStatus) SetDetailedStatus(v string) *StackInstanceComprehensiveStatus {
16186	s.DetailedStatus = &v
16187	return s
16188}
16189
16190// The status that stack instances are filtered by.
16191type StackInstanceFilter struct {
16192	_ struct{} `type:"structure"`
16193
16194	// The type of filter to apply.
16195	Name *string `type:"string" enum:"StackInstanceFilterName"`
16196
16197	// The status to filter by.
16198	Values *string `min:"6" type:"string"`
16199}
16200
16201// String returns the string representation
16202func (s StackInstanceFilter) String() string {
16203	return awsutil.Prettify(s)
16204}
16205
16206// GoString returns the string representation
16207func (s StackInstanceFilter) GoString() string {
16208	return s.String()
16209}
16210
16211// Validate inspects the fields of the type to determine if they are valid.
16212func (s *StackInstanceFilter) Validate() error {
16213	invalidParams := request.ErrInvalidParams{Context: "StackInstanceFilter"}
16214	if s.Values != nil && len(*s.Values) < 6 {
16215		invalidParams.Add(request.NewErrParamMinLen("Values", 6))
16216	}
16217
16218	if invalidParams.Len() > 0 {
16219		return invalidParams
16220	}
16221	return nil
16222}
16223
16224// SetName sets the Name field's value.
16225func (s *StackInstanceFilter) SetName(v string) *StackInstanceFilter {
16226	s.Name = &v
16227	return s
16228}
16229
16230// SetValues sets the Values field's value.
16231func (s *StackInstanceFilter) SetValues(v string) *StackInstanceFilter {
16232	s.Values = &v
16233	return s
16234}
16235
16236// The structure that contains summary information about a stack instance.
16237type StackInstanceSummary struct {
16238	_ struct{} `type:"structure"`
16239
16240	// [Self-managed permissions] The name of the AWS account that the stack instance
16241	// is associated with.
16242	Account *string `type:"string"`
16243
16244	// Status of the stack instance's actual configuration compared to the expected
16245	// template and parameter configuration of the stack set to which it belongs.
16246	//
16247	//    * DRIFTED: The stack differs from the expected template and parameter
16248	//    configuration of the stack set to which it belongs. A stack instance is
16249	//    considered to have drifted if one or more of the resources in the associated
16250	//    stack have drifted.
16251	//
16252	//    * NOT_CHECKED: AWS CloudFormation has not checked if the stack instance
16253	//    differs from its expected stack set configuration.
16254	//
16255	//    * IN_SYNC: The stack instance's actual configuration matches its expected
16256	//    stack set configuration.
16257	//
16258	//    * UNKNOWN: This value is reserved for future use.
16259	DriftStatus *string `type:"string" enum:"StackDriftStatus"`
16260
16261	// Most recent time when CloudFormation performed a drift detection operation
16262	// on the stack instance. This value will be NULL for any stack instance on
16263	// which drift detection has not yet been performed.
16264	LastDriftCheckTimestamp *time.Time `type:"timestamp"`
16265
16266	// [Service-managed permissions] The organization root ID or organizational
16267	// unit (OU) IDs that you specified for DeploymentTargets (https://docs.aws.amazon.com/AWSCloudFormation/latest/APIReference/API_DeploymentTargets.html).
16268	OrganizationalUnitId *string `type:"string"`
16269
16270	// The name of the AWS Region that the stack instance is associated with.
16271	Region *string `type:"string"`
16272
16273	// The ID of the stack instance.
16274	StackId *string `type:"string"`
16275
16276	// The detailed status of the stack instance.
16277	StackInstanceStatus *StackInstanceComprehensiveStatus `type:"structure"`
16278
16279	// The name or unique ID of the stack set that the stack instance is associated
16280	// with.
16281	StackSetId *string `type:"string"`
16282
16283	// The status of the stack instance, in terms of its synchronization with its
16284	// associated stack set.
16285	//
16286	//    * INOPERABLE: A DeleteStackInstances operation has failed and left the
16287	//    stack in an unstable state. Stacks in this state are excluded from further
16288	//    UpdateStackSet operations. You might need to perform a DeleteStackInstances
16289	//    operation, with RetainStacks set to true, to delete the stack instance,
16290	//    and then delete the stack manually.
16291	//
16292	//    * OUTDATED: The stack isn't currently up to date with the stack set because:
16293	//    The associated stack failed during a CreateStackSet or UpdateStackSet
16294	//    operation. The stack was part of a CreateStackSet or UpdateStackSet operation
16295	//    that failed or was stopped before the stack was created or updated.
16296	//
16297	//    * CURRENT: The stack is currently up to date with the stack set.
16298	Status *string `type:"string" enum:"StackInstanceStatus"`
16299
16300	// The explanation for the specific status code assigned to this stack instance.
16301	StatusReason *string `type:"string"`
16302}
16303
16304// String returns the string representation
16305func (s StackInstanceSummary) String() string {
16306	return awsutil.Prettify(s)
16307}
16308
16309// GoString returns the string representation
16310func (s StackInstanceSummary) GoString() string {
16311	return s.String()
16312}
16313
16314// SetAccount sets the Account field's value.
16315func (s *StackInstanceSummary) SetAccount(v string) *StackInstanceSummary {
16316	s.Account = &v
16317	return s
16318}
16319
16320// SetDriftStatus sets the DriftStatus field's value.
16321func (s *StackInstanceSummary) SetDriftStatus(v string) *StackInstanceSummary {
16322	s.DriftStatus = &v
16323	return s
16324}
16325
16326// SetLastDriftCheckTimestamp sets the LastDriftCheckTimestamp field's value.
16327func (s *StackInstanceSummary) SetLastDriftCheckTimestamp(v time.Time) *StackInstanceSummary {
16328	s.LastDriftCheckTimestamp = &v
16329	return s
16330}
16331
16332// SetOrganizationalUnitId sets the OrganizationalUnitId field's value.
16333func (s *StackInstanceSummary) SetOrganizationalUnitId(v string) *StackInstanceSummary {
16334	s.OrganizationalUnitId = &v
16335	return s
16336}
16337
16338// SetRegion sets the Region field's value.
16339func (s *StackInstanceSummary) SetRegion(v string) *StackInstanceSummary {
16340	s.Region = &v
16341	return s
16342}
16343
16344// SetStackId sets the StackId field's value.
16345func (s *StackInstanceSummary) SetStackId(v string) *StackInstanceSummary {
16346	s.StackId = &v
16347	return s
16348}
16349
16350// SetStackInstanceStatus sets the StackInstanceStatus field's value.
16351func (s *StackInstanceSummary) SetStackInstanceStatus(v *StackInstanceComprehensiveStatus) *StackInstanceSummary {
16352	s.StackInstanceStatus = v
16353	return s
16354}
16355
16356// SetStackSetId sets the StackSetId field's value.
16357func (s *StackInstanceSummary) SetStackSetId(v string) *StackInstanceSummary {
16358	s.StackSetId = &v
16359	return s
16360}
16361
16362// SetStatus sets the Status field's value.
16363func (s *StackInstanceSummary) SetStatus(v string) *StackInstanceSummary {
16364	s.Status = &v
16365	return s
16366}
16367
16368// SetStatusReason sets the StatusReason field's value.
16369func (s *StackInstanceSummary) SetStatusReason(v string) *StackInstanceSummary {
16370	s.StatusReason = &v
16371	return s
16372}
16373
16374// The StackResource data type.
16375type StackResource struct {
16376	_ struct{} `type:"structure"`
16377
16378	// User defined description associated with the resource.
16379	Description *string `min:"1" type:"string"`
16380
16381	// Information about whether the resource's actual configuration differs, or
16382	// has drifted, from its expected configuration, as defined in the stack template
16383	// and any values specified as template parameters. For more information, see
16384	// Detecting Unregulated Configuration Changes to Stacks and Resources (http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-stack-drift.html).
16385	DriftInformation *StackResourceDriftInformation `type:"structure"`
16386
16387	// The logical name of the resource specified in the template.
16388	//
16389	// LogicalResourceId is a required field
16390	LogicalResourceId *string `type:"string" required:"true"`
16391
16392	// Contains information about the module from which the resource was created,
16393	// if the resource was created from a module included in the stack template.
16394	ModuleInfo *ModuleInfo `type:"structure"`
16395
16396	// The name or unique identifier that corresponds to a physical instance ID
16397	// of a resource supported by AWS CloudFormation.
16398	PhysicalResourceId *string `type:"string"`
16399
16400	// Current status of the resource.
16401	//
16402	// ResourceStatus is a required field
16403	ResourceStatus *string `type:"string" required:"true" enum:"ResourceStatus"`
16404
16405	// Success/failure message associated with the resource.
16406	ResourceStatusReason *string `type:"string"`
16407
16408	// Type of resource. (For more information, go to AWS Resource Types Reference
16409	// (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-template-resource-type-ref.html)
16410	// in the AWS CloudFormation User Guide.)
16411	//
16412	// ResourceType is a required field
16413	ResourceType *string `min:"1" type:"string" required:"true"`
16414
16415	// Unique identifier of the stack.
16416	StackId *string `type:"string"`
16417
16418	// The name associated with the stack.
16419	StackName *string `type:"string"`
16420
16421	// Time the status was updated.
16422	//
16423	// Timestamp is a required field
16424	Timestamp *time.Time `type:"timestamp" required:"true"`
16425}
16426
16427// String returns the string representation
16428func (s StackResource) String() string {
16429	return awsutil.Prettify(s)
16430}
16431
16432// GoString returns the string representation
16433func (s StackResource) GoString() string {
16434	return s.String()
16435}
16436
16437// SetDescription sets the Description field's value.
16438func (s *StackResource) SetDescription(v string) *StackResource {
16439	s.Description = &v
16440	return s
16441}
16442
16443// SetDriftInformation sets the DriftInformation field's value.
16444func (s *StackResource) SetDriftInformation(v *StackResourceDriftInformation) *StackResource {
16445	s.DriftInformation = v
16446	return s
16447}
16448
16449// SetLogicalResourceId sets the LogicalResourceId field's value.
16450func (s *StackResource) SetLogicalResourceId(v string) *StackResource {
16451	s.LogicalResourceId = &v
16452	return s
16453}
16454
16455// SetModuleInfo sets the ModuleInfo field's value.
16456func (s *StackResource) SetModuleInfo(v *ModuleInfo) *StackResource {
16457	s.ModuleInfo = v
16458	return s
16459}
16460
16461// SetPhysicalResourceId sets the PhysicalResourceId field's value.
16462func (s *StackResource) SetPhysicalResourceId(v string) *StackResource {
16463	s.PhysicalResourceId = &v
16464	return s
16465}
16466
16467// SetResourceStatus sets the ResourceStatus field's value.
16468func (s *StackResource) SetResourceStatus(v string) *StackResource {
16469	s.ResourceStatus = &v
16470	return s
16471}
16472
16473// SetResourceStatusReason sets the ResourceStatusReason field's value.
16474func (s *StackResource) SetResourceStatusReason(v string) *StackResource {
16475	s.ResourceStatusReason = &v
16476	return s
16477}
16478
16479// SetResourceType sets the ResourceType field's value.
16480func (s *StackResource) SetResourceType(v string) *StackResource {
16481	s.ResourceType = &v
16482	return s
16483}
16484
16485// SetStackId sets the StackId field's value.
16486func (s *StackResource) SetStackId(v string) *StackResource {
16487	s.StackId = &v
16488	return s
16489}
16490
16491// SetStackName sets the StackName field's value.
16492func (s *StackResource) SetStackName(v string) *StackResource {
16493	s.StackName = &v
16494	return s
16495}
16496
16497// SetTimestamp sets the Timestamp field's value.
16498func (s *StackResource) SetTimestamp(v time.Time) *StackResource {
16499	s.Timestamp = &v
16500	return s
16501}
16502
16503// Contains detailed information about the specified stack resource.
16504type StackResourceDetail struct {
16505	_ struct{} `type:"structure"`
16506
16507	// User defined description associated with the resource.
16508	Description *string `min:"1" type:"string"`
16509
16510	// Information about whether the resource's actual configuration differs, or
16511	// has drifted, from its expected configuration, as defined in the stack template
16512	// and any values specified as template parameters. For more information, see
16513	// Detecting Unregulated Configuration Changes to Stacks and Resources (http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-stack-drift.html).
16514	DriftInformation *StackResourceDriftInformation `type:"structure"`
16515
16516	// Time the status was updated.
16517	//
16518	// LastUpdatedTimestamp is a required field
16519	LastUpdatedTimestamp *time.Time `type:"timestamp" required:"true"`
16520
16521	// The logical name of the resource specified in the template.
16522	//
16523	// LogicalResourceId is a required field
16524	LogicalResourceId *string `type:"string" required:"true"`
16525
16526	// The content of the Metadata attribute declared for the resource. For more
16527	// information, see Metadata Attribute (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-metadata.html)
16528	// in the AWS CloudFormation User Guide.
16529	Metadata *string `type:"string"`
16530
16531	// Contains information about the module from which the resource was created,
16532	// if the resource was created from a module included in the stack template.
16533	ModuleInfo *ModuleInfo `type:"structure"`
16534
16535	// The name or unique identifier that corresponds to a physical instance ID
16536	// of a resource supported by AWS CloudFormation.
16537	PhysicalResourceId *string `type:"string"`
16538
16539	// Current status of the resource.
16540	//
16541	// ResourceStatus is a required field
16542	ResourceStatus *string `type:"string" required:"true" enum:"ResourceStatus"`
16543
16544	// Success/failure message associated with the resource.
16545	ResourceStatusReason *string `type:"string"`
16546
16547	// Type of resource. ((For more information, go to AWS Resource Types Reference
16548	// (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-template-resource-type-ref.html)
16549	// in the AWS CloudFormation User Guide.)
16550	//
16551	// ResourceType is a required field
16552	ResourceType *string `min:"1" type:"string" required:"true"`
16553
16554	// Unique identifier of the stack.
16555	StackId *string `type:"string"`
16556
16557	// The name associated with the stack.
16558	StackName *string `type:"string"`
16559}
16560
16561// String returns the string representation
16562func (s StackResourceDetail) String() string {
16563	return awsutil.Prettify(s)
16564}
16565
16566// GoString returns the string representation
16567func (s StackResourceDetail) GoString() string {
16568	return s.String()
16569}
16570
16571// SetDescription sets the Description field's value.
16572func (s *StackResourceDetail) SetDescription(v string) *StackResourceDetail {
16573	s.Description = &v
16574	return s
16575}
16576
16577// SetDriftInformation sets the DriftInformation field's value.
16578func (s *StackResourceDetail) SetDriftInformation(v *StackResourceDriftInformation) *StackResourceDetail {
16579	s.DriftInformation = v
16580	return s
16581}
16582
16583// SetLastUpdatedTimestamp sets the LastUpdatedTimestamp field's value.
16584func (s *StackResourceDetail) SetLastUpdatedTimestamp(v time.Time) *StackResourceDetail {
16585	s.LastUpdatedTimestamp = &v
16586	return s
16587}
16588
16589// SetLogicalResourceId sets the LogicalResourceId field's value.
16590func (s *StackResourceDetail) SetLogicalResourceId(v string) *StackResourceDetail {
16591	s.LogicalResourceId = &v
16592	return s
16593}
16594
16595// SetMetadata sets the Metadata field's value.
16596func (s *StackResourceDetail) SetMetadata(v string) *StackResourceDetail {
16597	s.Metadata = &v
16598	return s
16599}
16600
16601// SetModuleInfo sets the ModuleInfo field's value.
16602func (s *StackResourceDetail) SetModuleInfo(v *ModuleInfo) *StackResourceDetail {
16603	s.ModuleInfo = v
16604	return s
16605}
16606
16607// SetPhysicalResourceId sets the PhysicalResourceId field's value.
16608func (s *StackResourceDetail) SetPhysicalResourceId(v string) *StackResourceDetail {
16609	s.PhysicalResourceId = &v
16610	return s
16611}
16612
16613// SetResourceStatus sets the ResourceStatus field's value.
16614func (s *StackResourceDetail) SetResourceStatus(v string) *StackResourceDetail {
16615	s.ResourceStatus = &v
16616	return s
16617}
16618
16619// SetResourceStatusReason sets the ResourceStatusReason field's value.
16620func (s *StackResourceDetail) SetResourceStatusReason(v string) *StackResourceDetail {
16621	s.ResourceStatusReason = &v
16622	return s
16623}
16624
16625// SetResourceType sets the ResourceType field's value.
16626func (s *StackResourceDetail) SetResourceType(v string) *StackResourceDetail {
16627	s.ResourceType = &v
16628	return s
16629}
16630
16631// SetStackId sets the StackId field's value.
16632func (s *StackResourceDetail) SetStackId(v string) *StackResourceDetail {
16633	s.StackId = &v
16634	return s
16635}
16636
16637// SetStackName sets the StackName field's value.
16638func (s *StackResourceDetail) SetStackName(v string) *StackResourceDetail {
16639	s.StackName = &v
16640	return s
16641}
16642
16643// Contains the drift information for a resource that has been checked for drift.
16644// This includes actual and expected property values for resources in which
16645// AWS CloudFormation has detected drift. Only resource properties explicitly
16646// defined in the stack template are checked for drift. For more information,
16647// see Detecting Unregulated Configuration Changes to Stacks and Resources (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-stack-drift.html).
16648//
16649// Resources that do not currently support drift detection cannot be checked.
16650// For a list of resources that support drift detection, see Resources that
16651// Support Drift Detection (http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-stack-drift-resource-list.html).
16652//
16653// Use DetectStackResourceDrift to detect drift on individual resources, or
16654// DetectStackDrift to detect drift on all resources in a given stack that support
16655// drift detection.
16656type StackResourceDrift struct {
16657	_ struct{} `type:"structure"`
16658
16659	// A JSON structure containing the actual property values of the stack resource.
16660	//
16661	// For resources whose StackResourceDriftStatus is DELETED, this structure will
16662	// not be present.
16663	ActualProperties *string `type:"string"`
16664
16665	// A JSON structure containing the expected property values of the stack resource,
16666	// as defined in the stack template and any values specified as template parameters.
16667	//
16668	// For resources whose StackResourceDriftStatus is DELETED, this structure will
16669	// not be present.
16670	ExpectedProperties *string `type:"string"`
16671
16672	// The logical name of the resource specified in the template.
16673	//
16674	// LogicalResourceId is a required field
16675	LogicalResourceId *string `type:"string" required:"true"`
16676
16677	// Contains information about the module from which the resource was created,
16678	// if the resource was created from a module included in the stack template.
16679	ModuleInfo *ModuleInfo `type:"structure"`
16680
16681	// The name or unique identifier that corresponds to a physical instance ID
16682	// of a resource supported by AWS CloudFormation.
16683	PhysicalResourceId *string `type:"string"`
16684
16685	// Context information that enables AWS CloudFormation to uniquely identify
16686	// a resource. AWS CloudFormation uses context key-value pairs in cases where
16687	// a resource's logical and physical IDs are not enough to uniquely identify
16688	// that resource. Each context key-value pair specifies a unique resource that
16689	// contains the targeted resource.
16690	PhysicalResourceIdContext []*PhysicalResourceIdContextKeyValuePair `type:"list"`
16691
16692	// A collection of the resource properties whose actual values differ from their
16693	// expected values. These will be present only for resources whose StackResourceDriftStatus
16694	// is MODIFIED.
16695	PropertyDifferences []*PropertyDifference `type:"list"`
16696
16697	// The type of the resource.
16698	//
16699	// ResourceType is a required field
16700	ResourceType *string `min:"1" type:"string" required:"true"`
16701
16702	// The ID of the stack.
16703	//
16704	// StackId is a required field
16705	StackId *string `type:"string" required:"true"`
16706
16707	// Status of the resource's actual configuration compared to its expected configuration
16708	//
16709	//    * DELETED: The resource differs from its expected template configuration
16710	//    because the resource has been deleted.
16711	//
16712	//    * MODIFIED: One or more resource properties differ from their expected
16713	//    values (as defined in the stack template and any values specified as template
16714	//    parameters).
16715	//
16716	//    * IN_SYNC: The resources's actual configuration matches its expected template
16717	//    configuration.
16718	//
16719	//    * NOT_CHECKED: AWS CloudFormation does not currently return this value.
16720	//
16721	// StackResourceDriftStatus is a required field
16722	StackResourceDriftStatus *string `type:"string" required:"true" enum:"StackResourceDriftStatus"`
16723
16724	// Time at which AWS CloudFormation performed drift detection on the stack resource.
16725	//
16726	// Timestamp is a required field
16727	Timestamp *time.Time `type:"timestamp" required:"true"`
16728}
16729
16730// String returns the string representation
16731func (s StackResourceDrift) String() string {
16732	return awsutil.Prettify(s)
16733}
16734
16735// GoString returns the string representation
16736func (s StackResourceDrift) GoString() string {
16737	return s.String()
16738}
16739
16740// SetActualProperties sets the ActualProperties field's value.
16741func (s *StackResourceDrift) SetActualProperties(v string) *StackResourceDrift {
16742	s.ActualProperties = &v
16743	return s
16744}
16745
16746// SetExpectedProperties sets the ExpectedProperties field's value.
16747func (s *StackResourceDrift) SetExpectedProperties(v string) *StackResourceDrift {
16748	s.ExpectedProperties = &v
16749	return s
16750}
16751
16752// SetLogicalResourceId sets the LogicalResourceId field's value.
16753func (s *StackResourceDrift) SetLogicalResourceId(v string) *StackResourceDrift {
16754	s.LogicalResourceId = &v
16755	return s
16756}
16757
16758// SetModuleInfo sets the ModuleInfo field's value.
16759func (s *StackResourceDrift) SetModuleInfo(v *ModuleInfo) *StackResourceDrift {
16760	s.ModuleInfo = v
16761	return s
16762}
16763
16764// SetPhysicalResourceId sets the PhysicalResourceId field's value.
16765func (s *StackResourceDrift) SetPhysicalResourceId(v string) *StackResourceDrift {
16766	s.PhysicalResourceId = &v
16767	return s
16768}
16769
16770// SetPhysicalResourceIdContext sets the PhysicalResourceIdContext field's value.
16771func (s *StackResourceDrift) SetPhysicalResourceIdContext(v []*PhysicalResourceIdContextKeyValuePair) *StackResourceDrift {
16772	s.PhysicalResourceIdContext = v
16773	return s
16774}
16775
16776// SetPropertyDifferences sets the PropertyDifferences field's value.
16777func (s *StackResourceDrift) SetPropertyDifferences(v []*PropertyDifference) *StackResourceDrift {
16778	s.PropertyDifferences = v
16779	return s
16780}
16781
16782// SetResourceType sets the ResourceType field's value.
16783func (s *StackResourceDrift) SetResourceType(v string) *StackResourceDrift {
16784	s.ResourceType = &v
16785	return s
16786}
16787
16788// SetStackId sets the StackId field's value.
16789func (s *StackResourceDrift) SetStackId(v string) *StackResourceDrift {
16790	s.StackId = &v
16791	return s
16792}
16793
16794// SetStackResourceDriftStatus sets the StackResourceDriftStatus field's value.
16795func (s *StackResourceDrift) SetStackResourceDriftStatus(v string) *StackResourceDrift {
16796	s.StackResourceDriftStatus = &v
16797	return s
16798}
16799
16800// SetTimestamp sets the Timestamp field's value.
16801func (s *StackResourceDrift) SetTimestamp(v time.Time) *StackResourceDrift {
16802	s.Timestamp = &v
16803	return s
16804}
16805
16806// Contains information about whether the resource's actual configuration differs,
16807// or has drifted, from its expected configuration.
16808type StackResourceDriftInformation struct {
16809	_ struct{} `type:"structure"`
16810
16811	// When AWS CloudFormation last checked if the resource had drifted from its
16812	// expected configuration.
16813	LastCheckTimestamp *time.Time `type:"timestamp"`
16814
16815	// Status of the resource's actual configuration compared to its expected configuration
16816	//
16817	//    * DELETED: The resource differs from its expected configuration in that
16818	//    it has been deleted.
16819	//
16820	//    * MODIFIED: The resource differs from its expected configuration.
16821	//
16822	//    * NOT_CHECKED: AWS CloudFormation has not checked if the resource differs
16823	//    from its expected configuration. Any resources that do not currently support
16824	//    drift detection have a status of NOT_CHECKED. For more information, see
16825	//    Resources that Support Drift Detection (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-stack-drift-resource-list.html).
16826	//
16827	//    * IN_SYNC: The resources's actual configuration matches its expected configuration.
16828	//
16829	// StackResourceDriftStatus is a required field
16830	StackResourceDriftStatus *string `type:"string" required:"true" enum:"StackResourceDriftStatus"`
16831}
16832
16833// String returns the string representation
16834func (s StackResourceDriftInformation) String() string {
16835	return awsutil.Prettify(s)
16836}
16837
16838// GoString returns the string representation
16839func (s StackResourceDriftInformation) GoString() string {
16840	return s.String()
16841}
16842
16843// SetLastCheckTimestamp sets the LastCheckTimestamp field's value.
16844func (s *StackResourceDriftInformation) SetLastCheckTimestamp(v time.Time) *StackResourceDriftInformation {
16845	s.LastCheckTimestamp = &v
16846	return s
16847}
16848
16849// SetStackResourceDriftStatus sets the StackResourceDriftStatus field's value.
16850func (s *StackResourceDriftInformation) SetStackResourceDriftStatus(v string) *StackResourceDriftInformation {
16851	s.StackResourceDriftStatus = &v
16852	return s
16853}
16854
16855// Summarizes information about whether the resource's actual configuration
16856// differs, or has drifted, from its expected configuration.
16857type StackResourceDriftInformationSummary struct {
16858	_ struct{} `type:"structure"`
16859
16860	// When AWS CloudFormation last checked if the resource had drifted from its
16861	// expected configuration.
16862	LastCheckTimestamp *time.Time `type:"timestamp"`
16863
16864	// Status of the resource's actual configuration compared to its expected configuration
16865	//
16866	//    * DELETED: The resource differs from its expected configuration in that
16867	//    it has been deleted.
16868	//
16869	//    * MODIFIED: The resource differs from its expected configuration.
16870	//
16871	//    * NOT_CHECKED: AWS CloudFormation has not checked if the resource differs
16872	//    from its expected configuration. Any resources that do not currently support
16873	//    drift detection have a status of NOT_CHECKED. For more information, see
16874	//    Resources that Support Drift Detection (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-stack-drift-resource-list.html).
16875	//    If you performed an ContinueUpdateRollback operation on a stack, any resources
16876	//    included in ResourcesToSkip will also have a status of NOT_CHECKED. For
16877	//    more information on skipping resources during rollback operations, see
16878	//    Continue Rolling Back an Update (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-continueupdaterollback.html)
16879	//    in the AWS CloudFormation User Guide.
16880	//
16881	//    * IN_SYNC: The resources's actual configuration matches its expected configuration.
16882	//
16883	// StackResourceDriftStatus is a required field
16884	StackResourceDriftStatus *string `type:"string" required:"true" enum:"StackResourceDriftStatus"`
16885}
16886
16887// String returns the string representation
16888func (s StackResourceDriftInformationSummary) String() string {
16889	return awsutil.Prettify(s)
16890}
16891
16892// GoString returns the string representation
16893func (s StackResourceDriftInformationSummary) GoString() string {
16894	return s.String()
16895}
16896
16897// SetLastCheckTimestamp sets the LastCheckTimestamp field's value.
16898func (s *StackResourceDriftInformationSummary) SetLastCheckTimestamp(v time.Time) *StackResourceDriftInformationSummary {
16899	s.LastCheckTimestamp = &v
16900	return s
16901}
16902
16903// SetStackResourceDriftStatus sets the StackResourceDriftStatus field's value.
16904func (s *StackResourceDriftInformationSummary) SetStackResourceDriftStatus(v string) *StackResourceDriftInformationSummary {
16905	s.StackResourceDriftStatus = &v
16906	return s
16907}
16908
16909// Contains high-level information about the specified stack resource.
16910type StackResourceSummary struct {
16911	_ struct{} `type:"structure"`
16912
16913	// Information about whether the resource's actual configuration differs, or
16914	// has drifted, from its expected configuration, as defined in the stack template
16915	// and any values specified as template parameters. For more information, see
16916	// Detecting Unregulated Configuration Changes to Stacks and Resources (http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-stack-drift.html).
16917	DriftInformation *StackResourceDriftInformationSummary `type:"structure"`
16918
16919	// Time the status was updated.
16920	//
16921	// LastUpdatedTimestamp is a required field
16922	LastUpdatedTimestamp *time.Time `type:"timestamp" required:"true"`
16923
16924	// The logical name of the resource specified in the template.
16925	//
16926	// LogicalResourceId is a required field
16927	LogicalResourceId *string `type:"string" required:"true"`
16928
16929	// Contains information about the module from which the resource was created,
16930	// if the resource was created from a module included in the stack template.
16931	ModuleInfo *ModuleInfo `type:"structure"`
16932
16933	// The name or unique identifier that corresponds to a physical instance ID
16934	// of the resource.
16935	PhysicalResourceId *string `type:"string"`
16936
16937	// Current status of the resource.
16938	//
16939	// ResourceStatus is a required field
16940	ResourceStatus *string `type:"string" required:"true" enum:"ResourceStatus"`
16941
16942	// Success/failure message associated with the resource.
16943	ResourceStatusReason *string `type:"string"`
16944
16945	// Type of resource. (For more information, go to AWS Resource Types Reference
16946	// (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-template-resource-type-ref.html)
16947	// in the AWS CloudFormation User Guide.)
16948	//
16949	// ResourceType is a required field
16950	ResourceType *string `min:"1" type:"string" required:"true"`
16951}
16952
16953// String returns the string representation
16954func (s StackResourceSummary) String() string {
16955	return awsutil.Prettify(s)
16956}
16957
16958// GoString returns the string representation
16959func (s StackResourceSummary) GoString() string {
16960	return s.String()
16961}
16962
16963// SetDriftInformation sets the DriftInformation field's value.
16964func (s *StackResourceSummary) SetDriftInformation(v *StackResourceDriftInformationSummary) *StackResourceSummary {
16965	s.DriftInformation = v
16966	return s
16967}
16968
16969// SetLastUpdatedTimestamp sets the LastUpdatedTimestamp field's value.
16970func (s *StackResourceSummary) SetLastUpdatedTimestamp(v time.Time) *StackResourceSummary {
16971	s.LastUpdatedTimestamp = &v
16972	return s
16973}
16974
16975// SetLogicalResourceId sets the LogicalResourceId field's value.
16976func (s *StackResourceSummary) SetLogicalResourceId(v string) *StackResourceSummary {
16977	s.LogicalResourceId = &v
16978	return s
16979}
16980
16981// SetModuleInfo sets the ModuleInfo field's value.
16982func (s *StackResourceSummary) SetModuleInfo(v *ModuleInfo) *StackResourceSummary {
16983	s.ModuleInfo = v
16984	return s
16985}
16986
16987// SetPhysicalResourceId sets the PhysicalResourceId field's value.
16988func (s *StackResourceSummary) SetPhysicalResourceId(v string) *StackResourceSummary {
16989	s.PhysicalResourceId = &v
16990	return s
16991}
16992
16993// SetResourceStatus sets the ResourceStatus field's value.
16994func (s *StackResourceSummary) SetResourceStatus(v string) *StackResourceSummary {
16995	s.ResourceStatus = &v
16996	return s
16997}
16998
16999// SetResourceStatusReason sets the ResourceStatusReason field's value.
17000func (s *StackResourceSummary) SetResourceStatusReason(v string) *StackResourceSummary {
17001	s.ResourceStatusReason = &v
17002	return s
17003}
17004
17005// SetResourceType sets the ResourceType field's value.
17006func (s *StackResourceSummary) SetResourceType(v string) *StackResourceSummary {
17007	s.ResourceType = &v
17008	return s
17009}
17010
17011// A structure that contains information about a stack set. A stack set enables
17012// you to provision stacks into AWS accounts and across Regions by using a single
17013// CloudFormation template. In the stack set, you specify the template to use,
17014// as well as any parameters and capabilities that the template requires.
17015type StackSet struct {
17016	_ struct{} `type:"structure"`
17017
17018	// The Amazon Resource Number (ARN) of the IAM role used to create or update
17019	// the stack set.
17020	//
17021	// Use customized administrator roles to control which users or groups can manage
17022	// specific stack sets within the same administrator account. For more information,
17023	// see Prerequisites: Granting Permissions for Stack Set Operations (http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/stacksets-prereqs.html)
17024	// in the AWS CloudFormation User Guide.
17025	AdministrationRoleARN *string `min:"20" type:"string"`
17026
17027	// [Service-managed permissions] Describes whether StackSets automatically deploys
17028	// to AWS Organizations accounts that are added to a target organization or
17029	// organizational unit (OU).
17030	AutoDeployment *AutoDeployment `type:"structure"`
17031
17032	// The capabilities that are allowed in the stack set. Some stack set templates
17033	// might include resources that can affect permissions in your AWS account—for
17034	// example, by creating new AWS Identity and Access Management (IAM) users.
17035	// For more information, see Acknowledging IAM Resources in AWS CloudFormation
17036	// Templates. (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-iam-template.html#capabilities)
17037	Capabilities []*string `type:"list"`
17038
17039	// A description of the stack set that you specify when the stack set is created
17040	// or updated.
17041	Description *string `min:"1" type:"string"`
17042
17043	// The name of the IAM execution role used to create or update the stack set.
17044	//
17045	// Use customized execution roles to control which stack resources users and
17046	// groups can include in their stack sets.
17047	ExecutionRoleName *string `min:"1" type:"string"`
17048
17049	// [Service-managed permissions] The organization root ID or organizational
17050	// unit (OU) IDs that you specified for DeploymentTargets (https://docs.aws.amazon.com/AWSCloudFormation/latest/APIReference/API_DeploymentTargets.html).
17051	OrganizationalUnitIds []*string `type:"list"`
17052
17053	// A list of input parameters for a stack set.
17054	Parameters []*Parameter `type:"list"`
17055
17056	// Describes how the IAM roles required for stack set operations are created.
17057	//
17058	//    * With self-managed permissions, you must create the administrator and
17059	//    execution roles required to deploy to target accounts. For more information,
17060	//    see Grant Self-Managed Stack Set Permissions (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/stacksets-prereqs-self-managed.html).
17061	//
17062	//    * With service-managed permissions, StackSets automatically creates the
17063	//    IAM roles required to deploy to accounts managed by AWS Organizations.
17064	//    For more information, see Grant Service-Managed Stack Set Permissions
17065	//    (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/stacksets-prereqs-service-managed.html).
17066	PermissionModel *string `type:"string" enum:"PermissionModels"`
17067
17068	// The Amazon Resource Number (ARN) of the stack set.
17069	StackSetARN *string `type:"string"`
17070
17071	// Detailed information about the drift status of the stack set.
17072	//
17073	// For stack sets, contains information about the last completed drift operation
17074	// performed on the stack set. Information about drift operations currently
17075	// in progress is not included.
17076	StackSetDriftDetectionDetails *StackSetDriftDetectionDetails `type:"structure"`
17077
17078	// The ID of the stack set.
17079	StackSetId *string `type:"string"`
17080
17081	// The name that's associated with the stack set.
17082	StackSetName *string `type:"string"`
17083
17084	// The status of the stack set.
17085	Status *string `type:"string" enum:"StackSetStatus"`
17086
17087	// A list of tags that specify information about the stack set. A maximum number
17088	// of 50 tags can be specified.
17089	Tags []*Tag `type:"list"`
17090
17091	// The structure that contains the body of the template that was used to create
17092	// or update the stack set.
17093	TemplateBody *string `min:"1" type:"string"`
17094}
17095
17096// String returns the string representation
17097func (s StackSet) String() string {
17098	return awsutil.Prettify(s)
17099}
17100
17101// GoString returns the string representation
17102func (s StackSet) GoString() string {
17103	return s.String()
17104}
17105
17106// SetAdministrationRoleARN sets the AdministrationRoleARN field's value.
17107func (s *StackSet) SetAdministrationRoleARN(v string) *StackSet {
17108	s.AdministrationRoleARN = &v
17109	return s
17110}
17111
17112// SetAutoDeployment sets the AutoDeployment field's value.
17113func (s *StackSet) SetAutoDeployment(v *AutoDeployment) *StackSet {
17114	s.AutoDeployment = v
17115	return s
17116}
17117
17118// SetCapabilities sets the Capabilities field's value.
17119func (s *StackSet) SetCapabilities(v []*string) *StackSet {
17120	s.Capabilities = v
17121	return s
17122}
17123
17124// SetDescription sets the Description field's value.
17125func (s *StackSet) SetDescription(v string) *StackSet {
17126	s.Description = &v
17127	return s
17128}
17129
17130// SetExecutionRoleName sets the ExecutionRoleName field's value.
17131func (s *StackSet) SetExecutionRoleName(v string) *StackSet {
17132	s.ExecutionRoleName = &v
17133	return s
17134}
17135
17136// SetOrganizationalUnitIds sets the OrganizationalUnitIds field's value.
17137func (s *StackSet) SetOrganizationalUnitIds(v []*string) *StackSet {
17138	s.OrganizationalUnitIds = v
17139	return s
17140}
17141
17142// SetParameters sets the Parameters field's value.
17143func (s *StackSet) SetParameters(v []*Parameter) *StackSet {
17144	s.Parameters = v
17145	return s
17146}
17147
17148// SetPermissionModel sets the PermissionModel field's value.
17149func (s *StackSet) SetPermissionModel(v string) *StackSet {
17150	s.PermissionModel = &v
17151	return s
17152}
17153
17154// SetStackSetARN sets the StackSetARN field's value.
17155func (s *StackSet) SetStackSetARN(v string) *StackSet {
17156	s.StackSetARN = &v
17157	return s
17158}
17159
17160// SetStackSetDriftDetectionDetails sets the StackSetDriftDetectionDetails field's value.
17161func (s *StackSet) SetStackSetDriftDetectionDetails(v *StackSetDriftDetectionDetails) *StackSet {
17162	s.StackSetDriftDetectionDetails = v
17163	return s
17164}
17165
17166// SetStackSetId sets the StackSetId field's value.
17167func (s *StackSet) SetStackSetId(v string) *StackSet {
17168	s.StackSetId = &v
17169	return s
17170}
17171
17172// SetStackSetName sets the StackSetName field's value.
17173func (s *StackSet) SetStackSetName(v string) *StackSet {
17174	s.StackSetName = &v
17175	return s
17176}
17177
17178// SetStatus sets the Status field's value.
17179func (s *StackSet) SetStatus(v string) *StackSet {
17180	s.Status = &v
17181	return s
17182}
17183
17184// SetTags sets the Tags field's value.
17185func (s *StackSet) SetTags(v []*Tag) *StackSet {
17186	s.Tags = v
17187	return s
17188}
17189
17190// SetTemplateBody sets the TemplateBody field's value.
17191func (s *StackSet) SetTemplateBody(v string) *StackSet {
17192	s.TemplateBody = &v
17193	return s
17194}
17195
17196// Detailed information about the drift status of the stack set.
17197//
17198// For stack sets, contains information about the last completed drift operation
17199// performed on the stack set. Information about drift operations in-progress
17200// is not included.
17201//
17202// For stack set operations, includes information about drift operations currently
17203// being performed on the stack set.
17204//
17205// For more information, see Detecting Unmanaged Changes in Stack Sets (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/stacksets-drift.html)
17206// in the AWS CloudFormation User Guide.
17207type StackSetDriftDetectionDetails struct {
17208	_ struct{} `type:"structure"`
17209
17210	// The status of the stack set drift detection operation.
17211	//
17212	//    * COMPLETED: The drift detection operation completed without failing on
17213	//    any stack instances.
17214	//
17215	//    * FAILED: The drift detection operation exceeded the specified failure
17216	//    tolerance.
17217	//
17218	//    * PARTIAL_SUCCESS: The drift detection operation completed without exceeding
17219	//    the failure tolerance for the operation.
17220	//
17221	//    * IN_PROGRESS: The drift detection operation is currently being performed.
17222	//
17223	//    * STOPPED: The user has cancelled the drift detection operation.
17224	DriftDetectionStatus *string `type:"string" enum:"StackSetDriftDetectionStatus"`
17225
17226	// Status of the stack set's actual configuration compared to its expected template
17227	// and parameter configuration. A stack set is considered to have drifted if
17228	// one or more of its stack instances have drifted from their expected template
17229	// and parameter configuration.
17230	//
17231	//    * DRIFTED: One or more of the stack instances belonging to the stack set
17232	//    stack differs from the expected template and parameter configuration.
17233	//    A stack instance is considered to have drifted if one or more of the resources
17234	//    in the associated stack have drifted.
17235	//
17236	//    * NOT_CHECKED: AWS CloudFormation has not checked the stack set for drift.
17237	//
17238	//    * IN_SYNC: All of the stack instances belonging to the stack set stack
17239	//    match from the expected template and parameter configuration.
17240	DriftStatus *string `type:"string" enum:"StackSetDriftStatus"`
17241
17242	// The number of stack instances that have drifted from the expected template
17243	// and parameter configuration of the stack set. A stack instance is considered
17244	// to have drifted if one or more of the resources in the associated stack do
17245	// not match their expected configuration.
17246	DriftedStackInstancesCount *int64 `type:"integer"`
17247
17248	// The number of stack instances for which the drift detection operation failed.
17249	FailedStackInstancesCount *int64 `type:"integer"`
17250
17251	// The number of stack instances that are currently being checked for drift.
17252	InProgressStackInstancesCount *int64 `type:"integer"`
17253
17254	// The number of stack instances which match the expected template and parameter
17255	// configuration of the stack set.
17256	InSyncStackInstancesCount *int64 `type:"integer"`
17257
17258	// Most recent time when CloudFormation performed a drift detection operation
17259	// on the stack set. This value will be NULL for any stack set on which drift
17260	// detection has not yet been performed.
17261	LastDriftCheckTimestamp *time.Time `type:"timestamp"`
17262
17263	// The total number of stack instances belonging to this stack set.
17264	//
17265	// The total number of stack instances is equal to the total of:
17266	//
17267	//    * Stack instances that match the stack set configuration.
17268	//
17269	//    * Stack instances that have drifted from the stack set configuration.
17270	//
17271	//    * Stack instances where the drift detection operation has failed.
17272	//
17273	//    * Stack instances currently being checked for drift.
17274	TotalStackInstancesCount *int64 `type:"integer"`
17275}
17276
17277// String returns the string representation
17278func (s StackSetDriftDetectionDetails) String() string {
17279	return awsutil.Prettify(s)
17280}
17281
17282// GoString returns the string representation
17283func (s StackSetDriftDetectionDetails) GoString() string {
17284	return s.String()
17285}
17286
17287// SetDriftDetectionStatus sets the DriftDetectionStatus field's value.
17288func (s *StackSetDriftDetectionDetails) SetDriftDetectionStatus(v string) *StackSetDriftDetectionDetails {
17289	s.DriftDetectionStatus = &v
17290	return s
17291}
17292
17293// SetDriftStatus sets the DriftStatus field's value.
17294func (s *StackSetDriftDetectionDetails) SetDriftStatus(v string) *StackSetDriftDetectionDetails {
17295	s.DriftStatus = &v
17296	return s
17297}
17298
17299// SetDriftedStackInstancesCount sets the DriftedStackInstancesCount field's value.
17300func (s *StackSetDriftDetectionDetails) SetDriftedStackInstancesCount(v int64) *StackSetDriftDetectionDetails {
17301	s.DriftedStackInstancesCount = &v
17302	return s
17303}
17304
17305// SetFailedStackInstancesCount sets the FailedStackInstancesCount field's value.
17306func (s *StackSetDriftDetectionDetails) SetFailedStackInstancesCount(v int64) *StackSetDriftDetectionDetails {
17307	s.FailedStackInstancesCount = &v
17308	return s
17309}
17310
17311// SetInProgressStackInstancesCount sets the InProgressStackInstancesCount field's value.
17312func (s *StackSetDriftDetectionDetails) SetInProgressStackInstancesCount(v int64) *StackSetDriftDetectionDetails {
17313	s.InProgressStackInstancesCount = &v
17314	return s
17315}
17316
17317// SetInSyncStackInstancesCount sets the InSyncStackInstancesCount field's value.
17318func (s *StackSetDriftDetectionDetails) SetInSyncStackInstancesCount(v int64) *StackSetDriftDetectionDetails {
17319	s.InSyncStackInstancesCount = &v
17320	return s
17321}
17322
17323// SetLastDriftCheckTimestamp sets the LastDriftCheckTimestamp field's value.
17324func (s *StackSetDriftDetectionDetails) SetLastDriftCheckTimestamp(v time.Time) *StackSetDriftDetectionDetails {
17325	s.LastDriftCheckTimestamp = &v
17326	return s
17327}
17328
17329// SetTotalStackInstancesCount sets the TotalStackInstancesCount field's value.
17330func (s *StackSetDriftDetectionDetails) SetTotalStackInstancesCount(v int64) *StackSetDriftDetectionDetails {
17331	s.TotalStackInstancesCount = &v
17332	return s
17333}
17334
17335// The structure that contains information about a stack set operation.
17336type StackSetOperation struct {
17337	_ struct{} `type:"structure"`
17338
17339	// The type of stack set operation: CREATE, UPDATE, or DELETE. Create and delete
17340	// operations affect only the specified stack set instances that are associated
17341	// with the specified stack set. Update operations affect both the stack set
17342	// itself, as well as all associated stack set instances.
17343	Action *string `type:"string" enum:"StackSetOperationAction"`
17344
17345	// The Amazon Resource Number (ARN) of the IAM role used to perform this stack
17346	// set operation.
17347	//
17348	// Use customized administrator roles to control which users or groups can manage
17349	// specific stack sets within the same administrator account. For more information,
17350	// see Define Permissions for Multiple Administrators (http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/stacksets-prereqs.html)
17351	// in the AWS CloudFormation User Guide.
17352	AdministrationRoleARN *string `min:"20" type:"string"`
17353
17354	// The time at which the operation was initiated. Note that the creation times
17355	// for the stack set operation might differ from the creation time of the individual
17356	// stacks themselves. This is because AWS CloudFormation needs to perform preparatory
17357	// work for the operation, such as dispatching the work to the requested Regions,
17358	// before actually creating the first stacks.
17359	CreationTimestamp *time.Time `type:"timestamp"`
17360
17361	// [Service-managed permissions] The AWS Organizations accounts affected by
17362	// the stack operation.
17363	DeploymentTargets *DeploymentTargets `type:"structure"`
17364
17365	// The time at which the stack set operation ended, across all accounts and
17366	// Regions specified. Note that this doesn't necessarily mean that the stack
17367	// set operation was successful, or even attempted, in each account or Region.
17368	EndTimestamp *time.Time `type:"timestamp"`
17369
17370	// The name of the IAM execution role used to create or update the stack set.
17371	//
17372	// Use customized execution roles to control which stack resources users and
17373	// groups can include in their stack sets.
17374	ExecutionRoleName *string `min:"1" type:"string"`
17375
17376	// The unique ID of a stack set operation.
17377	OperationId *string `min:"1" type:"string"`
17378
17379	// The preferences for how AWS CloudFormation performs this stack set operation.
17380	OperationPreferences *StackSetOperationPreferences `type:"structure"`
17381
17382	// For stack set operations of action type DELETE, specifies whether to remove
17383	// the stack instances from the specified stack set, but doesn't delete the
17384	// stacks. You can't reassociate a retained stack, or add an existing, saved
17385	// stack to a new stack set.
17386	RetainStacks *bool `type:"boolean"`
17387
17388	// Detailed information about the drift status of the stack set. This includes
17389	// information about drift operations currently being performed on the stack
17390	// set.
17391	//
17392	// this information will only be present for stack set operations whose Action
17393	// type is DETECT_DRIFT.
17394	//
17395	// For more information, see Detecting Unmanaged Changes in Stack Sets (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/stacksets-drift.html)
17396	// in the AWS CloudFormation User Guide.
17397	StackSetDriftDetectionDetails *StackSetDriftDetectionDetails `type:"structure"`
17398
17399	// The ID of the stack set.
17400	StackSetId *string `type:"string"`
17401
17402	// The status of the operation.
17403	//
17404	//    * FAILED: The operation exceeded the specified failure tolerance. The
17405	//    failure tolerance value that you've set for an operation is applied for
17406	//    each Region during stack create and update operations. If the number of
17407	//    failed stacks within a Region exceeds the failure tolerance, the status
17408	//    of the operation in the Region is set to FAILED. This in turn sets the
17409	//    status of the operation as a whole to FAILED, and AWS CloudFormation cancels
17410	//    the operation in any remaining Regions.
17411	//
17412	//    * QUEUED: [Service-managed permissions] For automatic deployments that
17413	//    require a sequence of operations, the operation is queued to be performed.
17414	//    For more information, see the stack set operation status codes (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/stacksets-concepts.html#stackset-status-codes)
17415	//    in the AWS CloudFormation User Guide.
17416	//
17417	//    * RUNNING: The operation is currently being performed.
17418	//
17419	//    * STOPPED: The user has cancelled the operation.
17420	//
17421	//    * STOPPING: The operation is in the process of stopping, at user request.
17422	//
17423	//    * SUCCEEDED: The operation completed creating or updating all the specified
17424	//    stacks without exceeding the failure tolerance for the operation.
17425	Status *string `type:"string" enum:"StackSetOperationStatus"`
17426}
17427
17428// String returns the string representation
17429func (s StackSetOperation) String() string {
17430	return awsutil.Prettify(s)
17431}
17432
17433// GoString returns the string representation
17434func (s StackSetOperation) GoString() string {
17435	return s.String()
17436}
17437
17438// SetAction sets the Action field's value.
17439func (s *StackSetOperation) SetAction(v string) *StackSetOperation {
17440	s.Action = &v
17441	return s
17442}
17443
17444// SetAdministrationRoleARN sets the AdministrationRoleARN field's value.
17445func (s *StackSetOperation) SetAdministrationRoleARN(v string) *StackSetOperation {
17446	s.AdministrationRoleARN = &v
17447	return s
17448}
17449
17450// SetCreationTimestamp sets the CreationTimestamp field's value.
17451func (s *StackSetOperation) SetCreationTimestamp(v time.Time) *StackSetOperation {
17452	s.CreationTimestamp = &v
17453	return s
17454}
17455
17456// SetDeploymentTargets sets the DeploymentTargets field's value.
17457func (s *StackSetOperation) SetDeploymentTargets(v *DeploymentTargets) *StackSetOperation {
17458	s.DeploymentTargets = v
17459	return s
17460}
17461
17462// SetEndTimestamp sets the EndTimestamp field's value.
17463func (s *StackSetOperation) SetEndTimestamp(v time.Time) *StackSetOperation {
17464	s.EndTimestamp = &v
17465	return s
17466}
17467
17468// SetExecutionRoleName sets the ExecutionRoleName field's value.
17469func (s *StackSetOperation) SetExecutionRoleName(v string) *StackSetOperation {
17470	s.ExecutionRoleName = &v
17471	return s
17472}
17473
17474// SetOperationId sets the OperationId field's value.
17475func (s *StackSetOperation) SetOperationId(v string) *StackSetOperation {
17476	s.OperationId = &v
17477	return s
17478}
17479
17480// SetOperationPreferences sets the OperationPreferences field's value.
17481func (s *StackSetOperation) SetOperationPreferences(v *StackSetOperationPreferences) *StackSetOperation {
17482	s.OperationPreferences = v
17483	return s
17484}
17485
17486// SetRetainStacks sets the RetainStacks field's value.
17487func (s *StackSetOperation) SetRetainStacks(v bool) *StackSetOperation {
17488	s.RetainStacks = &v
17489	return s
17490}
17491
17492// SetStackSetDriftDetectionDetails sets the StackSetDriftDetectionDetails field's value.
17493func (s *StackSetOperation) SetStackSetDriftDetectionDetails(v *StackSetDriftDetectionDetails) *StackSetOperation {
17494	s.StackSetDriftDetectionDetails = v
17495	return s
17496}
17497
17498// SetStackSetId sets the StackSetId field's value.
17499func (s *StackSetOperation) SetStackSetId(v string) *StackSetOperation {
17500	s.StackSetId = &v
17501	return s
17502}
17503
17504// SetStatus sets the Status field's value.
17505func (s *StackSetOperation) SetStatus(v string) *StackSetOperation {
17506	s.Status = &v
17507	return s
17508}
17509
17510// The user-specified preferences for how AWS CloudFormation performs a stack
17511// set operation.
17512//
17513// For more information on maximum concurrent accounts and failure tolerance,
17514// see Stack set operation options (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/stacksets-concepts.html#stackset-ops-options).
17515type StackSetOperationPreferences struct {
17516	_ struct{} `type:"structure"`
17517
17518	// The number of accounts, per Region, for which this operation can fail before
17519	// AWS CloudFormation stops the operation in that Region. If the operation is
17520	// stopped in a Region, AWS CloudFormation doesn't attempt the operation in
17521	// any subsequent Regions.
17522	//
17523	// Conditional: You must specify either FailureToleranceCount or FailureTolerancePercentage
17524	// (but not both).
17525	//
17526	// By default, 0 is specified.
17527	FailureToleranceCount *int64 `type:"integer"`
17528
17529	// The percentage of accounts, per Region, for which this stack operation can
17530	// fail before AWS CloudFormation stops the operation in that Region. If the
17531	// operation is stopped in a Region, AWS CloudFormation doesn't attempt the
17532	// operation in any subsequent Regions.
17533	//
17534	// When calculating the number of accounts based on the specified percentage,
17535	// AWS CloudFormation rounds down to the next whole number.
17536	//
17537	// Conditional: You must specify either FailureToleranceCount or FailureTolerancePercentage,
17538	// but not both.
17539	//
17540	// By default, 0 is specified.
17541	FailureTolerancePercentage *int64 `type:"integer"`
17542
17543	// The maximum number of accounts in which to perform this operation at one
17544	// time. This is dependent on the value of FailureToleranceCount. MaxConcurrentCount
17545	// is at most one more than the FailureToleranceCount.
17546	//
17547	// Note that this setting lets you specify the maximum for operations. For large
17548	// deployments, under certain circumstances the actual number of accounts acted
17549	// upon concurrently may be lower due to service throttling.
17550	//
17551	// Conditional: You must specify either MaxConcurrentCount or MaxConcurrentPercentage,
17552	// but not both.
17553	//
17554	// By default, 1 is specified.
17555	MaxConcurrentCount *int64 `min:"1" type:"integer"`
17556
17557	// The maximum percentage of accounts in which to perform this operation at
17558	// one time.
17559	//
17560	// When calculating the number of accounts based on the specified percentage,
17561	// AWS CloudFormation rounds down to the next whole number. This is true except
17562	// in cases where rounding down would result is zero. In this case, CloudFormation
17563	// sets the number as one instead.
17564	//
17565	// Note that this setting lets you specify the maximum for operations. For large
17566	// deployments, under certain circumstances the actual number of accounts acted
17567	// upon concurrently may be lower due to service throttling.
17568	//
17569	// Conditional: You must specify either MaxConcurrentCount or MaxConcurrentPercentage,
17570	// but not both.
17571	//
17572	// By default, 1 is specified.
17573	MaxConcurrentPercentage *int64 `min:"1" type:"integer"`
17574
17575	// The concurrency type of deploying StackSets operations in regions, could
17576	// be in parallel or one region at a time.
17577	RegionConcurrencyType *string `type:"string" enum:"RegionConcurrencyType"`
17578
17579	// The order of the Regions in where you want to perform the stack operation.
17580	RegionOrder []*string `type:"list"`
17581}
17582
17583// String returns the string representation
17584func (s StackSetOperationPreferences) String() string {
17585	return awsutil.Prettify(s)
17586}
17587
17588// GoString returns the string representation
17589func (s StackSetOperationPreferences) GoString() string {
17590	return s.String()
17591}
17592
17593// Validate inspects the fields of the type to determine if they are valid.
17594func (s *StackSetOperationPreferences) Validate() error {
17595	invalidParams := request.ErrInvalidParams{Context: "StackSetOperationPreferences"}
17596	if s.MaxConcurrentCount != nil && *s.MaxConcurrentCount < 1 {
17597		invalidParams.Add(request.NewErrParamMinValue("MaxConcurrentCount", 1))
17598	}
17599	if s.MaxConcurrentPercentage != nil && *s.MaxConcurrentPercentage < 1 {
17600		invalidParams.Add(request.NewErrParamMinValue("MaxConcurrentPercentage", 1))
17601	}
17602
17603	if invalidParams.Len() > 0 {
17604		return invalidParams
17605	}
17606	return nil
17607}
17608
17609// SetFailureToleranceCount sets the FailureToleranceCount field's value.
17610func (s *StackSetOperationPreferences) SetFailureToleranceCount(v int64) *StackSetOperationPreferences {
17611	s.FailureToleranceCount = &v
17612	return s
17613}
17614
17615// SetFailureTolerancePercentage sets the FailureTolerancePercentage field's value.
17616func (s *StackSetOperationPreferences) SetFailureTolerancePercentage(v int64) *StackSetOperationPreferences {
17617	s.FailureTolerancePercentage = &v
17618	return s
17619}
17620
17621// SetMaxConcurrentCount sets the MaxConcurrentCount field's value.
17622func (s *StackSetOperationPreferences) SetMaxConcurrentCount(v int64) *StackSetOperationPreferences {
17623	s.MaxConcurrentCount = &v
17624	return s
17625}
17626
17627// SetMaxConcurrentPercentage sets the MaxConcurrentPercentage field's value.
17628func (s *StackSetOperationPreferences) SetMaxConcurrentPercentage(v int64) *StackSetOperationPreferences {
17629	s.MaxConcurrentPercentage = &v
17630	return s
17631}
17632
17633// SetRegionConcurrencyType sets the RegionConcurrencyType field's value.
17634func (s *StackSetOperationPreferences) SetRegionConcurrencyType(v string) *StackSetOperationPreferences {
17635	s.RegionConcurrencyType = &v
17636	return s
17637}
17638
17639// SetRegionOrder sets the RegionOrder field's value.
17640func (s *StackSetOperationPreferences) SetRegionOrder(v []*string) *StackSetOperationPreferences {
17641	s.RegionOrder = v
17642	return s
17643}
17644
17645// The structure that contains information about a specified operation's results
17646// for a given account in a given Region.
17647type StackSetOperationResultSummary struct {
17648	_ struct{} `type:"structure"`
17649
17650	// [Self-managed permissions] The name of the AWS account for this operation
17651	// result.
17652	Account *string `type:"string"`
17653
17654	// The results of the account gate function AWS CloudFormation invokes, if present,
17655	// before proceeding with stack set operations in an account
17656	AccountGateResult *AccountGateResult `type:"structure"`
17657
17658	// [Service-managed permissions] The organization root ID or organizational
17659	// unit (OU) IDs that you specified for DeploymentTargets (https://docs.aws.amazon.com/AWSCloudFormation/latest/APIReference/API_DeploymentTargets.html).
17660	OrganizationalUnitId *string `type:"string"`
17661
17662	// The name of the AWS Region for this operation result.
17663	Region *string `type:"string"`
17664
17665	// The result status of the stack set operation for the given account in the
17666	// given Region.
17667	//
17668	//    * CANCELLED: The operation in the specified account and Region has been
17669	//    cancelled. This is either because a user has stopped the stack set operation,
17670	//    or because the failure tolerance of the stack set operation has been exceeded.
17671	//
17672	//    * FAILED: The operation in the specified account and Region failed. If
17673	//    the stack set operation fails in enough accounts within a Region, the
17674	//    failure tolerance for the stack set operation as a whole might be exceeded.
17675	//
17676	//    * RUNNING: The operation in the specified account and Region is currently
17677	//    in progress.
17678	//
17679	//    * PENDING: The operation in the specified account and Region has yet to
17680	//    start.
17681	//
17682	//    * SUCCEEDED: The operation in the specified account and Region completed
17683	//    successfully.
17684	Status *string `type:"string" enum:"StackSetOperationResultStatus"`
17685
17686	// The reason for the assigned result status.
17687	StatusReason *string `type:"string"`
17688}
17689
17690// String returns the string representation
17691func (s StackSetOperationResultSummary) String() string {
17692	return awsutil.Prettify(s)
17693}
17694
17695// GoString returns the string representation
17696func (s StackSetOperationResultSummary) GoString() string {
17697	return s.String()
17698}
17699
17700// SetAccount sets the Account field's value.
17701func (s *StackSetOperationResultSummary) SetAccount(v string) *StackSetOperationResultSummary {
17702	s.Account = &v
17703	return s
17704}
17705
17706// SetAccountGateResult sets the AccountGateResult field's value.
17707func (s *StackSetOperationResultSummary) SetAccountGateResult(v *AccountGateResult) *StackSetOperationResultSummary {
17708	s.AccountGateResult = v
17709	return s
17710}
17711
17712// SetOrganizationalUnitId sets the OrganizationalUnitId field's value.
17713func (s *StackSetOperationResultSummary) SetOrganizationalUnitId(v string) *StackSetOperationResultSummary {
17714	s.OrganizationalUnitId = &v
17715	return s
17716}
17717
17718// SetRegion sets the Region field's value.
17719func (s *StackSetOperationResultSummary) SetRegion(v string) *StackSetOperationResultSummary {
17720	s.Region = &v
17721	return s
17722}
17723
17724// SetStatus sets the Status field's value.
17725func (s *StackSetOperationResultSummary) SetStatus(v string) *StackSetOperationResultSummary {
17726	s.Status = &v
17727	return s
17728}
17729
17730// SetStatusReason sets the StatusReason field's value.
17731func (s *StackSetOperationResultSummary) SetStatusReason(v string) *StackSetOperationResultSummary {
17732	s.StatusReason = &v
17733	return s
17734}
17735
17736// The structures that contain summary information about the specified operation.
17737type StackSetOperationSummary struct {
17738	_ struct{} `type:"structure"`
17739
17740	// The type of operation: CREATE, UPDATE, or DELETE. Create and delete operations
17741	// affect only the specified stack instances that are associated with the specified
17742	// stack set. Update operations affect both the stack set itself as well as
17743	// all associated stack set instances.
17744	Action *string `type:"string" enum:"StackSetOperationAction"`
17745
17746	// The time at which the operation was initiated. Note that the creation times
17747	// for the stack set operation might differ from the creation time of the individual
17748	// stacks themselves. This is because AWS CloudFormation needs to perform preparatory
17749	// work for the operation, such as dispatching the work to the requested Regions,
17750	// before actually creating the first stacks.
17751	CreationTimestamp *time.Time `type:"timestamp"`
17752
17753	// The time at which the stack set operation ended, across all accounts and
17754	// Regions specified. Note that this doesn't necessarily mean that the stack
17755	// set operation was successful, or even attempted, in each account or Region.
17756	EndTimestamp *time.Time `type:"timestamp"`
17757
17758	// The unique ID of the stack set operation.
17759	OperationId *string `min:"1" type:"string"`
17760
17761	// The overall status of the operation.
17762	//
17763	//    * FAILED: The operation exceeded the specified failure tolerance. The
17764	//    failure tolerance value that you've set for an operation is applied for
17765	//    each Region during stack create and update operations. If the number of
17766	//    failed stacks within a Region exceeds the failure tolerance, the status
17767	//    of the operation in the Region is set to FAILED. This in turn sets the
17768	//    status of the operation as a whole to FAILED, and AWS CloudFormation cancels
17769	//    the operation in any remaining Regions.
17770	//
17771	//    * QUEUED: [Service-managed permissions] For automatic deployments that
17772	//    require a sequence of operations, the operation is queued to be performed.
17773	//    For more information, see the stack set operation status codes (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/stacksets-concepts.html#stackset-status-codes)
17774	//    in the AWS CloudFormation User Guide.
17775	//
17776	//    * RUNNING: The operation is currently being performed.
17777	//
17778	//    * STOPPED: The user has cancelled the operation.
17779	//
17780	//    * STOPPING: The operation is in the process of stopping, at user request.
17781	//
17782	//    * SUCCEEDED: The operation completed creating or updating all the specified
17783	//    stacks without exceeding the failure tolerance for the operation.
17784	Status *string `type:"string" enum:"StackSetOperationStatus"`
17785}
17786
17787// String returns the string representation
17788func (s StackSetOperationSummary) String() string {
17789	return awsutil.Prettify(s)
17790}
17791
17792// GoString returns the string representation
17793func (s StackSetOperationSummary) GoString() string {
17794	return s.String()
17795}
17796
17797// SetAction sets the Action field's value.
17798func (s *StackSetOperationSummary) SetAction(v string) *StackSetOperationSummary {
17799	s.Action = &v
17800	return s
17801}
17802
17803// SetCreationTimestamp sets the CreationTimestamp field's value.
17804func (s *StackSetOperationSummary) SetCreationTimestamp(v time.Time) *StackSetOperationSummary {
17805	s.CreationTimestamp = &v
17806	return s
17807}
17808
17809// SetEndTimestamp sets the EndTimestamp field's value.
17810func (s *StackSetOperationSummary) SetEndTimestamp(v time.Time) *StackSetOperationSummary {
17811	s.EndTimestamp = &v
17812	return s
17813}
17814
17815// SetOperationId sets the OperationId field's value.
17816func (s *StackSetOperationSummary) SetOperationId(v string) *StackSetOperationSummary {
17817	s.OperationId = &v
17818	return s
17819}
17820
17821// SetStatus sets the Status field's value.
17822func (s *StackSetOperationSummary) SetStatus(v string) *StackSetOperationSummary {
17823	s.Status = &v
17824	return s
17825}
17826
17827// The structures that contain summary information about the specified stack
17828// set.
17829type StackSetSummary struct {
17830	_ struct{} `type:"structure"`
17831
17832	// [Service-managed permissions] Describes whether StackSets automatically deploys
17833	// to AWS Organizations accounts that are added to a target organizational unit
17834	// (OU).
17835	AutoDeployment *AutoDeployment `type:"structure"`
17836
17837	// A description of the stack set that you specify when the stack set is created
17838	// or updated.
17839	Description *string `min:"1" type:"string"`
17840
17841	// Status of the stack set's actual configuration compared to its expected template
17842	// and parameter configuration. A stack set is considered to have drifted if
17843	// one or more of its stack instances have drifted from their expected template
17844	// and parameter configuration.
17845	//
17846	//    * DRIFTED: One or more of the stack instances belonging to the stack set
17847	//    stack differs from the expected template and parameter configuration.
17848	//    A stack instance is considered to have drifted if one or more of the resources
17849	//    in the associated stack have drifted.
17850	//
17851	//    * NOT_CHECKED: AWS CloudFormation has not checked the stack set for drift.
17852	//
17853	//    * IN_SYNC: All of the stack instances belonging to the stack set stack
17854	//    match from the expected template and parameter configuration.
17855	//
17856	//    * UNKNOWN: This value is reserved for future use.
17857	DriftStatus *string `type:"string" enum:"StackDriftStatus"`
17858
17859	// Most recent time when CloudFormation performed a drift detection operation
17860	// on the stack set. This value will be NULL for any stack set on which drift
17861	// detection has not yet been performed.
17862	LastDriftCheckTimestamp *time.Time `type:"timestamp"`
17863
17864	// Describes how the IAM roles required for stack set operations are created.
17865	//
17866	//    * With self-managed permissions, you must create the administrator and
17867	//    execution roles required to deploy to target accounts. For more information,
17868	//    see Grant Self-Managed Stack Set Permissions (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/stacksets-prereqs-self-managed.html).
17869	//
17870	//    * With service-managed permissions, StackSets automatically creates the
17871	//    IAM roles required to deploy to accounts managed by AWS Organizations.
17872	//    For more information, see Grant Service-Managed Stack Set Permissions
17873	//    (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/stacksets-prereqs-service-managed.html).
17874	PermissionModel *string `type:"string" enum:"PermissionModels"`
17875
17876	// The ID of the stack set.
17877	StackSetId *string `type:"string"`
17878
17879	// The name of the stack set.
17880	StackSetName *string `type:"string"`
17881
17882	// The status of the stack set.
17883	Status *string `type:"string" enum:"StackSetStatus"`
17884}
17885
17886// String returns the string representation
17887func (s StackSetSummary) String() string {
17888	return awsutil.Prettify(s)
17889}
17890
17891// GoString returns the string representation
17892func (s StackSetSummary) GoString() string {
17893	return s.String()
17894}
17895
17896// SetAutoDeployment sets the AutoDeployment field's value.
17897func (s *StackSetSummary) SetAutoDeployment(v *AutoDeployment) *StackSetSummary {
17898	s.AutoDeployment = v
17899	return s
17900}
17901
17902// SetDescription sets the Description field's value.
17903func (s *StackSetSummary) SetDescription(v string) *StackSetSummary {
17904	s.Description = &v
17905	return s
17906}
17907
17908// SetDriftStatus sets the DriftStatus field's value.
17909func (s *StackSetSummary) SetDriftStatus(v string) *StackSetSummary {
17910	s.DriftStatus = &v
17911	return s
17912}
17913
17914// SetLastDriftCheckTimestamp sets the LastDriftCheckTimestamp field's value.
17915func (s *StackSetSummary) SetLastDriftCheckTimestamp(v time.Time) *StackSetSummary {
17916	s.LastDriftCheckTimestamp = &v
17917	return s
17918}
17919
17920// SetPermissionModel sets the PermissionModel field's value.
17921func (s *StackSetSummary) SetPermissionModel(v string) *StackSetSummary {
17922	s.PermissionModel = &v
17923	return s
17924}
17925
17926// SetStackSetId sets the StackSetId field's value.
17927func (s *StackSetSummary) SetStackSetId(v string) *StackSetSummary {
17928	s.StackSetId = &v
17929	return s
17930}
17931
17932// SetStackSetName sets the StackSetName field's value.
17933func (s *StackSetSummary) SetStackSetName(v string) *StackSetSummary {
17934	s.StackSetName = &v
17935	return s
17936}
17937
17938// SetStatus sets the Status field's value.
17939func (s *StackSetSummary) SetStatus(v string) *StackSetSummary {
17940	s.Status = &v
17941	return s
17942}
17943
17944// The StackSummary Data Type
17945type StackSummary struct {
17946	_ struct{} `type:"structure"`
17947
17948	// The time the stack was created.
17949	//
17950	// CreationTime is a required field
17951	CreationTime *time.Time `type:"timestamp" required:"true"`
17952
17953	// The time the stack was deleted.
17954	DeletionTime *time.Time `type:"timestamp"`
17955
17956	// Summarizes information on whether a stack's actual configuration differs,
17957	// or has drifted, from it's expected configuration, as defined in the stack
17958	// template and any values specified as template parameters. For more information,
17959	// see Detecting Unregulated Configuration Changes to Stacks and Resources (http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-stack-drift.html).
17960	DriftInformation *StackDriftInformationSummary `type:"structure"`
17961
17962	// The time the stack was last updated. This field will only be returned if
17963	// the stack has been updated at least once.
17964	LastUpdatedTime *time.Time `type:"timestamp"`
17965
17966	// For nested stacks--stacks created as resources for another stack--the stack
17967	// ID of the direct parent of this stack. For the first level of nested stacks,
17968	// the root stack is also the parent stack.
17969	//
17970	// For more information, see Working with Nested Stacks (http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-nested-stacks.html)
17971	// in the AWS CloudFormation User Guide.
17972	ParentId *string `type:"string"`
17973
17974	// For nested stacks--stacks created as resources for another stack--the stack
17975	// ID of the top-level stack to which the nested stack ultimately belongs.
17976	//
17977	// For more information, see Working with Nested Stacks (http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-nested-stacks.html)
17978	// in the AWS CloudFormation User Guide.
17979	RootId *string `type:"string"`
17980
17981	// Unique stack identifier.
17982	StackId *string `type:"string"`
17983
17984	// The name associated with the stack.
17985	//
17986	// StackName is a required field
17987	StackName *string `type:"string" required:"true"`
17988
17989	// The current status of the stack.
17990	//
17991	// StackStatus is a required field
17992	StackStatus *string `type:"string" required:"true" enum:"StackStatus"`
17993
17994	// Success/Failure message associated with the stack status.
17995	StackStatusReason *string `type:"string"`
17996
17997	// The template description of the template used to create the stack.
17998	TemplateDescription *string `type:"string"`
17999}
18000
18001// String returns the string representation
18002func (s StackSummary) String() string {
18003	return awsutil.Prettify(s)
18004}
18005
18006// GoString returns the string representation
18007func (s StackSummary) GoString() string {
18008	return s.String()
18009}
18010
18011// SetCreationTime sets the CreationTime field's value.
18012func (s *StackSummary) SetCreationTime(v time.Time) *StackSummary {
18013	s.CreationTime = &v
18014	return s
18015}
18016
18017// SetDeletionTime sets the DeletionTime field's value.
18018func (s *StackSummary) SetDeletionTime(v time.Time) *StackSummary {
18019	s.DeletionTime = &v
18020	return s
18021}
18022
18023// SetDriftInformation sets the DriftInformation field's value.
18024func (s *StackSummary) SetDriftInformation(v *StackDriftInformationSummary) *StackSummary {
18025	s.DriftInformation = v
18026	return s
18027}
18028
18029// SetLastUpdatedTime sets the LastUpdatedTime field's value.
18030func (s *StackSummary) SetLastUpdatedTime(v time.Time) *StackSummary {
18031	s.LastUpdatedTime = &v
18032	return s
18033}
18034
18035// SetParentId sets the ParentId field's value.
18036func (s *StackSummary) SetParentId(v string) *StackSummary {
18037	s.ParentId = &v
18038	return s
18039}
18040
18041// SetRootId sets the RootId field's value.
18042func (s *StackSummary) SetRootId(v string) *StackSummary {
18043	s.RootId = &v
18044	return s
18045}
18046
18047// SetStackId sets the StackId field's value.
18048func (s *StackSummary) SetStackId(v string) *StackSummary {
18049	s.StackId = &v
18050	return s
18051}
18052
18053// SetStackName sets the StackName field's value.
18054func (s *StackSummary) SetStackName(v string) *StackSummary {
18055	s.StackName = &v
18056	return s
18057}
18058
18059// SetStackStatus sets the StackStatus field's value.
18060func (s *StackSummary) SetStackStatus(v string) *StackSummary {
18061	s.StackStatus = &v
18062	return s
18063}
18064
18065// SetStackStatusReason sets the StackStatusReason field's value.
18066func (s *StackSummary) SetStackStatusReason(v string) *StackSummary {
18067	s.StackStatusReason = &v
18068	return s
18069}
18070
18071// SetTemplateDescription sets the TemplateDescription field's value.
18072func (s *StackSummary) SetTemplateDescription(v string) *StackSummary {
18073	s.TemplateDescription = &v
18074	return s
18075}
18076
18077type StopStackSetOperationInput struct {
18078	_ struct{} `type:"structure"`
18079
18080	// [Service-managed permissions] Specifies whether you are acting as an account
18081	// administrator in the organization's management account or as a delegated
18082	// administrator in a member account.
18083	//
18084	// By default, SELF is specified. Use SELF for stack sets with self-managed
18085	// permissions.
18086	//
18087	//    * If you are signed in to the management account, specify SELF.
18088	//
18089	//    * If you are signed in to a delegated administrator account, specify DELEGATED_ADMIN.
18090	//    Your AWS account must be registered as a delegated administrator in the
18091	//    management account. For more information, see Register a delegated administrator
18092	//    (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/stacksets-orgs-delegated-admin.html)
18093	//    in the AWS CloudFormation User Guide.
18094	CallAs *string `type:"string" enum:"CallAs"`
18095
18096	// The ID of the stack operation.
18097	//
18098	// OperationId is a required field
18099	OperationId *string `min:"1" type:"string" required:"true"`
18100
18101	// The name or unique ID of the stack set that you want to stop the operation
18102	// for.
18103	//
18104	// StackSetName is a required field
18105	StackSetName *string `type:"string" required:"true"`
18106}
18107
18108// String returns the string representation
18109func (s StopStackSetOperationInput) String() string {
18110	return awsutil.Prettify(s)
18111}
18112
18113// GoString returns the string representation
18114func (s StopStackSetOperationInput) GoString() string {
18115	return s.String()
18116}
18117
18118// Validate inspects the fields of the type to determine if they are valid.
18119func (s *StopStackSetOperationInput) Validate() error {
18120	invalidParams := request.ErrInvalidParams{Context: "StopStackSetOperationInput"}
18121	if s.OperationId == nil {
18122		invalidParams.Add(request.NewErrParamRequired("OperationId"))
18123	}
18124	if s.OperationId != nil && len(*s.OperationId) < 1 {
18125		invalidParams.Add(request.NewErrParamMinLen("OperationId", 1))
18126	}
18127	if s.StackSetName == nil {
18128		invalidParams.Add(request.NewErrParamRequired("StackSetName"))
18129	}
18130
18131	if invalidParams.Len() > 0 {
18132		return invalidParams
18133	}
18134	return nil
18135}
18136
18137// SetCallAs sets the CallAs field's value.
18138func (s *StopStackSetOperationInput) SetCallAs(v string) *StopStackSetOperationInput {
18139	s.CallAs = &v
18140	return s
18141}
18142
18143// SetOperationId sets the OperationId field's value.
18144func (s *StopStackSetOperationInput) SetOperationId(v string) *StopStackSetOperationInput {
18145	s.OperationId = &v
18146	return s
18147}
18148
18149// SetStackSetName sets the StackSetName field's value.
18150func (s *StopStackSetOperationInput) SetStackSetName(v string) *StopStackSetOperationInput {
18151	s.StackSetName = &v
18152	return s
18153}
18154
18155type StopStackSetOperationOutput struct {
18156	_ struct{} `type:"structure"`
18157}
18158
18159// String returns the string representation
18160func (s StopStackSetOperationOutput) String() string {
18161	return awsutil.Prettify(s)
18162}
18163
18164// GoString returns the string representation
18165func (s StopStackSetOperationOutput) GoString() string {
18166	return s.String()
18167}
18168
18169// The Tag type enables you to specify a key-value pair that can be used to
18170// store information about an AWS CloudFormation stack.
18171type Tag struct {
18172	_ struct{} `type:"structure"`
18173
18174	// Required. A string used to identify this tag. You can specify a maximum of
18175	// 128 characters for a tag key. Tags owned by Amazon Web Services (AWS) have
18176	// the reserved prefix: aws:.
18177	//
18178	// Key is a required field
18179	Key *string `min:"1" type:"string" required:"true"`
18180
18181	// Required. A string containing the value for this tag. You can specify a maximum
18182	// of 256 characters for a tag value.
18183	//
18184	// Value is a required field
18185	Value *string `min:"1" type:"string" required:"true"`
18186}
18187
18188// String returns the string representation
18189func (s Tag) String() string {
18190	return awsutil.Prettify(s)
18191}
18192
18193// GoString returns the string representation
18194func (s Tag) GoString() string {
18195	return s.String()
18196}
18197
18198// Validate inspects the fields of the type to determine if they are valid.
18199func (s *Tag) Validate() error {
18200	invalidParams := request.ErrInvalidParams{Context: "Tag"}
18201	if s.Key == nil {
18202		invalidParams.Add(request.NewErrParamRequired("Key"))
18203	}
18204	if s.Key != nil && len(*s.Key) < 1 {
18205		invalidParams.Add(request.NewErrParamMinLen("Key", 1))
18206	}
18207	if s.Value == nil {
18208		invalidParams.Add(request.NewErrParamRequired("Value"))
18209	}
18210	if s.Value != nil && len(*s.Value) < 1 {
18211		invalidParams.Add(request.NewErrParamMinLen("Value", 1))
18212	}
18213
18214	if invalidParams.Len() > 0 {
18215		return invalidParams
18216	}
18217	return nil
18218}
18219
18220// SetKey sets the Key field's value.
18221func (s *Tag) SetKey(v string) *Tag {
18222	s.Key = &v
18223	return s
18224}
18225
18226// SetValue sets the Value field's value.
18227func (s *Tag) SetValue(v string) *Tag {
18228	s.Value = &v
18229	return s
18230}
18231
18232// The TemplateParameter data type.
18233type TemplateParameter struct {
18234	_ struct{} `type:"structure"`
18235
18236	// The default value associated with the parameter.
18237	DefaultValue *string `type:"string"`
18238
18239	// User defined description associated with the parameter.
18240	Description *string `min:"1" type:"string"`
18241
18242	// Flag indicating whether the parameter should be displayed as plain text in
18243	// logs and UIs.
18244	NoEcho *bool `type:"boolean"`
18245
18246	// The name associated with the parameter.
18247	ParameterKey *string `type:"string"`
18248}
18249
18250// String returns the string representation
18251func (s TemplateParameter) String() string {
18252	return awsutil.Prettify(s)
18253}
18254
18255// GoString returns the string representation
18256func (s TemplateParameter) GoString() string {
18257	return s.String()
18258}
18259
18260// SetDefaultValue sets the DefaultValue field's value.
18261func (s *TemplateParameter) SetDefaultValue(v string) *TemplateParameter {
18262	s.DefaultValue = &v
18263	return s
18264}
18265
18266// SetDescription sets the Description field's value.
18267func (s *TemplateParameter) SetDescription(v string) *TemplateParameter {
18268	s.Description = &v
18269	return s
18270}
18271
18272// SetNoEcho sets the NoEcho field's value.
18273func (s *TemplateParameter) SetNoEcho(v bool) *TemplateParameter {
18274	s.NoEcho = &v
18275	return s
18276}
18277
18278// SetParameterKey sets the ParameterKey field's value.
18279func (s *TemplateParameter) SetParameterKey(v string) *TemplateParameter {
18280	s.ParameterKey = &v
18281	return s
18282}
18283
18284type TestTypeInput struct {
18285	_ struct{} `type:"structure"`
18286
18287	// The Amazon Resource Number (ARN) of the extension.
18288	//
18289	// Conditional: You must specify Arn, or TypeName and Type.
18290	Arn *string `type:"string"`
18291
18292	// The S3 bucket to which CloudFormation delivers the contract test execution
18293	// logs.
18294	//
18295	// CloudFormation delivers the logs by the time contract testing has completed
18296	// and the extension has been assigned a test type status of PASSED or FAILED.
18297	//
18298	// The user calling TestType must be able to access items in the specified S3
18299	// bucket. Specifically, the user needs the following permissions:
18300	//
18301	//    * GetObject
18302	//
18303	//    * PutObject
18304	//
18305	// For more information, see Actions, Resources, and Condition Keys for Amazon
18306	// S3 (https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazons3.html)
18307	// in the AWS Identity and Access Management User Guide.
18308	LogDeliveryBucket *string `min:"3" type:"string"`
18309
18310	// The type of the extension to test.
18311	//
18312	// Conditional: You must specify Arn, or TypeName and Type.
18313	Type *string `type:"string" enum:"ThirdPartyType"`
18314
18315	// The name of the extension to test.
18316	//
18317	// Conditional: You must specify Arn, or TypeName and Type.
18318	TypeName *string `min:"10" type:"string"`
18319
18320	// The version of the extension to test.
18321	//
18322	// You can specify the version id with either Arn, or with TypeName and Type.
18323	//
18324	// If you do not specify a version, CloudFormation uses the default version
18325	// of the extension in this account and region for testing.
18326	VersionId *string `min:"1" type:"string"`
18327}
18328
18329// String returns the string representation
18330func (s TestTypeInput) String() string {
18331	return awsutil.Prettify(s)
18332}
18333
18334// GoString returns the string representation
18335func (s TestTypeInput) GoString() string {
18336	return s.String()
18337}
18338
18339// Validate inspects the fields of the type to determine if they are valid.
18340func (s *TestTypeInput) Validate() error {
18341	invalidParams := request.ErrInvalidParams{Context: "TestTypeInput"}
18342	if s.LogDeliveryBucket != nil && len(*s.LogDeliveryBucket) < 3 {
18343		invalidParams.Add(request.NewErrParamMinLen("LogDeliveryBucket", 3))
18344	}
18345	if s.TypeName != nil && len(*s.TypeName) < 10 {
18346		invalidParams.Add(request.NewErrParamMinLen("TypeName", 10))
18347	}
18348	if s.VersionId != nil && len(*s.VersionId) < 1 {
18349		invalidParams.Add(request.NewErrParamMinLen("VersionId", 1))
18350	}
18351
18352	if invalidParams.Len() > 0 {
18353		return invalidParams
18354	}
18355	return nil
18356}
18357
18358// SetArn sets the Arn field's value.
18359func (s *TestTypeInput) SetArn(v string) *TestTypeInput {
18360	s.Arn = &v
18361	return s
18362}
18363
18364// SetLogDeliveryBucket sets the LogDeliveryBucket field's value.
18365func (s *TestTypeInput) SetLogDeliveryBucket(v string) *TestTypeInput {
18366	s.LogDeliveryBucket = &v
18367	return s
18368}
18369
18370// SetType sets the Type field's value.
18371func (s *TestTypeInput) SetType(v string) *TestTypeInput {
18372	s.Type = &v
18373	return s
18374}
18375
18376// SetTypeName sets the TypeName field's value.
18377func (s *TestTypeInput) SetTypeName(v string) *TestTypeInput {
18378	s.TypeName = &v
18379	return s
18380}
18381
18382// SetVersionId sets the VersionId field's value.
18383func (s *TestTypeInput) SetVersionId(v string) *TestTypeInput {
18384	s.VersionId = &v
18385	return s
18386}
18387
18388type TestTypeOutput struct {
18389	_ struct{} `type:"structure"`
18390
18391	// The Amazon Resource Number (ARN) of the extension.
18392	TypeVersionArn *string `type:"string"`
18393}
18394
18395// String returns the string representation
18396func (s TestTypeOutput) String() string {
18397	return awsutil.Prettify(s)
18398}
18399
18400// GoString returns the string representation
18401func (s TestTypeOutput) GoString() string {
18402	return s.String()
18403}
18404
18405// SetTypeVersionArn sets the TypeVersionArn field's value.
18406func (s *TestTypeOutput) SetTypeVersionArn(v string) *TestTypeOutput {
18407	s.TypeVersionArn = &v
18408	return s
18409}
18410
18411// Detailed information concerning the specification of a CloudFormation extension
18412// in a given account and region.
18413//
18414// For more information, see Configuring extensions at the account level (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/registry-register.html#registry-set-configuration)
18415// in the CloudFormation User Guide.
18416type TypeConfigurationDetails struct {
18417	_ struct{} `type:"structure"`
18418
18419	// The alias specified for this configuration, if one was specified when the
18420	// configuration was set.
18421	Alias *string `min:"1" type:"string"`
18422
18423	// The Amazon Resource Name (ARN) for the configuration data, in this account
18424	// and region.
18425	Arn *string `type:"string"`
18426
18427	// A JSON string specifying the configuration data for the extension, in this
18428	// account and region.
18429	//
18430	// If a configuration has not been set for a specified extension, CloudFormation
18431	// returns {}.
18432	Configuration *string `min:"1" type:"string"`
18433
18434	// Whether or not this configuration data is the default configuration for the
18435	// extension.
18436	IsDefaultConfiguration *bool `type:"boolean"`
18437
18438	// When the configuration data was last updated for this extension.
18439	//
18440	// If a configuration has not been set for a specified extension, CloudFormation
18441	// returns null.
18442	LastUpdated *time.Time `type:"timestamp"`
18443
18444	// The Amazon Resource Name (ARN) for the extension, in this account and region.
18445	//
18446	// For public extensions, this will be the ARN assigned when you activate the
18447	// type (https://docs.aws.amazon.com/AWSCloudFormation/latest/APIReference/API_ActivateType.html)
18448	// in this account and region. For private extensions, this will be the ARN
18449	// assigned when you register the type (https://docs.aws.amazon.com/AWSCloudFormation/latest/APIReference/API_RegisterType.html)
18450	// in this account and region.
18451	TypeArn *string `type:"string"`
18452
18453	// The name of the extension.
18454	TypeName *string `min:"10" type:"string"`
18455}
18456
18457// String returns the string representation
18458func (s TypeConfigurationDetails) String() string {
18459	return awsutil.Prettify(s)
18460}
18461
18462// GoString returns the string representation
18463func (s TypeConfigurationDetails) GoString() string {
18464	return s.String()
18465}
18466
18467// SetAlias sets the Alias field's value.
18468func (s *TypeConfigurationDetails) SetAlias(v string) *TypeConfigurationDetails {
18469	s.Alias = &v
18470	return s
18471}
18472
18473// SetArn sets the Arn field's value.
18474func (s *TypeConfigurationDetails) SetArn(v string) *TypeConfigurationDetails {
18475	s.Arn = &v
18476	return s
18477}
18478
18479// SetConfiguration sets the Configuration field's value.
18480func (s *TypeConfigurationDetails) SetConfiguration(v string) *TypeConfigurationDetails {
18481	s.Configuration = &v
18482	return s
18483}
18484
18485// SetIsDefaultConfiguration sets the IsDefaultConfiguration field's value.
18486func (s *TypeConfigurationDetails) SetIsDefaultConfiguration(v bool) *TypeConfigurationDetails {
18487	s.IsDefaultConfiguration = &v
18488	return s
18489}
18490
18491// SetLastUpdated sets the LastUpdated field's value.
18492func (s *TypeConfigurationDetails) SetLastUpdated(v time.Time) *TypeConfigurationDetails {
18493	s.LastUpdated = &v
18494	return s
18495}
18496
18497// SetTypeArn sets the TypeArn field's value.
18498func (s *TypeConfigurationDetails) SetTypeArn(v string) *TypeConfigurationDetails {
18499	s.TypeArn = &v
18500	return s
18501}
18502
18503// SetTypeName sets the TypeName field's value.
18504func (s *TypeConfigurationDetails) SetTypeName(v string) *TypeConfigurationDetails {
18505	s.TypeName = &v
18506	return s
18507}
18508
18509// Identifying information for the configuration of a CloudFormation extension.
18510type TypeConfigurationIdentifier struct {
18511	_ struct{} `type:"structure"`
18512
18513	// The type of extension.
18514	Type *string `type:"string" enum:"ThirdPartyType"`
18515
18516	// The Amazon Resource Name (ARN) for the extension, in this account and region.
18517	//
18518	// For public extensions, this will be the ARN assigned when you activate the
18519	// type (https://docs.aws.amazon.com/AWSCloudFormation/latest/APIReference/API_ActivateType.html)
18520	// in this account and region. For private extensions, this will be the ARN
18521	// assigned when you register the type (https://docs.aws.amazon.com/AWSCloudFormation/latest/APIReference/API_RegisterType.html)
18522	// in this account and region.
18523	TypeArn *string `type:"string"`
18524
18525	// The alias specified for this configuration, if one was specified when the
18526	// configuration was set.
18527	TypeConfigurationAlias *string `min:"1" type:"string"`
18528
18529	// The Amazon Resource Name (ARN) for the configuration, in this account and
18530	// region.
18531	TypeConfigurationArn *string `type:"string"`
18532
18533	// The name of the extension type to which this configuration applies.
18534	TypeName *string `min:"10" type:"string"`
18535}
18536
18537// String returns the string representation
18538func (s TypeConfigurationIdentifier) String() string {
18539	return awsutil.Prettify(s)
18540}
18541
18542// GoString returns the string representation
18543func (s TypeConfigurationIdentifier) GoString() string {
18544	return s.String()
18545}
18546
18547// Validate inspects the fields of the type to determine if they are valid.
18548func (s *TypeConfigurationIdentifier) Validate() error {
18549	invalidParams := request.ErrInvalidParams{Context: "TypeConfigurationIdentifier"}
18550	if s.TypeConfigurationAlias != nil && len(*s.TypeConfigurationAlias) < 1 {
18551		invalidParams.Add(request.NewErrParamMinLen("TypeConfigurationAlias", 1))
18552	}
18553	if s.TypeName != nil && len(*s.TypeName) < 10 {
18554		invalidParams.Add(request.NewErrParamMinLen("TypeName", 10))
18555	}
18556
18557	if invalidParams.Len() > 0 {
18558		return invalidParams
18559	}
18560	return nil
18561}
18562
18563// SetType sets the Type field's value.
18564func (s *TypeConfigurationIdentifier) SetType(v string) *TypeConfigurationIdentifier {
18565	s.Type = &v
18566	return s
18567}
18568
18569// SetTypeArn sets the TypeArn field's value.
18570func (s *TypeConfigurationIdentifier) SetTypeArn(v string) *TypeConfigurationIdentifier {
18571	s.TypeArn = &v
18572	return s
18573}
18574
18575// SetTypeConfigurationAlias sets the TypeConfigurationAlias field's value.
18576func (s *TypeConfigurationIdentifier) SetTypeConfigurationAlias(v string) *TypeConfigurationIdentifier {
18577	s.TypeConfigurationAlias = &v
18578	return s
18579}
18580
18581// SetTypeConfigurationArn sets the TypeConfigurationArn field's value.
18582func (s *TypeConfigurationIdentifier) SetTypeConfigurationArn(v string) *TypeConfigurationIdentifier {
18583	s.TypeConfigurationArn = &v
18584	return s
18585}
18586
18587// SetTypeName sets the TypeName field's value.
18588func (s *TypeConfigurationIdentifier) SetTypeName(v string) *TypeConfigurationIdentifier {
18589	s.TypeName = &v
18590	return s
18591}
18592
18593// Filter criteria to use in determining which extensions to return.
18594type TypeFilters struct {
18595	_ struct{} `type:"structure"`
18596
18597	// The category of extensions to return.
18598	//
18599	//    * REGISTERED: Private extensions that have been registered for this account
18600	//    and region.
18601	//
18602	//    * ACTIVATED: Public extensions that have been activated for this account
18603	//    and region.
18604	//
18605	//    * THIRD-PARTY: Extensions available for use from publishers other than
18606	//    Amazon. This includes: Private extensions registered in the account. Public
18607	//    extensions from publishers other than Amazon, whether activated or not.
18608	//
18609	//    * AWS-TYPES: Extensions available for use from Amazon.
18610	Category *string `type:"string" enum:"Category"`
18611
18612	// The id of the publisher of the extension.
18613	//
18614	// Extensions published by Amazon are not assigned a publisher ID. Use the AWS-TYPES
18615	// category to specify a list of types published by Amazon.
18616	PublisherId *string `min:"1" type:"string"`
18617
18618	// A prefix to use as a filter for results.
18619	TypeNamePrefix *string `min:"1" type:"string"`
18620}
18621
18622// String returns the string representation
18623func (s TypeFilters) String() string {
18624	return awsutil.Prettify(s)
18625}
18626
18627// GoString returns the string representation
18628func (s TypeFilters) GoString() string {
18629	return s.String()
18630}
18631
18632// Validate inspects the fields of the type to determine if they are valid.
18633func (s *TypeFilters) Validate() error {
18634	invalidParams := request.ErrInvalidParams{Context: "TypeFilters"}
18635	if s.PublisherId != nil && len(*s.PublisherId) < 1 {
18636		invalidParams.Add(request.NewErrParamMinLen("PublisherId", 1))
18637	}
18638	if s.TypeNamePrefix != nil && len(*s.TypeNamePrefix) < 1 {
18639		invalidParams.Add(request.NewErrParamMinLen("TypeNamePrefix", 1))
18640	}
18641
18642	if invalidParams.Len() > 0 {
18643		return invalidParams
18644	}
18645	return nil
18646}
18647
18648// SetCategory sets the Category field's value.
18649func (s *TypeFilters) SetCategory(v string) *TypeFilters {
18650	s.Category = &v
18651	return s
18652}
18653
18654// SetPublisherId sets the PublisherId field's value.
18655func (s *TypeFilters) SetPublisherId(v string) *TypeFilters {
18656	s.PublisherId = &v
18657	return s
18658}
18659
18660// SetTypeNamePrefix sets the TypeNamePrefix field's value.
18661func (s *TypeFilters) SetTypeNamePrefix(v string) *TypeFilters {
18662	s.TypeNamePrefix = &v
18663	return s
18664}
18665
18666// Contains summary information about the specified CloudFormation extension.
18667type TypeSummary struct {
18668	_ struct{} `type:"structure"`
18669
18670	// The ID of the default version of the extension. The default version is used
18671	// when the extension version is not specified.
18672	//
18673	// This applies only to private extensions you have registered in your account.
18674	// For public extensions, both those provided by Amazon and published by third
18675	// parties, CloudFormation returns null. For more information, see RegisterType
18676	// (https://docs.aws.amazon.com/AWSCloudFormation/latest/APIReference/API_RegisterType.html).
18677	//
18678	// To set the default version of an extension, use SetTypeDefaultVersion .
18679	DefaultVersionId *string `min:"1" type:"string"`
18680
18681	// The description of the extension.
18682	Description *string `min:"1" type:"string"`
18683
18684	// Whether or not the extension is activated for this account and region.
18685	//
18686	// This applies only to third-party public extensions. Extensions published
18687	// by Amazon are activated by default.
18688	IsActivated *bool `type:"boolean"`
18689
18690	// When the specified extension version was registered. This applies only to:
18691	//
18692	//    * Private extensions you have registered in your account. For more information,
18693	//    see RegisterType (https://docs.aws.amazon.com/AWSCloudFormation/latest/APIReference/API_RegisterType.html).
18694	//
18695	//    * Public extensions you have activated in your account with auto-update
18696	//    specified. For more information, see ActivateType (https://docs.aws.amazon.com/AWSCloudFormation/latest/APIReference/API_ActivateType.html).
18697	//
18698	// For all other extension types, CloudFormation returns null.
18699	LastUpdated *time.Time `type:"timestamp"`
18700
18701	// For public extensions that have been activated for this account and region,
18702	// the latest version of the public extension that is available. For any extensions
18703	// other than activated third-arty extensions, CloudFormation returns null.
18704	//
18705	// How you specified AutoUpdate when enabling the extension affects whether
18706	// CloudFormation automatically updates the extention in this account and region
18707	// when a new version is released. For more information, see Setting CloudFormation
18708	// to automatically use new versions of extensions (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/registry-public.html#registry-public-enable-auto)
18709	// in the CloudFormation User Guide.
18710	LatestPublicVersion *string `min:"5" type:"string"`
18711
18712	// For public extensions that have been activated for this account and region,
18713	// the type name of the public extension.
18714	//
18715	// If you specified a TypeNameAlias when enabling the extension in this account
18716	// and region, CloudFormation treats that alias as the extension's type name
18717	// within the account and region, not the type name of the public extension.
18718	// 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)
18719	// in the CloudFormation User Guide.
18720	OriginalTypeName *string `min:"10" type:"string"`
18721
18722	// For public extensions that have been activated for this account and region,
18723	// the version of the public extension to be used for CloudFormation operations
18724	// in this account and region.
18725	//
18726	// How you specified AutoUpdate when enabling the extension affects whether
18727	// CloudFormation automatically updates the extention in this account and region
18728	// when a new version is released. For more information, see Setting CloudFormation
18729	// to automatically use new versions of extensions (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/registry-public.html#registry-public-enable-auto)
18730	// in the CloudFormation User Guide.
18731	PublicVersionNumber *string `min:"5" type:"string"`
18732
18733	// The ID of the extension publisher, if the extension is published by a third
18734	// party. Extensions published by Amazon do not return a publisher ID.
18735	PublisherId *string `min:"1" type:"string"`
18736
18737	// The service used to verify the publisher identity.
18738	//
18739	// For more information, see Registering your account to publish CloudFormation
18740	// extensions (https://docs.aws.amazon.com/cloudformation-cli/latest/userguide/publish-extension.html)
18741	// in the CFN-CLI User Guide for Extension Development.
18742	PublisherIdentity *string `type:"string" enum:"IdentityProvider"`
18743
18744	// The publisher name, as defined in the public profile for that publisher in
18745	// the service used to verify the publisher identity.
18746	PublisherName *string `min:"1" type:"string"`
18747
18748	// The kind of extension.
18749	Type *string `type:"string" enum:"RegistryType"`
18750
18751	// The Amazon Resource Name (ARN) of the extension.
18752	TypeArn *string `type:"string"`
18753
18754	// The name of the extension.
18755	//
18756	// If you specified a TypeNameAlias when you activate this extension (https://docs.aws.amazon.com/AWSCloudFormation/latest/APIReference/API_ActivateType.html)
18757	// in your account and region, CloudFormation considers that alias as the type
18758	// name.
18759	TypeName *string `min:"10" type:"string"`
18760}
18761
18762// String returns the string representation
18763func (s TypeSummary) String() string {
18764	return awsutil.Prettify(s)
18765}
18766
18767// GoString returns the string representation
18768func (s TypeSummary) GoString() string {
18769	return s.String()
18770}
18771
18772// SetDefaultVersionId sets the DefaultVersionId field's value.
18773func (s *TypeSummary) SetDefaultVersionId(v string) *TypeSummary {
18774	s.DefaultVersionId = &v
18775	return s
18776}
18777
18778// SetDescription sets the Description field's value.
18779func (s *TypeSummary) SetDescription(v string) *TypeSummary {
18780	s.Description = &v
18781	return s
18782}
18783
18784// SetIsActivated sets the IsActivated field's value.
18785func (s *TypeSummary) SetIsActivated(v bool) *TypeSummary {
18786	s.IsActivated = &v
18787	return s
18788}
18789
18790// SetLastUpdated sets the LastUpdated field's value.
18791func (s *TypeSummary) SetLastUpdated(v time.Time) *TypeSummary {
18792	s.LastUpdated = &v
18793	return s
18794}
18795
18796// SetLatestPublicVersion sets the LatestPublicVersion field's value.
18797func (s *TypeSummary) SetLatestPublicVersion(v string) *TypeSummary {
18798	s.LatestPublicVersion = &v
18799	return s
18800}
18801
18802// SetOriginalTypeName sets the OriginalTypeName field's value.
18803func (s *TypeSummary) SetOriginalTypeName(v string) *TypeSummary {
18804	s.OriginalTypeName = &v
18805	return s
18806}
18807
18808// SetPublicVersionNumber sets the PublicVersionNumber field's value.
18809func (s *TypeSummary) SetPublicVersionNumber(v string) *TypeSummary {
18810	s.PublicVersionNumber = &v
18811	return s
18812}
18813
18814// SetPublisherId sets the PublisherId field's value.
18815func (s *TypeSummary) SetPublisherId(v string) *TypeSummary {
18816	s.PublisherId = &v
18817	return s
18818}
18819
18820// SetPublisherIdentity sets the PublisherIdentity field's value.
18821func (s *TypeSummary) SetPublisherIdentity(v string) *TypeSummary {
18822	s.PublisherIdentity = &v
18823	return s
18824}
18825
18826// SetPublisherName sets the PublisherName field's value.
18827func (s *TypeSummary) SetPublisherName(v string) *TypeSummary {
18828	s.PublisherName = &v
18829	return s
18830}
18831
18832// SetType sets the Type field's value.
18833func (s *TypeSummary) SetType(v string) *TypeSummary {
18834	s.Type = &v
18835	return s
18836}
18837
18838// SetTypeArn sets the TypeArn field's value.
18839func (s *TypeSummary) SetTypeArn(v string) *TypeSummary {
18840	s.TypeArn = &v
18841	return s
18842}
18843
18844// SetTypeName sets the TypeName field's value.
18845func (s *TypeSummary) SetTypeName(v string) *TypeSummary {
18846	s.TypeName = &v
18847	return s
18848}
18849
18850// Contains summary information about a specific version of a CloudFormation
18851// extension.
18852type TypeVersionSummary struct {
18853	_ struct{} `type:"structure"`
18854
18855	// The Amazon Resource Name (ARN) of the extension version.
18856	Arn *string `type:"string"`
18857
18858	// The description of the extension version.
18859	Description *string `min:"1" type:"string"`
18860
18861	// Whether the specified extension version is set as the default version.
18862	//
18863	// This applies only to private extensions you have registered in your account,
18864	// and extensions published by Amazon. For public third-party extensions, whether
18865	// or not they are activated in your account, CloudFormation returns null.
18866	IsDefaultVersion *bool `type:"boolean"`
18867
18868	// For public extensions that have been activated for this account and region,
18869	// the version of the public extension to be used for CloudFormation operations
18870	// in this account and region. For any extensions other than activated third-arty
18871	// extensions, CloudFormation returns null.
18872	//
18873	// How you specified AutoUpdate when enabling the extension affects whether
18874	// CloudFormation automatically updates the extention in this account and region
18875	// when a new version is released. For more information, see Setting CloudFormation
18876	// to automatically use new versions of extensions (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/registry-public.html#registry-public-enable-auto)
18877	// in the CloudFormation User Guide.
18878	PublicVersionNumber *string `min:"5" type:"string"`
18879
18880	// When the version was registered.
18881	TimeCreated *time.Time `type:"timestamp"`
18882
18883	// The kind of extension.
18884	Type *string `type:"string" enum:"RegistryType"`
18885
18886	// The name of the extension.
18887	TypeName *string `min:"10" type:"string"`
18888
18889	// The ID of a specific version of the extension. The version ID is the value
18890	// at the end of the Amazon Resource Name (ARN) assigned to the extension version
18891	// when it is registered.
18892	VersionId *string `min:"1" type:"string"`
18893}
18894
18895// String returns the string representation
18896func (s TypeVersionSummary) String() string {
18897	return awsutil.Prettify(s)
18898}
18899
18900// GoString returns the string representation
18901func (s TypeVersionSummary) GoString() string {
18902	return s.String()
18903}
18904
18905// SetArn sets the Arn field's value.
18906func (s *TypeVersionSummary) SetArn(v string) *TypeVersionSummary {
18907	s.Arn = &v
18908	return s
18909}
18910
18911// SetDescription sets the Description field's value.
18912func (s *TypeVersionSummary) SetDescription(v string) *TypeVersionSummary {
18913	s.Description = &v
18914	return s
18915}
18916
18917// SetIsDefaultVersion sets the IsDefaultVersion field's value.
18918func (s *TypeVersionSummary) SetIsDefaultVersion(v bool) *TypeVersionSummary {
18919	s.IsDefaultVersion = &v
18920	return s
18921}
18922
18923// SetPublicVersionNumber sets the PublicVersionNumber field's value.
18924func (s *TypeVersionSummary) SetPublicVersionNumber(v string) *TypeVersionSummary {
18925	s.PublicVersionNumber = &v
18926	return s
18927}
18928
18929// SetTimeCreated sets the TimeCreated field's value.
18930func (s *TypeVersionSummary) SetTimeCreated(v time.Time) *TypeVersionSummary {
18931	s.TimeCreated = &v
18932	return s
18933}
18934
18935// SetType sets the Type field's value.
18936func (s *TypeVersionSummary) SetType(v string) *TypeVersionSummary {
18937	s.Type = &v
18938	return s
18939}
18940
18941// SetTypeName sets the TypeName field's value.
18942func (s *TypeVersionSummary) SetTypeName(v string) *TypeVersionSummary {
18943	s.TypeName = &v
18944	return s
18945}
18946
18947// SetVersionId sets the VersionId field's value.
18948func (s *TypeVersionSummary) SetVersionId(v string) *TypeVersionSummary {
18949	s.VersionId = &v
18950	return s
18951}
18952
18953// The input for an UpdateStack action.
18954type UpdateStackInput struct {
18955	_ struct{} `type:"structure"`
18956
18957	// In some cases, you must explicitly acknowledge that your stack template contains
18958	// certain capabilities in order for AWS CloudFormation to update the stack.
18959	//
18960	//    * CAPABILITY_IAM and CAPABILITY_NAMED_IAM Some stack templates might include
18961	//    resources that can affect permissions in your AWS account; for example,
18962	//    by creating new AWS Identity and Access Management (IAM) users. For those
18963	//    stacks, you must explicitly acknowledge this by specifying one of these
18964	//    capabilities. The following IAM resources require you to specify either
18965	//    the CAPABILITY_IAM or CAPABILITY_NAMED_IAM capability. If you have IAM
18966	//    resources, you can specify either capability. If you have IAM resources
18967	//    with custom names, you must specify CAPABILITY_NAMED_IAM. If you don't
18968	//    specify either of these capabilities, AWS CloudFormation returns an InsufficientCapabilities
18969	//    error. If your stack template contains these resources, we recommend that
18970	//    you review all permissions associated with them and edit their permissions
18971	//    if necessary. AWS::IAM::AccessKey (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iam-accesskey.html)
18972	//    AWS::IAM::Group (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iam-group.html)
18973	//    AWS::IAM::InstanceProfile (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iam-instanceprofile.html)
18974	//    AWS::IAM::Policy (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iam-policy.html)
18975	//    AWS::IAM::Role (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iam-role.html)
18976	//    AWS::IAM::User (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iam-user.html)
18977	//    AWS::IAM::UserToGroupAddition (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iam-addusertogroup.html)
18978	//    For more information, see Acknowledging IAM Resources in AWS CloudFormation
18979	//    Templates (http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-iam-template.html#capabilities).
18980	//
18981	//    * CAPABILITY_AUTO_EXPAND Some template contain macros. Macros perform
18982	//    custom processing on templates; this can include simple actions like find-and-replace
18983	//    operations, all the way to extensive transformations of entire templates.
18984	//    Because of this, users typically create a change set from the processed
18985	//    template, so that they can review the changes resulting from the macros
18986	//    before actually updating the stack. If your stack template contains one
18987	//    or more macros, and you choose to update a stack directly from the processed
18988	//    template, without first reviewing the resulting changes in a change set,
18989	//    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)
18990	//    and AWS::Serverless (http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/transform-aws-serverless.html)
18991	//    transforms, which are macros hosted by AWS CloudFormation. If you want
18992	//    to update a stack from a stack template that contains macros and nested
18993	//    stacks, you must update the stack directly from the template using this
18994	//    capability. You should only update stacks directly from a stack template
18995	//    that contains macros if you know what processing the macro performs. Each
18996	//    macro relies on an underlying Lambda service function for processing stack
18997	//    templates. Be aware that the Lambda function owner can update the function
18998	//    operation without AWS CloudFormation being notified. For more information,
18999	//    see Using AWS CloudFormation Macros to Perform Custom Processing on Templates
19000	//    (http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/template-macros.html).
19001	Capabilities []*string `type:"list"`
19002
19003	// A unique identifier for this UpdateStack request. Specify this token if you
19004	// plan to retry requests so that AWS CloudFormation knows that you're not attempting
19005	// to update a stack with the same name. You might retry UpdateStack requests
19006	// to ensure that AWS CloudFormation successfully received them.
19007	//
19008	// All events triggered by a given stack operation are assigned the same client
19009	// request token, which you can use to track operations. For example, if you
19010	// execute a CreateStack operation with the token token1, then all the StackEvents
19011	// generated by that operation will have ClientRequestToken set as token1.
19012	//
19013	// In the console, stack operations display the client request token on the
19014	// Events tab. Stack operations that are initiated from the console use the
19015	// token format Console-StackOperation-ID, which helps you easily identify the
19016	// stack operation . For example, if you create a stack using the console, each
19017	// stack event would be assigned the same token in the following format: Console-CreateStack-7f59c3cf-00d2-40c7-b2ff-e75db0987002.
19018	ClientRequestToken *string `min:"1" type:"string"`
19019
19020	// Amazon Simple Notification Service topic Amazon Resource Names (ARNs) that
19021	// AWS CloudFormation associates with the stack. Specify an empty list to remove
19022	// all notification topics.
19023	NotificationARNs []*string `type:"list"`
19024
19025	// A list of Parameter structures that specify input parameters for the stack.
19026	// For more information, see the Parameter (https://docs.aws.amazon.com/AWSCloudFormation/latest/APIReference/API_Parameter.html)
19027	// data type.
19028	Parameters []*Parameter `type:"list"`
19029
19030	// The template resource types that you have permissions to work with for this
19031	// update stack action, such as AWS::EC2::Instance, AWS::EC2::*, or Custom::MyCustomInstance.
19032	//
19033	// If the list of resource types doesn't include a resource that you're updating,
19034	// the stack update fails. By default, AWS CloudFormation grants permissions
19035	// to all resource types. AWS Identity and Access Management (IAM) uses this
19036	// parameter for AWS CloudFormation-specific condition keys in IAM policies.
19037	// For more information, see Controlling Access with AWS Identity and Access
19038	// Management (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-iam-template.html).
19039	ResourceTypes []*string `type:"list"`
19040
19041	// The Amazon Resource Name (ARN) of an AWS Identity and Access Management (IAM)
19042	// role that AWS CloudFormation assumes to update the stack. AWS CloudFormation
19043	// uses the role's credentials to make calls on your behalf. AWS CloudFormation
19044	// always uses this role for all future operations on the stack. As long as
19045	// users have permission to operate on the stack, AWS CloudFormation uses this
19046	// role even if the users don't have permission to pass it. Ensure that the
19047	// role grants least privilege.
19048	//
19049	// If you don't specify a value, AWS CloudFormation uses the role that was previously
19050	// associated with the stack. If no role is available, AWS CloudFormation uses
19051	// a temporary session that is generated from your user credentials.
19052	RoleARN *string `min:"20" type:"string"`
19053
19054	// The rollback triggers for AWS CloudFormation to monitor during stack creation
19055	// and updating operations, and for the specified monitoring period afterwards.
19056	RollbackConfiguration *RollbackConfiguration `type:"structure"`
19057
19058	// The name or unique stack ID of the stack to update.
19059	//
19060	// StackName is a required field
19061	StackName *string `type:"string" required:"true"`
19062
19063	// Structure containing a new stack policy body. You can specify either the
19064	// StackPolicyBody or the StackPolicyURL parameter, but not both.
19065	//
19066	// You might update the stack policy, for example, in order to protect a new
19067	// resource that you created during a stack update. If you do not specify a
19068	// stack policy, the current policy that is associated with the stack is unchanged.
19069	StackPolicyBody *string `min:"1" type:"string"`
19070
19071	// Structure containing the temporary overriding stack policy body. You can
19072	// specify either the StackPolicyDuringUpdateBody or the StackPolicyDuringUpdateURL
19073	// parameter, but not both.
19074	//
19075	// If you want to update protected resources, specify a temporary overriding
19076	// stack policy during this update. If you do not specify a stack policy, the
19077	// current policy that is associated with the stack will be used.
19078	StackPolicyDuringUpdateBody *string `min:"1" type:"string"`
19079
19080	// Location of a file containing the temporary overriding stack policy. The
19081	// URL must point to a policy (max size: 16KB) located in an S3 bucket in the
19082	// same Region as the stack. You can specify either the StackPolicyDuringUpdateBody
19083	// or the StackPolicyDuringUpdateURL parameter, but not both.
19084	//
19085	// If you want to update protected resources, specify a temporary overriding
19086	// stack policy during this update. If you do not specify a stack policy, the
19087	// current policy that is associated with the stack will be used.
19088	StackPolicyDuringUpdateURL *string `min:"1" type:"string"`
19089
19090	// Location of a file containing the updated stack policy. The URL must point
19091	// to a policy (max size: 16KB) located in an S3 bucket in the same Region as
19092	// the stack. You can specify either the StackPolicyBody or the StackPolicyURL
19093	// parameter, but not both.
19094	//
19095	// You might update the stack policy, for example, in order to protect a new
19096	// resource that you created during a stack update. If you do not specify a
19097	// stack policy, the current policy that is associated with the stack is unchanged.
19098	StackPolicyURL *string `min:"1" type:"string"`
19099
19100	// Key-value pairs to associate with this stack. AWS CloudFormation also propagates
19101	// these tags to supported resources in the stack. You can specify a maximum
19102	// number of 50 tags.
19103	//
19104	// If you don't specify this parameter, AWS CloudFormation doesn't modify the
19105	// stack's tags. If you specify an empty value, AWS CloudFormation removes all
19106	// associated tags.
19107	Tags []*Tag `type:"list"`
19108
19109	// Structure containing the template body with a minimum length of 1 byte and
19110	// a maximum length of 51,200 bytes. (For more information, go to Template Anatomy
19111	// (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/template-anatomy.html)
19112	// in the AWS CloudFormation User Guide.)
19113	//
19114	// Conditional: You must specify only one of the following parameters: TemplateBody,
19115	// TemplateURL, or set the UsePreviousTemplate to true.
19116	TemplateBody *string `min:"1" type:"string"`
19117
19118	// Location of file containing the template body. The URL must point to a template
19119	// that is located in an Amazon S3 bucket or a Systems Manager document. For
19120	// more information, go to Template Anatomy (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/template-anatomy.html)
19121	// in the AWS CloudFormation User Guide.
19122	//
19123	// Conditional: You must specify only one of the following parameters: TemplateBody,
19124	// TemplateURL, or set the UsePreviousTemplate to true.
19125	TemplateURL *string `min:"1" type:"string"`
19126
19127	// Reuse the existing template that is associated with the stack that you are
19128	// updating.
19129	//
19130	// Conditional: You must specify only one of the following parameters: TemplateBody,
19131	// TemplateURL, or set the UsePreviousTemplate to true.
19132	UsePreviousTemplate *bool `type:"boolean"`
19133}
19134
19135// String returns the string representation
19136func (s UpdateStackInput) String() string {
19137	return awsutil.Prettify(s)
19138}
19139
19140// GoString returns the string representation
19141func (s UpdateStackInput) GoString() string {
19142	return s.String()
19143}
19144
19145// Validate inspects the fields of the type to determine if they are valid.
19146func (s *UpdateStackInput) Validate() error {
19147	invalidParams := request.ErrInvalidParams{Context: "UpdateStackInput"}
19148	if s.ClientRequestToken != nil && len(*s.ClientRequestToken) < 1 {
19149		invalidParams.Add(request.NewErrParamMinLen("ClientRequestToken", 1))
19150	}
19151	if s.RoleARN != nil && len(*s.RoleARN) < 20 {
19152		invalidParams.Add(request.NewErrParamMinLen("RoleARN", 20))
19153	}
19154	if s.StackName == nil {
19155		invalidParams.Add(request.NewErrParamRequired("StackName"))
19156	}
19157	if s.StackPolicyBody != nil && len(*s.StackPolicyBody) < 1 {
19158		invalidParams.Add(request.NewErrParamMinLen("StackPolicyBody", 1))
19159	}
19160	if s.StackPolicyDuringUpdateBody != nil && len(*s.StackPolicyDuringUpdateBody) < 1 {
19161		invalidParams.Add(request.NewErrParamMinLen("StackPolicyDuringUpdateBody", 1))
19162	}
19163	if s.StackPolicyDuringUpdateURL != nil && len(*s.StackPolicyDuringUpdateURL) < 1 {
19164		invalidParams.Add(request.NewErrParamMinLen("StackPolicyDuringUpdateURL", 1))
19165	}
19166	if s.StackPolicyURL != nil && len(*s.StackPolicyURL) < 1 {
19167		invalidParams.Add(request.NewErrParamMinLen("StackPolicyURL", 1))
19168	}
19169	if s.TemplateBody != nil && len(*s.TemplateBody) < 1 {
19170		invalidParams.Add(request.NewErrParamMinLen("TemplateBody", 1))
19171	}
19172	if s.TemplateURL != nil && len(*s.TemplateURL) < 1 {
19173		invalidParams.Add(request.NewErrParamMinLen("TemplateURL", 1))
19174	}
19175	if s.RollbackConfiguration != nil {
19176		if err := s.RollbackConfiguration.Validate(); err != nil {
19177			invalidParams.AddNested("RollbackConfiguration", err.(request.ErrInvalidParams))
19178		}
19179	}
19180	if s.Tags != nil {
19181		for i, v := range s.Tags {
19182			if v == nil {
19183				continue
19184			}
19185			if err := v.Validate(); err != nil {
19186				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Tags", i), err.(request.ErrInvalidParams))
19187			}
19188		}
19189	}
19190
19191	if invalidParams.Len() > 0 {
19192		return invalidParams
19193	}
19194	return nil
19195}
19196
19197// SetCapabilities sets the Capabilities field's value.
19198func (s *UpdateStackInput) SetCapabilities(v []*string) *UpdateStackInput {
19199	s.Capabilities = v
19200	return s
19201}
19202
19203// SetClientRequestToken sets the ClientRequestToken field's value.
19204func (s *UpdateStackInput) SetClientRequestToken(v string) *UpdateStackInput {
19205	s.ClientRequestToken = &v
19206	return s
19207}
19208
19209// SetNotificationARNs sets the NotificationARNs field's value.
19210func (s *UpdateStackInput) SetNotificationARNs(v []*string) *UpdateStackInput {
19211	s.NotificationARNs = v
19212	return s
19213}
19214
19215// SetParameters sets the Parameters field's value.
19216func (s *UpdateStackInput) SetParameters(v []*Parameter) *UpdateStackInput {
19217	s.Parameters = v
19218	return s
19219}
19220
19221// SetResourceTypes sets the ResourceTypes field's value.
19222func (s *UpdateStackInput) SetResourceTypes(v []*string) *UpdateStackInput {
19223	s.ResourceTypes = v
19224	return s
19225}
19226
19227// SetRoleARN sets the RoleARN field's value.
19228func (s *UpdateStackInput) SetRoleARN(v string) *UpdateStackInput {
19229	s.RoleARN = &v
19230	return s
19231}
19232
19233// SetRollbackConfiguration sets the RollbackConfiguration field's value.
19234func (s *UpdateStackInput) SetRollbackConfiguration(v *RollbackConfiguration) *UpdateStackInput {
19235	s.RollbackConfiguration = v
19236	return s
19237}
19238
19239// SetStackName sets the StackName field's value.
19240func (s *UpdateStackInput) SetStackName(v string) *UpdateStackInput {
19241	s.StackName = &v
19242	return s
19243}
19244
19245// SetStackPolicyBody sets the StackPolicyBody field's value.
19246func (s *UpdateStackInput) SetStackPolicyBody(v string) *UpdateStackInput {
19247	s.StackPolicyBody = &v
19248	return s
19249}
19250
19251// SetStackPolicyDuringUpdateBody sets the StackPolicyDuringUpdateBody field's value.
19252func (s *UpdateStackInput) SetStackPolicyDuringUpdateBody(v string) *UpdateStackInput {
19253	s.StackPolicyDuringUpdateBody = &v
19254	return s
19255}
19256
19257// SetStackPolicyDuringUpdateURL sets the StackPolicyDuringUpdateURL field's value.
19258func (s *UpdateStackInput) SetStackPolicyDuringUpdateURL(v string) *UpdateStackInput {
19259	s.StackPolicyDuringUpdateURL = &v
19260	return s
19261}
19262
19263// SetStackPolicyURL sets the StackPolicyURL field's value.
19264func (s *UpdateStackInput) SetStackPolicyURL(v string) *UpdateStackInput {
19265	s.StackPolicyURL = &v
19266	return s
19267}
19268
19269// SetTags sets the Tags field's value.
19270func (s *UpdateStackInput) SetTags(v []*Tag) *UpdateStackInput {
19271	s.Tags = v
19272	return s
19273}
19274
19275// SetTemplateBody sets the TemplateBody field's value.
19276func (s *UpdateStackInput) SetTemplateBody(v string) *UpdateStackInput {
19277	s.TemplateBody = &v
19278	return s
19279}
19280
19281// SetTemplateURL sets the TemplateURL field's value.
19282func (s *UpdateStackInput) SetTemplateURL(v string) *UpdateStackInput {
19283	s.TemplateURL = &v
19284	return s
19285}
19286
19287// SetUsePreviousTemplate sets the UsePreviousTemplate field's value.
19288func (s *UpdateStackInput) SetUsePreviousTemplate(v bool) *UpdateStackInput {
19289	s.UsePreviousTemplate = &v
19290	return s
19291}
19292
19293type UpdateStackInstancesInput struct {
19294	_ struct{} `type:"structure"`
19295
19296	// [Self-managed permissions] The names of one or more AWS accounts for which
19297	// you want to update parameter values for stack instances. The overridden parameter
19298	// values will be applied to all stack instances in the specified accounts and
19299	// Regions.
19300	//
19301	// You can specify Accounts or DeploymentTargets, but not both.
19302	Accounts []*string `type:"list"`
19303
19304	// [Service-managed permissions] Specifies whether you are acting as an account
19305	// administrator in the organization's management account or as a delegated
19306	// administrator in a member account.
19307	//
19308	// By default, SELF is specified. Use SELF for stack sets with self-managed
19309	// permissions.
19310	//
19311	//    * If you are signed in to the management account, specify SELF.
19312	//
19313	//    * If you are signed in to a delegated administrator account, specify DELEGATED_ADMIN.
19314	//    Your AWS account must be registered as a delegated administrator in the
19315	//    management account. For more information, see Register a delegated administrator
19316	//    (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/stacksets-orgs-delegated-admin.html)
19317	//    in the AWS CloudFormation User Guide.
19318	CallAs *string `type:"string" enum:"CallAs"`
19319
19320	// [Service-managed permissions] The AWS Organizations accounts for which you
19321	// want to update parameter values for stack instances. If your update targets
19322	// OUs, the overridden parameter values only apply to the accounts that are
19323	// currently in the target OUs and their child OUs. Accounts added to the target
19324	// OUs and their child OUs in the future won't use the overridden values.
19325	//
19326	// You can specify Accounts or DeploymentTargets, but not both.
19327	DeploymentTargets *DeploymentTargets `type:"structure"`
19328
19329	// The unique identifier for this stack set operation.
19330	//
19331	// The operation ID also functions as an idempotency token, to ensure that AWS
19332	// CloudFormation performs the stack set operation only once, even if you retry
19333	// the request multiple times. You might retry stack set operation requests
19334	// to ensure that AWS CloudFormation successfully received them.
19335	//
19336	// If you don't specify an operation ID, the SDK generates one automatically.
19337	OperationId *string `min:"1" type:"string" idempotencyToken:"true"`
19338
19339	// Preferences for how AWS CloudFormation performs this stack set operation.
19340	OperationPreferences *StackSetOperationPreferences `type:"structure"`
19341
19342	// A list of input parameters whose values you want to update for the specified
19343	// stack instances.
19344	//
19345	// Any overridden parameter values will be applied to all stack instances in
19346	// the specified accounts and Regions. When specifying parameters and their
19347	// values, be aware of how AWS CloudFormation sets parameter values during stack
19348	// instance update operations:
19349	//
19350	//    * To override the current value for a parameter, include the parameter
19351	//    and specify its value.
19352	//
19353	//    * To leave a parameter set to its present value, you can do one of the
19354	//    following: Do not include the parameter in the list. Include the parameter
19355	//    and specify UsePreviousValue as true. (You cannot specify both a value
19356	//    and set UsePreviousValue to true.)
19357	//
19358	//    * To set all overridden parameter back to the values specified in the
19359	//    stack set, specify a parameter list but do not include any parameters.
19360	//
19361	//    * To leave all parameters set to their present values, do not specify
19362	//    this property at all.
19363	//
19364	// During stack set updates, any parameter values overridden for a stack instance
19365	// are not updated, but retain their overridden value.
19366	//
19367	// You can only override the parameter values that are specified in the stack
19368	// set; to add or delete a parameter itself, use UpdateStackSet to update the
19369	// stack set template. If you add a parameter to a template, before you can
19370	// override the parameter value specified in the stack set you must first use
19371	// UpdateStackSet (https://docs.aws.amazon.com/AWSCloudFormation/latest/APIReference/API_UpdateStackSet.html)
19372	// to update all stack instances with the updated template and parameter value
19373	// specified in the stack set. Once a stack instance has been updated with the
19374	// new parameter, you can then override the parameter value using UpdateStackInstances.
19375	ParameterOverrides []*Parameter `type:"list"`
19376
19377	// The names of one or more Regions in which you want to update parameter values
19378	// for stack instances. The overridden parameter values will be applied to all
19379	// stack instances in the specified accounts and Regions.
19380	//
19381	// Regions is a required field
19382	Regions []*string `type:"list" required:"true"`
19383
19384	// The name or unique ID of the stack set associated with the stack instances.
19385	//
19386	// StackSetName is a required field
19387	StackSetName *string `type:"string" required:"true"`
19388}
19389
19390// String returns the string representation
19391func (s UpdateStackInstancesInput) String() string {
19392	return awsutil.Prettify(s)
19393}
19394
19395// GoString returns the string representation
19396func (s UpdateStackInstancesInput) GoString() string {
19397	return s.String()
19398}
19399
19400// Validate inspects the fields of the type to determine if they are valid.
19401func (s *UpdateStackInstancesInput) Validate() error {
19402	invalidParams := request.ErrInvalidParams{Context: "UpdateStackInstancesInput"}
19403	if s.OperationId != nil && len(*s.OperationId) < 1 {
19404		invalidParams.Add(request.NewErrParamMinLen("OperationId", 1))
19405	}
19406	if s.Regions == nil {
19407		invalidParams.Add(request.NewErrParamRequired("Regions"))
19408	}
19409	if s.StackSetName == nil {
19410		invalidParams.Add(request.NewErrParamRequired("StackSetName"))
19411	}
19412	if s.DeploymentTargets != nil {
19413		if err := s.DeploymentTargets.Validate(); err != nil {
19414			invalidParams.AddNested("DeploymentTargets", err.(request.ErrInvalidParams))
19415		}
19416	}
19417	if s.OperationPreferences != nil {
19418		if err := s.OperationPreferences.Validate(); err != nil {
19419			invalidParams.AddNested("OperationPreferences", err.(request.ErrInvalidParams))
19420		}
19421	}
19422
19423	if invalidParams.Len() > 0 {
19424		return invalidParams
19425	}
19426	return nil
19427}
19428
19429// SetAccounts sets the Accounts field's value.
19430func (s *UpdateStackInstancesInput) SetAccounts(v []*string) *UpdateStackInstancesInput {
19431	s.Accounts = v
19432	return s
19433}
19434
19435// SetCallAs sets the CallAs field's value.
19436func (s *UpdateStackInstancesInput) SetCallAs(v string) *UpdateStackInstancesInput {
19437	s.CallAs = &v
19438	return s
19439}
19440
19441// SetDeploymentTargets sets the DeploymentTargets field's value.
19442func (s *UpdateStackInstancesInput) SetDeploymentTargets(v *DeploymentTargets) *UpdateStackInstancesInput {
19443	s.DeploymentTargets = v
19444	return s
19445}
19446
19447// SetOperationId sets the OperationId field's value.
19448func (s *UpdateStackInstancesInput) SetOperationId(v string) *UpdateStackInstancesInput {
19449	s.OperationId = &v
19450	return s
19451}
19452
19453// SetOperationPreferences sets the OperationPreferences field's value.
19454func (s *UpdateStackInstancesInput) SetOperationPreferences(v *StackSetOperationPreferences) *UpdateStackInstancesInput {
19455	s.OperationPreferences = v
19456	return s
19457}
19458
19459// SetParameterOverrides sets the ParameterOverrides field's value.
19460func (s *UpdateStackInstancesInput) SetParameterOverrides(v []*Parameter) *UpdateStackInstancesInput {
19461	s.ParameterOverrides = v
19462	return s
19463}
19464
19465// SetRegions sets the Regions field's value.
19466func (s *UpdateStackInstancesInput) SetRegions(v []*string) *UpdateStackInstancesInput {
19467	s.Regions = v
19468	return s
19469}
19470
19471// SetStackSetName sets the StackSetName field's value.
19472func (s *UpdateStackInstancesInput) SetStackSetName(v string) *UpdateStackInstancesInput {
19473	s.StackSetName = &v
19474	return s
19475}
19476
19477type UpdateStackInstancesOutput struct {
19478	_ struct{} `type:"structure"`
19479
19480	// The unique identifier for this stack set operation.
19481	OperationId *string `min:"1" type:"string"`
19482}
19483
19484// String returns the string representation
19485func (s UpdateStackInstancesOutput) String() string {
19486	return awsutil.Prettify(s)
19487}
19488
19489// GoString returns the string representation
19490func (s UpdateStackInstancesOutput) GoString() string {
19491	return s.String()
19492}
19493
19494// SetOperationId sets the OperationId field's value.
19495func (s *UpdateStackInstancesOutput) SetOperationId(v string) *UpdateStackInstancesOutput {
19496	s.OperationId = &v
19497	return s
19498}
19499
19500// The output for an UpdateStack action.
19501type UpdateStackOutput struct {
19502	_ struct{} `type:"structure"`
19503
19504	// Unique identifier of the stack.
19505	StackId *string `type:"string"`
19506}
19507
19508// String returns the string representation
19509func (s UpdateStackOutput) String() string {
19510	return awsutil.Prettify(s)
19511}
19512
19513// GoString returns the string representation
19514func (s UpdateStackOutput) GoString() string {
19515	return s.String()
19516}
19517
19518// SetStackId sets the StackId field's value.
19519func (s *UpdateStackOutput) SetStackId(v string) *UpdateStackOutput {
19520	s.StackId = &v
19521	return s
19522}
19523
19524type UpdateStackSetInput struct {
19525	_ struct{} `type:"structure"`
19526
19527	// [Self-managed permissions] The accounts in which to update associated stack
19528	// instances. If you specify accounts, you must also specify the Regions in
19529	// which to update stack set instances.
19530	//
19531	// To update all the stack instances associated with this stack set, do not
19532	// specify the Accounts or Regions properties.
19533	//
19534	// If the stack set update includes changes to the template (that is, if the
19535	// TemplateBody or TemplateURL properties are specified), or the Parameters
19536	// property, AWS CloudFormation marks all stack instances with a status of OUTDATED
19537	// prior to updating the stack instances in the specified accounts and Regions.
19538	// If the stack set update does not include changes to the template or parameters,
19539	// AWS CloudFormation updates the stack instances in the specified accounts
19540	// and Regions, while leaving all other stack instances with their existing
19541	// stack instance status.
19542	Accounts []*string `type:"list"`
19543
19544	// The Amazon Resource Number (ARN) of the IAM role to use to update this stack
19545	// set.
19546	//
19547	// Specify an IAM role only if you are using customized administrator roles
19548	// to control which users or groups can manage specific stack sets within the
19549	// same administrator account. For more information, see Granting Permissions
19550	// for Stack Set Operations (http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/stacksets-prereqs.html)
19551	// in the AWS CloudFormation User Guide.
19552	//
19553	// If you specified a customized administrator role when you created the stack
19554	// set, you must specify a customized administrator role, even if it is the
19555	// same customized administrator role used with this stack set previously.
19556	AdministrationRoleARN *string `min:"20" type:"string"`
19557
19558	// [Service-managed permissions] Describes whether StackSets automatically deploys
19559	// to AWS Organizations accounts that are added to a target organization or
19560	// organizational unit (OU).
19561	//
19562	// If you specify AutoDeployment, do not specify DeploymentTargets or Regions.
19563	AutoDeployment *AutoDeployment `type:"structure"`
19564
19565	// [Service-managed permissions] Specifies whether you are acting as an account
19566	// administrator in the organization's management account or as a delegated
19567	// administrator in a member account.
19568	//
19569	// By default, SELF is specified. Use SELF for stack sets with self-managed
19570	// permissions.
19571	//
19572	//    * If you are signed in to the management account, specify SELF.
19573	//
19574	//    * If you are signed in to a delegated administrator account, specify DELEGATED_ADMIN.
19575	//    Your AWS account must be registered as a delegated administrator in the
19576	//    management account. For more information, see Register a delegated administrator
19577	//    (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/stacksets-orgs-delegated-admin.html)
19578	//    in the AWS CloudFormation User Guide.
19579	CallAs *string `type:"string" enum:"CallAs"`
19580
19581	// In some cases, you must explicitly acknowledge that your stack template contains
19582	// certain capabilities in order for AWS CloudFormation to update the stack
19583	// set and its associated stack instances.
19584	//
19585	//    * CAPABILITY_IAM and CAPABILITY_NAMED_IAM Some stack templates might include
19586	//    resources that can affect permissions in your AWS account; for example,
19587	//    by creating new AWS Identity and Access Management (IAM) users. For those
19588	//    stacks sets, you must explicitly acknowledge this by specifying one of
19589	//    these capabilities. The following IAM resources require you to specify
19590	//    either the CAPABILITY_IAM or CAPABILITY_NAMED_IAM capability. If you have
19591	//    IAM resources, you can specify either capability. If you have IAM resources
19592	//    with custom names, you must specify CAPABILITY_NAMED_IAM. If you don't
19593	//    specify either of these capabilities, AWS CloudFormation returns an InsufficientCapabilities
19594	//    error. If your stack template contains these resources, we recommend that
19595	//    you review all permissions associated with them and edit their permissions
19596	//    if necessary. AWS::IAM::AccessKey (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iam-accesskey.html)
19597	//    AWS::IAM::Group (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iam-group.html)
19598	//    AWS::IAM::InstanceProfile (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iam-instanceprofile.html)
19599	//    AWS::IAM::Policy (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iam-policy.html)
19600	//    AWS::IAM::Role (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iam-role.html)
19601	//    AWS::IAM::User (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iam-user.html)
19602	//    AWS::IAM::UserToGroupAddition (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iam-addusertogroup.html)
19603	//    For more information, see Acknowledging IAM Resources in AWS CloudFormation
19604	//    Templates (http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-iam-template.html#capabilities).
19605	//
19606	//    * CAPABILITY_AUTO_EXPAND Some templates reference macros. If your stack
19607	//    set template references one or more macros, you must update the stack
19608	//    set directly from the processed template, without first reviewing the
19609	//    resulting changes in a change set. To update the stack set directly, you
19610	//    must acknowledge this capability. For more information, see Using AWS
19611	//    CloudFormation Macros to Perform Custom Processing on Templates (http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/template-macros.html).
19612	//    Stack sets with service-managed permissions do not currently support the
19613	//    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)
19614	//    and AWS::Serverless (http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/transform-aws-serverless.html)
19615	//    transforms, which are macros hosted by AWS CloudFormation.) Even if you
19616	//    specify this capability for a stack set with service-managed permissions,
19617	//    if you reference a macro in your template the stack set operation will
19618	//    fail.
19619	Capabilities []*string `type:"list"`
19620
19621	// [Service-managed permissions] The AWS Organizations accounts in which to
19622	// update associated stack instances.
19623	//
19624	// To update all the stack instances associated with this stack set, do not
19625	// specify DeploymentTargets or Regions.
19626	//
19627	// If the stack set update includes changes to the template (that is, if TemplateBody
19628	// or TemplateURL is specified), or the Parameters, AWS CloudFormation marks
19629	// all stack instances with a status of OUTDATED prior to updating the stack
19630	// instances in the specified accounts and Regions. If the stack set update
19631	// does not include changes to the template or parameters, AWS CloudFormation
19632	// updates the stack instances in the specified accounts and Regions, while
19633	// leaving all other stack instances with their existing stack instance status.
19634	DeploymentTargets *DeploymentTargets `type:"structure"`
19635
19636	// A brief description of updates that you are making.
19637	Description *string `min:"1" type:"string"`
19638
19639	// The name of the IAM execution role to use to update the stack set. If you
19640	// do not specify an execution role, AWS CloudFormation uses the AWSCloudFormationStackSetExecutionRole
19641	// role for the stack set operation.
19642	//
19643	// Specify an IAM role only if you are using customized execution roles to control
19644	// which stack resources users and groups can include in their stack sets.
19645	//
19646	// If you specify a customized execution role, AWS CloudFormation uses that
19647	// role to update the stack. If you do not specify a customized execution role,
19648	// AWS CloudFormation performs the update using the role previously associated
19649	// with the stack set, so long as you have permissions to perform operations
19650	// on the stack set.
19651	ExecutionRoleName *string `min:"1" type:"string"`
19652
19653	// The unique ID for this stack set operation.
19654	//
19655	// The operation ID also functions as an idempotency token, to ensure that AWS
19656	// CloudFormation performs the stack set operation only once, even if you retry
19657	// the request multiple times. You might retry stack set operation requests
19658	// to ensure that AWS CloudFormation successfully received them.
19659	//
19660	// If you don't specify an operation ID, AWS CloudFormation generates one automatically.
19661	//
19662	// Repeating this stack set operation with a new operation ID retries all stack
19663	// instances whose status is OUTDATED.
19664	OperationId *string `min:"1" type:"string" idempotencyToken:"true"`
19665
19666	// Preferences for how AWS CloudFormation performs this stack set operation.
19667	OperationPreferences *StackSetOperationPreferences `type:"structure"`
19668
19669	// A list of input parameters for the stack set template.
19670	Parameters []*Parameter `type:"list"`
19671
19672	// Describes how the IAM roles required for stack set operations are created.
19673	// You cannot modify PermissionModel if there are stack instances associated
19674	// with your stack set.
19675	//
19676	//    * With self-managed permissions, you must create the administrator and
19677	//    execution roles required to deploy to target accounts. For more information,
19678	//    see Grant Self-Managed Stack Set Permissions (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/stacksets-prereqs-self-managed.html).
19679	//
19680	//    * With service-managed permissions, StackSets automatically creates the
19681	//    IAM roles required to deploy to accounts managed by AWS Organizations.
19682	//    For more information, see Grant Service-Managed Stack Set Permissions
19683	//    (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/stacksets-prereqs-service-managed.html).
19684	PermissionModel *string `type:"string" enum:"PermissionModels"`
19685
19686	// The Regions in which to update associated stack instances. If you specify
19687	// Regions, you must also specify accounts in which to update stack set instances.
19688	//
19689	// To update all the stack instances associated with this stack set, do not
19690	// specify the Accounts or Regions properties.
19691	//
19692	// If the stack set update includes changes to the template (that is, if the
19693	// TemplateBody or TemplateURL properties are specified), or the Parameters
19694	// property, AWS CloudFormation marks all stack instances with a status of OUTDATED
19695	// prior to updating the stack instances in the specified accounts and Regions.
19696	// If the stack set update does not include changes to the template or parameters,
19697	// AWS CloudFormation updates the stack instances in the specified accounts
19698	// and Regions, while leaving all other stack instances with their existing
19699	// stack instance status.
19700	Regions []*string `type:"list"`
19701
19702	// The name or unique ID of the stack set that you want to update.
19703	//
19704	// StackSetName is a required field
19705	StackSetName *string `type:"string" required:"true"`
19706
19707	// The key-value pairs to associate with this stack set and the stacks created
19708	// from it. AWS CloudFormation also propagates these tags to supported resources
19709	// that are created in the stacks. You can specify a maximum number of 50 tags.
19710	//
19711	// If you specify tags for this parameter, those tags replace any list of tags
19712	// that are currently associated with this stack set. This means:
19713	//
19714	//    * If you don't specify this parameter, AWS CloudFormation doesn't modify
19715	//    the stack's tags.
19716	//
19717	//    * If you specify any tags using this parameter, you must specify all the
19718	//    tags that you want associated with this stack set, even tags you've specifed
19719	//    before (for example, when creating the stack set or during a previous
19720	//    update of the stack set.). Any tags that you don't include in the updated
19721	//    list of tags are removed from the stack set, and therefore from the stacks
19722	//    and resources as well.
19723	//
19724	//    * If you specify an empty value, AWS CloudFormation removes all currently
19725	//    associated tags.
19726	//
19727	// If you specify new tags as part of an UpdateStackSet action, AWS CloudFormation
19728	// checks to see if you have the required IAM permission to tag resources. If
19729	// you omit tags that are currently associated with the stack set from the list
19730	// of tags you specify, AWS CloudFormation assumes that you want to remove those
19731	// tags from the stack set, and checks to see if you have permission to untag
19732	// resources. If you don't have the necessary permission(s), the entire UpdateStackSet
19733	// action fails with an access denied error, and the stack set is not updated.
19734	Tags []*Tag `type:"list"`
19735
19736	// The structure that contains the template body, with a minimum length of 1
19737	// byte and a maximum length of 51,200 bytes. For more information, see Template
19738	// Anatomy (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/template-anatomy.html)
19739	// in the AWS CloudFormation User Guide.
19740	//
19741	// Conditional: You must specify only one of the following parameters: TemplateBody
19742	// or TemplateURL—or set UsePreviousTemplate to true.
19743	TemplateBody *string `min:"1" type:"string"`
19744
19745	// The location of the file that contains the template body. The URL must point
19746	// to a template (maximum size: 460,800 bytes) that is located in an Amazon
19747	// S3 bucket or a Systems Manager document. For more information, see Template
19748	// Anatomy (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/template-anatomy.html)
19749	// in the AWS CloudFormation User Guide.
19750	//
19751	// Conditional: You must specify only one of the following parameters: TemplateBody
19752	// or TemplateURL—or set UsePreviousTemplate to true.
19753	TemplateURL *string `min:"1" type:"string"`
19754
19755	// Use the existing template that's associated with the stack set that you're
19756	// updating.
19757	//
19758	// Conditional: You must specify only one of the following parameters: TemplateBody
19759	// or TemplateURL—or set UsePreviousTemplate to true.
19760	UsePreviousTemplate *bool `type:"boolean"`
19761}
19762
19763// String returns the string representation
19764func (s UpdateStackSetInput) String() string {
19765	return awsutil.Prettify(s)
19766}
19767
19768// GoString returns the string representation
19769func (s UpdateStackSetInput) GoString() string {
19770	return s.String()
19771}
19772
19773// Validate inspects the fields of the type to determine if they are valid.
19774func (s *UpdateStackSetInput) Validate() error {
19775	invalidParams := request.ErrInvalidParams{Context: "UpdateStackSetInput"}
19776	if s.AdministrationRoleARN != nil && len(*s.AdministrationRoleARN) < 20 {
19777		invalidParams.Add(request.NewErrParamMinLen("AdministrationRoleARN", 20))
19778	}
19779	if s.Description != nil && len(*s.Description) < 1 {
19780		invalidParams.Add(request.NewErrParamMinLen("Description", 1))
19781	}
19782	if s.ExecutionRoleName != nil && len(*s.ExecutionRoleName) < 1 {
19783		invalidParams.Add(request.NewErrParamMinLen("ExecutionRoleName", 1))
19784	}
19785	if s.OperationId != nil && len(*s.OperationId) < 1 {
19786		invalidParams.Add(request.NewErrParamMinLen("OperationId", 1))
19787	}
19788	if s.StackSetName == nil {
19789		invalidParams.Add(request.NewErrParamRequired("StackSetName"))
19790	}
19791	if s.TemplateBody != nil && len(*s.TemplateBody) < 1 {
19792		invalidParams.Add(request.NewErrParamMinLen("TemplateBody", 1))
19793	}
19794	if s.TemplateURL != nil && len(*s.TemplateURL) < 1 {
19795		invalidParams.Add(request.NewErrParamMinLen("TemplateURL", 1))
19796	}
19797	if s.DeploymentTargets != nil {
19798		if err := s.DeploymentTargets.Validate(); err != nil {
19799			invalidParams.AddNested("DeploymentTargets", err.(request.ErrInvalidParams))
19800		}
19801	}
19802	if s.OperationPreferences != nil {
19803		if err := s.OperationPreferences.Validate(); err != nil {
19804			invalidParams.AddNested("OperationPreferences", err.(request.ErrInvalidParams))
19805		}
19806	}
19807	if s.Tags != nil {
19808		for i, v := range s.Tags {
19809			if v == nil {
19810				continue
19811			}
19812			if err := v.Validate(); err != nil {
19813				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Tags", i), err.(request.ErrInvalidParams))
19814			}
19815		}
19816	}
19817
19818	if invalidParams.Len() > 0 {
19819		return invalidParams
19820	}
19821	return nil
19822}
19823
19824// SetAccounts sets the Accounts field's value.
19825func (s *UpdateStackSetInput) SetAccounts(v []*string) *UpdateStackSetInput {
19826	s.Accounts = v
19827	return s
19828}
19829
19830// SetAdministrationRoleARN sets the AdministrationRoleARN field's value.
19831func (s *UpdateStackSetInput) SetAdministrationRoleARN(v string) *UpdateStackSetInput {
19832	s.AdministrationRoleARN = &v
19833	return s
19834}
19835
19836// SetAutoDeployment sets the AutoDeployment field's value.
19837func (s *UpdateStackSetInput) SetAutoDeployment(v *AutoDeployment) *UpdateStackSetInput {
19838	s.AutoDeployment = v
19839	return s
19840}
19841
19842// SetCallAs sets the CallAs field's value.
19843func (s *UpdateStackSetInput) SetCallAs(v string) *UpdateStackSetInput {
19844	s.CallAs = &v
19845	return s
19846}
19847
19848// SetCapabilities sets the Capabilities field's value.
19849func (s *UpdateStackSetInput) SetCapabilities(v []*string) *UpdateStackSetInput {
19850	s.Capabilities = v
19851	return s
19852}
19853
19854// SetDeploymentTargets sets the DeploymentTargets field's value.
19855func (s *UpdateStackSetInput) SetDeploymentTargets(v *DeploymentTargets) *UpdateStackSetInput {
19856	s.DeploymentTargets = v
19857	return s
19858}
19859
19860// SetDescription sets the Description field's value.
19861func (s *UpdateStackSetInput) SetDescription(v string) *UpdateStackSetInput {
19862	s.Description = &v
19863	return s
19864}
19865
19866// SetExecutionRoleName sets the ExecutionRoleName field's value.
19867func (s *UpdateStackSetInput) SetExecutionRoleName(v string) *UpdateStackSetInput {
19868	s.ExecutionRoleName = &v
19869	return s
19870}
19871
19872// SetOperationId sets the OperationId field's value.
19873func (s *UpdateStackSetInput) SetOperationId(v string) *UpdateStackSetInput {
19874	s.OperationId = &v
19875	return s
19876}
19877
19878// SetOperationPreferences sets the OperationPreferences field's value.
19879func (s *UpdateStackSetInput) SetOperationPreferences(v *StackSetOperationPreferences) *UpdateStackSetInput {
19880	s.OperationPreferences = v
19881	return s
19882}
19883
19884// SetParameters sets the Parameters field's value.
19885func (s *UpdateStackSetInput) SetParameters(v []*Parameter) *UpdateStackSetInput {
19886	s.Parameters = v
19887	return s
19888}
19889
19890// SetPermissionModel sets the PermissionModel field's value.
19891func (s *UpdateStackSetInput) SetPermissionModel(v string) *UpdateStackSetInput {
19892	s.PermissionModel = &v
19893	return s
19894}
19895
19896// SetRegions sets the Regions field's value.
19897func (s *UpdateStackSetInput) SetRegions(v []*string) *UpdateStackSetInput {
19898	s.Regions = v
19899	return s
19900}
19901
19902// SetStackSetName sets the StackSetName field's value.
19903func (s *UpdateStackSetInput) SetStackSetName(v string) *UpdateStackSetInput {
19904	s.StackSetName = &v
19905	return s
19906}
19907
19908// SetTags sets the Tags field's value.
19909func (s *UpdateStackSetInput) SetTags(v []*Tag) *UpdateStackSetInput {
19910	s.Tags = v
19911	return s
19912}
19913
19914// SetTemplateBody sets the TemplateBody field's value.
19915func (s *UpdateStackSetInput) SetTemplateBody(v string) *UpdateStackSetInput {
19916	s.TemplateBody = &v
19917	return s
19918}
19919
19920// SetTemplateURL sets the TemplateURL field's value.
19921func (s *UpdateStackSetInput) SetTemplateURL(v string) *UpdateStackSetInput {
19922	s.TemplateURL = &v
19923	return s
19924}
19925
19926// SetUsePreviousTemplate sets the UsePreviousTemplate field's value.
19927func (s *UpdateStackSetInput) SetUsePreviousTemplate(v bool) *UpdateStackSetInput {
19928	s.UsePreviousTemplate = &v
19929	return s
19930}
19931
19932type UpdateStackSetOutput struct {
19933	_ struct{} `type:"structure"`
19934
19935	// The unique ID for this stack set operation.
19936	OperationId *string `min:"1" type:"string"`
19937}
19938
19939// String returns the string representation
19940func (s UpdateStackSetOutput) String() string {
19941	return awsutil.Prettify(s)
19942}
19943
19944// GoString returns the string representation
19945func (s UpdateStackSetOutput) GoString() string {
19946	return s.String()
19947}
19948
19949// SetOperationId sets the OperationId field's value.
19950func (s *UpdateStackSetOutput) SetOperationId(v string) *UpdateStackSetOutput {
19951	s.OperationId = &v
19952	return s
19953}
19954
19955type UpdateTerminationProtectionInput struct {
19956	_ struct{} `type:"structure"`
19957
19958	// Whether to enable termination protection on the specified stack.
19959	//
19960	// EnableTerminationProtection is a required field
19961	EnableTerminationProtection *bool `type:"boolean" required:"true"`
19962
19963	// The name or unique ID of the stack for which you want to set termination
19964	// protection.
19965	//
19966	// StackName is a required field
19967	StackName *string `min:"1" type:"string" required:"true"`
19968}
19969
19970// String returns the string representation
19971func (s UpdateTerminationProtectionInput) String() string {
19972	return awsutil.Prettify(s)
19973}
19974
19975// GoString returns the string representation
19976func (s UpdateTerminationProtectionInput) GoString() string {
19977	return s.String()
19978}
19979
19980// Validate inspects the fields of the type to determine if they are valid.
19981func (s *UpdateTerminationProtectionInput) Validate() error {
19982	invalidParams := request.ErrInvalidParams{Context: "UpdateTerminationProtectionInput"}
19983	if s.EnableTerminationProtection == nil {
19984		invalidParams.Add(request.NewErrParamRequired("EnableTerminationProtection"))
19985	}
19986	if s.StackName == nil {
19987		invalidParams.Add(request.NewErrParamRequired("StackName"))
19988	}
19989	if s.StackName != nil && len(*s.StackName) < 1 {
19990		invalidParams.Add(request.NewErrParamMinLen("StackName", 1))
19991	}
19992
19993	if invalidParams.Len() > 0 {
19994		return invalidParams
19995	}
19996	return nil
19997}
19998
19999// SetEnableTerminationProtection sets the EnableTerminationProtection field's value.
20000func (s *UpdateTerminationProtectionInput) SetEnableTerminationProtection(v bool) *UpdateTerminationProtectionInput {
20001	s.EnableTerminationProtection = &v
20002	return s
20003}
20004
20005// SetStackName sets the StackName field's value.
20006func (s *UpdateTerminationProtectionInput) SetStackName(v string) *UpdateTerminationProtectionInput {
20007	s.StackName = &v
20008	return s
20009}
20010
20011type UpdateTerminationProtectionOutput struct {
20012	_ struct{} `type:"structure"`
20013
20014	// The unique ID of the stack.
20015	StackId *string `type:"string"`
20016}
20017
20018// String returns the string representation
20019func (s UpdateTerminationProtectionOutput) String() string {
20020	return awsutil.Prettify(s)
20021}
20022
20023// GoString returns the string representation
20024func (s UpdateTerminationProtectionOutput) GoString() string {
20025	return s.String()
20026}
20027
20028// SetStackId sets the StackId field's value.
20029func (s *UpdateTerminationProtectionOutput) SetStackId(v string) *UpdateTerminationProtectionOutput {
20030	s.StackId = &v
20031	return s
20032}
20033
20034// The input for ValidateTemplate action.
20035type ValidateTemplateInput struct {
20036	_ struct{} `type:"structure"`
20037
20038	// Structure containing the template body with a minimum length of 1 byte and
20039	// a maximum length of 51,200 bytes. For more information, go to Template Anatomy
20040	// (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/template-anatomy.html)
20041	// in the AWS CloudFormation User Guide.
20042	//
20043	// Conditional: You must pass TemplateURL or TemplateBody. If both are passed,
20044	// only TemplateBody is used.
20045	TemplateBody *string `min:"1" type:"string"`
20046
20047	// Location of file containing the template body. The URL must point to a template
20048	// (max size: 460,800 bytes) that is located in an Amazon S3 bucket or a Systems
20049	// Manager document. For more information, go to Template Anatomy (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/template-anatomy.html)
20050	// in the AWS CloudFormation User Guide.
20051	//
20052	// Conditional: You must pass TemplateURL or TemplateBody. If both are passed,
20053	// only TemplateBody is used.
20054	TemplateURL *string `min:"1" type:"string"`
20055}
20056
20057// String returns the string representation
20058func (s ValidateTemplateInput) String() string {
20059	return awsutil.Prettify(s)
20060}
20061
20062// GoString returns the string representation
20063func (s ValidateTemplateInput) GoString() string {
20064	return s.String()
20065}
20066
20067// Validate inspects the fields of the type to determine if they are valid.
20068func (s *ValidateTemplateInput) Validate() error {
20069	invalidParams := request.ErrInvalidParams{Context: "ValidateTemplateInput"}
20070	if s.TemplateBody != nil && len(*s.TemplateBody) < 1 {
20071		invalidParams.Add(request.NewErrParamMinLen("TemplateBody", 1))
20072	}
20073	if s.TemplateURL != nil && len(*s.TemplateURL) < 1 {
20074		invalidParams.Add(request.NewErrParamMinLen("TemplateURL", 1))
20075	}
20076
20077	if invalidParams.Len() > 0 {
20078		return invalidParams
20079	}
20080	return nil
20081}
20082
20083// SetTemplateBody sets the TemplateBody field's value.
20084func (s *ValidateTemplateInput) SetTemplateBody(v string) *ValidateTemplateInput {
20085	s.TemplateBody = &v
20086	return s
20087}
20088
20089// SetTemplateURL sets the TemplateURL field's value.
20090func (s *ValidateTemplateInput) SetTemplateURL(v string) *ValidateTemplateInput {
20091	s.TemplateURL = &v
20092	return s
20093}
20094
20095// The output for ValidateTemplate action.
20096type ValidateTemplateOutput struct {
20097	_ struct{} `type:"structure"`
20098
20099	// The capabilities found within the template. If your template contains IAM
20100	// resources, you must specify the CAPABILITY_IAM or CAPABILITY_NAMED_IAM value
20101	// for this parameter when you use the CreateStack or UpdateStack actions with
20102	// your template; otherwise, those actions return an InsufficientCapabilities
20103	// error.
20104	//
20105	// For more information, see Acknowledging IAM Resources in AWS CloudFormation
20106	// Templates (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-iam-template.html#capabilities).
20107	Capabilities []*string `type:"list"`
20108
20109	// The list of resources that generated the values in the Capabilities response
20110	// element.
20111	CapabilitiesReason *string `type:"string"`
20112
20113	// A list of the transforms that are declared in the template.
20114	DeclaredTransforms []*string `type:"list"`
20115
20116	// The description found within the template.
20117	Description *string `min:"1" type:"string"`
20118
20119	// A list of TemplateParameter structures.
20120	Parameters []*TemplateParameter `type:"list"`
20121}
20122
20123// String returns the string representation
20124func (s ValidateTemplateOutput) String() string {
20125	return awsutil.Prettify(s)
20126}
20127
20128// GoString returns the string representation
20129func (s ValidateTemplateOutput) GoString() string {
20130	return s.String()
20131}
20132
20133// SetCapabilities sets the Capabilities field's value.
20134func (s *ValidateTemplateOutput) SetCapabilities(v []*string) *ValidateTemplateOutput {
20135	s.Capabilities = v
20136	return s
20137}
20138
20139// SetCapabilitiesReason sets the CapabilitiesReason field's value.
20140func (s *ValidateTemplateOutput) SetCapabilitiesReason(v string) *ValidateTemplateOutput {
20141	s.CapabilitiesReason = &v
20142	return s
20143}
20144
20145// SetDeclaredTransforms sets the DeclaredTransforms field's value.
20146func (s *ValidateTemplateOutput) SetDeclaredTransforms(v []*string) *ValidateTemplateOutput {
20147	s.DeclaredTransforms = v
20148	return s
20149}
20150
20151// SetDescription sets the Description field's value.
20152func (s *ValidateTemplateOutput) SetDescription(v string) *ValidateTemplateOutput {
20153	s.Description = &v
20154	return s
20155}
20156
20157// SetParameters sets the Parameters field's value.
20158func (s *ValidateTemplateOutput) SetParameters(v []*TemplateParameter) *ValidateTemplateOutput {
20159	s.Parameters = v
20160	return s
20161}
20162
20163const (
20164	// AccountGateStatusSucceeded is a AccountGateStatus enum value
20165	AccountGateStatusSucceeded = "SUCCEEDED"
20166
20167	// AccountGateStatusFailed is a AccountGateStatus enum value
20168	AccountGateStatusFailed = "FAILED"
20169
20170	// AccountGateStatusSkipped is a AccountGateStatus enum value
20171	AccountGateStatusSkipped = "SKIPPED"
20172)
20173
20174// AccountGateStatus_Values returns all elements of the AccountGateStatus enum
20175func AccountGateStatus_Values() []string {
20176	return []string{
20177		AccountGateStatusSucceeded,
20178		AccountGateStatusFailed,
20179		AccountGateStatusSkipped,
20180	}
20181}
20182
20183const (
20184	// CallAsSelf is a CallAs enum value
20185	CallAsSelf = "SELF"
20186
20187	// CallAsDelegatedAdmin is a CallAs enum value
20188	CallAsDelegatedAdmin = "DELEGATED_ADMIN"
20189)
20190
20191// CallAs_Values returns all elements of the CallAs enum
20192func CallAs_Values() []string {
20193	return []string{
20194		CallAsSelf,
20195		CallAsDelegatedAdmin,
20196	}
20197}
20198
20199const (
20200	// CapabilityCapabilityIam is a Capability enum value
20201	CapabilityCapabilityIam = "CAPABILITY_IAM"
20202
20203	// CapabilityCapabilityNamedIam is a Capability enum value
20204	CapabilityCapabilityNamedIam = "CAPABILITY_NAMED_IAM"
20205
20206	// CapabilityCapabilityAutoExpand is a Capability enum value
20207	CapabilityCapabilityAutoExpand = "CAPABILITY_AUTO_EXPAND"
20208)
20209
20210// Capability_Values returns all elements of the Capability enum
20211func Capability_Values() []string {
20212	return []string{
20213		CapabilityCapabilityIam,
20214		CapabilityCapabilityNamedIam,
20215		CapabilityCapabilityAutoExpand,
20216	}
20217}
20218
20219const (
20220	// CategoryRegistered is a Category enum value
20221	CategoryRegistered = "REGISTERED"
20222
20223	// CategoryActivated is a Category enum value
20224	CategoryActivated = "ACTIVATED"
20225
20226	// CategoryThirdParty is a Category enum value
20227	CategoryThirdParty = "THIRD_PARTY"
20228
20229	// CategoryAwsTypes is a Category enum value
20230	CategoryAwsTypes = "AWS_TYPES"
20231)
20232
20233// Category_Values returns all elements of the Category enum
20234func Category_Values() []string {
20235	return []string{
20236		CategoryRegistered,
20237		CategoryActivated,
20238		CategoryThirdParty,
20239		CategoryAwsTypes,
20240	}
20241}
20242
20243const (
20244	// ChangeActionAdd is a ChangeAction enum value
20245	ChangeActionAdd = "Add"
20246
20247	// ChangeActionModify is a ChangeAction enum value
20248	ChangeActionModify = "Modify"
20249
20250	// ChangeActionRemove is a ChangeAction enum value
20251	ChangeActionRemove = "Remove"
20252
20253	// ChangeActionImport is a ChangeAction enum value
20254	ChangeActionImport = "Import"
20255
20256	// ChangeActionDynamic is a ChangeAction enum value
20257	ChangeActionDynamic = "Dynamic"
20258)
20259
20260// ChangeAction_Values returns all elements of the ChangeAction enum
20261func ChangeAction_Values() []string {
20262	return []string{
20263		ChangeActionAdd,
20264		ChangeActionModify,
20265		ChangeActionRemove,
20266		ChangeActionImport,
20267		ChangeActionDynamic,
20268	}
20269}
20270
20271const (
20272	// ChangeSetStatusCreatePending is a ChangeSetStatus enum value
20273	ChangeSetStatusCreatePending = "CREATE_PENDING"
20274
20275	// ChangeSetStatusCreateInProgress is a ChangeSetStatus enum value
20276	ChangeSetStatusCreateInProgress = "CREATE_IN_PROGRESS"
20277
20278	// ChangeSetStatusCreateComplete is a ChangeSetStatus enum value
20279	ChangeSetStatusCreateComplete = "CREATE_COMPLETE"
20280
20281	// ChangeSetStatusDeletePending is a ChangeSetStatus enum value
20282	ChangeSetStatusDeletePending = "DELETE_PENDING"
20283
20284	// ChangeSetStatusDeleteInProgress is a ChangeSetStatus enum value
20285	ChangeSetStatusDeleteInProgress = "DELETE_IN_PROGRESS"
20286
20287	// ChangeSetStatusDeleteComplete is a ChangeSetStatus enum value
20288	ChangeSetStatusDeleteComplete = "DELETE_COMPLETE"
20289
20290	// ChangeSetStatusDeleteFailed is a ChangeSetStatus enum value
20291	ChangeSetStatusDeleteFailed = "DELETE_FAILED"
20292
20293	// ChangeSetStatusFailed is a ChangeSetStatus enum value
20294	ChangeSetStatusFailed = "FAILED"
20295)
20296
20297// ChangeSetStatus_Values returns all elements of the ChangeSetStatus enum
20298func ChangeSetStatus_Values() []string {
20299	return []string{
20300		ChangeSetStatusCreatePending,
20301		ChangeSetStatusCreateInProgress,
20302		ChangeSetStatusCreateComplete,
20303		ChangeSetStatusDeletePending,
20304		ChangeSetStatusDeleteInProgress,
20305		ChangeSetStatusDeleteComplete,
20306		ChangeSetStatusDeleteFailed,
20307		ChangeSetStatusFailed,
20308	}
20309}
20310
20311const (
20312	// ChangeSetTypeCreate is a ChangeSetType enum value
20313	ChangeSetTypeCreate = "CREATE"
20314
20315	// ChangeSetTypeUpdate is a ChangeSetType enum value
20316	ChangeSetTypeUpdate = "UPDATE"
20317
20318	// ChangeSetTypeImport is a ChangeSetType enum value
20319	ChangeSetTypeImport = "IMPORT"
20320)
20321
20322// ChangeSetType_Values returns all elements of the ChangeSetType enum
20323func ChangeSetType_Values() []string {
20324	return []string{
20325		ChangeSetTypeCreate,
20326		ChangeSetTypeUpdate,
20327		ChangeSetTypeImport,
20328	}
20329}
20330
20331const (
20332	// ChangeSourceResourceReference is a ChangeSource enum value
20333	ChangeSourceResourceReference = "ResourceReference"
20334
20335	// ChangeSourceParameterReference is a ChangeSource enum value
20336	ChangeSourceParameterReference = "ParameterReference"
20337
20338	// ChangeSourceResourceAttribute is a ChangeSource enum value
20339	ChangeSourceResourceAttribute = "ResourceAttribute"
20340
20341	// ChangeSourceDirectModification is a ChangeSource enum value
20342	ChangeSourceDirectModification = "DirectModification"
20343
20344	// ChangeSourceAutomatic is a ChangeSource enum value
20345	ChangeSourceAutomatic = "Automatic"
20346)
20347
20348// ChangeSource_Values returns all elements of the ChangeSource enum
20349func ChangeSource_Values() []string {
20350	return []string{
20351		ChangeSourceResourceReference,
20352		ChangeSourceParameterReference,
20353		ChangeSourceResourceAttribute,
20354		ChangeSourceDirectModification,
20355		ChangeSourceAutomatic,
20356	}
20357}
20358
20359const (
20360	// ChangeTypeResource is a ChangeType enum value
20361	ChangeTypeResource = "Resource"
20362)
20363
20364// ChangeType_Values returns all elements of the ChangeType enum
20365func ChangeType_Values() []string {
20366	return []string{
20367		ChangeTypeResource,
20368	}
20369}
20370
20371const (
20372	// DeprecatedStatusLive is a DeprecatedStatus enum value
20373	DeprecatedStatusLive = "LIVE"
20374
20375	// DeprecatedStatusDeprecated is a DeprecatedStatus enum value
20376	DeprecatedStatusDeprecated = "DEPRECATED"
20377)
20378
20379// DeprecatedStatus_Values returns all elements of the DeprecatedStatus enum
20380func DeprecatedStatus_Values() []string {
20381	return []string{
20382		DeprecatedStatusLive,
20383		DeprecatedStatusDeprecated,
20384	}
20385}
20386
20387const (
20388	// DifferenceTypeAdd is a DifferenceType enum value
20389	DifferenceTypeAdd = "ADD"
20390
20391	// DifferenceTypeRemove is a DifferenceType enum value
20392	DifferenceTypeRemove = "REMOVE"
20393
20394	// DifferenceTypeNotEqual is a DifferenceType enum value
20395	DifferenceTypeNotEqual = "NOT_EQUAL"
20396)
20397
20398// DifferenceType_Values returns all elements of the DifferenceType enum
20399func DifferenceType_Values() []string {
20400	return []string{
20401		DifferenceTypeAdd,
20402		DifferenceTypeRemove,
20403		DifferenceTypeNotEqual,
20404	}
20405}
20406
20407const (
20408	// EvaluationTypeStatic is a EvaluationType enum value
20409	EvaluationTypeStatic = "Static"
20410
20411	// EvaluationTypeDynamic is a EvaluationType enum value
20412	EvaluationTypeDynamic = "Dynamic"
20413)
20414
20415// EvaluationType_Values returns all elements of the EvaluationType enum
20416func EvaluationType_Values() []string {
20417	return []string{
20418		EvaluationTypeStatic,
20419		EvaluationTypeDynamic,
20420	}
20421}
20422
20423const (
20424	// ExecutionStatusUnavailable is a ExecutionStatus enum value
20425	ExecutionStatusUnavailable = "UNAVAILABLE"
20426
20427	// ExecutionStatusAvailable is a ExecutionStatus enum value
20428	ExecutionStatusAvailable = "AVAILABLE"
20429
20430	// ExecutionStatusExecuteInProgress is a ExecutionStatus enum value
20431	ExecutionStatusExecuteInProgress = "EXECUTE_IN_PROGRESS"
20432
20433	// ExecutionStatusExecuteComplete is a ExecutionStatus enum value
20434	ExecutionStatusExecuteComplete = "EXECUTE_COMPLETE"
20435
20436	// ExecutionStatusExecuteFailed is a ExecutionStatus enum value
20437	ExecutionStatusExecuteFailed = "EXECUTE_FAILED"
20438
20439	// ExecutionStatusObsolete is a ExecutionStatus enum value
20440	ExecutionStatusObsolete = "OBSOLETE"
20441)
20442
20443// ExecutionStatus_Values returns all elements of the ExecutionStatus enum
20444func ExecutionStatus_Values() []string {
20445	return []string{
20446		ExecutionStatusUnavailable,
20447		ExecutionStatusAvailable,
20448		ExecutionStatusExecuteInProgress,
20449		ExecutionStatusExecuteComplete,
20450		ExecutionStatusExecuteFailed,
20451		ExecutionStatusObsolete,
20452	}
20453}
20454
20455const (
20456	// HandlerErrorCodeNotUpdatable is a HandlerErrorCode enum value
20457	HandlerErrorCodeNotUpdatable = "NotUpdatable"
20458
20459	// HandlerErrorCodeInvalidRequest is a HandlerErrorCode enum value
20460	HandlerErrorCodeInvalidRequest = "InvalidRequest"
20461
20462	// HandlerErrorCodeAccessDenied is a HandlerErrorCode enum value
20463	HandlerErrorCodeAccessDenied = "AccessDenied"
20464
20465	// HandlerErrorCodeInvalidCredentials is a HandlerErrorCode enum value
20466	HandlerErrorCodeInvalidCredentials = "InvalidCredentials"
20467
20468	// HandlerErrorCodeAlreadyExists is a HandlerErrorCode enum value
20469	HandlerErrorCodeAlreadyExists = "AlreadyExists"
20470
20471	// HandlerErrorCodeNotFound is a HandlerErrorCode enum value
20472	HandlerErrorCodeNotFound = "NotFound"
20473
20474	// HandlerErrorCodeResourceConflict is a HandlerErrorCode enum value
20475	HandlerErrorCodeResourceConflict = "ResourceConflict"
20476
20477	// HandlerErrorCodeThrottling is a HandlerErrorCode enum value
20478	HandlerErrorCodeThrottling = "Throttling"
20479
20480	// HandlerErrorCodeServiceLimitExceeded is a HandlerErrorCode enum value
20481	HandlerErrorCodeServiceLimitExceeded = "ServiceLimitExceeded"
20482
20483	// HandlerErrorCodeNotStabilized is a HandlerErrorCode enum value
20484	HandlerErrorCodeNotStabilized = "NotStabilized"
20485
20486	// HandlerErrorCodeGeneralServiceException is a HandlerErrorCode enum value
20487	HandlerErrorCodeGeneralServiceException = "GeneralServiceException"
20488
20489	// HandlerErrorCodeServiceInternalError is a HandlerErrorCode enum value
20490	HandlerErrorCodeServiceInternalError = "ServiceInternalError"
20491
20492	// HandlerErrorCodeNetworkFailure is a HandlerErrorCode enum value
20493	HandlerErrorCodeNetworkFailure = "NetworkFailure"
20494
20495	// HandlerErrorCodeInternalFailure is a HandlerErrorCode enum value
20496	HandlerErrorCodeInternalFailure = "InternalFailure"
20497
20498	// HandlerErrorCodeInvalidTypeConfiguration is a HandlerErrorCode enum value
20499	HandlerErrorCodeInvalidTypeConfiguration = "InvalidTypeConfiguration"
20500)
20501
20502// HandlerErrorCode_Values returns all elements of the HandlerErrorCode enum
20503func HandlerErrorCode_Values() []string {
20504	return []string{
20505		HandlerErrorCodeNotUpdatable,
20506		HandlerErrorCodeInvalidRequest,
20507		HandlerErrorCodeAccessDenied,
20508		HandlerErrorCodeInvalidCredentials,
20509		HandlerErrorCodeAlreadyExists,
20510		HandlerErrorCodeNotFound,
20511		HandlerErrorCodeResourceConflict,
20512		HandlerErrorCodeThrottling,
20513		HandlerErrorCodeServiceLimitExceeded,
20514		HandlerErrorCodeNotStabilized,
20515		HandlerErrorCodeGeneralServiceException,
20516		HandlerErrorCodeServiceInternalError,
20517		HandlerErrorCodeNetworkFailure,
20518		HandlerErrorCodeInternalFailure,
20519		HandlerErrorCodeInvalidTypeConfiguration,
20520	}
20521}
20522
20523const (
20524	// IdentityProviderAwsMarketplace is a IdentityProvider enum value
20525	IdentityProviderAwsMarketplace = "AWS_Marketplace"
20526
20527	// IdentityProviderGitHub is a IdentityProvider enum value
20528	IdentityProviderGitHub = "GitHub"
20529
20530	// IdentityProviderBitbucket is a IdentityProvider enum value
20531	IdentityProviderBitbucket = "Bitbucket"
20532)
20533
20534// IdentityProvider_Values returns all elements of the IdentityProvider enum
20535func IdentityProvider_Values() []string {
20536	return []string{
20537		IdentityProviderAwsMarketplace,
20538		IdentityProviderGitHub,
20539		IdentityProviderBitbucket,
20540	}
20541}
20542
20543const (
20544	// OnFailureDoNothing is a OnFailure enum value
20545	OnFailureDoNothing = "DO_NOTHING"
20546
20547	// OnFailureRollback is a OnFailure enum value
20548	OnFailureRollback = "ROLLBACK"
20549
20550	// OnFailureDelete is a OnFailure enum value
20551	OnFailureDelete = "DELETE"
20552)
20553
20554// OnFailure_Values returns all elements of the OnFailure enum
20555func OnFailure_Values() []string {
20556	return []string{
20557		OnFailureDoNothing,
20558		OnFailureRollback,
20559		OnFailureDelete,
20560	}
20561}
20562
20563const (
20564	// OperationStatusPending is a OperationStatus enum value
20565	OperationStatusPending = "PENDING"
20566
20567	// OperationStatusInProgress is a OperationStatus enum value
20568	OperationStatusInProgress = "IN_PROGRESS"
20569
20570	// OperationStatusSuccess is a OperationStatus enum value
20571	OperationStatusSuccess = "SUCCESS"
20572
20573	// OperationStatusFailed is a OperationStatus enum value
20574	OperationStatusFailed = "FAILED"
20575)
20576
20577// OperationStatus_Values returns all elements of the OperationStatus enum
20578func OperationStatus_Values() []string {
20579	return []string{
20580		OperationStatusPending,
20581		OperationStatusInProgress,
20582		OperationStatusSuccess,
20583		OperationStatusFailed,
20584	}
20585}
20586
20587const (
20588	// PermissionModelsServiceManaged is a PermissionModels enum value
20589	PermissionModelsServiceManaged = "SERVICE_MANAGED"
20590
20591	// PermissionModelsSelfManaged is a PermissionModels enum value
20592	PermissionModelsSelfManaged = "SELF_MANAGED"
20593)
20594
20595// PermissionModels_Values returns all elements of the PermissionModels enum
20596func PermissionModels_Values() []string {
20597	return []string{
20598		PermissionModelsServiceManaged,
20599		PermissionModelsSelfManaged,
20600	}
20601}
20602
20603const (
20604	// ProvisioningTypeNonProvisionable is a ProvisioningType enum value
20605	ProvisioningTypeNonProvisionable = "NON_PROVISIONABLE"
20606
20607	// ProvisioningTypeImmutable is a ProvisioningType enum value
20608	ProvisioningTypeImmutable = "IMMUTABLE"
20609
20610	// ProvisioningTypeFullyMutable is a ProvisioningType enum value
20611	ProvisioningTypeFullyMutable = "FULLY_MUTABLE"
20612)
20613
20614// ProvisioningType_Values returns all elements of the ProvisioningType enum
20615func ProvisioningType_Values() []string {
20616	return []string{
20617		ProvisioningTypeNonProvisionable,
20618		ProvisioningTypeImmutable,
20619		ProvisioningTypeFullyMutable,
20620	}
20621}
20622
20623const (
20624	// PublisherStatusVerified is a PublisherStatus enum value
20625	PublisherStatusVerified = "VERIFIED"
20626
20627	// PublisherStatusUnverified is a PublisherStatus enum value
20628	PublisherStatusUnverified = "UNVERIFIED"
20629)
20630
20631// PublisherStatus_Values returns all elements of the PublisherStatus enum
20632func PublisherStatus_Values() []string {
20633	return []string{
20634		PublisherStatusVerified,
20635		PublisherStatusUnverified,
20636	}
20637}
20638
20639const (
20640	// RegionConcurrencyTypeSequential is a RegionConcurrencyType enum value
20641	RegionConcurrencyTypeSequential = "SEQUENTIAL"
20642
20643	// RegionConcurrencyTypeParallel is a RegionConcurrencyType enum value
20644	RegionConcurrencyTypeParallel = "PARALLEL"
20645)
20646
20647// RegionConcurrencyType_Values returns all elements of the RegionConcurrencyType enum
20648func RegionConcurrencyType_Values() []string {
20649	return []string{
20650		RegionConcurrencyTypeSequential,
20651		RegionConcurrencyTypeParallel,
20652	}
20653}
20654
20655const (
20656	// RegistrationStatusComplete is a RegistrationStatus enum value
20657	RegistrationStatusComplete = "COMPLETE"
20658
20659	// RegistrationStatusInProgress is a RegistrationStatus enum value
20660	RegistrationStatusInProgress = "IN_PROGRESS"
20661
20662	// RegistrationStatusFailed is a RegistrationStatus enum value
20663	RegistrationStatusFailed = "FAILED"
20664)
20665
20666// RegistrationStatus_Values returns all elements of the RegistrationStatus enum
20667func RegistrationStatus_Values() []string {
20668	return []string{
20669		RegistrationStatusComplete,
20670		RegistrationStatusInProgress,
20671		RegistrationStatusFailed,
20672	}
20673}
20674
20675const (
20676	// RegistryTypeResource is a RegistryType enum value
20677	RegistryTypeResource = "RESOURCE"
20678
20679	// RegistryTypeModule is a RegistryType enum value
20680	RegistryTypeModule = "MODULE"
20681)
20682
20683// RegistryType_Values returns all elements of the RegistryType enum
20684func RegistryType_Values() []string {
20685	return []string{
20686		RegistryTypeResource,
20687		RegistryTypeModule,
20688	}
20689}
20690
20691const (
20692	// ReplacementTrue is a Replacement enum value
20693	ReplacementTrue = "True"
20694
20695	// ReplacementFalse is a Replacement enum value
20696	ReplacementFalse = "False"
20697
20698	// ReplacementConditional is a Replacement enum value
20699	ReplacementConditional = "Conditional"
20700)
20701
20702// Replacement_Values returns all elements of the Replacement enum
20703func Replacement_Values() []string {
20704	return []string{
20705		ReplacementTrue,
20706		ReplacementFalse,
20707		ReplacementConditional,
20708	}
20709}
20710
20711const (
20712	// RequiresRecreationNever is a RequiresRecreation enum value
20713	RequiresRecreationNever = "Never"
20714
20715	// RequiresRecreationConditionally is a RequiresRecreation enum value
20716	RequiresRecreationConditionally = "Conditionally"
20717
20718	// RequiresRecreationAlways is a RequiresRecreation enum value
20719	RequiresRecreationAlways = "Always"
20720)
20721
20722// RequiresRecreation_Values returns all elements of the RequiresRecreation enum
20723func RequiresRecreation_Values() []string {
20724	return []string{
20725		RequiresRecreationNever,
20726		RequiresRecreationConditionally,
20727		RequiresRecreationAlways,
20728	}
20729}
20730
20731const (
20732	// ResourceAttributeProperties is a ResourceAttribute enum value
20733	ResourceAttributeProperties = "Properties"
20734
20735	// ResourceAttributeMetadata is a ResourceAttribute enum value
20736	ResourceAttributeMetadata = "Metadata"
20737
20738	// ResourceAttributeCreationPolicy is a ResourceAttribute enum value
20739	ResourceAttributeCreationPolicy = "CreationPolicy"
20740
20741	// ResourceAttributeUpdatePolicy is a ResourceAttribute enum value
20742	ResourceAttributeUpdatePolicy = "UpdatePolicy"
20743
20744	// ResourceAttributeDeletionPolicy is a ResourceAttribute enum value
20745	ResourceAttributeDeletionPolicy = "DeletionPolicy"
20746
20747	// ResourceAttributeTags is a ResourceAttribute enum value
20748	ResourceAttributeTags = "Tags"
20749)
20750
20751// ResourceAttribute_Values returns all elements of the ResourceAttribute enum
20752func ResourceAttribute_Values() []string {
20753	return []string{
20754		ResourceAttributeProperties,
20755		ResourceAttributeMetadata,
20756		ResourceAttributeCreationPolicy,
20757		ResourceAttributeUpdatePolicy,
20758		ResourceAttributeDeletionPolicy,
20759		ResourceAttributeTags,
20760	}
20761}
20762
20763const (
20764	// ResourceSignalStatusSuccess is a ResourceSignalStatus enum value
20765	ResourceSignalStatusSuccess = "SUCCESS"
20766
20767	// ResourceSignalStatusFailure is a ResourceSignalStatus enum value
20768	ResourceSignalStatusFailure = "FAILURE"
20769)
20770
20771// ResourceSignalStatus_Values returns all elements of the ResourceSignalStatus enum
20772func ResourceSignalStatus_Values() []string {
20773	return []string{
20774		ResourceSignalStatusSuccess,
20775		ResourceSignalStatusFailure,
20776	}
20777}
20778
20779const (
20780	// ResourceStatusCreateInProgress is a ResourceStatus enum value
20781	ResourceStatusCreateInProgress = "CREATE_IN_PROGRESS"
20782
20783	// ResourceStatusCreateFailed is a ResourceStatus enum value
20784	ResourceStatusCreateFailed = "CREATE_FAILED"
20785
20786	// ResourceStatusCreateComplete is a ResourceStatus enum value
20787	ResourceStatusCreateComplete = "CREATE_COMPLETE"
20788
20789	// ResourceStatusDeleteInProgress is a ResourceStatus enum value
20790	ResourceStatusDeleteInProgress = "DELETE_IN_PROGRESS"
20791
20792	// ResourceStatusDeleteFailed is a ResourceStatus enum value
20793	ResourceStatusDeleteFailed = "DELETE_FAILED"
20794
20795	// ResourceStatusDeleteComplete is a ResourceStatus enum value
20796	ResourceStatusDeleteComplete = "DELETE_COMPLETE"
20797
20798	// ResourceStatusDeleteSkipped is a ResourceStatus enum value
20799	ResourceStatusDeleteSkipped = "DELETE_SKIPPED"
20800
20801	// ResourceStatusUpdateInProgress is a ResourceStatus enum value
20802	ResourceStatusUpdateInProgress = "UPDATE_IN_PROGRESS"
20803
20804	// ResourceStatusUpdateFailed is a ResourceStatus enum value
20805	ResourceStatusUpdateFailed = "UPDATE_FAILED"
20806
20807	// ResourceStatusUpdateComplete is a ResourceStatus enum value
20808	ResourceStatusUpdateComplete = "UPDATE_COMPLETE"
20809
20810	// ResourceStatusImportFailed is a ResourceStatus enum value
20811	ResourceStatusImportFailed = "IMPORT_FAILED"
20812
20813	// ResourceStatusImportComplete is a ResourceStatus enum value
20814	ResourceStatusImportComplete = "IMPORT_COMPLETE"
20815
20816	// ResourceStatusImportInProgress is a ResourceStatus enum value
20817	ResourceStatusImportInProgress = "IMPORT_IN_PROGRESS"
20818
20819	// ResourceStatusImportRollbackInProgress is a ResourceStatus enum value
20820	ResourceStatusImportRollbackInProgress = "IMPORT_ROLLBACK_IN_PROGRESS"
20821
20822	// ResourceStatusImportRollbackFailed is a ResourceStatus enum value
20823	ResourceStatusImportRollbackFailed = "IMPORT_ROLLBACK_FAILED"
20824
20825	// ResourceStatusImportRollbackComplete is a ResourceStatus enum value
20826	ResourceStatusImportRollbackComplete = "IMPORT_ROLLBACK_COMPLETE"
20827)
20828
20829// ResourceStatus_Values returns all elements of the ResourceStatus enum
20830func ResourceStatus_Values() []string {
20831	return []string{
20832		ResourceStatusCreateInProgress,
20833		ResourceStatusCreateFailed,
20834		ResourceStatusCreateComplete,
20835		ResourceStatusDeleteInProgress,
20836		ResourceStatusDeleteFailed,
20837		ResourceStatusDeleteComplete,
20838		ResourceStatusDeleteSkipped,
20839		ResourceStatusUpdateInProgress,
20840		ResourceStatusUpdateFailed,
20841		ResourceStatusUpdateComplete,
20842		ResourceStatusImportFailed,
20843		ResourceStatusImportComplete,
20844		ResourceStatusImportInProgress,
20845		ResourceStatusImportRollbackInProgress,
20846		ResourceStatusImportRollbackFailed,
20847		ResourceStatusImportRollbackComplete,
20848	}
20849}
20850
20851const (
20852	// StackDriftDetectionStatusDetectionInProgress is a StackDriftDetectionStatus enum value
20853	StackDriftDetectionStatusDetectionInProgress = "DETECTION_IN_PROGRESS"
20854
20855	// StackDriftDetectionStatusDetectionFailed is a StackDriftDetectionStatus enum value
20856	StackDriftDetectionStatusDetectionFailed = "DETECTION_FAILED"
20857
20858	// StackDriftDetectionStatusDetectionComplete is a StackDriftDetectionStatus enum value
20859	StackDriftDetectionStatusDetectionComplete = "DETECTION_COMPLETE"
20860)
20861
20862// StackDriftDetectionStatus_Values returns all elements of the StackDriftDetectionStatus enum
20863func StackDriftDetectionStatus_Values() []string {
20864	return []string{
20865		StackDriftDetectionStatusDetectionInProgress,
20866		StackDriftDetectionStatusDetectionFailed,
20867		StackDriftDetectionStatusDetectionComplete,
20868	}
20869}
20870
20871const (
20872	// StackDriftStatusDrifted is a StackDriftStatus enum value
20873	StackDriftStatusDrifted = "DRIFTED"
20874
20875	// StackDriftStatusInSync is a StackDriftStatus enum value
20876	StackDriftStatusInSync = "IN_SYNC"
20877
20878	// StackDriftStatusUnknown is a StackDriftStatus enum value
20879	StackDriftStatusUnknown = "UNKNOWN"
20880
20881	// StackDriftStatusNotChecked is a StackDriftStatus enum value
20882	StackDriftStatusNotChecked = "NOT_CHECKED"
20883)
20884
20885// StackDriftStatus_Values returns all elements of the StackDriftStatus enum
20886func StackDriftStatus_Values() []string {
20887	return []string{
20888		StackDriftStatusDrifted,
20889		StackDriftStatusInSync,
20890		StackDriftStatusUnknown,
20891		StackDriftStatusNotChecked,
20892	}
20893}
20894
20895const (
20896	// StackInstanceDetailedStatusPending is a StackInstanceDetailedStatus enum value
20897	StackInstanceDetailedStatusPending = "PENDING"
20898
20899	// StackInstanceDetailedStatusRunning is a StackInstanceDetailedStatus enum value
20900	StackInstanceDetailedStatusRunning = "RUNNING"
20901
20902	// StackInstanceDetailedStatusSucceeded is a StackInstanceDetailedStatus enum value
20903	StackInstanceDetailedStatusSucceeded = "SUCCEEDED"
20904
20905	// StackInstanceDetailedStatusFailed is a StackInstanceDetailedStatus enum value
20906	StackInstanceDetailedStatusFailed = "FAILED"
20907
20908	// StackInstanceDetailedStatusCancelled is a StackInstanceDetailedStatus enum value
20909	StackInstanceDetailedStatusCancelled = "CANCELLED"
20910
20911	// StackInstanceDetailedStatusInoperable is a StackInstanceDetailedStatus enum value
20912	StackInstanceDetailedStatusInoperable = "INOPERABLE"
20913)
20914
20915// StackInstanceDetailedStatus_Values returns all elements of the StackInstanceDetailedStatus enum
20916func StackInstanceDetailedStatus_Values() []string {
20917	return []string{
20918		StackInstanceDetailedStatusPending,
20919		StackInstanceDetailedStatusRunning,
20920		StackInstanceDetailedStatusSucceeded,
20921		StackInstanceDetailedStatusFailed,
20922		StackInstanceDetailedStatusCancelled,
20923		StackInstanceDetailedStatusInoperable,
20924	}
20925}
20926
20927const (
20928	// StackInstanceFilterNameDetailedStatus is a StackInstanceFilterName enum value
20929	StackInstanceFilterNameDetailedStatus = "DETAILED_STATUS"
20930)
20931
20932// StackInstanceFilterName_Values returns all elements of the StackInstanceFilterName enum
20933func StackInstanceFilterName_Values() []string {
20934	return []string{
20935		StackInstanceFilterNameDetailedStatus,
20936	}
20937}
20938
20939const (
20940	// StackInstanceStatusCurrent is a StackInstanceStatus enum value
20941	StackInstanceStatusCurrent = "CURRENT"
20942
20943	// StackInstanceStatusOutdated is a StackInstanceStatus enum value
20944	StackInstanceStatusOutdated = "OUTDATED"
20945
20946	// StackInstanceStatusInoperable is a StackInstanceStatus enum value
20947	StackInstanceStatusInoperable = "INOPERABLE"
20948)
20949
20950// StackInstanceStatus_Values returns all elements of the StackInstanceStatus enum
20951func StackInstanceStatus_Values() []string {
20952	return []string{
20953		StackInstanceStatusCurrent,
20954		StackInstanceStatusOutdated,
20955		StackInstanceStatusInoperable,
20956	}
20957}
20958
20959const (
20960	// StackResourceDriftStatusInSync is a StackResourceDriftStatus enum value
20961	StackResourceDriftStatusInSync = "IN_SYNC"
20962
20963	// StackResourceDriftStatusModified is a StackResourceDriftStatus enum value
20964	StackResourceDriftStatusModified = "MODIFIED"
20965
20966	// StackResourceDriftStatusDeleted is a StackResourceDriftStatus enum value
20967	StackResourceDriftStatusDeleted = "DELETED"
20968
20969	// StackResourceDriftStatusNotChecked is a StackResourceDriftStatus enum value
20970	StackResourceDriftStatusNotChecked = "NOT_CHECKED"
20971)
20972
20973// StackResourceDriftStatus_Values returns all elements of the StackResourceDriftStatus enum
20974func StackResourceDriftStatus_Values() []string {
20975	return []string{
20976		StackResourceDriftStatusInSync,
20977		StackResourceDriftStatusModified,
20978		StackResourceDriftStatusDeleted,
20979		StackResourceDriftStatusNotChecked,
20980	}
20981}
20982
20983const (
20984	// StackSetDriftDetectionStatusCompleted is a StackSetDriftDetectionStatus enum value
20985	StackSetDriftDetectionStatusCompleted = "COMPLETED"
20986
20987	// StackSetDriftDetectionStatusFailed is a StackSetDriftDetectionStatus enum value
20988	StackSetDriftDetectionStatusFailed = "FAILED"
20989
20990	// StackSetDriftDetectionStatusPartialSuccess is a StackSetDriftDetectionStatus enum value
20991	StackSetDriftDetectionStatusPartialSuccess = "PARTIAL_SUCCESS"
20992
20993	// StackSetDriftDetectionStatusInProgress is a StackSetDriftDetectionStatus enum value
20994	StackSetDriftDetectionStatusInProgress = "IN_PROGRESS"
20995
20996	// StackSetDriftDetectionStatusStopped is a StackSetDriftDetectionStatus enum value
20997	StackSetDriftDetectionStatusStopped = "STOPPED"
20998)
20999
21000// StackSetDriftDetectionStatus_Values returns all elements of the StackSetDriftDetectionStatus enum
21001func StackSetDriftDetectionStatus_Values() []string {
21002	return []string{
21003		StackSetDriftDetectionStatusCompleted,
21004		StackSetDriftDetectionStatusFailed,
21005		StackSetDriftDetectionStatusPartialSuccess,
21006		StackSetDriftDetectionStatusInProgress,
21007		StackSetDriftDetectionStatusStopped,
21008	}
21009}
21010
21011const (
21012	// StackSetDriftStatusDrifted is a StackSetDriftStatus enum value
21013	StackSetDriftStatusDrifted = "DRIFTED"
21014
21015	// StackSetDriftStatusInSync is a StackSetDriftStatus enum value
21016	StackSetDriftStatusInSync = "IN_SYNC"
21017
21018	// StackSetDriftStatusNotChecked is a StackSetDriftStatus enum value
21019	StackSetDriftStatusNotChecked = "NOT_CHECKED"
21020)
21021
21022// StackSetDriftStatus_Values returns all elements of the StackSetDriftStatus enum
21023func StackSetDriftStatus_Values() []string {
21024	return []string{
21025		StackSetDriftStatusDrifted,
21026		StackSetDriftStatusInSync,
21027		StackSetDriftStatusNotChecked,
21028	}
21029}
21030
21031const (
21032	// StackSetOperationActionCreate is a StackSetOperationAction enum value
21033	StackSetOperationActionCreate = "CREATE"
21034
21035	// StackSetOperationActionUpdate is a StackSetOperationAction enum value
21036	StackSetOperationActionUpdate = "UPDATE"
21037
21038	// StackSetOperationActionDelete is a StackSetOperationAction enum value
21039	StackSetOperationActionDelete = "DELETE"
21040
21041	// StackSetOperationActionDetectDrift is a StackSetOperationAction enum value
21042	StackSetOperationActionDetectDrift = "DETECT_DRIFT"
21043)
21044
21045// StackSetOperationAction_Values returns all elements of the StackSetOperationAction enum
21046func StackSetOperationAction_Values() []string {
21047	return []string{
21048		StackSetOperationActionCreate,
21049		StackSetOperationActionUpdate,
21050		StackSetOperationActionDelete,
21051		StackSetOperationActionDetectDrift,
21052	}
21053}
21054
21055const (
21056	// StackSetOperationResultStatusPending is a StackSetOperationResultStatus enum value
21057	StackSetOperationResultStatusPending = "PENDING"
21058
21059	// StackSetOperationResultStatusRunning is a StackSetOperationResultStatus enum value
21060	StackSetOperationResultStatusRunning = "RUNNING"
21061
21062	// StackSetOperationResultStatusSucceeded is a StackSetOperationResultStatus enum value
21063	StackSetOperationResultStatusSucceeded = "SUCCEEDED"
21064
21065	// StackSetOperationResultStatusFailed is a StackSetOperationResultStatus enum value
21066	StackSetOperationResultStatusFailed = "FAILED"
21067
21068	// StackSetOperationResultStatusCancelled is a StackSetOperationResultStatus enum value
21069	StackSetOperationResultStatusCancelled = "CANCELLED"
21070)
21071
21072// StackSetOperationResultStatus_Values returns all elements of the StackSetOperationResultStatus enum
21073func StackSetOperationResultStatus_Values() []string {
21074	return []string{
21075		StackSetOperationResultStatusPending,
21076		StackSetOperationResultStatusRunning,
21077		StackSetOperationResultStatusSucceeded,
21078		StackSetOperationResultStatusFailed,
21079		StackSetOperationResultStatusCancelled,
21080	}
21081}
21082
21083const (
21084	// StackSetOperationStatusRunning is a StackSetOperationStatus enum value
21085	StackSetOperationStatusRunning = "RUNNING"
21086
21087	// StackSetOperationStatusSucceeded is a StackSetOperationStatus enum value
21088	StackSetOperationStatusSucceeded = "SUCCEEDED"
21089
21090	// StackSetOperationStatusFailed is a StackSetOperationStatus enum value
21091	StackSetOperationStatusFailed = "FAILED"
21092
21093	// StackSetOperationStatusStopping is a StackSetOperationStatus enum value
21094	StackSetOperationStatusStopping = "STOPPING"
21095
21096	// StackSetOperationStatusStopped is a StackSetOperationStatus enum value
21097	StackSetOperationStatusStopped = "STOPPED"
21098
21099	// StackSetOperationStatusQueued is a StackSetOperationStatus enum value
21100	StackSetOperationStatusQueued = "QUEUED"
21101)
21102
21103// StackSetOperationStatus_Values returns all elements of the StackSetOperationStatus enum
21104func StackSetOperationStatus_Values() []string {
21105	return []string{
21106		StackSetOperationStatusRunning,
21107		StackSetOperationStatusSucceeded,
21108		StackSetOperationStatusFailed,
21109		StackSetOperationStatusStopping,
21110		StackSetOperationStatusStopped,
21111		StackSetOperationStatusQueued,
21112	}
21113}
21114
21115const (
21116	// StackSetStatusActive is a StackSetStatus enum value
21117	StackSetStatusActive = "ACTIVE"
21118
21119	// StackSetStatusDeleted is a StackSetStatus enum value
21120	StackSetStatusDeleted = "DELETED"
21121)
21122
21123// StackSetStatus_Values returns all elements of the StackSetStatus enum
21124func StackSetStatus_Values() []string {
21125	return []string{
21126		StackSetStatusActive,
21127		StackSetStatusDeleted,
21128	}
21129}
21130
21131const (
21132	// StackStatusCreateInProgress is a StackStatus enum value
21133	StackStatusCreateInProgress = "CREATE_IN_PROGRESS"
21134
21135	// StackStatusCreateFailed is a StackStatus enum value
21136	StackStatusCreateFailed = "CREATE_FAILED"
21137
21138	// StackStatusCreateComplete is a StackStatus enum value
21139	StackStatusCreateComplete = "CREATE_COMPLETE"
21140
21141	// StackStatusRollbackInProgress is a StackStatus enum value
21142	StackStatusRollbackInProgress = "ROLLBACK_IN_PROGRESS"
21143
21144	// StackStatusRollbackFailed is a StackStatus enum value
21145	StackStatusRollbackFailed = "ROLLBACK_FAILED"
21146
21147	// StackStatusRollbackComplete is a StackStatus enum value
21148	StackStatusRollbackComplete = "ROLLBACK_COMPLETE"
21149
21150	// StackStatusDeleteInProgress is a StackStatus enum value
21151	StackStatusDeleteInProgress = "DELETE_IN_PROGRESS"
21152
21153	// StackStatusDeleteFailed is a StackStatus enum value
21154	StackStatusDeleteFailed = "DELETE_FAILED"
21155
21156	// StackStatusDeleteComplete is a StackStatus enum value
21157	StackStatusDeleteComplete = "DELETE_COMPLETE"
21158
21159	// StackStatusUpdateInProgress is a StackStatus enum value
21160	StackStatusUpdateInProgress = "UPDATE_IN_PROGRESS"
21161
21162	// StackStatusUpdateCompleteCleanupInProgress is a StackStatus enum value
21163	StackStatusUpdateCompleteCleanupInProgress = "UPDATE_COMPLETE_CLEANUP_IN_PROGRESS"
21164
21165	// StackStatusUpdateComplete is a StackStatus enum value
21166	StackStatusUpdateComplete = "UPDATE_COMPLETE"
21167
21168	// StackStatusUpdateRollbackInProgress is a StackStatus enum value
21169	StackStatusUpdateRollbackInProgress = "UPDATE_ROLLBACK_IN_PROGRESS"
21170
21171	// StackStatusUpdateRollbackFailed is a StackStatus enum value
21172	StackStatusUpdateRollbackFailed = "UPDATE_ROLLBACK_FAILED"
21173
21174	// StackStatusUpdateRollbackCompleteCleanupInProgress is a StackStatus enum value
21175	StackStatusUpdateRollbackCompleteCleanupInProgress = "UPDATE_ROLLBACK_COMPLETE_CLEANUP_IN_PROGRESS"
21176
21177	// StackStatusUpdateRollbackComplete is a StackStatus enum value
21178	StackStatusUpdateRollbackComplete = "UPDATE_ROLLBACK_COMPLETE"
21179
21180	// StackStatusReviewInProgress is a StackStatus enum value
21181	StackStatusReviewInProgress = "REVIEW_IN_PROGRESS"
21182
21183	// StackStatusImportInProgress is a StackStatus enum value
21184	StackStatusImportInProgress = "IMPORT_IN_PROGRESS"
21185
21186	// StackStatusImportComplete is a StackStatus enum value
21187	StackStatusImportComplete = "IMPORT_COMPLETE"
21188
21189	// StackStatusImportRollbackInProgress is a StackStatus enum value
21190	StackStatusImportRollbackInProgress = "IMPORT_ROLLBACK_IN_PROGRESS"
21191
21192	// StackStatusImportRollbackFailed is a StackStatus enum value
21193	StackStatusImportRollbackFailed = "IMPORT_ROLLBACK_FAILED"
21194
21195	// StackStatusImportRollbackComplete is a StackStatus enum value
21196	StackStatusImportRollbackComplete = "IMPORT_ROLLBACK_COMPLETE"
21197)
21198
21199// StackStatus_Values returns all elements of the StackStatus enum
21200func StackStatus_Values() []string {
21201	return []string{
21202		StackStatusCreateInProgress,
21203		StackStatusCreateFailed,
21204		StackStatusCreateComplete,
21205		StackStatusRollbackInProgress,
21206		StackStatusRollbackFailed,
21207		StackStatusRollbackComplete,
21208		StackStatusDeleteInProgress,
21209		StackStatusDeleteFailed,
21210		StackStatusDeleteComplete,
21211		StackStatusUpdateInProgress,
21212		StackStatusUpdateCompleteCleanupInProgress,
21213		StackStatusUpdateComplete,
21214		StackStatusUpdateRollbackInProgress,
21215		StackStatusUpdateRollbackFailed,
21216		StackStatusUpdateRollbackCompleteCleanupInProgress,
21217		StackStatusUpdateRollbackComplete,
21218		StackStatusReviewInProgress,
21219		StackStatusImportInProgress,
21220		StackStatusImportComplete,
21221		StackStatusImportRollbackInProgress,
21222		StackStatusImportRollbackFailed,
21223		StackStatusImportRollbackComplete,
21224	}
21225}
21226
21227const (
21228	// TemplateStageOriginal is a TemplateStage enum value
21229	TemplateStageOriginal = "Original"
21230
21231	// TemplateStageProcessed is a TemplateStage enum value
21232	TemplateStageProcessed = "Processed"
21233)
21234
21235// TemplateStage_Values returns all elements of the TemplateStage enum
21236func TemplateStage_Values() []string {
21237	return []string{
21238		TemplateStageOriginal,
21239		TemplateStageProcessed,
21240	}
21241}
21242
21243const (
21244	// ThirdPartyTypeResource is a ThirdPartyType enum value
21245	ThirdPartyTypeResource = "RESOURCE"
21246
21247	// ThirdPartyTypeModule is a ThirdPartyType enum value
21248	ThirdPartyTypeModule = "MODULE"
21249)
21250
21251// ThirdPartyType_Values returns all elements of the ThirdPartyType enum
21252func ThirdPartyType_Values() []string {
21253	return []string{
21254		ThirdPartyTypeResource,
21255		ThirdPartyTypeModule,
21256	}
21257}
21258
21259const (
21260	// TypeTestsStatusPassed is a TypeTestsStatus enum value
21261	TypeTestsStatusPassed = "PASSED"
21262
21263	// TypeTestsStatusFailed is a TypeTestsStatus enum value
21264	TypeTestsStatusFailed = "FAILED"
21265
21266	// TypeTestsStatusInProgress is a TypeTestsStatus enum value
21267	TypeTestsStatusInProgress = "IN_PROGRESS"
21268
21269	// TypeTestsStatusNotTested is a TypeTestsStatus enum value
21270	TypeTestsStatusNotTested = "NOT_TESTED"
21271)
21272
21273// TypeTestsStatus_Values returns all elements of the TypeTestsStatus enum
21274func TypeTestsStatus_Values() []string {
21275	return []string{
21276		TypeTestsStatusPassed,
21277		TypeTestsStatusFailed,
21278		TypeTestsStatusInProgress,
21279		TypeTestsStatusNotTested,
21280	}
21281}
21282
21283const (
21284	// VersionBumpMajor is a VersionBump enum value
21285	VersionBumpMajor = "MAJOR"
21286
21287	// VersionBumpMinor is a VersionBump enum value
21288	VersionBumpMinor = "MINOR"
21289)
21290
21291// VersionBump_Values returns all elements of the VersionBump enum
21292func VersionBump_Values() []string {
21293	return []string{
21294		VersionBumpMajor,
21295		VersionBumpMinor,
21296	}
21297}
21298
21299const (
21300	// VisibilityPublic is a Visibility enum value
21301	VisibilityPublic = "PUBLIC"
21302
21303	// VisibilityPrivate is a Visibility enum value
21304	VisibilityPrivate = "PRIVATE"
21305)
21306
21307// Visibility_Values returns all elements of the Visibility enum
21308func Visibility_Values() []string {
21309	return []string{
21310		VisibilityPublic,
21311		VisibilityPrivate,
21312	}
21313}
21314