1// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT.
2
3package cloudformation
4
5import (
6	"fmt"
7	"time"
8
9	"github.com/aws/aws-sdk-go/aws"
10	"github.com/aws/aws-sdk-go/aws/awsutil"
11	"github.com/aws/aws-sdk-go/aws/request"
12	"github.com/aws/aws-sdk-go/private/protocol"
13	"github.com/aws/aws-sdk-go/private/protocol/query"
14)
15
16const opActivateType = "ActivateType"
17
18// ActivateTypeRequest generates a "aws/request.Request" representing the
19// client's request for the ActivateType operation. The "output" return
20// value will be populated with the request's response once the request completes
21// successfully.
22//
23// Use "Send" method on the returned Request to send the API call to the service.
24// the "output" return value is not valid until after Send returns without error.
25//
26// See ActivateType for more information on using the ActivateType
27// API call, and error handling.
28//
29// This method is useful when you want to inject custom logic or configuration
30// into the SDK's request lifecycle. Such as custom headers, or retry logic.
31//
32//
33//    // Example sending a request using the ActivateTypeRequest method.
34//    req, resp := client.ActivateTypeRequest(params)
35//
36//    err := req.Send()
37//    if err == nil { // resp is now filled
38//        fmt.Println(resp)
39//    }
40//
41// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/ActivateType
42func (c *CloudFormation) ActivateTypeRequest(input *ActivateTypeInput) (req *request.Request, output *ActivateTypeOutput) {
43	op := &request.Operation{
44		Name:       opActivateType,
45		HTTPMethod: "POST",
46		HTTPPath:   "/",
47	}
48
49	if input == nil {
50		input = &ActivateTypeInput{}
51	}
52
53	output = &ActivateTypeOutput{}
54	req = c.newRequest(op, input, output)
55	return
56}
57
58// ActivateType API operation for AWS CloudFormation.
59//
60// Activates a public third-party extension, making it available for use in
61// stack templates. For more information, see Using public extensions (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/registry-public.html)
62// in the CloudFormation User Guide.
63//
64// Once you have activated a public third-party extension in your account and
65// region, use SetTypeConfiguration (AWSCloudFormation/latest/APIReference/API_SetTypeConfiguration.html)
66// to specify configuration properties for the extension. For more information,
67// see Configuring extensions at the account level (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/registry-register.html#registry-set-configuration)
68// in the CloudFormation User Guide.
69//
70// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
71// with awserr.Error's Code and Message methods to get detailed information about
72// the error.
73//
74// See the AWS API reference guide for AWS CloudFormation's
75// API operation ActivateType for usage and error information.
76//
77// Returned Error Codes:
78//   * ErrCodeCFNRegistryException "CFNRegistryException"
79//   An error occurred during a CloudFormation registry operation.
80//
81//   * ErrCodeTypeNotFoundException "TypeNotFoundException"
82//   The specified extension does not exist in the CloudFormation registry.
83//
84// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/ActivateType
85func (c *CloudFormation) ActivateType(input *ActivateTypeInput) (*ActivateTypeOutput, error) {
86	req, out := c.ActivateTypeRequest(input)
87	return out, req.Send()
88}
89
90// ActivateTypeWithContext is the same as ActivateType with the addition of
91// the ability to pass a context and additional request options.
92//
93// See ActivateType for details on how to use this API operation.
94//
95// The context must be non-nil and will be used for request cancellation. If
96// the context is nil a panic will occur. In the future the SDK may create
97// sub-contexts for http.Requests. See https://golang.org/pkg/context/
98// for more information on using Contexts.
99func (c *CloudFormation) ActivateTypeWithContext(ctx aws.Context, input *ActivateTypeInput, opts ...request.Option) (*ActivateTypeOutput, error) {
100	req, out := c.ActivateTypeRequest(input)
101	req.SetContext(ctx)
102	req.ApplyOptions(opts...)
103	return out, req.Send()
104}
105
106const opBatchDescribeTypeConfigurations = "BatchDescribeTypeConfigurations"
107
108// BatchDescribeTypeConfigurationsRequest generates a "aws/request.Request" representing the
109// client's request for the BatchDescribeTypeConfigurations operation. The "output" return
110// value will be populated with the request's response once the request completes
111// successfully.
112//
113// Use "Send" method on the returned Request to send the API call to the service.
114// the "output" return value is not valid until after Send returns without error.
115//
116// See BatchDescribeTypeConfigurations for more information on using the BatchDescribeTypeConfigurations
117// API call, and error handling.
118//
119// This method is useful when you want to inject custom logic or configuration
120// into the SDK's request lifecycle. Such as custom headers, or retry logic.
121//
122//
123//    // Example sending a request using the BatchDescribeTypeConfigurationsRequest method.
124//    req, resp := client.BatchDescribeTypeConfigurationsRequest(params)
125//
126//    err := req.Send()
127//    if err == nil { // resp is now filled
128//        fmt.Println(resp)
129//    }
130//
131// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/BatchDescribeTypeConfigurations
132func (c *CloudFormation) BatchDescribeTypeConfigurationsRequest(input *BatchDescribeTypeConfigurationsInput) (req *request.Request, output *BatchDescribeTypeConfigurationsOutput) {
133	op := &request.Operation{
134		Name:       opBatchDescribeTypeConfigurations,
135		HTTPMethod: "POST",
136		HTTPPath:   "/",
137	}
138
139	if input == nil {
140		input = &BatchDescribeTypeConfigurationsInput{}
141	}
142
143	output = &BatchDescribeTypeConfigurationsOutput{}
144	req = c.newRequest(op, input, output)
145	return
146}
147
148// BatchDescribeTypeConfigurations API operation for AWS CloudFormation.
149//
150// Returns configuration data for the specified CloudFormation extensions, from
151// the CloudFormation registry for the account and region.
152//
153// For more information, see Configuring extensions at the account level (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/registry-register.html#registry-set-configuration)
154// in the CloudFormation User Guide.
155//
156// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
157// with awserr.Error's Code and Message methods to get detailed information about
158// the error.
159//
160// See the AWS API reference guide for AWS CloudFormation's
161// API operation BatchDescribeTypeConfigurations for usage and error information.
162//
163// Returned Error Codes:
164//   * ErrCodeTypeConfigurationNotFoundException "TypeConfigurationNotFoundException"
165//   The specified extension configuration cannot be found.
166//
167//   * ErrCodeCFNRegistryException "CFNRegistryException"
168//   An error occurred during a CloudFormation registry operation.
169//
170// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/BatchDescribeTypeConfigurations
171func (c *CloudFormation) BatchDescribeTypeConfigurations(input *BatchDescribeTypeConfigurationsInput) (*BatchDescribeTypeConfigurationsOutput, error) {
172	req, out := c.BatchDescribeTypeConfigurationsRequest(input)
173	return out, req.Send()
174}
175
176// BatchDescribeTypeConfigurationsWithContext is the same as BatchDescribeTypeConfigurations with the addition of
177// the ability to pass a context and additional request options.
178//
179// See BatchDescribeTypeConfigurations for details on how to use this API operation.
180//
181// The context must be non-nil and will be used for request cancellation. If
182// the context is nil a panic will occur. In the future the SDK may create
183// sub-contexts for http.Requests. See https://golang.org/pkg/context/
184// for more information on using Contexts.
185func (c *CloudFormation) BatchDescribeTypeConfigurationsWithContext(ctx aws.Context, input *BatchDescribeTypeConfigurationsInput, opts ...request.Option) (*BatchDescribeTypeConfigurationsOutput, error) {
186	req, out := c.BatchDescribeTypeConfigurationsRequest(input)
187	req.SetContext(ctx)
188	req.ApplyOptions(opts...)
189	return out, req.Send()
190}
191
192const opCancelUpdateStack = "CancelUpdateStack"
193
194// CancelUpdateStackRequest generates a "aws/request.Request" representing the
195// client's request for the CancelUpdateStack operation. The "output" return
196// value will be populated with the request's response once the request completes
197// successfully.
198//
199// Use "Send" method on the returned Request to send the API call to the service.
200// the "output" return value is not valid until after Send returns without error.
201//
202// See CancelUpdateStack for more information on using the CancelUpdateStack
203// API call, and error handling.
204//
205// This method is useful when you want to inject custom logic or configuration
206// into the SDK's request lifecycle. Such as custom headers, or retry logic.
207//
208//
209//    // Example sending a request using the CancelUpdateStackRequest method.
210//    req, resp := client.CancelUpdateStackRequest(params)
211//
212//    err := req.Send()
213//    if err == nil { // resp is now filled
214//        fmt.Println(resp)
215//    }
216//
217// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/CancelUpdateStack
218func (c *CloudFormation) CancelUpdateStackRequest(input *CancelUpdateStackInput) (req *request.Request, output *CancelUpdateStackOutput) {
219	op := &request.Operation{
220		Name:       opCancelUpdateStack,
221		HTTPMethod: "POST",
222		HTTPPath:   "/",
223	}
224
225	if input == nil {
226		input = &CancelUpdateStackInput{}
227	}
228
229	output = &CancelUpdateStackOutput{}
230	req = c.newRequest(op, input, output)
231	req.Handlers.Unmarshal.Swap(query.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
232	return
233}
234
235// CancelUpdateStack API operation for AWS CloudFormation.
236//
237// Cancels an update on the specified stack. If the call completes successfully,
238// the stack rolls back the update and reverts to the previous stack configuration.
239//
240// You can cancel only stacks that are in the UPDATE_IN_PROGRESS state.
241//
242// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
243// with awserr.Error's Code and Message methods to get detailed information about
244// the error.
245//
246// See the AWS API reference guide for AWS CloudFormation's
247// API operation CancelUpdateStack for usage and error information.
248//
249// Returned Error Codes:
250//   * ErrCodeTokenAlreadyExistsException "TokenAlreadyExistsException"
251//   A client request token already exists.
252//
253// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/CancelUpdateStack
254func (c *CloudFormation) CancelUpdateStack(input *CancelUpdateStackInput) (*CancelUpdateStackOutput, error) {
255	req, out := c.CancelUpdateStackRequest(input)
256	return out, req.Send()
257}
258
259// CancelUpdateStackWithContext is the same as CancelUpdateStack with the addition of
260// the ability to pass a context and additional request options.
261//
262// See CancelUpdateStack for details on how to use this API operation.
263//
264// The context must be non-nil and will be used for request cancellation. If
265// the context is nil a panic will occur. In the future the SDK may create
266// sub-contexts for http.Requests. See https://golang.org/pkg/context/
267// for more information on using Contexts.
268func (c *CloudFormation) CancelUpdateStackWithContext(ctx aws.Context, input *CancelUpdateStackInput, opts ...request.Option) (*CancelUpdateStackOutput, error) {
269	req, out := c.CancelUpdateStackRequest(input)
270	req.SetContext(ctx)
271	req.ApplyOptions(opts...)
272	return out, req.Send()
273}
274
275const opContinueUpdateRollback = "ContinueUpdateRollback"
276
277// ContinueUpdateRollbackRequest generates a "aws/request.Request" representing the
278// client's request for the ContinueUpdateRollback operation. The "output" return
279// value will be populated with the request's response once the request completes
280// successfully.
281//
282// Use "Send" method on the returned Request to send the API call to the service.
283// the "output" return value is not valid until after Send returns without error.
284//
285// See ContinueUpdateRollback for more information on using the ContinueUpdateRollback
286// API call, and error handling.
287//
288// This method is useful when you want to inject custom logic or configuration
289// into the SDK's request lifecycle. Such as custom headers, or retry logic.
290//
291//
292//    // Example sending a request using the ContinueUpdateRollbackRequest method.
293//    req, resp := client.ContinueUpdateRollbackRequest(params)
294//
295//    err := req.Send()
296//    if err == nil { // resp is now filled
297//        fmt.Println(resp)
298//    }
299//
300// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/ContinueUpdateRollback
301func (c *CloudFormation) ContinueUpdateRollbackRequest(input *ContinueUpdateRollbackInput) (req *request.Request, output *ContinueUpdateRollbackOutput) {
302	op := &request.Operation{
303		Name:       opContinueUpdateRollback,
304		HTTPMethod: "POST",
305		HTTPPath:   "/",
306	}
307
308	if input == nil {
309		input = &ContinueUpdateRollbackInput{}
310	}
311
312	output = &ContinueUpdateRollbackOutput{}
313	req = c.newRequest(op, input, output)
314	req.Handlers.Unmarshal.Swap(query.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
315	return
316}
317
318// ContinueUpdateRollback API operation for AWS CloudFormation.
319//
320// For a specified stack that is in the UPDATE_ROLLBACK_FAILED state, continues
321// rolling it back to the UPDATE_ROLLBACK_COMPLETE state. Depending on the cause
322// of the failure, you can manually fix the error (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/troubleshooting.html#troubleshooting-errors-update-rollback-failed)
323// and continue the rollback. By continuing the rollback, you can return your
324// stack to a working state (the UPDATE_ROLLBACK_COMPLETE state), and then try
325// to update the stack again.
326//
327// A stack goes into the UPDATE_ROLLBACK_FAILED state when CloudFormation cannot
328// roll back all changes after a failed stack update. For example, you might
329// have a stack that is rolling back to an old database instance that was deleted
330// outside of CloudFormation. Because CloudFormation doesn't know the database
331// was deleted, it assumes that the database instance still exists and attempts
332// to roll back to it, causing the update rollback to fail.
333//
334// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
335// with awserr.Error's Code and Message methods to get detailed information about
336// the error.
337//
338// See the AWS API reference guide for AWS CloudFormation's
339// API operation ContinueUpdateRollback for usage and error information.
340//
341// Returned Error Codes:
342//   * ErrCodeTokenAlreadyExistsException "TokenAlreadyExistsException"
343//   A client request token already exists.
344//
345// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/ContinueUpdateRollback
346func (c *CloudFormation) ContinueUpdateRollback(input *ContinueUpdateRollbackInput) (*ContinueUpdateRollbackOutput, error) {
347	req, out := c.ContinueUpdateRollbackRequest(input)
348	return out, req.Send()
349}
350
351// ContinueUpdateRollbackWithContext is the same as ContinueUpdateRollback with the addition of
352// the ability to pass a context and additional request options.
353//
354// See ContinueUpdateRollback for details on how to use this API operation.
355//
356// The context must be non-nil and will be used for request cancellation. If
357// the context is nil a panic will occur. In the future the SDK may create
358// sub-contexts for http.Requests. See https://golang.org/pkg/context/
359// for more information on using Contexts.
360func (c *CloudFormation) ContinueUpdateRollbackWithContext(ctx aws.Context, input *ContinueUpdateRollbackInput, opts ...request.Option) (*ContinueUpdateRollbackOutput, error) {
361	req, out := c.ContinueUpdateRollbackRequest(input)
362	req.SetContext(ctx)
363	req.ApplyOptions(opts...)
364	return out, req.Send()
365}
366
367const opCreateChangeSet = "CreateChangeSet"
368
369// CreateChangeSetRequest generates a "aws/request.Request" representing the
370// client's request for the CreateChangeSet operation. The "output" return
371// value will be populated with the request's response once the request completes
372// successfully.
373//
374// Use "Send" method on the returned Request to send the API call to the service.
375// the "output" return value is not valid until after Send returns without error.
376//
377// See CreateChangeSet for more information on using the CreateChangeSet
378// API call, and error handling.
379//
380// This method is useful when you want to inject custom logic or configuration
381// into the SDK's request lifecycle. Such as custom headers, or retry logic.
382//
383//
384//    // Example sending a request using the CreateChangeSetRequest method.
385//    req, resp := client.CreateChangeSetRequest(params)
386//
387//    err := req.Send()
388//    if err == nil { // resp is now filled
389//        fmt.Println(resp)
390//    }
391//
392// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/CreateChangeSet
393func (c *CloudFormation) CreateChangeSetRequest(input *CreateChangeSetInput) (req *request.Request, output *CreateChangeSetOutput) {
394	op := &request.Operation{
395		Name:       opCreateChangeSet,
396		HTTPMethod: "POST",
397		HTTPPath:   "/",
398	}
399
400	if input == nil {
401		input = &CreateChangeSetInput{}
402	}
403
404	output = &CreateChangeSetOutput{}
405	req = c.newRequest(op, input, output)
406	return
407}
408
409// CreateChangeSet API operation for AWS CloudFormation.
410//
411// Creates a list of changes that will be applied to a stack so that you can
412// review the changes before executing them. You can create a change set for
413// a stack that doesn't exist or an existing stack. If you create a change set
414// for a stack that doesn't exist, the change set shows all of the resources
415// that CloudFormation will create. If you create a change set for an existing
416// stack, CloudFormation compares the stack's information with the information
417// that you submit in the change set and lists the differences. Use change sets
418// to understand which resources CloudFormation will create or change, and how
419// it will change resources in an existing stack, before you create or update
420// a stack.
421//
422// To create a change set for a stack that doesn't exist, for the ChangeSetType
423// parameter, specify CREATE. To create a change set for an existing stack,
424// specify UPDATE for the ChangeSetType parameter. To create a change set for
425// an import operation, specify IMPORT for the ChangeSetType parameter. After
426// the CreateChangeSet call successfully completes, CloudFormation starts creating
427// the change set. To check the status of the change set or to review it, use
428// the DescribeChangeSet action.
429//
430// When you are satisfied with the changes the change set will make, execute
431// the change set by using the ExecuteChangeSet action. CloudFormation doesn't
432// make changes until you execute the change set.
433//
434// To create a change set for the entire stack hierachy, set IncludeNestedStacks
435// to True.
436//
437// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
438// with awserr.Error's Code and Message methods to get detailed information about
439// the error.
440//
441// See the AWS API reference guide for AWS CloudFormation's
442// API operation CreateChangeSet for usage and error information.
443//
444// Returned Error Codes:
445//   * ErrCodeAlreadyExistsException "AlreadyExistsException"
446//   The resource with the name requested already exists.
447//
448//   * ErrCodeInsufficientCapabilitiesException "InsufficientCapabilitiesException"
449//   The template contains resources with capabilities that weren't specified
450//   in the Capabilities parameter.
451//
452//   * ErrCodeLimitExceededException "LimitExceededException"
453//   The quota for the resource has already been reached.
454//
455//   For information on resource and stack limitations, see Limits (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/cloudformation-limits.html)
456//   in the CloudFormation User Guide.
457//
458// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/CreateChangeSet
459func (c *CloudFormation) CreateChangeSet(input *CreateChangeSetInput) (*CreateChangeSetOutput, error) {
460	req, out := c.CreateChangeSetRequest(input)
461	return out, req.Send()
462}
463
464// CreateChangeSetWithContext is the same as CreateChangeSet with the addition of
465// the ability to pass a context and additional request options.
466//
467// See CreateChangeSet for details on how to use this API operation.
468//
469// The context must be non-nil and will be used for request cancellation. If
470// the context is nil a panic will occur. In the future the SDK may create
471// sub-contexts for http.Requests. See https://golang.org/pkg/context/
472// for more information on using Contexts.
473func (c *CloudFormation) CreateChangeSetWithContext(ctx aws.Context, input *CreateChangeSetInput, opts ...request.Option) (*CreateChangeSetOutput, error) {
474	req, out := c.CreateChangeSetRequest(input)
475	req.SetContext(ctx)
476	req.ApplyOptions(opts...)
477	return out, req.Send()
478}
479
480const opCreateStack = "CreateStack"
481
482// CreateStackRequest generates a "aws/request.Request" representing the
483// client's request for the CreateStack operation. The "output" return
484// value will be populated with the request's response once the request completes
485// successfully.
486//
487// Use "Send" method on the returned Request to send the API call to the service.
488// the "output" return value is not valid until after Send returns without error.
489//
490// See CreateStack for more information on using the CreateStack
491// API call, and error handling.
492//
493// This method is useful when you want to inject custom logic or configuration
494// into the SDK's request lifecycle. Such as custom headers, or retry logic.
495//
496//
497//    // Example sending a request using the CreateStackRequest method.
498//    req, resp := client.CreateStackRequest(params)
499//
500//    err := req.Send()
501//    if err == nil { // resp is now filled
502//        fmt.Println(resp)
503//    }
504//
505// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/CreateStack
506func (c *CloudFormation) CreateStackRequest(input *CreateStackInput) (req *request.Request, output *CreateStackOutput) {
507	op := &request.Operation{
508		Name:       opCreateStack,
509		HTTPMethod: "POST",
510		HTTPPath:   "/",
511	}
512
513	if input == nil {
514		input = &CreateStackInput{}
515	}
516
517	output = &CreateStackOutput{}
518	req = c.newRequest(op, input, output)
519	return
520}
521
522// CreateStack API operation for AWS CloudFormation.
523//
524// Creates a stack as specified in the template. After the call completes successfully,
525// the stack creation starts. You can check the status of the stack via the
526// DescribeStacks API.
527//
528// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
529// with awserr.Error's Code and Message methods to get detailed information about
530// the error.
531//
532// See the AWS API reference guide for AWS CloudFormation's
533// API operation CreateStack for usage and error information.
534//
535// Returned Error Codes:
536//   * ErrCodeLimitExceededException "LimitExceededException"
537//   The quota for the resource has already been reached.
538//
539//   For information on resource and stack limitations, see Limits (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/cloudformation-limits.html)
540//   in the CloudFormation User Guide.
541//
542//   * ErrCodeAlreadyExistsException "AlreadyExistsException"
543//   The resource with the name requested already exists.
544//
545//   * ErrCodeTokenAlreadyExistsException "TokenAlreadyExistsException"
546//   A client request token already exists.
547//
548//   * ErrCodeInsufficientCapabilitiesException "InsufficientCapabilitiesException"
549//   The template contains resources with capabilities that weren't specified
550//   in the Capabilities parameter.
551//
552// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/CreateStack
553func (c *CloudFormation) CreateStack(input *CreateStackInput) (*CreateStackOutput, error) {
554	req, out := c.CreateStackRequest(input)
555	return out, req.Send()
556}
557
558// CreateStackWithContext is the same as CreateStack with the addition of
559// the ability to pass a context and additional request options.
560//
561// See CreateStack for details on how to use this API operation.
562//
563// The context must be non-nil and will be used for request cancellation. If
564// the context is nil a panic will occur. In the future the SDK may create
565// sub-contexts for http.Requests. See https://golang.org/pkg/context/
566// for more information on using Contexts.
567func (c *CloudFormation) CreateStackWithContext(ctx aws.Context, input *CreateStackInput, opts ...request.Option) (*CreateStackOutput, error) {
568	req, out := c.CreateStackRequest(input)
569	req.SetContext(ctx)
570	req.ApplyOptions(opts...)
571	return out, req.Send()
572}
573
574const opCreateStackInstances = "CreateStackInstances"
575
576// CreateStackInstancesRequest generates a "aws/request.Request" representing the
577// client's request for the CreateStackInstances operation. The "output" return
578// value will be populated with the request's response once the request completes
579// successfully.
580//
581// Use "Send" method on the returned Request to send the API call to the service.
582// the "output" return value is not valid until after Send returns without error.
583//
584// See CreateStackInstances for more information on using the CreateStackInstances
585// API call, and error handling.
586//
587// This method is useful when you want to inject custom logic or configuration
588// into the SDK's request lifecycle. Such as custom headers, or retry logic.
589//
590//
591//    // Example sending a request using the CreateStackInstancesRequest method.
592//    req, resp := client.CreateStackInstancesRequest(params)
593//
594//    err := req.Send()
595//    if err == nil { // resp is now filled
596//        fmt.Println(resp)
597//    }
598//
599// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/CreateStackInstances
600func (c *CloudFormation) CreateStackInstancesRequest(input *CreateStackInstancesInput) (req *request.Request, output *CreateStackInstancesOutput) {
601	op := &request.Operation{
602		Name:       opCreateStackInstances,
603		HTTPMethod: "POST",
604		HTTPPath:   "/",
605	}
606
607	if input == nil {
608		input = &CreateStackInstancesInput{}
609	}
610
611	output = &CreateStackInstancesOutput{}
612	req = c.newRequest(op, input, output)
613	return
614}
615
616// CreateStackInstances API operation for AWS CloudFormation.
617//
618// Creates stack instances for the specified accounts, within the specified
619// Regions. A stack instance refers to a stack in a specific account and Region.
620// You must specify at least one value for either Accounts or DeploymentTargets,
621// and you must specify at least one value for Regions.
622//
623// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
624// with awserr.Error's Code and Message methods to get detailed information about
625// the error.
626//
627// See the AWS API reference guide for AWS CloudFormation's
628// API operation CreateStackInstances for usage and error information.
629//
630// Returned Error Codes:
631//   * ErrCodeStackSetNotFoundException "StackSetNotFoundException"
632//   The specified stack set doesn't exist.
633//
634//   * ErrCodeOperationInProgressException "OperationInProgressException"
635//   Another operation is currently in progress for this stack set. Only one operation
636//   can be performed for a stack set at a given time.
637//
638//   * ErrCodeOperationIdAlreadyExistsException "OperationIdAlreadyExistsException"
639//   The specified operation ID already exists.
640//
641//   * ErrCodeStaleRequestException "StaleRequestException"
642//   Another operation has been performed on this stack set since the specified
643//   operation was performed.
644//
645//   * ErrCodeInvalidOperationException "InvalidOperationException"
646//   The specified operation isn't valid.
647//
648//   * ErrCodeLimitExceededException "LimitExceededException"
649//   The quota for the resource has already been reached.
650//
651//   For information on resource and stack limitations, see Limits (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/cloudformation-limits.html)
652//   in the CloudFormation User Guide.
653//
654// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/CreateStackInstances
655func (c *CloudFormation) CreateStackInstances(input *CreateStackInstancesInput) (*CreateStackInstancesOutput, error) {
656	req, out := c.CreateStackInstancesRequest(input)
657	return out, req.Send()
658}
659
660// CreateStackInstancesWithContext is the same as CreateStackInstances with the addition of
661// the ability to pass a context and additional request options.
662//
663// See CreateStackInstances for details on how to use this API operation.
664//
665// The context must be non-nil and will be used for request cancellation. If
666// the context is nil a panic will occur. In the future the SDK may create
667// sub-contexts for http.Requests. See https://golang.org/pkg/context/
668// for more information on using Contexts.
669func (c *CloudFormation) CreateStackInstancesWithContext(ctx aws.Context, input *CreateStackInstancesInput, opts ...request.Option) (*CreateStackInstancesOutput, error) {
670	req, out := c.CreateStackInstancesRequest(input)
671	req.SetContext(ctx)
672	req.ApplyOptions(opts...)
673	return out, req.Send()
674}
675
676const opCreateStackSet = "CreateStackSet"
677
678// CreateStackSetRequest generates a "aws/request.Request" representing the
679// client's request for the CreateStackSet operation. The "output" return
680// value will be populated with the request's response once the request completes
681// successfully.
682//
683// Use "Send" method on the returned Request to send the API call to the service.
684// the "output" return value is not valid until after Send returns without error.
685//
686// See CreateStackSet for more information on using the CreateStackSet
687// API call, and error handling.
688//
689// This method is useful when you want to inject custom logic or configuration
690// into the SDK's request lifecycle. Such as custom headers, or retry logic.
691//
692//
693//    // Example sending a request using the CreateStackSetRequest method.
694//    req, resp := client.CreateStackSetRequest(params)
695//
696//    err := req.Send()
697//    if err == nil { // resp is now filled
698//        fmt.Println(resp)
699//    }
700//
701// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/CreateStackSet
702func (c *CloudFormation) CreateStackSetRequest(input *CreateStackSetInput) (req *request.Request, output *CreateStackSetOutput) {
703	op := &request.Operation{
704		Name:       opCreateStackSet,
705		HTTPMethod: "POST",
706		HTTPPath:   "/",
707	}
708
709	if input == nil {
710		input = &CreateStackSetInput{}
711	}
712
713	output = &CreateStackSetOutput{}
714	req = c.newRequest(op, input, output)
715	return
716}
717
718// CreateStackSet API operation for AWS CloudFormation.
719//
720// Creates a stack set.
721//
722// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
723// with awserr.Error's Code and Message methods to get detailed information about
724// the error.
725//
726// See the AWS API reference guide for AWS CloudFormation's
727// API operation CreateStackSet for usage and error information.
728//
729// Returned Error Codes:
730//   * ErrCodeNameAlreadyExistsException "NameAlreadyExistsException"
731//   The specified name is already in use.
732//
733//   * ErrCodeCreatedButModifiedException "CreatedButModifiedException"
734//   The specified resource exists, but has been changed.
735//
736//   * ErrCodeLimitExceededException "LimitExceededException"
737//   The quota for the resource has already been reached.
738//
739//   For information on resource and stack limitations, see Limits (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/cloudformation-limits.html)
740//   in the CloudFormation User Guide.
741//
742// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/CreateStackSet
743func (c *CloudFormation) CreateStackSet(input *CreateStackSetInput) (*CreateStackSetOutput, error) {
744	req, out := c.CreateStackSetRequest(input)
745	return out, req.Send()
746}
747
748// CreateStackSetWithContext is the same as CreateStackSet with the addition of
749// the ability to pass a context and additional request options.
750//
751// See CreateStackSet for details on how to use this API operation.
752//
753// The context must be non-nil and will be used for request cancellation. If
754// the context is nil a panic will occur. In the future the SDK may create
755// sub-contexts for http.Requests. See https://golang.org/pkg/context/
756// for more information on using Contexts.
757func (c *CloudFormation) CreateStackSetWithContext(ctx aws.Context, input *CreateStackSetInput, opts ...request.Option) (*CreateStackSetOutput, error) {
758	req, out := c.CreateStackSetRequest(input)
759	req.SetContext(ctx)
760	req.ApplyOptions(opts...)
761	return out, req.Send()
762}
763
764const opDeactivateType = "DeactivateType"
765
766// DeactivateTypeRequest generates a "aws/request.Request" representing the
767// client's request for the DeactivateType operation. The "output" return
768// value will be populated with the request's response once the request completes
769// successfully.
770//
771// Use "Send" method on the returned Request to send the API call to the service.
772// the "output" return value is not valid until after Send returns without error.
773//
774// See DeactivateType for more information on using the DeactivateType
775// API call, and error handling.
776//
777// This method is useful when you want to inject custom logic or configuration
778// into the SDK's request lifecycle. Such as custom headers, or retry logic.
779//
780//
781//    // Example sending a request using the DeactivateTypeRequest method.
782//    req, resp := client.DeactivateTypeRequest(params)
783//
784//    err := req.Send()
785//    if err == nil { // resp is now filled
786//        fmt.Println(resp)
787//    }
788//
789// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/DeactivateType
790func (c *CloudFormation) DeactivateTypeRequest(input *DeactivateTypeInput) (req *request.Request, output *DeactivateTypeOutput) {
791	op := &request.Operation{
792		Name:       opDeactivateType,
793		HTTPMethod: "POST",
794		HTTPPath:   "/",
795	}
796
797	if input == nil {
798		input = &DeactivateTypeInput{}
799	}
800
801	output = &DeactivateTypeOutput{}
802	req = c.newRequest(op, input, output)
803	req.Handlers.Unmarshal.Swap(query.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
804	return
805}
806
807// DeactivateType API operation for AWS CloudFormation.
808//
809// Deactivates a public extension that was previously activated in this account
810// and region.
811//
812// Once deactivated, an extension cannot be used in any CloudFormation operation.
813// This includes stack update operations where the stack template includes the
814// extension, even if no updates are being made to the extension. In addition,
815// deactivated extensions are not automatically updated if a new version of
816// the extension is released.
817//
818// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
819// with awserr.Error's Code and Message methods to get detailed information about
820// the error.
821//
822// See the AWS API reference guide for AWS CloudFormation's
823// API operation DeactivateType for usage and error information.
824//
825// Returned Error Codes:
826//   * ErrCodeCFNRegistryException "CFNRegistryException"
827//   An error occurred during a CloudFormation registry operation.
828//
829//   * ErrCodeTypeNotFoundException "TypeNotFoundException"
830//   The specified extension does not exist in the CloudFormation registry.
831//
832// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/DeactivateType
833func (c *CloudFormation) DeactivateType(input *DeactivateTypeInput) (*DeactivateTypeOutput, error) {
834	req, out := c.DeactivateTypeRequest(input)
835	return out, req.Send()
836}
837
838// DeactivateTypeWithContext is the same as DeactivateType with the addition of
839// the ability to pass a context and additional request options.
840//
841// See DeactivateType for details on how to use this API operation.
842//
843// The context must be non-nil and will be used for request cancellation. If
844// the context is nil a panic will occur. In the future the SDK may create
845// sub-contexts for http.Requests. See https://golang.org/pkg/context/
846// for more information on using Contexts.
847func (c *CloudFormation) DeactivateTypeWithContext(ctx aws.Context, input *DeactivateTypeInput, opts ...request.Option) (*DeactivateTypeOutput, error) {
848	req, out := c.DeactivateTypeRequest(input)
849	req.SetContext(ctx)
850	req.ApplyOptions(opts...)
851	return out, req.Send()
852}
853
854const opDeleteChangeSet = "DeleteChangeSet"
855
856// DeleteChangeSetRequest generates a "aws/request.Request" representing the
857// client's request for the DeleteChangeSet operation. The "output" return
858// value will be populated with the request's response once the request completes
859// successfully.
860//
861// Use "Send" method on the returned Request to send the API call to the service.
862// the "output" return value is not valid until after Send returns without error.
863//
864// See DeleteChangeSet for more information on using the DeleteChangeSet
865// API call, and error handling.
866//
867// This method is useful when you want to inject custom logic or configuration
868// into the SDK's request lifecycle. Such as custom headers, or retry logic.
869//
870//
871//    // Example sending a request using the DeleteChangeSetRequest method.
872//    req, resp := client.DeleteChangeSetRequest(params)
873//
874//    err := req.Send()
875//    if err == nil { // resp is now filled
876//        fmt.Println(resp)
877//    }
878//
879// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/DeleteChangeSet
880func (c *CloudFormation) DeleteChangeSetRequest(input *DeleteChangeSetInput) (req *request.Request, output *DeleteChangeSetOutput) {
881	op := &request.Operation{
882		Name:       opDeleteChangeSet,
883		HTTPMethod: "POST",
884		HTTPPath:   "/",
885	}
886
887	if input == nil {
888		input = &DeleteChangeSetInput{}
889	}
890
891	output = &DeleteChangeSetOutput{}
892	req = c.newRequest(op, input, output)
893	req.Handlers.Unmarshal.Swap(query.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
894	return
895}
896
897// DeleteChangeSet API operation for AWS CloudFormation.
898//
899// Deletes the specified change set. Deleting change sets ensures that no one
900// executes the wrong change set.
901//
902// If the call successfully completes, CloudFormation successfully deleted the
903// change set.
904//
905// If IncludeNestedStacks specifies True during the creation of the nested change
906// set, then DeleteChangeSet will delete all change sets that belong to the
907// stacks hierarchy and will also delete all change sets for nested stacks with
908// the status of REVIEW_IN_PROGRESS.
909//
910// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
911// with awserr.Error's Code and Message methods to get detailed information about
912// the error.
913//
914// See the AWS API reference guide for AWS CloudFormation's
915// API operation DeleteChangeSet for usage and error information.
916//
917// Returned Error Codes:
918//   * ErrCodeInvalidChangeSetStatusException "InvalidChangeSetStatus"
919//   The specified change set can't be used to update the stack. For example,
920//   the change set status might be CREATE_IN_PROGRESS, or the stack status might
921//   be UPDATE_IN_PROGRESS.
922//
923// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/DeleteChangeSet
924func (c *CloudFormation) DeleteChangeSet(input *DeleteChangeSetInput) (*DeleteChangeSetOutput, error) {
925	req, out := c.DeleteChangeSetRequest(input)
926	return out, req.Send()
927}
928
929// DeleteChangeSetWithContext is the same as DeleteChangeSet with the addition of
930// the ability to pass a context and additional request options.
931//
932// See DeleteChangeSet for details on how to use this API operation.
933//
934// The context must be non-nil and will be used for request cancellation. If
935// the context is nil a panic will occur. In the future the SDK may create
936// sub-contexts for http.Requests. See https://golang.org/pkg/context/
937// for more information on using Contexts.
938func (c *CloudFormation) DeleteChangeSetWithContext(ctx aws.Context, input *DeleteChangeSetInput, opts ...request.Option) (*DeleteChangeSetOutput, error) {
939	req, out := c.DeleteChangeSetRequest(input)
940	req.SetContext(ctx)
941	req.ApplyOptions(opts...)
942	return out, req.Send()
943}
944
945const opDeleteStack = "DeleteStack"
946
947// DeleteStackRequest generates a "aws/request.Request" representing the
948// client's request for the DeleteStack operation. The "output" return
949// value will be populated with the request's response once the request completes
950// successfully.
951//
952// Use "Send" method on the returned Request to send the API call to the service.
953// the "output" return value is not valid until after Send returns without error.
954//
955// See DeleteStack for more information on using the DeleteStack
956// API call, and error handling.
957//
958// This method is useful when you want to inject custom logic or configuration
959// into the SDK's request lifecycle. Such as custom headers, or retry logic.
960//
961//
962//    // Example sending a request using the DeleteStackRequest method.
963//    req, resp := client.DeleteStackRequest(params)
964//
965//    err := req.Send()
966//    if err == nil { // resp is now filled
967//        fmt.Println(resp)
968//    }
969//
970// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/DeleteStack
971func (c *CloudFormation) DeleteStackRequest(input *DeleteStackInput) (req *request.Request, output *DeleteStackOutput) {
972	op := &request.Operation{
973		Name:       opDeleteStack,
974		HTTPMethod: "POST",
975		HTTPPath:   "/",
976	}
977
978	if input == nil {
979		input = &DeleteStackInput{}
980	}
981
982	output = &DeleteStackOutput{}
983	req = c.newRequest(op, input, output)
984	req.Handlers.Unmarshal.Swap(query.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
985	return
986}
987
988// DeleteStack API operation for AWS CloudFormation.
989//
990// Deletes a specified stack. Once the call completes successfully, stack deletion
991// starts. Deleted stacks do not show up in the DescribeStacks API if the deletion
992// has been completed successfully.
993//
994// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
995// with awserr.Error's Code and Message methods to get detailed information about
996// the error.
997//
998// See the AWS API reference guide for AWS CloudFormation's
999// API operation DeleteStack for usage and error information.
1000//
1001// Returned Error Codes:
1002//   * ErrCodeTokenAlreadyExistsException "TokenAlreadyExistsException"
1003//   A client request token already exists.
1004//
1005// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/DeleteStack
1006func (c *CloudFormation) DeleteStack(input *DeleteStackInput) (*DeleteStackOutput, error) {
1007	req, out := c.DeleteStackRequest(input)
1008	return out, req.Send()
1009}
1010
1011// DeleteStackWithContext is the same as DeleteStack with the addition of
1012// the ability to pass a context and additional request options.
1013//
1014// See DeleteStack for details on how to use this API operation.
1015//
1016// The context must be non-nil and will be used for request cancellation. If
1017// the context is nil a panic will occur. In the future the SDK may create
1018// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1019// for more information on using Contexts.
1020func (c *CloudFormation) DeleteStackWithContext(ctx aws.Context, input *DeleteStackInput, opts ...request.Option) (*DeleteStackOutput, error) {
1021	req, out := c.DeleteStackRequest(input)
1022	req.SetContext(ctx)
1023	req.ApplyOptions(opts...)
1024	return out, req.Send()
1025}
1026
1027const opDeleteStackInstances = "DeleteStackInstances"
1028
1029// DeleteStackInstancesRequest generates a "aws/request.Request" representing the
1030// client's request for the DeleteStackInstances operation. The "output" return
1031// value will be populated with the request's response once the request completes
1032// successfully.
1033//
1034// Use "Send" method on the returned Request to send the API call to the service.
1035// the "output" return value is not valid until after Send returns without error.
1036//
1037// See DeleteStackInstances for more information on using the DeleteStackInstances
1038// API call, and error handling.
1039//
1040// This method is useful when you want to inject custom logic or configuration
1041// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1042//
1043//
1044//    // Example sending a request using the DeleteStackInstancesRequest method.
1045//    req, resp := client.DeleteStackInstancesRequest(params)
1046//
1047//    err := req.Send()
1048//    if err == nil { // resp is now filled
1049//        fmt.Println(resp)
1050//    }
1051//
1052// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/DeleteStackInstances
1053func (c *CloudFormation) DeleteStackInstancesRequest(input *DeleteStackInstancesInput) (req *request.Request, output *DeleteStackInstancesOutput) {
1054	op := &request.Operation{
1055		Name:       opDeleteStackInstances,
1056		HTTPMethod: "POST",
1057		HTTPPath:   "/",
1058	}
1059
1060	if input == nil {
1061		input = &DeleteStackInstancesInput{}
1062	}
1063
1064	output = &DeleteStackInstancesOutput{}
1065	req = c.newRequest(op, input, output)
1066	return
1067}
1068
1069// DeleteStackInstances API operation for AWS CloudFormation.
1070//
1071// Deletes stack instances for the specified accounts, in the specified Regions.
1072//
1073// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1074// with awserr.Error's Code and Message methods to get detailed information about
1075// the error.
1076//
1077// See the AWS API reference guide for AWS CloudFormation's
1078// API operation DeleteStackInstances for usage and error information.
1079//
1080// Returned Error Codes:
1081//   * ErrCodeStackSetNotFoundException "StackSetNotFoundException"
1082//   The specified stack set doesn't exist.
1083//
1084//   * ErrCodeOperationInProgressException "OperationInProgressException"
1085//   Another operation is currently in progress for this stack set. Only one operation
1086//   can be performed for a stack set at a given time.
1087//
1088//   * ErrCodeOperationIdAlreadyExistsException "OperationIdAlreadyExistsException"
1089//   The specified operation ID already exists.
1090//
1091//   * ErrCodeStaleRequestException "StaleRequestException"
1092//   Another operation has been performed on this stack set since the specified
1093//   operation was performed.
1094//
1095//   * ErrCodeInvalidOperationException "InvalidOperationException"
1096//   The specified operation isn't valid.
1097//
1098// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/DeleteStackInstances
1099func (c *CloudFormation) DeleteStackInstances(input *DeleteStackInstancesInput) (*DeleteStackInstancesOutput, error) {
1100	req, out := c.DeleteStackInstancesRequest(input)
1101	return out, req.Send()
1102}
1103
1104// DeleteStackInstancesWithContext is the same as DeleteStackInstances with the addition of
1105// the ability to pass a context and additional request options.
1106//
1107// See DeleteStackInstances for details on how to use this API operation.
1108//
1109// The context must be non-nil and will be used for request cancellation. If
1110// the context is nil a panic will occur. In the future the SDK may create
1111// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1112// for more information on using Contexts.
1113func (c *CloudFormation) DeleteStackInstancesWithContext(ctx aws.Context, input *DeleteStackInstancesInput, opts ...request.Option) (*DeleteStackInstancesOutput, error) {
1114	req, out := c.DeleteStackInstancesRequest(input)
1115	req.SetContext(ctx)
1116	req.ApplyOptions(opts...)
1117	return out, req.Send()
1118}
1119
1120const opDeleteStackSet = "DeleteStackSet"
1121
1122// DeleteStackSetRequest generates a "aws/request.Request" representing the
1123// client's request for the DeleteStackSet operation. The "output" return
1124// value will be populated with the request's response once the request completes
1125// successfully.
1126//
1127// Use "Send" method on the returned Request to send the API call to the service.
1128// the "output" return value is not valid until after Send returns without error.
1129//
1130// See DeleteStackSet for more information on using the DeleteStackSet
1131// API call, and error handling.
1132//
1133// This method is useful when you want to inject custom logic or configuration
1134// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1135//
1136//
1137//    // Example sending a request using the DeleteStackSetRequest method.
1138//    req, resp := client.DeleteStackSetRequest(params)
1139//
1140//    err := req.Send()
1141//    if err == nil { // resp is now filled
1142//        fmt.Println(resp)
1143//    }
1144//
1145// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/DeleteStackSet
1146func (c *CloudFormation) DeleteStackSetRequest(input *DeleteStackSetInput) (req *request.Request, output *DeleteStackSetOutput) {
1147	op := &request.Operation{
1148		Name:       opDeleteStackSet,
1149		HTTPMethod: "POST",
1150		HTTPPath:   "/",
1151	}
1152
1153	if input == nil {
1154		input = &DeleteStackSetInput{}
1155	}
1156
1157	output = &DeleteStackSetOutput{}
1158	req = c.newRequest(op, input, output)
1159	req.Handlers.Unmarshal.Swap(query.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
1160	return
1161}
1162
1163// DeleteStackSet API operation for AWS CloudFormation.
1164//
1165// Deletes a stack set. Before you can delete a stack set, all of its member
1166// stack instances must be deleted. For more information about how to do this,
1167// see DeleteStackInstances.
1168//
1169// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1170// with awserr.Error's Code and Message methods to get detailed information about
1171// the error.
1172//
1173// See the AWS API reference guide for AWS CloudFormation's
1174// API operation DeleteStackSet for usage and error information.
1175//
1176// Returned Error Codes:
1177//   * ErrCodeStackSetNotEmptyException "StackSetNotEmptyException"
1178//   You can't yet delete this stack set, because it still contains one or more
1179//   stack instances. Delete all stack instances from the stack set before deleting
1180//   the stack set.
1181//
1182//   * ErrCodeOperationInProgressException "OperationInProgressException"
1183//   Another operation is currently in progress for this stack set. Only one operation
1184//   can be performed for a stack set at a given time.
1185//
1186// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/DeleteStackSet
1187func (c *CloudFormation) DeleteStackSet(input *DeleteStackSetInput) (*DeleteStackSetOutput, error) {
1188	req, out := c.DeleteStackSetRequest(input)
1189	return out, req.Send()
1190}
1191
1192// DeleteStackSetWithContext is the same as DeleteStackSet with the addition of
1193// the ability to pass a context and additional request options.
1194//
1195// See DeleteStackSet for details on how to use this API operation.
1196//
1197// The context must be non-nil and will be used for request cancellation. If
1198// the context is nil a panic will occur. In the future the SDK may create
1199// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1200// for more information on using Contexts.
1201func (c *CloudFormation) DeleteStackSetWithContext(ctx aws.Context, input *DeleteStackSetInput, opts ...request.Option) (*DeleteStackSetOutput, error) {
1202	req, out := c.DeleteStackSetRequest(input)
1203	req.SetContext(ctx)
1204	req.ApplyOptions(opts...)
1205	return out, req.Send()
1206}
1207
1208const opDeregisterType = "DeregisterType"
1209
1210// DeregisterTypeRequest generates a "aws/request.Request" representing the
1211// client's request for the DeregisterType operation. The "output" return
1212// value will be populated with the request's response once the request completes
1213// successfully.
1214//
1215// Use "Send" method on the returned Request to send the API call to the service.
1216// the "output" return value is not valid until after Send returns without error.
1217//
1218// See DeregisterType for more information on using the DeregisterType
1219// API call, and error handling.
1220//
1221// This method is useful when you want to inject custom logic or configuration
1222// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1223//
1224//
1225//    // Example sending a request using the DeregisterTypeRequest method.
1226//    req, resp := client.DeregisterTypeRequest(params)
1227//
1228//    err := req.Send()
1229//    if err == nil { // resp is now filled
1230//        fmt.Println(resp)
1231//    }
1232//
1233// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/DeregisterType
1234func (c *CloudFormation) DeregisterTypeRequest(input *DeregisterTypeInput) (req *request.Request, output *DeregisterTypeOutput) {
1235	op := &request.Operation{
1236		Name:       opDeregisterType,
1237		HTTPMethod: "POST",
1238		HTTPPath:   "/",
1239	}
1240
1241	if input == nil {
1242		input = &DeregisterTypeInput{}
1243	}
1244
1245	output = &DeregisterTypeOutput{}
1246	req = c.newRequest(op, input, output)
1247	req.Handlers.Unmarshal.Swap(query.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
1248	return
1249}
1250
1251// DeregisterType API operation for AWS CloudFormation.
1252//
1253// Marks an extension or extension version as DEPRECATED in the CloudFormation
1254// registry, removing it from active use. Deprecated extensions or extension
1255// versions cannot be used in CloudFormation operations.
1256//
1257// To deregister an entire extension, you must individually deregister all active
1258// versions of that extension. If an extension has only a single active version,
1259// deregistering that version results in the extension itself being deregistered
1260// and marked as deprecated in the registry.
1261//
1262// You cannot deregister the default version of an extension if there are other
1263// active version of that extension. If you do deregister the default version
1264// of an extension, the textensionype itself is deregistered as well and marked
1265// as deprecated.
1266//
1267// To view the deprecation status of an extension or extension version, use
1268// DescribeType (https://docs.aws.amazon.com/AWSCloudFormation/latest/APIReference/API_DescribeType.html).
1269//
1270// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1271// with awserr.Error's Code and Message methods to get detailed information about
1272// the error.
1273//
1274// See the AWS API reference guide for AWS CloudFormation's
1275// API operation DeregisterType for usage and error information.
1276//
1277// Returned Error Codes:
1278//   * ErrCodeCFNRegistryException "CFNRegistryException"
1279//   An error occurred during a CloudFormation registry operation.
1280//
1281//   * ErrCodeTypeNotFoundException "TypeNotFoundException"
1282//   The specified extension does not exist in the CloudFormation registry.
1283//
1284// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/DeregisterType
1285func (c *CloudFormation) DeregisterType(input *DeregisterTypeInput) (*DeregisterTypeOutput, error) {
1286	req, out := c.DeregisterTypeRequest(input)
1287	return out, req.Send()
1288}
1289
1290// DeregisterTypeWithContext is the same as DeregisterType with the addition of
1291// the ability to pass a context and additional request options.
1292//
1293// See DeregisterType for details on how to use this API operation.
1294//
1295// The context must be non-nil and will be used for request cancellation. If
1296// the context is nil a panic will occur. In the future the SDK may create
1297// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1298// for more information on using Contexts.
1299func (c *CloudFormation) DeregisterTypeWithContext(ctx aws.Context, input *DeregisterTypeInput, opts ...request.Option) (*DeregisterTypeOutput, error) {
1300	req, out := c.DeregisterTypeRequest(input)
1301	req.SetContext(ctx)
1302	req.ApplyOptions(opts...)
1303	return out, req.Send()
1304}
1305
1306const opDescribeAccountLimits = "DescribeAccountLimits"
1307
1308// DescribeAccountLimitsRequest generates a "aws/request.Request" representing the
1309// client's request for the DescribeAccountLimits operation. The "output" return
1310// value will be populated with the request's response once the request completes
1311// successfully.
1312//
1313// Use "Send" method on the returned Request to send the API call to the service.
1314// the "output" return value is not valid until after Send returns without error.
1315//
1316// See DescribeAccountLimits for more information on using the DescribeAccountLimits
1317// API call, and error handling.
1318//
1319// This method is useful when you want to inject custom logic or configuration
1320// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1321//
1322//
1323//    // Example sending a request using the DescribeAccountLimitsRequest method.
1324//    req, resp := client.DescribeAccountLimitsRequest(params)
1325//
1326//    err := req.Send()
1327//    if err == nil { // resp is now filled
1328//        fmt.Println(resp)
1329//    }
1330//
1331// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/DescribeAccountLimits
1332func (c *CloudFormation) DescribeAccountLimitsRequest(input *DescribeAccountLimitsInput) (req *request.Request, output *DescribeAccountLimitsOutput) {
1333	op := &request.Operation{
1334		Name:       opDescribeAccountLimits,
1335		HTTPMethod: "POST",
1336		HTTPPath:   "/",
1337		Paginator: &request.Paginator{
1338			InputTokens:     []string{"NextToken"},
1339			OutputTokens:    []string{"NextToken"},
1340			LimitToken:      "",
1341			TruncationToken: "",
1342		},
1343	}
1344
1345	if input == nil {
1346		input = &DescribeAccountLimitsInput{}
1347	}
1348
1349	output = &DescribeAccountLimitsOutput{}
1350	req = c.newRequest(op, input, output)
1351	return
1352}
1353
1354// DescribeAccountLimits API operation for AWS CloudFormation.
1355//
1356// Retrieves your account's CloudFormation limits, such as the maximum number
1357// of stacks that you can create in your account. For more information about
1358// account limits, see CloudFormation Limits (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/cloudformation-limits.html)
1359// in the CloudFormation User Guide.
1360//
1361// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1362// with awserr.Error's Code and Message methods to get detailed information about
1363// the error.
1364//
1365// See the AWS API reference guide for AWS CloudFormation's
1366// API operation DescribeAccountLimits for usage and error information.
1367// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/DescribeAccountLimits
1368func (c *CloudFormation) DescribeAccountLimits(input *DescribeAccountLimitsInput) (*DescribeAccountLimitsOutput, error) {
1369	req, out := c.DescribeAccountLimitsRequest(input)
1370	return out, req.Send()
1371}
1372
1373// DescribeAccountLimitsWithContext is the same as DescribeAccountLimits with the addition of
1374// the ability to pass a context and additional request options.
1375//
1376// See DescribeAccountLimits for details on how to use this API operation.
1377//
1378// The context must be non-nil and will be used for request cancellation. If
1379// the context is nil a panic will occur. In the future the SDK may create
1380// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1381// for more information on using Contexts.
1382func (c *CloudFormation) DescribeAccountLimitsWithContext(ctx aws.Context, input *DescribeAccountLimitsInput, opts ...request.Option) (*DescribeAccountLimitsOutput, error) {
1383	req, out := c.DescribeAccountLimitsRequest(input)
1384	req.SetContext(ctx)
1385	req.ApplyOptions(opts...)
1386	return out, req.Send()
1387}
1388
1389// DescribeAccountLimitsPages iterates over the pages of a DescribeAccountLimits operation,
1390// calling the "fn" function with the response data for each page. To stop
1391// iterating, return false from the fn function.
1392//
1393// See DescribeAccountLimits method for more information on how to use this operation.
1394//
1395// Note: This operation can generate multiple requests to a service.
1396//
1397//    // Example iterating over at most 3 pages of a DescribeAccountLimits operation.
1398//    pageNum := 0
1399//    err := client.DescribeAccountLimitsPages(params,
1400//        func(page *cloudformation.DescribeAccountLimitsOutput, lastPage bool) bool {
1401//            pageNum++
1402//            fmt.Println(page)
1403//            return pageNum <= 3
1404//        })
1405//
1406func (c *CloudFormation) DescribeAccountLimitsPages(input *DescribeAccountLimitsInput, fn func(*DescribeAccountLimitsOutput, bool) bool) error {
1407	return c.DescribeAccountLimitsPagesWithContext(aws.BackgroundContext(), input, fn)
1408}
1409
1410// DescribeAccountLimitsPagesWithContext same as DescribeAccountLimitsPages except
1411// it takes a Context and allows setting request options on the pages.
1412//
1413// The context must be non-nil and will be used for request cancellation. If
1414// the context is nil a panic will occur. In the future the SDK may create
1415// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1416// for more information on using Contexts.
1417func (c *CloudFormation) DescribeAccountLimitsPagesWithContext(ctx aws.Context, input *DescribeAccountLimitsInput, fn func(*DescribeAccountLimitsOutput, bool) bool, opts ...request.Option) error {
1418	p := request.Pagination{
1419		NewRequest: func() (*request.Request, error) {
1420			var inCpy *DescribeAccountLimitsInput
1421			if input != nil {
1422				tmp := *input
1423				inCpy = &tmp
1424			}
1425			req, _ := c.DescribeAccountLimitsRequest(inCpy)
1426			req.SetContext(ctx)
1427			req.ApplyOptions(opts...)
1428			return req, nil
1429		},
1430	}
1431
1432	for p.Next() {
1433		if !fn(p.Page().(*DescribeAccountLimitsOutput), !p.HasNextPage()) {
1434			break
1435		}
1436	}
1437
1438	return p.Err()
1439}
1440
1441const opDescribeChangeSet = "DescribeChangeSet"
1442
1443// DescribeChangeSetRequest generates a "aws/request.Request" representing the
1444// client's request for the DescribeChangeSet operation. The "output" return
1445// value will be populated with the request's response once the request completes
1446// successfully.
1447//
1448// Use "Send" method on the returned Request to send the API call to the service.
1449// the "output" return value is not valid until after Send returns without error.
1450//
1451// See DescribeChangeSet for more information on using the DescribeChangeSet
1452// API call, and error handling.
1453//
1454// This method is useful when you want to inject custom logic or configuration
1455// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1456//
1457//
1458//    // Example sending a request using the DescribeChangeSetRequest method.
1459//    req, resp := client.DescribeChangeSetRequest(params)
1460//
1461//    err := req.Send()
1462//    if err == nil { // resp is now filled
1463//        fmt.Println(resp)
1464//    }
1465//
1466// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/DescribeChangeSet
1467func (c *CloudFormation) DescribeChangeSetRequest(input *DescribeChangeSetInput) (req *request.Request, output *DescribeChangeSetOutput) {
1468	op := &request.Operation{
1469		Name:       opDescribeChangeSet,
1470		HTTPMethod: "POST",
1471		HTTPPath:   "/",
1472	}
1473
1474	if input == nil {
1475		input = &DescribeChangeSetInput{}
1476	}
1477
1478	output = &DescribeChangeSetOutput{}
1479	req = c.newRequest(op, input, output)
1480	return
1481}
1482
1483// DescribeChangeSet API operation for AWS CloudFormation.
1484//
1485// Returns the inputs for the change set and a list of changes that CloudFormation
1486// will make if you execute the change set. For more information, see Updating
1487// Stacks Using Change Sets (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-changesets.html)
1488// in the CloudFormation User Guide.
1489//
1490// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1491// with awserr.Error's Code and Message methods to get detailed information about
1492// the error.
1493//
1494// See the AWS API reference guide for AWS CloudFormation's
1495// API operation DescribeChangeSet for usage and error information.
1496//
1497// Returned Error Codes:
1498//   * ErrCodeChangeSetNotFoundException "ChangeSetNotFound"
1499//   The specified change set name or ID doesn't exit. To view valid change sets
1500//   for a stack, use the ListChangeSets action.
1501//
1502// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/DescribeChangeSet
1503func (c *CloudFormation) DescribeChangeSet(input *DescribeChangeSetInput) (*DescribeChangeSetOutput, error) {
1504	req, out := c.DescribeChangeSetRequest(input)
1505	return out, req.Send()
1506}
1507
1508// DescribeChangeSetWithContext is the same as DescribeChangeSet with the addition of
1509// the ability to pass a context and additional request options.
1510//
1511// See DescribeChangeSet for details on how to use this API operation.
1512//
1513// The context must be non-nil and will be used for request cancellation. If
1514// the context is nil a panic will occur. In the future the SDK may create
1515// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1516// for more information on using Contexts.
1517func (c *CloudFormation) DescribeChangeSetWithContext(ctx aws.Context, input *DescribeChangeSetInput, opts ...request.Option) (*DescribeChangeSetOutput, error) {
1518	req, out := c.DescribeChangeSetRequest(input)
1519	req.SetContext(ctx)
1520	req.ApplyOptions(opts...)
1521	return out, req.Send()
1522}
1523
1524const opDescribePublisher = "DescribePublisher"
1525
1526// DescribePublisherRequest generates a "aws/request.Request" representing the
1527// client's request for the DescribePublisher operation. The "output" return
1528// value will be populated with the request's response once the request completes
1529// successfully.
1530//
1531// Use "Send" method on the returned Request to send the API call to the service.
1532// the "output" return value is not valid until after Send returns without error.
1533//
1534// See DescribePublisher for more information on using the DescribePublisher
1535// API call, and error handling.
1536//
1537// This method is useful when you want to inject custom logic or configuration
1538// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1539//
1540//
1541//    // Example sending a request using the DescribePublisherRequest method.
1542//    req, resp := client.DescribePublisherRequest(params)
1543//
1544//    err := req.Send()
1545//    if err == nil { // resp is now filled
1546//        fmt.Println(resp)
1547//    }
1548//
1549// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/DescribePublisher
1550func (c *CloudFormation) DescribePublisherRequest(input *DescribePublisherInput) (req *request.Request, output *DescribePublisherOutput) {
1551	op := &request.Operation{
1552		Name:       opDescribePublisher,
1553		HTTPMethod: "POST",
1554		HTTPPath:   "/",
1555	}
1556
1557	if input == nil {
1558		input = &DescribePublisherInput{}
1559	}
1560
1561	output = &DescribePublisherOutput{}
1562	req = c.newRequest(op, input, output)
1563	return
1564}
1565
1566// DescribePublisher API operation for AWS CloudFormation.
1567//
1568// Returns information about a CloudFormation extension publisher.
1569//
1570// If you do not supply a PublisherId, and you have registered as an extension
1571// publisher, DescribePublisher returns information about your own publisher
1572// account.
1573//
1574// For more information on registering as a publisher, see:
1575//
1576//    * RegisterPublisher (https://docs.aws.amazon.com/AWSCloudFormation/latest/APIReference/API_RegisterPublisher.html)
1577//
1578//    * Publishing extensions to make them available for public use (https://docs.aws.amazon.com/cloudformation-cli/latest/userguide/publish-extension.html)
1579//    in the CloudFormation CLI User Guide
1580//
1581// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1582// with awserr.Error's Code and Message methods to get detailed information about
1583// the error.
1584//
1585// See the AWS API reference guide for AWS CloudFormation's
1586// API operation DescribePublisher for usage and error information.
1587//
1588// Returned Error Codes:
1589//   * ErrCodeCFNRegistryException "CFNRegistryException"
1590//   An error occurred during a CloudFormation registry operation.
1591//
1592// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/DescribePublisher
1593func (c *CloudFormation) DescribePublisher(input *DescribePublisherInput) (*DescribePublisherOutput, error) {
1594	req, out := c.DescribePublisherRequest(input)
1595	return out, req.Send()
1596}
1597
1598// DescribePublisherWithContext is the same as DescribePublisher with the addition of
1599// the ability to pass a context and additional request options.
1600//
1601// See DescribePublisher for details on how to use this API operation.
1602//
1603// The context must be non-nil and will be used for request cancellation. If
1604// the context is nil a panic will occur. In the future the SDK may create
1605// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1606// for more information on using Contexts.
1607func (c *CloudFormation) DescribePublisherWithContext(ctx aws.Context, input *DescribePublisherInput, opts ...request.Option) (*DescribePublisherOutput, error) {
1608	req, out := c.DescribePublisherRequest(input)
1609	req.SetContext(ctx)
1610	req.ApplyOptions(opts...)
1611	return out, req.Send()
1612}
1613
1614const opDescribeStackDriftDetectionStatus = "DescribeStackDriftDetectionStatus"
1615
1616// DescribeStackDriftDetectionStatusRequest generates a "aws/request.Request" representing the
1617// client's request for the DescribeStackDriftDetectionStatus operation. The "output" return
1618// value will be populated with the request's response once the request completes
1619// successfully.
1620//
1621// Use "Send" method on the returned Request to send the API call to the service.
1622// the "output" return value is not valid until after Send returns without error.
1623//
1624// See DescribeStackDriftDetectionStatus for more information on using the DescribeStackDriftDetectionStatus
1625// API call, and error handling.
1626//
1627// This method is useful when you want to inject custom logic or configuration
1628// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1629//
1630//
1631//    // Example sending a request using the DescribeStackDriftDetectionStatusRequest method.
1632//    req, resp := client.DescribeStackDriftDetectionStatusRequest(params)
1633//
1634//    err := req.Send()
1635//    if err == nil { // resp is now filled
1636//        fmt.Println(resp)
1637//    }
1638//
1639// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/DescribeStackDriftDetectionStatus
1640func (c *CloudFormation) DescribeStackDriftDetectionStatusRequest(input *DescribeStackDriftDetectionStatusInput) (req *request.Request, output *DescribeStackDriftDetectionStatusOutput) {
1641	op := &request.Operation{
1642		Name:       opDescribeStackDriftDetectionStatus,
1643		HTTPMethod: "POST",
1644		HTTPPath:   "/",
1645	}
1646
1647	if input == nil {
1648		input = &DescribeStackDriftDetectionStatusInput{}
1649	}
1650
1651	output = &DescribeStackDriftDetectionStatusOutput{}
1652	req = c.newRequest(op, input, output)
1653	return
1654}
1655
1656// DescribeStackDriftDetectionStatus API operation for AWS CloudFormation.
1657//
1658// Returns information about a stack drift detection operation. A stack drift
1659// detection operation detects whether a stack's actual configuration differs,
1660// or has drifted, from it's expected configuration, as defined in the stack
1661// template and any values specified as template parameters. A stack is considered
1662// to have drifted if one or more of its resources have drifted. For more information
1663// on stack and resource drift, see Detecting Unregulated Configuration Changes
1664// to Stacks and Resources (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-stack-drift.html).
1665//
1666// Use DetectStackDrift to initiate a stack drift detection operation. DetectStackDrift
1667// returns a StackDriftDetectionId you can use to monitor the progress of the
1668// operation using DescribeStackDriftDetectionStatus. Once the drift detection
1669// operation has completed, use DescribeStackResourceDrifts to return drift
1670// information about the stack and its resources.
1671//
1672// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1673// with awserr.Error's Code and Message methods to get detailed information about
1674// the error.
1675//
1676// See the AWS API reference guide for AWS CloudFormation's
1677// API operation DescribeStackDriftDetectionStatus for usage and error information.
1678// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/DescribeStackDriftDetectionStatus
1679func (c *CloudFormation) DescribeStackDriftDetectionStatus(input *DescribeStackDriftDetectionStatusInput) (*DescribeStackDriftDetectionStatusOutput, error) {
1680	req, out := c.DescribeStackDriftDetectionStatusRequest(input)
1681	return out, req.Send()
1682}
1683
1684// DescribeStackDriftDetectionStatusWithContext is the same as DescribeStackDriftDetectionStatus with the addition of
1685// the ability to pass a context and additional request options.
1686//
1687// See DescribeStackDriftDetectionStatus for details on how to use this API operation.
1688//
1689// The context must be non-nil and will be used for request cancellation. If
1690// the context is nil a panic will occur. In the future the SDK may create
1691// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1692// for more information on using Contexts.
1693func (c *CloudFormation) DescribeStackDriftDetectionStatusWithContext(ctx aws.Context, input *DescribeStackDriftDetectionStatusInput, opts ...request.Option) (*DescribeStackDriftDetectionStatusOutput, error) {
1694	req, out := c.DescribeStackDriftDetectionStatusRequest(input)
1695	req.SetContext(ctx)
1696	req.ApplyOptions(opts...)
1697	return out, req.Send()
1698}
1699
1700const opDescribeStackEvents = "DescribeStackEvents"
1701
1702// DescribeStackEventsRequest generates a "aws/request.Request" representing the
1703// client's request for the DescribeStackEvents operation. The "output" return
1704// value will be populated with the request's response once the request completes
1705// successfully.
1706//
1707// Use "Send" method on the returned Request to send the API call to the service.
1708// the "output" return value is not valid until after Send returns without error.
1709//
1710// See DescribeStackEvents for more information on using the DescribeStackEvents
1711// API call, and error handling.
1712//
1713// This method is useful when you want to inject custom logic or configuration
1714// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1715//
1716//
1717//    // Example sending a request using the DescribeStackEventsRequest method.
1718//    req, resp := client.DescribeStackEventsRequest(params)
1719//
1720//    err := req.Send()
1721//    if err == nil { // resp is now filled
1722//        fmt.Println(resp)
1723//    }
1724//
1725// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/DescribeStackEvents
1726func (c *CloudFormation) DescribeStackEventsRequest(input *DescribeStackEventsInput) (req *request.Request, output *DescribeStackEventsOutput) {
1727	op := &request.Operation{
1728		Name:       opDescribeStackEvents,
1729		HTTPMethod: "POST",
1730		HTTPPath:   "/",
1731		Paginator: &request.Paginator{
1732			InputTokens:     []string{"NextToken"},
1733			OutputTokens:    []string{"NextToken"},
1734			LimitToken:      "",
1735			TruncationToken: "",
1736		},
1737	}
1738
1739	if input == nil {
1740		input = &DescribeStackEventsInput{}
1741	}
1742
1743	output = &DescribeStackEventsOutput{}
1744	req = c.newRequest(op, input, output)
1745	return
1746}
1747
1748// DescribeStackEvents API operation for AWS CloudFormation.
1749//
1750// Returns all stack related events for a specified stack in reverse chronological
1751// order. For more information about a stack's event history, go to Stacks (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/concept-stack.html)
1752// in the CloudFormation User Guide.
1753//
1754// You can list events for stacks that have failed to create or have been deleted
1755// by specifying the unique stack identifier (stack ID).
1756//
1757// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1758// with awserr.Error's Code and Message methods to get detailed information about
1759// the error.
1760//
1761// See the AWS API reference guide for AWS CloudFormation's
1762// API operation DescribeStackEvents for usage and error information.
1763// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/DescribeStackEvents
1764func (c *CloudFormation) DescribeStackEvents(input *DescribeStackEventsInput) (*DescribeStackEventsOutput, error) {
1765	req, out := c.DescribeStackEventsRequest(input)
1766	return out, req.Send()
1767}
1768
1769// DescribeStackEventsWithContext is the same as DescribeStackEvents with the addition of
1770// the ability to pass a context and additional request options.
1771//
1772// See DescribeStackEvents for details on how to use this API operation.
1773//
1774// The context must be non-nil and will be used for request cancellation. If
1775// the context is nil a panic will occur. In the future the SDK may create
1776// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1777// for more information on using Contexts.
1778func (c *CloudFormation) DescribeStackEventsWithContext(ctx aws.Context, input *DescribeStackEventsInput, opts ...request.Option) (*DescribeStackEventsOutput, error) {
1779	req, out := c.DescribeStackEventsRequest(input)
1780	req.SetContext(ctx)
1781	req.ApplyOptions(opts...)
1782	return out, req.Send()
1783}
1784
1785// DescribeStackEventsPages iterates over the pages of a DescribeStackEvents operation,
1786// calling the "fn" function with the response data for each page. To stop
1787// iterating, return false from the fn function.
1788//
1789// See DescribeStackEvents method for more information on how to use this operation.
1790//
1791// Note: This operation can generate multiple requests to a service.
1792//
1793//    // Example iterating over at most 3 pages of a DescribeStackEvents operation.
1794//    pageNum := 0
1795//    err := client.DescribeStackEventsPages(params,
1796//        func(page *cloudformation.DescribeStackEventsOutput, lastPage bool) bool {
1797//            pageNum++
1798//            fmt.Println(page)
1799//            return pageNum <= 3
1800//        })
1801//
1802func (c *CloudFormation) DescribeStackEventsPages(input *DescribeStackEventsInput, fn func(*DescribeStackEventsOutput, bool) bool) error {
1803	return c.DescribeStackEventsPagesWithContext(aws.BackgroundContext(), input, fn)
1804}
1805
1806// DescribeStackEventsPagesWithContext same as DescribeStackEventsPages except
1807// it takes a Context and allows setting request options on the pages.
1808//
1809// The context must be non-nil and will be used for request cancellation. If
1810// the context is nil a panic will occur. In the future the SDK may create
1811// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1812// for more information on using Contexts.
1813func (c *CloudFormation) DescribeStackEventsPagesWithContext(ctx aws.Context, input *DescribeStackEventsInput, fn func(*DescribeStackEventsOutput, bool) bool, opts ...request.Option) error {
1814	p := request.Pagination{
1815		NewRequest: func() (*request.Request, error) {
1816			var inCpy *DescribeStackEventsInput
1817			if input != nil {
1818				tmp := *input
1819				inCpy = &tmp
1820			}
1821			req, _ := c.DescribeStackEventsRequest(inCpy)
1822			req.SetContext(ctx)
1823			req.ApplyOptions(opts...)
1824			return req, nil
1825		},
1826	}
1827
1828	for p.Next() {
1829		if !fn(p.Page().(*DescribeStackEventsOutput), !p.HasNextPage()) {
1830			break
1831		}
1832	}
1833
1834	return p.Err()
1835}
1836
1837const opDescribeStackInstance = "DescribeStackInstance"
1838
1839// DescribeStackInstanceRequest generates a "aws/request.Request" representing the
1840// client's request for the DescribeStackInstance operation. The "output" return
1841// value will be populated with the request's response once the request completes
1842// successfully.
1843//
1844// Use "Send" method on the returned Request to send the API call to the service.
1845// the "output" return value is not valid until after Send returns without error.
1846//
1847// See DescribeStackInstance for more information on using the DescribeStackInstance
1848// API call, and error handling.
1849//
1850// This method is useful when you want to inject custom logic or configuration
1851// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1852//
1853//
1854//    // Example sending a request using the DescribeStackInstanceRequest method.
1855//    req, resp := client.DescribeStackInstanceRequest(params)
1856//
1857//    err := req.Send()
1858//    if err == nil { // resp is now filled
1859//        fmt.Println(resp)
1860//    }
1861//
1862// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/DescribeStackInstance
1863func (c *CloudFormation) DescribeStackInstanceRequest(input *DescribeStackInstanceInput) (req *request.Request, output *DescribeStackInstanceOutput) {
1864	op := &request.Operation{
1865		Name:       opDescribeStackInstance,
1866		HTTPMethod: "POST",
1867		HTTPPath:   "/",
1868	}
1869
1870	if input == nil {
1871		input = &DescribeStackInstanceInput{}
1872	}
1873
1874	output = &DescribeStackInstanceOutput{}
1875	req = c.newRequest(op, input, output)
1876	return
1877}
1878
1879// DescribeStackInstance API operation for AWS CloudFormation.
1880//
1881// Returns the stack instance that's associated with the specified stack set,
1882// Amazon Web Services account, and Region.
1883//
1884// For a list of stack instances that are associated with a specific stack set,
1885// use ListStackInstances.
1886//
1887// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1888// with awserr.Error's Code and Message methods to get detailed information about
1889// the error.
1890//
1891// See the AWS API reference guide for AWS CloudFormation's
1892// API operation DescribeStackInstance for usage and error information.
1893//
1894// Returned Error Codes:
1895//   * ErrCodeStackSetNotFoundException "StackSetNotFoundException"
1896//   The specified stack set doesn't exist.
1897//
1898//   * ErrCodeStackInstanceNotFoundException "StackInstanceNotFoundException"
1899//   The specified stack instance doesn't exist.
1900//
1901// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/DescribeStackInstance
1902func (c *CloudFormation) DescribeStackInstance(input *DescribeStackInstanceInput) (*DescribeStackInstanceOutput, error) {
1903	req, out := c.DescribeStackInstanceRequest(input)
1904	return out, req.Send()
1905}
1906
1907// DescribeStackInstanceWithContext is the same as DescribeStackInstance with the addition of
1908// the ability to pass a context and additional request options.
1909//
1910// See DescribeStackInstance for details on how to use this API operation.
1911//
1912// The context must be non-nil and will be used for request cancellation. If
1913// the context is nil a panic will occur. In the future the SDK may create
1914// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1915// for more information on using Contexts.
1916func (c *CloudFormation) DescribeStackInstanceWithContext(ctx aws.Context, input *DescribeStackInstanceInput, opts ...request.Option) (*DescribeStackInstanceOutput, error) {
1917	req, out := c.DescribeStackInstanceRequest(input)
1918	req.SetContext(ctx)
1919	req.ApplyOptions(opts...)
1920	return out, req.Send()
1921}
1922
1923const opDescribeStackResource = "DescribeStackResource"
1924
1925// DescribeStackResourceRequest generates a "aws/request.Request" representing the
1926// client's request for the DescribeStackResource operation. The "output" return
1927// value will be populated with the request's response once the request completes
1928// successfully.
1929//
1930// Use "Send" method on the returned Request to send the API call to the service.
1931// the "output" return value is not valid until after Send returns without error.
1932//
1933// See DescribeStackResource for more information on using the DescribeStackResource
1934// API call, and error handling.
1935//
1936// This method is useful when you want to inject custom logic or configuration
1937// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1938//
1939//
1940//    // Example sending a request using the DescribeStackResourceRequest method.
1941//    req, resp := client.DescribeStackResourceRequest(params)
1942//
1943//    err := req.Send()
1944//    if err == nil { // resp is now filled
1945//        fmt.Println(resp)
1946//    }
1947//
1948// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/DescribeStackResource
1949func (c *CloudFormation) DescribeStackResourceRequest(input *DescribeStackResourceInput) (req *request.Request, output *DescribeStackResourceOutput) {
1950	op := &request.Operation{
1951		Name:       opDescribeStackResource,
1952		HTTPMethod: "POST",
1953		HTTPPath:   "/",
1954	}
1955
1956	if input == nil {
1957		input = &DescribeStackResourceInput{}
1958	}
1959
1960	output = &DescribeStackResourceOutput{}
1961	req = c.newRequest(op, input, output)
1962	return
1963}
1964
1965// DescribeStackResource API operation for AWS CloudFormation.
1966//
1967// Returns a description of the specified resource in the specified stack.
1968//
1969// For deleted stacks, DescribeStackResource returns resource information for
1970// up to 90 days after the stack has been deleted.
1971//
1972// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1973// with awserr.Error's Code and Message methods to get detailed information about
1974// the error.
1975//
1976// See the AWS API reference guide for AWS CloudFormation's
1977// API operation DescribeStackResource for usage and error information.
1978// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/DescribeStackResource
1979func (c *CloudFormation) DescribeStackResource(input *DescribeStackResourceInput) (*DescribeStackResourceOutput, error) {
1980	req, out := c.DescribeStackResourceRequest(input)
1981	return out, req.Send()
1982}
1983
1984// DescribeStackResourceWithContext is the same as DescribeStackResource with the addition of
1985// the ability to pass a context and additional request options.
1986//
1987// See DescribeStackResource for details on how to use this API operation.
1988//
1989// The context must be non-nil and will be used for request cancellation. If
1990// the context is nil a panic will occur. In the future the SDK may create
1991// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1992// for more information on using Contexts.
1993func (c *CloudFormation) DescribeStackResourceWithContext(ctx aws.Context, input *DescribeStackResourceInput, opts ...request.Option) (*DescribeStackResourceOutput, error) {
1994	req, out := c.DescribeStackResourceRequest(input)
1995	req.SetContext(ctx)
1996	req.ApplyOptions(opts...)
1997	return out, req.Send()
1998}
1999
2000const opDescribeStackResourceDrifts = "DescribeStackResourceDrifts"
2001
2002// DescribeStackResourceDriftsRequest generates a "aws/request.Request" representing the
2003// client's request for the DescribeStackResourceDrifts operation. The "output" return
2004// value will be populated with the request's response once the request completes
2005// successfully.
2006//
2007// Use "Send" method on the returned Request to send the API call to the service.
2008// the "output" return value is not valid until after Send returns without error.
2009//
2010// See DescribeStackResourceDrifts for more information on using the DescribeStackResourceDrifts
2011// API call, and error handling.
2012//
2013// This method is useful when you want to inject custom logic or configuration
2014// into the SDK's request lifecycle. Such as custom headers, or retry logic.
2015//
2016//
2017//    // Example sending a request using the DescribeStackResourceDriftsRequest method.
2018//    req, resp := client.DescribeStackResourceDriftsRequest(params)
2019//
2020//    err := req.Send()
2021//    if err == nil { // resp is now filled
2022//        fmt.Println(resp)
2023//    }
2024//
2025// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/DescribeStackResourceDrifts
2026func (c *CloudFormation) DescribeStackResourceDriftsRequest(input *DescribeStackResourceDriftsInput) (req *request.Request, output *DescribeStackResourceDriftsOutput) {
2027	op := &request.Operation{
2028		Name:       opDescribeStackResourceDrifts,
2029		HTTPMethod: "POST",
2030		HTTPPath:   "/",
2031		Paginator: &request.Paginator{
2032			InputTokens:     []string{"NextToken"},
2033			OutputTokens:    []string{"NextToken"},
2034			LimitToken:      "MaxResults",
2035			TruncationToken: "",
2036		},
2037	}
2038
2039	if input == nil {
2040		input = &DescribeStackResourceDriftsInput{}
2041	}
2042
2043	output = &DescribeStackResourceDriftsOutput{}
2044	req = c.newRequest(op, input, output)
2045	return
2046}
2047
2048// DescribeStackResourceDrifts API operation for AWS CloudFormation.
2049//
2050// Returns drift information for the resources that have been checked for drift
2051// in the specified stack. This includes actual and expected configuration values
2052// for resources where CloudFormation detects configuration drift.
2053//
2054// For a given stack, there will be one StackResourceDrift for each stack resource
2055// that has been checked for drift. Resources that haven't yet been checked
2056// for drift are not included. Resources that do not currently support drift
2057// detection are not checked, and so not included. For a list of resources that
2058// support drift detection, see Resources that Support Drift Detection (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-stack-drift-resource-list.html).
2059//
2060// Use DetectStackResourceDrift to detect drift on individual resources, or
2061// DetectStackDrift to detect drift on all supported resources for a given stack.
2062//
2063// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
2064// with awserr.Error's Code and Message methods to get detailed information about
2065// the error.
2066//
2067// See the AWS API reference guide for AWS CloudFormation's
2068// API operation DescribeStackResourceDrifts for usage and error information.
2069// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/DescribeStackResourceDrifts
2070func (c *CloudFormation) DescribeStackResourceDrifts(input *DescribeStackResourceDriftsInput) (*DescribeStackResourceDriftsOutput, error) {
2071	req, out := c.DescribeStackResourceDriftsRequest(input)
2072	return out, req.Send()
2073}
2074
2075// DescribeStackResourceDriftsWithContext is the same as DescribeStackResourceDrifts with the addition of
2076// the ability to pass a context and additional request options.
2077//
2078// See DescribeStackResourceDrifts for details on how to use this API operation.
2079//
2080// The context must be non-nil and will be used for request cancellation. If
2081// the context is nil a panic will occur. In the future the SDK may create
2082// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2083// for more information on using Contexts.
2084func (c *CloudFormation) DescribeStackResourceDriftsWithContext(ctx aws.Context, input *DescribeStackResourceDriftsInput, opts ...request.Option) (*DescribeStackResourceDriftsOutput, error) {
2085	req, out := c.DescribeStackResourceDriftsRequest(input)
2086	req.SetContext(ctx)
2087	req.ApplyOptions(opts...)
2088	return out, req.Send()
2089}
2090
2091// DescribeStackResourceDriftsPages iterates over the pages of a DescribeStackResourceDrifts operation,
2092// calling the "fn" function with the response data for each page. To stop
2093// iterating, return false from the fn function.
2094//
2095// See DescribeStackResourceDrifts method for more information on how to use this operation.
2096//
2097// Note: This operation can generate multiple requests to a service.
2098//
2099//    // Example iterating over at most 3 pages of a DescribeStackResourceDrifts operation.
2100//    pageNum := 0
2101//    err := client.DescribeStackResourceDriftsPages(params,
2102//        func(page *cloudformation.DescribeStackResourceDriftsOutput, lastPage bool) bool {
2103//            pageNum++
2104//            fmt.Println(page)
2105//            return pageNum <= 3
2106//        })
2107//
2108func (c *CloudFormation) DescribeStackResourceDriftsPages(input *DescribeStackResourceDriftsInput, fn func(*DescribeStackResourceDriftsOutput, bool) bool) error {
2109	return c.DescribeStackResourceDriftsPagesWithContext(aws.BackgroundContext(), input, fn)
2110}
2111
2112// DescribeStackResourceDriftsPagesWithContext same as DescribeStackResourceDriftsPages except
2113// it takes a Context and allows setting request options on the pages.
2114//
2115// The context must be non-nil and will be used for request cancellation. If
2116// the context is nil a panic will occur. In the future the SDK may create
2117// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2118// for more information on using Contexts.
2119func (c *CloudFormation) DescribeStackResourceDriftsPagesWithContext(ctx aws.Context, input *DescribeStackResourceDriftsInput, fn func(*DescribeStackResourceDriftsOutput, bool) bool, opts ...request.Option) error {
2120	p := request.Pagination{
2121		NewRequest: func() (*request.Request, error) {
2122			var inCpy *DescribeStackResourceDriftsInput
2123			if input != nil {
2124				tmp := *input
2125				inCpy = &tmp
2126			}
2127			req, _ := c.DescribeStackResourceDriftsRequest(inCpy)
2128			req.SetContext(ctx)
2129			req.ApplyOptions(opts...)
2130			return req, nil
2131		},
2132	}
2133
2134	for p.Next() {
2135		if !fn(p.Page().(*DescribeStackResourceDriftsOutput), !p.HasNextPage()) {
2136			break
2137		}
2138	}
2139
2140	return p.Err()
2141}
2142
2143const opDescribeStackResources = "DescribeStackResources"
2144
2145// DescribeStackResourcesRequest generates a "aws/request.Request" representing the
2146// client's request for the DescribeStackResources operation. The "output" return
2147// value will be populated with the request's response once the request completes
2148// successfully.
2149//
2150// Use "Send" method on the returned Request to send the API call to the service.
2151// the "output" return value is not valid until after Send returns without error.
2152//
2153// See DescribeStackResources for more information on using the DescribeStackResources
2154// API call, and error handling.
2155//
2156// This method is useful when you want to inject custom logic or configuration
2157// into the SDK's request lifecycle. Such as custom headers, or retry logic.
2158//
2159//
2160//    // Example sending a request using the DescribeStackResourcesRequest method.
2161//    req, resp := client.DescribeStackResourcesRequest(params)
2162//
2163//    err := req.Send()
2164//    if err == nil { // resp is now filled
2165//        fmt.Println(resp)
2166//    }
2167//
2168// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/DescribeStackResources
2169func (c *CloudFormation) DescribeStackResourcesRequest(input *DescribeStackResourcesInput) (req *request.Request, output *DescribeStackResourcesOutput) {
2170	op := &request.Operation{
2171		Name:       opDescribeStackResources,
2172		HTTPMethod: "POST",
2173		HTTPPath:   "/",
2174	}
2175
2176	if input == nil {
2177		input = &DescribeStackResourcesInput{}
2178	}
2179
2180	output = &DescribeStackResourcesOutput{}
2181	req = c.newRequest(op, input, output)
2182	return
2183}
2184
2185// DescribeStackResources API operation for AWS CloudFormation.
2186//
2187// Returns Amazon Web Services resource descriptions for running and deleted
2188// stacks. If StackName is specified, all the associated resources that are
2189// part of the stack are returned. If PhysicalResourceId is specified, the associated
2190// resources of the stack that the resource belongs to are returned.
2191//
2192// Only the first 100 resources will be returned. If your stack has more resources
2193// than this, you should use ListStackResources instead.
2194//
2195// For deleted stacks, DescribeStackResources returns resource information for
2196// up to 90 days after the stack has been deleted.
2197//
2198// You must specify either StackName or PhysicalResourceId, but not both. In
2199// addition, you can specify LogicalResourceId to filter the returned result.
2200// For more information about resources, the LogicalResourceId and PhysicalResourceId,
2201// go to the CloudFormation User Guide (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/).
2202//
2203// A ValidationError is returned if you specify both StackName and PhysicalResourceId
2204// in the same request.
2205//
2206// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
2207// with awserr.Error's Code and Message methods to get detailed information about
2208// the error.
2209//
2210// See the AWS API reference guide for AWS CloudFormation's
2211// API operation DescribeStackResources for usage and error information.
2212// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/DescribeStackResources
2213func (c *CloudFormation) DescribeStackResources(input *DescribeStackResourcesInput) (*DescribeStackResourcesOutput, error) {
2214	req, out := c.DescribeStackResourcesRequest(input)
2215	return out, req.Send()
2216}
2217
2218// DescribeStackResourcesWithContext is the same as DescribeStackResources with the addition of
2219// the ability to pass a context and additional request options.
2220//
2221// See DescribeStackResources for details on how to use this API operation.
2222//
2223// The context must be non-nil and will be used for request cancellation. If
2224// the context is nil a panic will occur. In the future the SDK may create
2225// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2226// for more information on using Contexts.
2227func (c *CloudFormation) DescribeStackResourcesWithContext(ctx aws.Context, input *DescribeStackResourcesInput, opts ...request.Option) (*DescribeStackResourcesOutput, error) {
2228	req, out := c.DescribeStackResourcesRequest(input)
2229	req.SetContext(ctx)
2230	req.ApplyOptions(opts...)
2231	return out, req.Send()
2232}
2233
2234const opDescribeStackSet = "DescribeStackSet"
2235
2236// DescribeStackSetRequest generates a "aws/request.Request" representing the
2237// client's request for the DescribeStackSet operation. The "output" return
2238// value will be populated with the request's response once the request completes
2239// successfully.
2240//
2241// Use "Send" method on the returned Request to send the API call to the service.
2242// the "output" return value is not valid until after Send returns without error.
2243//
2244// See DescribeStackSet for more information on using the DescribeStackSet
2245// API call, and error handling.
2246//
2247// This method is useful when you want to inject custom logic or configuration
2248// into the SDK's request lifecycle. Such as custom headers, or retry logic.
2249//
2250//
2251//    // Example sending a request using the DescribeStackSetRequest method.
2252//    req, resp := client.DescribeStackSetRequest(params)
2253//
2254//    err := req.Send()
2255//    if err == nil { // resp is now filled
2256//        fmt.Println(resp)
2257//    }
2258//
2259// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/DescribeStackSet
2260func (c *CloudFormation) DescribeStackSetRequest(input *DescribeStackSetInput) (req *request.Request, output *DescribeStackSetOutput) {
2261	op := &request.Operation{
2262		Name:       opDescribeStackSet,
2263		HTTPMethod: "POST",
2264		HTTPPath:   "/",
2265	}
2266
2267	if input == nil {
2268		input = &DescribeStackSetInput{}
2269	}
2270
2271	output = &DescribeStackSetOutput{}
2272	req = c.newRequest(op, input, output)
2273	return
2274}
2275
2276// DescribeStackSet API operation for AWS CloudFormation.
2277//
2278// Returns the description of the specified stack set.
2279//
2280// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
2281// with awserr.Error's Code and Message methods to get detailed information about
2282// the error.
2283//
2284// See the AWS API reference guide for AWS CloudFormation's
2285// API operation DescribeStackSet for usage and error information.
2286//
2287// Returned Error Codes:
2288//   * ErrCodeStackSetNotFoundException "StackSetNotFoundException"
2289//   The specified stack set doesn't exist.
2290//
2291// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/DescribeStackSet
2292func (c *CloudFormation) DescribeStackSet(input *DescribeStackSetInput) (*DescribeStackSetOutput, error) {
2293	req, out := c.DescribeStackSetRequest(input)
2294	return out, req.Send()
2295}
2296
2297// DescribeStackSetWithContext is the same as DescribeStackSet with the addition of
2298// the ability to pass a context and additional request options.
2299//
2300// See DescribeStackSet for details on how to use this API operation.
2301//
2302// The context must be non-nil and will be used for request cancellation. If
2303// the context is nil a panic will occur. In the future the SDK may create
2304// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2305// for more information on using Contexts.
2306func (c *CloudFormation) DescribeStackSetWithContext(ctx aws.Context, input *DescribeStackSetInput, opts ...request.Option) (*DescribeStackSetOutput, error) {
2307	req, out := c.DescribeStackSetRequest(input)
2308	req.SetContext(ctx)
2309	req.ApplyOptions(opts...)
2310	return out, req.Send()
2311}
2312
2313const opDescribeStackSetOperation = "DescribeStackSetOperation"
2314
2315// DescribeStackSetOperationRequest generates a "aws/request.Request" representing the
2316// client's request for the DescribeStackSetOperation operation. The "output" return
2317// value will be populated with the request's response once the request completes
2318// successfully.
2319//
2320// Use "Send" method on the returned Request to send the API call to the service.
2321// the "output" return value is not valid until after Send returns without error.
2322//
2323// See DescribeStackSetOperation for more information on using the DescribeStackSetOperation
2324// API call, and error handling.
2325//
2326// This method is useful when you want to inject custom logic or configuration
2327// into the SDK's request lifecycle. Such as custom headers, or retry logic.
2328//
2329//
2330//    // Example sending a request using the DescribeStackSetOperationRequest method.
2331//    req, resp := client.DescribeStackSetOperationRequest(params)
2332//
2333//    err := req.Send()
2334//    if err == nil { // resp is now filled
2335//        fmt.Println(resp)
2336//    }
2337//
2338// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/DescribeStackSetOperation
2339func (c *CloudFormation) DescribeStackSetOperationRequest(input *DescribeStackSetOperationInput) (req *request.Request, output *DescribeStackSetOperationOutput) {
2340	op := &request.Operation{
2341		Name:       opDescribeStackSetOperation,
2342		HTTPMethod: "POST",
2343		HTTPPath:   "/",
2344	}
2345
2346	if input == nil {
2347		input = &DescribeStackSetOperationInput{}
2348	}
2349
2350	output = &DescribeStackSetOperationOutput{}
2351	req = c.newRequest(op, input, output)
2352	return
2353}
2354
2355// DescribeStackSetOperation API operation for AWS CloudFormation.
2356//
2357// Returns the description of the specified stack set operation.
2358//
2359// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
2360// with awserr.Error's Code and Message methods to get detailed information about
2361// the error.
2362//
2363// See the AWS API reference guide for AWS CloudFormation's
2364// API operation DescribeStackSetOperation for usage and error information.
2365//
2366// Returned Error Codes:
2367//   * ErrCodeStackSetNotFoundException "StackSetNotFoundException"
2368//   The specified stack set doesn't exist.
2369//
2370//   * ErrCodeOperationNotFoundException "OperationNotFoundException"
2371//   The specified ID refers to an operation that doesn't exist.
2372//
2373// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/DescribeStackSetOperation
2374func (c *CloudFormation) DescribeStackSetOperation(input *DescribeStackSetOperationInput) (*DescribeStackSetOperationOutput, error) {
2375	req, out := c.DescribeStackSetOperationRequest(input)
2376	return out, req.Send()
2377}
2378
2379// DescribeStackSetOperationWithContext is the same as DescribeStackSetOperation with the addition of
2380// the ability to pass a context and additional request options.
2381//
2382// See DescribeStackSetOperation for details on how to use this API operation.
2383//
2384// The context must be non-nil and will be used for request cancellation. If
2385// the context is nil a panic will occur. In the future the SDK may create
2386// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2387// for more information on using Contexts.
2388func (c *CloudFormation) DescribeStackSetOperationWithContext(ctx aws.Context, input *DescribeStackSetOperationInput, opts ...request.Option) (*DescribeStackSetOperationOutput, error) {
2389	req, out := c.DescribeStackSetOperationRequest(input)
2390	req.SetContext(ctx)
2391	req.ApplyOptions(opts...)
2392	return out, req.Send()
2393}
2394
2395const opDescribeStacks = "DescribeStacks"
2396
2397// DescribeStacksRequest generates a "aws/request.Request" representing the
2398// client's request for the DescribeStacks operation. The "output" return
2399// value will be populated with the request's response once the request completes
2400// successfully.
2401//
2402// Use "Send" method on the returned Request to send the API call to the service.
2403// the "output" return value is not valid until after Send returns without error.
2404//
2405// See DescribeStacks for more information on using the DescribeStacks
2406// API call, and error handling.
2407//
2408// This method is useful when you want to inject custom logic or configuration
2409// into the SDK's request lifecycle. Such as custom headers, or retry logic.
2410//
2411//
2412//    // Example sending a request using the DescribeStacksRequest method.
2413//    req, resp := client.DescribeStacksRequest(params)
2414//
2415//    err := req.Send()
2416//    if err == nil { // resp is now filled
2417//        fmt.Println(resp)
2418//    }
2419//
2420// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/DescribeStacks
2421func (c *CloudFormation) DescribeStacksRequest(input *DescribeStacksInput) (req *request.Request, output *DescribeStacksOutput) {
2422	op := &request.Operation{
2423		Name:       opDescribeStacks,
2424		HTTPMethod: "POST",
2425		HTTPPath:   "/",
2426		Paginator: &request.Paginator{
2427			InputTokens:     []string{"NextToken"},
2428			OutputTokens:    []string{"NextToken"},
2429			LimitToken:      "",
2430			TruncationToken: "",
2431		},
2432	}
2433
2434	if input == nil {
2435		input = &DescribeStacksInput{}
2436	}
2437
2438	output = &DescribeStacksOutput{}
2439	req = c.newRequest(op, input, output)
2440	return
2441}
2442
2443// DescribeStacks API operation for AWS CloudFormation.
2444//
2445// Returns the description for the specified stack; if no stack name was specified,
2446// then it returns the description for all the stacks created.
2447//
2448// If the stack does not exist, an ValidationError is returned.
2449//
2450// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
2451// with awserr.Error's Code and Message methods to get detailed information about
2452// the error.
2453//
2454// See the AWS API reference guide for AWS CloudFormation's
2455// API operation DescribeStacks for usage and error information.
2456// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/DescribeStacks
2457func (c *CloudFormation) DescribeStacks(input *DescribeStacksInput) (*DescribeStacksOutput, error) {
2458	req, out := c.DescribeStacksRequest(input)
2459	return out, req.Send()
2460}
2461
2462// DescribeStacksWithContext is the same as DescribeStacks with the addition of
2463// the ability to pass a context and additional request options.
2464//
2465// See DescribeStacks for details on how to use this API operation.
2466//
2467// The context must be non-nil and will be used for request cancellation. If
2468// the context is nil a panic will occur. In the future the SDK may create
2469// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2470// for more information on using Contexts.
2471func (c *CloudFormation) DescribeStacksWithContext(ctx aws.Context, input *DescribeStacksInput, opts ...request.Option) (*DescribeStacksOutput, error) {
2472	req, out := c.DescribeStacksRequest(input)
2473	req.SetContext(ctx)
2474	req.ApplyOptions(opts...)
2475	return out, req.Send()
2476}
2477
2478// DescribeStacksPages iterates over the pages of a DescribeStacks operation,
2479// calling the "fn" function with the response data for each page. To stop
2480// iterating, return false from the fn function.
2481//
2482// See DescribeStacks method for more information on how to use this operation.
2483//
2484// Note: This operation can generate multiple requests to a service.
2485//
2486//    // Example iterating over at most 3 pages of a DescribeStacks operation.
2487//    pageNum := 0
2488//    err := client.DescribeStacksPages(params,
2489//        func(page *cloudformation.DescribeStacksOutput, lastPage bool) bool {
2490//            pageNum++
2491//            fmt.Println(page)
2492//            return pageNum <= 3
2493//        })
2494//
2495func (c *CloudFormation) DescribeStacksPages(input *DescribeStacksInput, fn func(*DescribeStacksOutput, bool) bool) error {
2496	return c.DescribeStacksPagesWithContext(aws.BackgroundContext(), input, fn)
2497}
2498
2499// DescribeStacksPagesWithContext same as DescribeStacksPages except
2500// it takes a Context and allows setting request options on the pages.
2501//
2502// The context must be non-nil and will be used for request cancellation. If
2503// the context is nil a panic will occur. In the future the SDK may create
2504// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2505// for more information on using Contexts.
2506func (c *CloudFormation) DescribeStacksPagesWithContext(ctx aws.Context, input *DescribeStacksInput, fn func(*DescribeStacksOutput, bool) bool, opts ...request.Option) error {
2507	p := request.Pagination{
2508		NewRequest: func() (*request.Request, error) {
2509			var inCpy *DescribeStacksInput
2510			if input != nil {
2511				tmp := *input
2512				inCpy = &tmp
2513			}
2514			req, _ := c.DescribeStacksRequest(inCpy)
2515			req.SetContext(ctx)
2516			req.ApplyOptions(opts...)
2517			return req, nil
2518		},
2519	}
2520
2521	for p.Next() {
2522		if !fn(p.Page().(*DescribeStacksOutput), !p.HasNextPage()) {
2523			break
2524		}
2525	}
2526
2527	return p.Err()
2528}
2529
2530const opDescribeType = "DescribeType"
2531
2532// DescribeTypeRequest generates a "aws/request.Request" representing the
2533// client's request for the DescribeType operation. The "output" return
2534// value will be populated with the request's response once the request completes
2535// successfully.
2536//
2537// Use "Send" method on the returned Request to send the API call to the service.
2538// the "output" return value is not valid until after Send returns without error.
2539//
2540// See DescribeType for more information on using the DescribeType
2541// API call, and error handling.
2542//
2543// This method is useful when you want to inject custom logic or configuration
2544// into the SDK's request lifecycle. Such as custom headers, or retry logic.
2545//
2546//
2547//    // Example sending a request using the DescribeTypeRequest method.
2548//    req, resp := client.DescribeTypeRequest(params)
2549//
2550//    err := req.Send()
2551//    if err == nil { // resp is now filled
2552//        fmt.Println(resp)
2553//    }
2554//
2555// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/DescribeType
2556func (c *CloudFormation) DescribeTypeRequest(input *DescribeTypeInput) (req *request.Request, output *DescribeTypeOutput) {
2557	op := &request.Operation{
2558		Name:       opDescribeType,
2559		HTTPMethod: "POST",
2560		HTTPPath:   "/",
2561	}
2562
2563	if input == nil {
2564		input = &DescribeTypeInput{}
2565	}
2566
2567	output = &DescribeTypeOutput{}
2568	req = c.newRequest(op, input, output)
2569	return
2570}
2571
2572// DescribeType API operation for AWS CloudFormation.
2573//
2574// Returns detailed information about an extension that has been registered.
2575//
2576// If you specify a VersionId, DescribeType returns information about that specific
2577// extension version. Otherwise, it returns information about the default extension
2578// version.
2579//
2580// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
2581// with awserr.Error's Code and Message methods to get detailed information about
2582// the error.
2583//
2584// See the AWS API reference guide for AWS CloudFormation's
2585// API operation DescribeType for usage and error information.
2586//
2587// Returned Error Codes:
2588//   * ErrCodeCFNRegistryException "CFNRegistryException"
2589//   An error occurred during a CloudFormation registry operation.
2590//
2591//   * ErrCodeTypeNotFoundException "TypeNotFoundException"
2592//   The specified extension does not exist in the CloudFormation registry.
2593//
2594// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/DescribeType
2595func (c *CloudFormation) DescribeType(input *DescribeTypeInput) (*DescribeTypeOutput, error) {
2596	req, out := c.DescribeTypeRequest(input)
2597	return out, req.Send()
2598}
2599
2600// DescribeTypeWithContext is the same as DescribeType with the addition of
2601// the ability to pass a context and additional request options.
2602//
2603// See DescribeType for details on how to use this API operation.
2604//
2605// The context must be non-nil and will be used for request cancellation. If
2606// the context is nil a panic will occur. In the future the SDK may create
2607// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2608// for more information on using Contexts.
2609func (c *CloudFormation) DescribeTypeWithContext(ctx aws.Context, input *DescribeTypeInput, opts ...request.Option) (*DescribeTypeOutput, error) {
2610	req, out := c.DescribeTypeRequest(input)
2611	req.SetContext(ctx)
2612	req.ApplyOptions(opts...)
2613	return out, req.Send()
2614}
2615
2616const opDescribeTypeRegistration = "DescribeTypeRegistration"
2617
2618// DescribeTypeRegistrationRequest generates a "aws/request.Request" representing the
2619// client's request for the DescribeTypeRegistration operation. The "output" return
2620// value will be populated with the request's response once the request completes
2621// successfully.
2622//
2623// Use "Send" method on the returned Request to send the API call to the service.
2624// the "output" return value is not valid until after Send returns without error.
2625//
2626// See DescribeTypeRegistration for more information on using the DescribeTypeRegistration
2627// API call, and error handling.
2628//
2629// This method is useful when you want to inject custom logic or configuration
2630// into the SDK's request lifecycle. Such as custom headers, or retry logic.
2631//
2632//
2633//    // Example sending a request using the DescribeTypeRegistrationRequest method.
2634//    req, resp := client.DescribeTypeRegistrationRequest(params)
2635//
2636//    err := req.Send()
2637//    if err == nil { // resp is now filled
2638//        fmt.Println(resp)
2639//    }
2640//
2641// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/DescribeTypeRegistration
2642func (c *CloudFormation) DescribeTypeRegistrationRequest(input *DescribeTypeRegistrationInput) (req *request.Request, output *DescribeTypeRegistrationOutput) {
2643	op := &request.Operation{
2644		Name:       opDescribeTypeRegistration,
2645		HTTPMethod: "POST",
2646		HTTPPath:   "/",
2647	}
2648
2649	if input == nil {
2650		input = &DescribeTypeRegistrationInput{}
2651	}
2652
2653	output = &DescribeTypeRegistrationOutput{}
2654	req = c.newRequest(op, input, output)
2655	return
2656}
2657
2658// DescribeTypeRegistration API operation for AWS CloudFormation.
2659//
2660// Returns information about an extension's registration, including its current
2661// status and type and version identifiers.
2662//
2663// When you initiate a registration request using RegisterType , you can then
2664// use DescribeTypeRegistration to monitor the progress of that registration
2665// request.
2666//
2667// Once the registration request has completed, use DescribeType to return detailed
2668// information about an extension.
2669//
2670// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
2671// with awserr.Error's Code and Message methods to get detailed information about
2672// the error.
2673//
2674// See the AWS API reference guide for AWS CloudFormation's
2675// API operation DescribeTypeRegistration for usage and error information.
2676//
2677// Returned Error Codes:
2678//   * ErrCodeCFNRegistryException "CFNRegistryException"
2679//   An error occurred during a CloudFormation registry operation.
2680//
2681// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/DescribeTypeRegistration
2682func (c *CloudFormation) DescribeTypeRegistration(input *DescribeTypeRegistrationInput) (*DescribeTypeRegistrationOutput, error) {
2683	req, out := c.DescribeTypeRegistrationRequest(input)
2684	return out, req.Send()
2685}
2686
2687// DescribeTypeRegistrationWithContext is the same as DescribeTypeRegistration with the addition of
2688// the ability to pass a context and additional request options.
2689//
2690// See DescribeTypeRegistration for details on how to use this API operation.
2691//
2692// The context must be non-nil and will be used for request cancellation. If
2693// the context is nil a panic will occur. In the future the SDK may create
2694// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2695// for more information on using Contexts.
2696func (c *CloudFormation) DescribeTypeRegistrationWithContext(ctx aws.Context, input *DescribeTypeRegistrationInput, opts ...request.Option) (*DescribeTypeRegistrationOutput, error) {
2697	req, out := c.DescribeTypeRegistrationRequest(input)
2698	req.SetContext(ctx)
2699	req.ApplyOptions(opts...)
2700	return out, req.Send()
2701}
2702
2703const opDetectStackDrift = "DetectStackDrift"
2704
2705// DetectStackDriftRequest generates a "aws/request.Request" representing the
2706// client's request for the DetectStackDrift operation. The "output" return
2707// value will be populated with the request's response once the request completes
2708// successfully.
2709//
2710// Use "Send" method on the returned Request to send the API call to the service.
2711// the "output" return value is not valid until after Send returns without error.
2712//
2713// See DetectStackDrift for more information on using the DetectStackDrift
2714// API call, and error handling.
2715//
2716// This method is useful when you want to inject custom logic or configuration
2717// into the SDK's request lifecycle. Such as custom headers, or retry logic.
2718//
2719//
2720//    // Example sending a request using the DetectStackDriftRequest method.
2721//    req, resp := client.DetectStackDriftRequest(params)
2722//
2723//    err := req.Send()
2724//    if err == nil { // resp is now filled
2725//        fmt.Println(resp)
2726//    }
2727//
2728// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/DetectStackDrift
2729func (c *CloudFormation) DetectStackDriftRequest(input *DetectStackDriftInput) (req *request.Request, output *DetectStackDriftOutput) {
2730	op := &request.Operation{
2731		Name:       opDetectStackDrift,
2732		HTTPMethod: "POST",
2733		HTTPPath:   "/",
2734	}
2735
2736	if input == nil {
2737		input = &DetectStackDriftInput{}
2738	}
2739
2740	output = &DetectStackDriftOutput{}
2741	req = c.newRequest(op, input, output)
2742	return
2743}
2744
2745// DetectStackDrift API operation for AWS CloudFormation.
2746//
2747// Detects whether a stack's actual configuration differs, or has drifted, from
2748// it's expected configuration, as defined in the stack template and any values
2749// specified as template parameters. For each resource in the stack that supports
2750// drift detection, CloudFormation compares the actual configuration of the
2751// resource with its expected template configuration. Only resource properties
2752// explicitly defined in the stack template are checked for drift. A stack is
2753// considered to have drifted if one or more of its resources differ from their
2754// expected template configurations. For more information, see Detecting Unregulated
2755// Configuration Changes to Stacks and Resources (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-stack-drift.html).
2756//
2757// Use DetectStackDrift to detect drift on all supported resources for a given
2758// stack, or DetectStackResourceDrift to detect drift on individual resources.
2759//
2760// For a list of stack resources that currently support drift detection, see
2761// Resources that Support Drift Detection (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-stack-drift-resource-list.html).
2762//
2763// DetectStackDrift can take up to several minutes, depending on the number
2764// of resources contained within the stack. Use DescribeStackDriftDetectionStatus
2765// to monitor the progress of a detect stack drift operation. Once the drift
2766// detection operation has completed, use DescribeStackResourceDrifts to return
2767// drift information about the stack and its resources.
2768//
2769// When detecting drift on a stack, CloudFormation does not detect drift on
2770// any nested stacks belonging to that stack. Perform DetectStackDrift directly
2771// on the nested stack itself.
2772//
2773// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
2774// with awserr.Error's Code and Message methods to get detailed information about
2775// the error.
2776//
2777// See the AWS API reference guide for AWS CloudFormation's
2778// API operation DetectStackDrift for usage and error information.
2779// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/DetectStackDrift
2780func (c *CloudFormation) DetectStackDrift(input *DetectStackDriftInput) (*DetectStackDriftOutput, error) {
2781	req, out := c.DetectStackDriftRequest(input)
2782	return out, req.Send()
2783}
2784
2785// DetectStackDriftWithContext is the same as DetectStackDrift with the addition of
2786// the ability to pass a context and additional request options.
2787//
2788// See DetectStackDrift for details on how to use this API operation.
2789//
2790// The context must be non-nil and will be used for request cancellation. If
2791// the context is nil a panic will occur. In the future the SDK may create
2792// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2793// for more information on using Contexts.
2794func (c *CloudFormation) DetectStackDriftWithContext(ctx aws.Context, input *DetectStackDriftInput, opts ...request.Option) (*DetectStackDriftOutput, error) {
2795	req, out := c.DetectStackDriftRequest(input)
2796	req.SetContext(ctx)
2797	req.ApplyOptions(opts...)
2798	return out, req.Send()
2799}
2800
2801const opDetectStackResourceDrift = "DetectStackResourceDrift"
2802
2803// DetectStackResourceDriftRequest generates a "aws/request.Request" representing the
2804// client's request for the DetectStackResourceDrift operation. The "output" return
2805// value will be populated with the request's response once the request completes
2806// successfully.
2807//
2808// Use "Send" method on the returned Request to send the API call to the service.
2809// the "output" return value is not valid until after Send returns without error.
2810//
2811// See DetectStackResourceDrift for more information on using the DetectStackResourceDrift
2812// API call, and error handling.
2813//
2814// This method is useful when you want to inject custom logic or configuration
2815// into the SDK's request lifecycle. Such as custom headers, or retry logic.
2816//
2817//
2818//    // Example sending a request using the DetectStackResourceDriftRequest method.
2819//    req, resp := client.DetectStackResourceDriftRequest(params)
2820//
2821//    err := req.Send()
2822//    if err == nil { // resp is now filled
2823//        fmt.Println(resp)
2824//    }
2825//
2826// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/DetectStackResourceDrift
2827func (c *CloudFormation) DetectStackResourceDriftRequest(input *DetectStackResourceDriftInput) (req *request.Request, output *DetectStackResourceDriftOutput) {
2828	op := &request.Operation{
2829		Name:       opDetectStackResourceDrift,
2830		HTTPMethod: "POST",
2831		HTTPPath:   "/",
2832	}
2833
2834	if input == nil {
2835		input = &DetectStackResourceDriftInput{}
2836	}
2837
2838	output = &DetectStackResourceDriftOutput{}
2839	req = c.newRequest(op, input, output)
2840	return
2841}
2842
2843// DetectStackResourceDrift API operation for AWS CloudFormation.
2844//
2845// Returns information about whether a resource's actual configuration differs,
2846// or has drifted, from it's expected configuration, as defined in the stack
2847// template and any values specified as template parameters. This information
2848// includes actual and expected property values for resources in which CloudFormation
2849// detects drift. Only resource properties explicitly defined in the stack template
2850// are checked for drift. For more information about stack and resource drift,
2851// see Detecting Unregulated Configuration Changes to Stacks and Resources (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-stack-drift.html).
2852//
2853// Use DetectStackResourceDrift to detect drift on individual resources, or
2854// DetectStackDrift to detect drift on all resources in a given stack that support
2855// drift detection.
2856//
2857// Resources that do not currently support drift detection cannot be checked.
2858// For a list of resources that support drift detection, see Resources that
2859// Support Drift Detection (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-stack-drift-resource-list.html).
2860//
2861// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
2862// with awserr.Error's Code and Message methods to get detailed information about
2863// the error.
2864//
2865// See the AWS API reference guide for AWS CloudFormation's
2866// API operation DetectStackResourceDrift for usage and error information.
2867// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/DetectStackResourceDrift
2868func (c *CloudFormation) DetectStackResourceDrift(input *DetectStackResourceDriftInput) (*DetectStackResourceDriftOutput, error) {
2869	req, out := c.DetectStackResourceDriftRequest(input)
2870	return out, req.Send()
2871}
2872
2873// DetectStackResourceDriftWithContext is the same as DetectStackResourceDrift with the addition of
2874// the ability to pass a context and additional request options.
2875//
2876// See DetectStackResourceDrift for details on how to use this API operation.
2877//
2878// The context must be non-nil and will be used for request cancellation. If
2879// the context is nil a panic will occur. In the future the SDK may create
2880// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2881// for more information on using Contexts.
2882func (c *CloudFormation) DetectStackResourceDriftWithContext(ctx aws.Context, input *DetectStackResourceDriftInput, opts ...request.Option) (*DetectStackResourceDriftOutput, error) {
2883	req, out := c.DetectStackResourceDriftRequest(input)
2884	req.SetContext(ctx)
2885	req.ApplyOptions(opts...)
2886	return out, req.Send()
2887}
2888
2889const opDetectStackSetDrift = "DetectStackSetDrift"
2890
2891// DetectStackSetDriftRequest generates a "aws/request.Request" representing the
2892// client's request for the DetectStackSetDrift operation. The "output" return
2893// value will be populated with the request's response once the request completes
2894// successfully.
2895//
2896// Use "Send" method on the returned Request to send the API call to the service.
2897// the "output" return value is not valid until after Send returns without error.
2898//
2899// See DetectStackSetDrift for more information on using the DetectStackSetDrift
2900// API call, and error handling.
2901//
2902// This method is useful when you want to inject custom logic or configuration
2903// into the SDK's request lifecycle. Such as custom headers, or retry logic.
2904//
2905//
2906//    // Example sending a request using the DetectStackSetDriftRequest method.
2907//    req, resp := client.DetectStackSetDriftRequest(params)
2908//
2909//    err := req.Send()
2910//    if err == nil { // resp is now filled
2911//        fmt.Println(resp)
2912//    }
2913//
2914// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/DetectStackSetDrift
2915func (c *CloudFormation) DetectStackSetDriftRequest(input *DetectStackSetDriftInput) (req *request.Request, output *DetectStackSetDriftOutput) {
2916	op := &request.Operation{
2917		Name:       opDetectStackSetDrift,
2918		HTTPMethod: "POST",
2919		HTTPPath:   "/",
2920	}
2921
2922	if input == nil {
2923		input = &DetectStackSetDriftInput{}
2924	}
2925
2926	output = &DetectStackSetDriftOutput{}
2927	req = c.newRequest(op, input, output)
2928	return
2929}
2930
2931// DetectStackSetDrift API operation for AWS CloudFormation.
2932//
2933// Detect drift on a stack set. When CloudFormation performs drift detection
2934// on a stack set, it performs drift detection on the stack associated with
2935// each stack instance in the stack set. For more information, see How CloudFormation
2936// Performs Drift Detection on a Stack Set (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/stacksets-drift.html).
2937//
2938// DetectStackSetDrift returns the OperationId of the stack set drift detection
2939// operation. Use this operation id with DescribeStackSetOperation to monitor
2940// the progress of the drift detection operation. The drift detection operation
2941// may take some time, depending on the number of stack instances included in
2942// the stack set, as well as the number of resources included in each stack.
2943//
2944// Once the operation has completed, use the following actions to return drift
2945// information:
2946//
2947//    * Use DescribeStackSet to return detailed information about the stack
2948//    set, including detailed information about the last completed drift operation
2949//    performed on the stack set. (Information about drift operations that are
2950//    in progress is not included.)
2951//
2952//    * Use ListStackInstances to return a list of stack instances belonging
2953//    to the stack set, including the drift status and last drift time checked
2954//    of each instance.
2955//
2956//    * Use DescribeStackInstance to return detailed information about a specific
2957//    stack instance, including its drift status and last drift time checked.
2958//
2959// For more information on performing a drift detection operation on a stack
2960// set, see Detecting Unmanaged Changes in Stack Sets (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/stacksets-drift.html).
2961//
2962// You can only run a single drift detection operation on a given stack set
2963// at one time.
2964//
2965// To stop a drift detection stack set operation, use StopStackSetOperation .
2966//
2967// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
2968// with awserr.Error's Code and Message methods to get detailed information about
2969// the error.
2970//
2971// See the AWS API reference guide for AWS CloudFormation's
2972// API operation DetectStackSetDrift for usage and error information.
2973//
2974// Returned Error Codes:
2975//   * ErrCodeInvalidOperationException "InvalidOperationException"
2976//   The specified operation isn't valid.
2977//
2978//   * ErrCodeOperationInProgressException "OperationInProgressException"
2979//   Another operation is currently in progress for this stack set. Only one operation
2980//   can be performed for a stack set at a given time.
2981//
2982//   * ErrCodeStackSetNotFoundException "StackSetNotFoundException"
2983//   The specified stack set doesn't exist.
2984//
2985// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/DetectStackSetDrift
2986func (c *CloudFormation) DetectStackSetDrift(input *DetectStackSetDriftInput) (*DetectStackSetDriftOutput, error) {
2987	req, out := c.DetectStackSetDriftRequest(input)
2988	return out, req.Send()
2989}
2990
2991// DetectStackSetDriftWithContext is the same as DetectStackSetDrift with the addition of
2992// the ability to pass a context and additional request options.
2993//
2994// See DetectStackSetDrift for details on how to use this API operation.
2995//
2996// The context must be non-nil and will be used for request cancellation. If
2997// the context is nil a panic will occur. In the future the SDK may create
2998// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2999// for more information on using Contexts.
3000func (c *CloudFormation) DetectStackSetDriftWithContext(ctx aws.Context, input *DetectStackSetDriftInput, opts ...request.Option) (*DetectStackSetDriftOutput, error) {
3001	req, out := c.DetectStackSetDriftRequest(input)
3002	req.SetContext(ctx)
3003	req.ApplyOptions(opts...)
3004	return out, req.Send()
3005}
3006
3007const opEstimateTemplateCost = "EstimateTemplateCost"
3008
3009// EstimateTemplateCostRequest generates a "aws/request.Request" representing the
3010// client's request for the EstimateTemplateCost operation. The "output" return
3011// value will be populated with the request's response once the request completes
3012// successfully.
3013//
3014// Use "Send" method on the returned Request to send the API call to the service.
3015// the "output" return value is not valid until after Send returns without error.
3016//
3017// See EstimateTemplateCost for more information on using the EstimateTemplateCost
3018// API call, and error handling.
3019//
3020// This method is useful when you want to inject custom logic or configuration
3021// into the SDK's request lifecycle. Such as custom headers, or retry logic.
3022//
3023//
3024//    // Example sending a request using the EstimateTemplateCostRequest method.
3025//    req, resp := client.EstimateTemplateCostRequest(params)
3026//
3027//    err := req.Send()
3028//    if err == nil { // resp is now filled
3029//        fmt.Println(resp)
3030//    }
3031//
3032// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/EstimateTemplateCost
3033func (c *CloudFormation) EstimateTemplateCostRequest(input *EstimateTemplateCostInput) (req *request.Request, output *EstimateTemplateCostOutput) {
3034	op := &request.Operation{
3035		Name:       opEstimateTemplateCost,
3036		HTTPMethod: "POST",
3037		HTTPPath:   "/",
3038	}
3039
3040	if input == nil {
3041		input = &EstimateTemplateCostInput{}
3042	}
3043
3044	output = &EstimateTemplateCostOutput{}
3045	req = c.newRequest(op, input, output)
3046	return
3047}
3048
3049// EstimateTemplateCost API operation for AWS CloudFormation.
3050//
3051// Returns the estimated monthly cost of a template. The return value is an
3052// Amazon Web Services Simple Monthly Calculator URL with a query string that
3053// describes the resources required to run the template.
3054//
3055// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
3056// with awserr.Error's Code and Message methods to get detailed information about
3057// the error.
3058//
3059// See the AWS API reference guide for AWS CloudFormation's
3060// API operation EstimateTemplateCost for usage and error information.
3061// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/EstimateTemplateCost
3062func (c *CloudFormation) EstimateTemplateCost(input *EstimateTemplateCostInput) (*EstimateTemplateCostOutput, error) {
3063	req, out := c.EstimateTemplateCostRequest(input)
3064	return out, req.Send()
3065}
3066
3067// EstimateTemplateCostWithContext is the same as EstimateTemplateCost with the addition of
3068// the ability to pass a context and additional request options.
3069//
3070// See EstimateTemplateCost for details on how to use this API operation.
3071//
3072// The context must be non-nil and will be used for request cancellation. If
3073// the context is nil a panic will occur. In the future the SDK may create
3074// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3075// for more information on using Contexts.
3076func (c *CloudFormation) EstimateTemplateCostWithContext(ctx aws.Context, input *EstimateTemplateCostInput, opts ...request.Option) (*EstimateTemplateCostOutput, error) {
3077	req, out := c.EstimateTemplateCostRequest(input)
3078	req.SetContext(ctx)
3079	req.ApplyOptions(opts...)
3080	return out, req.Send()
3081}
3082
3083const opExecuteChangeSet = "ExecuteChangeSet"
3084
3085// ExecuteChangeSetRequest generates a "aws/request.Request" representing the
3086// client's request for the ExecuteChangeSet operation. The "output" return
3087// value will be populated with the request's response once the request completes
3088// successfully.
3089//
3090// Use "Send" method on the returned Request to send the API call to the service.
3091// the "output" return value is not valid until after Send returns without error.
3092//
3093// See ExecuteChangeSet for more information on using the ExecuteChangeSet
3094// API call, and error handling.
3095//
3096// This method is useful when you want to inject custom logic or configuration
3097// into the SDK's request lifecycle. Such as custom headers, or retry logic.
3098//
3099//
3100//    // Example sending a request using the ExecuteChangeSetRequest method.
3101//    req, resp := client.ExecuteChangeSetRequest(params)
3102//
3103//    err := req.Send()
3104//    if err == nil { // resp is now filled
3105//        fmt.Println(resp)
3106//    }
3107//
3108// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/ExecuteChangeSet
3109func (c *CloudFormation) ExecuteChangeSetRequest(input *ExecuteChangeSetInput) (req *request.Request, output *ExecuteChangeSetOutput) {
3110	op := &request.Operation{
3111		Name:       opExecuteChangeSet,
3112		HTTPMethod: "POST",
3113		HTTPPath:   "/",
3114	}
3115
3116	if input == nil {
3117		input = &ExecuteChangeSetInput{}
3118	}
3119
3120	output = &ExecuteChangeSetOutput{}
3121	req = c.newRequest(op, input, output)
3122	req.Handlers.Unmarshal.Swap(query.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
3123	return
3124}
3125
3126// ExecuteChangeSet API operation for AWS CloudFormation.
3127//
3128// Updates a stack using the input information that was provided when the specified
3129// change set was created. After the call successfully completes, CloudFormation
3130// starts updating the stack. Use the DescribeStacks action to view the status
3131// of the update.
3132//
3133// When you execute a change set, CloudFormation deletes all other change sets
3134// associated with the stack because they aren't valid for the updated stack.
3135//
3136// If a stack policy is associated with the stack, CloudFormation enforces the
3137// policy during the update. You can't specify a temporary stack policy that
3138// overrides the current policy.
3139//
3140// To create a change set for the entire stack hierachy, IncludeNestedStacks
3141// must have been set to True.
3142//
3143// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
3144// with awserr.Error's Code and Message methods to get detailed information about
3145// the error.
3146//
3147// See the AWS API reference guide for AWS CloudFormation's
3148// API operation ExecuteChangeSet for usage and error information.
3149//
3150// Returned Error Codes:
3151//   * ErrCodeInvalidChangeSetStatusException "InvalidChangeSetStatus"
3152//   The specified change set can't be used to update the stack. For example,
3153//   the change set status might be CREATE_IN_PROGRESS, or the stack status might
3154//   be UPDATE_IN_PROGRESS.
3155//
3156//   * ErrCodeChangeSetNotFoundException "ChangeSetNotFound"
3157//   The specified change set name or ID doesn't exit. To view valid change sets
3158//   for a stack, use the ListChangeSets action.
3159//
3160//   * ErrCodeInsufficientCapabilitiesException "InsufficientCapabilitiesException"
3161//   The template contains resources with capabilities that weren't specified
3162//   in the Capabilities parameter.
3163//
3164//   * ErrCodeTokenAlreadyExistsException "TokenAlreadyExistsException"
3165//   A client request token already exists.
3166//
3167// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/ExecuteChangeSet
3168func (c *CloudFormation) ExecuteChangeSet(input *ExecuteChangeSetInput) (*ExecuteChangeSetOutput, error) {
3169	req, out := c.ExecuteChangeSetRequest(input)
3170	return out, req.Send()
3171}
3172
3173// ExecuteChangeSetWithContext is the same as ExecuteChangeSet with the addition of
3174// the ability to pass a context and additional request options.
3175//
3176// See ExecuteChangeSet for details on how to use this API operation.
3177//
3178// The context must be non-nil and will be used for request cancellation. If
3179// the context is nil a panic will occur. In the future the SDK may create
3180// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3181// for more information on using Contexts.
3182func (c *CloudFormation) ExecuteChangeSetWithContext(ctx aws.Context, input *ExecuteChangeSetInput, opts ...request.Option) (*ExecuteChangeSetOutput, error) {
3183	req, out := c.ExecuteChangeSetRequest(input)
3184	req.SetContext(ctx)
3185	req.ApplyOptions(opts...)
3186	return out, req.Send()
3187}
3188
3189const opGetStackPolicy = "GetStackPolicy"
3190
3191// GetStackPolicyRequest generates a "aws/request.Request" representing the
3192// client's request for the GetStackPolicy operation. The "output" return
3193// value will be populated with the request's response once the request completes
3194// successfully.
3195//
3196// Use "Send" method on the returned Request to send the API call to the service.
3197// the "output" return value is not valid until after Send returns without error.
3198//
3199// See GetStackPolicy for more information on using the GetStackPolicy
3200// API call, and error handling.
3201//
3202// This method is useful when you want to inject custom logic or configuration
3203// into the SDK's request lifecycle. Such as custom headers, or retry logic.
3204//
3205//
3206//    // Example sending a request using the GetStackPolicyRequest method.
3207//    req, resp := client.GetStackPolicyRequest(params)
3208//
3209//    err := req.Send()
3210//    if err == nil { // resp is now filled
3211//        fmt.Println(resp)
3212//    }
3213//
3214// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/GetStackPolicy
3215func (c *CloudFormation) GetStackPolicyRequest(input *GetStackPolicyInput) (req *request.Request, output *GetStackPolicyOutput) {
3216	op := &request.Operation{
3217		Name:       opGetStackPolicy,
3218		HTTPMethod: "POST",
3219		HTTPPath:   "/",
3220	}
3221
3222	if input == nil {
3223		input = &GetStackPolicyInput{}
3224	}
3225
3226	output = &GetStackPolicyOutput{}
3227	req = c.newRequest(op, input, output)
3228	return
3229}
3230
3231// GetStackPolicy API operation for AWS CloudFormation.
3232//
3233// Returns the stack policy for a specified stack. If a stack doesn't have a
3234// policy, a null value is returned.
3235//
3236// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
3237// with awserr.Error's Code and Message methods to get detailed information about
3238// the error.
3239//
3240// See the AWS API reference guide for AWS CloudFormation's
3241// API operation GetStackPolicy for usage and error information.
3242// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/GetStackPolicy
3243func (c *CloudFormation) GetStackPolicy(input *GetStackPolicyInput) (*GetStackPolicyOutput, error) {
3244	req, out := c.GetStackPolicyRequest(input)
3245	return out, req.Send()
3246}
3247
3248// GetStackPolicyWithContext is the same as GetStackPolicy with the addition of
3249// the ability to pass a context and additional request options.
3250//
3251// See GetStackPolicy for details on how to use this API operation.
3252//
3253// The context must be non-nil and will be used for request cancellation. If
3254// the context is nil a panic will occur. In the future the SDK may create
3255// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3256// for more information on using Contexts.
3257func (c *CloudFormation) GetStackPolicyWithContext(ctx aws.Context, input *GetStackPolicyInput, opts ...request.Option) (*GetStackPolicyOutput, error) {
3258	req, out := c.GetStackPolicyRequest(input)
3259	req.SetContext(ctx)
3260	req.ApplyOptions(opts...)
3261	return out, req.Send()
3262}
3263
3264const opGetTemplate = "GetTemplate"
3265
3266// GetTemplateRequest generates a "aws/request.Request" representing the
3267// client's request for the GetTemplate operation. The "output" return
3268// value will be populated with the request's response once the request completes
3269// successfully.
3270//
3271// Use "Send" method on the returned Request to send the API call to the service.
3272// the "output" return value is not valid until after Send returns without error.
3273//
3274// See GetTemplate for more information on using the GetTemplate
3275// API call, and error handling.
3276//
3277// This method is useful when you want to inject custom logic or configuration
3278// into the SDK's request lifecycle. Such as custom headers, or retry logic.
3279//
3280//
3281//    // Example sending a request using the GetTemplateRequest method.
3282//    req, resp := client.GetTemplateRequest(params)
3283//
3284//    err := req.Send()
3285//    if err == nil { // resp is now filled
3286//        fmt.Println(resp)
3287//    }
3288//
3289// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/GetTemplate
3290func (c *CloudFormation) GetTemplateRequest(input *GetTemplateInput) (req *request.Request, output *GetTemplateOutput) {
3291	op := &request.Operation{
3292		Name:       opGetTemplate,
3293		HTTPMethod: "POST",
3294		HTTPPath:   "/",
3295	}
3296
3297	if input == nil {
3298		input = &GetTemplateInput{}
3299	}
3300
3301	output = &GetTemplateOutput{}
3302	req = c.newRequest(op, input, output)
3303	return
3304}
3305
3306// GetTemplate API operation for AWS CloudFormation.
3307//
3308// Returns the template body for a specified stack. You can get the template
3309// for running or deleted stacks.
3310//
3311// For deleted stacks, GetTemplate returns the template for up to 90 days after
3312// the stack has been deleted.
3313//
3314// If the template does not exist, a ValidationError is returned.
3315//
3316// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
3317// with awserr.Error's Code and Message methods to get detailed information about
3318// the error.
3319//
3320// See the AWS API reference guide for AWS CloudFormation's
3321// API operation GetTemplate for usage and error information.
3322//
3323// Returned Error Codes:
3324//   * ErrCodeChangeSetNotFoundException "ChangeSetNotFound"
3325//   The specified change set name or ID doesn't exit. To view valid change sets
3326//   for a stack, use the ListChangeSets action.
3327//
3328// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/GetTemplate
3329func (c *CloudFormation) GetTemplate(input *GetTemplateInput) (*GetTemplateOutput, error) {
3330	req, out := c.GetTemplateRequest(input)
3331	return out, req.Send()
3332}
3333
3334// GetTemplateWithContext is the same as GetTemplate with the addition of
3335// the ability to pass a context and additional request options.
3336//
3337// See GetTemplate for details on how to use this API operation.
3338//
3339// The context must be non-nil and will be used for request cancellation. If
3340// the context is nil a panic will occur. In the future the SDK may create
3341// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3342// for more information on using Contexts.
3343func (c *CloudFormation) GetTemplateWithContext(ctx aws.Context, input *GetTemplateInput, opts ...request.Option) (*GetTemplateOutput, error) {
3344	req, out := c.GetTemplateRequest(input)
3345	req.SetContext(ctx)
3346	req.ApplyOptions(opts...)
3347	return out, req.Send()
3348}
3349
3350const opGetTemplateSummary = "GetTemplateSummary"
3351
3352// GetTemplateSummaryRequest generates a "aws/request.Request" representing the
3353// client's request for the GetTemplateSummary operation. The "output" return
3354// value will be populated with the request's response once the request completes
3355// successfully.
3356//
3357// Use "Send" method on the returned Request to send the API call to the service.
3358// the "output" return value is not valid until after Send returns without error.
3359//
3360// See GetTemplateSummary for more information on using the GetTemplateSummary
3361// API call, and error handling.
3362//
3363// This method is useful when you want to inject custom logic or configuration
3364// into the SDK's request lifecycle. Such as custom headers, or retry logic.
3365//
3366//
3367//    // Example sending a request using the GetTemplateSummaryRequest method.
3368//    req, resp := client.GetTemplateSummaryRequest(params)
3369//
3370//    err := req.Send()
3371//    if err == nil { // resp is now filled
3372//        fmt.Println(resp)
3373//    }
3374//
3375// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/GetTemplateSummary
3376func (c *CloudFormation) GetTemplateSummaryRequest(input *GetTemplateSummaryInput) (req *request.Request, output *GetTemplateSummaryOutput) {
3377	op := &request.Operation{
3378		Name:       opGetTemplateSummary,
3379		HTTPMethod: "POST",
3380		HTTPPath:   "/",
3381	}
3382
3383	if input == nil {
3384		input = &GetTemplateSummaryInput{}
3385	}
3386
3387	output = &GetTemplateSummaryOutput{}
3388	req = c.newRequest(op, input, output)
3389	return
3390}
3391
3392// GetTemplateSummary API operation for AWS CloudFormation.
3393//
3394// Returns information about a new or existing template. The GetTemplateSummary
3395// action is useful for viewing parameter information, such as default parameter
3396// values and parameter types, before you create or update a stack or stack
3397// set.
3398//
3399// You can use the GetTemplateSummary action when you submit a template, or
3400// you can get template information for a stack set, or a running or deleted
3401// stack.
3402//
3403// For deleted stacks, GetTemplateSummary returns the template information for
3404// up to 90 days after the stack has been deleted. If the template does not
3405// exist, a ValidationError is returned.
3406//
3407// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
3408// with awserr.Error's Code and Message methods to get detailed information about
3409// the error.
3410//
3411// See the AWS API reference guide for AWS CloudFormation's
3412// API operation GetTemplateSummary for usage and error information.
3413//
3414// Returned Error Codes:
3415//   * ErrCodeStackSetNotFoundException "StackSetNotFoundException"
3416//   The specified stack set doesn't exist.
3417//
3418// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/GetTemplateSummary
3419func (c *CloudFormation) GetTemplateSummary(input *GetTemplateSummaryInput) (*GetTemplateSummaryOutput, error) {
3420	req, out := c.GetTemplateSummaryRequest(input)
3421	return out, req.Send()
3422}
3423
3424// GetTemplateSummaryWithContext is the same as GetTemplateSummary with the addition of
3425// the ability to pass a context and additional request options.
3426//
3427// See GetTemplateSummary for details on how to use this API operation.
3428//
3429// The context must be non-nil and will be used for request cancellation. If
3430// the context is nil a panic will occur. In the future the SDK may create
3431// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3432// for more information on using Contexts.
3433func (c *CloudFormation) GetTemplateSummaryWithContext(ctx aws.Context, input *GetTemplateSummaryInput, opts ...request.Option) (*GetTemplateSummaryOutput, error) {
3434	req, out := c.GetTemplateSummaryRequest(input)
3435	req.SetContext(ctx)
3436	req.ApplyOptions(opts...)
3437	return out, req.Send()
3438}
3439
3440const opImportStacksToStackSet = "ImportStacksToStackSet"
3441
3442// ImportStacksToStackSetRequest generates a "aws/request.Request" representing the
3443// client's request for the ImportStacksToStackSet operation. The "output" return
3444// value will be populated with the request's response once the request completes
3445// successfully.
3446//
3447// Use "Send" method on the returned Request to send the API call to the service.
3448// the "output" return value is not valid until after Send returns without error.
3449//
3450// See ImportStacksToStackSet for more information on using the ImportStacksToStackSet
3451// API call, and error handling.
3452//
3453// This method is useful when you want to inject custom logic or configuration
3454// into the SDK's request lifecycle. Such as custom headers, or retry logic.
3455//
3456//
3457//    // Example sending a request using the ImportStacksToStackSetRequest method.
3458//    req, resp := client.ImportStacksToStackSetRequest(params)
3459//
3460//    err := req.Send()
3461//    if err == nil { // resp is now filled
3462//        fmt.Println(resp)
3463//    }
3464//
3465// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/ImportStacksToStackSet
3466func (c *CloudFormation) ImportStacksToStackSetRequest(input *ImportStacksToStackSetInput) (req *request.Request, output *ImportStacksToStackSetOutput) {
3467	op := &request.Operation{
3468		Name:       opImportStacksToStackSet,
3469		HTTPMethod: "POST",
3470		HTTPPath:   "/",
3471	}
3472
3473	if input == nil {
3474		input = &ImportStacksToStackSetInput{}
3475	}
3476
3477	output = &ImportStacksToStackSetOutput{}
3478	req = c.newRequest(op, input, output)
3479	return
3480}
3481
3482// ImportStacksToStackSet API operation for AWS CloudFormation.
3483//
3484// Import existing stacks into a new stack sets. Use the stack import operation
3485// to import up to 10 stacks into a new stack set in the same account as the
3486// source stack or in a different administrator account and Region, by specifying
3487// the stack ID of the stack you intend to import.
3488//
3489// ImportStacksToStackSet is only supported by self-managed permissions.
3490//
3491// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
3492// with awserr.Error's Code and Message methods to get detailed information about
3493// the error.
3494//
3495// See the AWS API reference guide for AWS CloudFormation's
3496// API operation ImportStacksToStackSet for usage and error information.
3497//
3498// Returned Error Codes:
3499//   * ErrCodeLimitExceededException "LimitExceededException"
3500//   The quota for the resource has already been reached.
3501//
3502//   For information on resource and stack limitations, see Limits (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/cloudformation-limits.html)
3503//   in the CloudFormation User Guide.
3504//
3505//   * ErrCodeStackSetNotFoundException "StackSetNotFoundException"
3506//   The specified stack set doesn't exist.
3507//
3508//   * ErrCodeInvalidOperationException "InvalidOperationException"
3509//   The specified operation isn't valid.
3510//
3511//   * ErrCodeOperationInProgressException "OperationInProgressException"
3512//   Another operation is currently in progress for this stack set. Only one operation
3513//   can be performed for a stack set at a given time.
3514//
3515//   * ErrCodeOperationIdAlreadyExistsException "OperationIdAlreadyExistsException"
3516//   The specified operation ID already exists.
3517//
3518//   * ErrCodeStackNotFoundException "StackNotFoundException"
3519//   The specified stack ARN doesn’t exist or stack doesn’t exist corresponding
3520//   to the ARN in input.
3521//
3522//   * ErrCodeStaleRequestException "StaleRequestException"
3523//   Another operation has been performed on this stack set since the specified
3524//   operation was performed.
3525//
3526// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/ImportStacksToStackSet
3527func (c *CloudFormation) ImportStacksToStackSet(input *ImportStacksToStackSetInput) (*ImportStacksToStackSetOutput, error) {
3528	req, out := c.ImportStacksToStackSetRequest(input)
3529	return out, req.Send()
3530}
3531
3532// ImportStacksToStackSetWithContext is the same as ImportStacksToStackSet with the addition of
3533// the ability to pass a context and additional request options.
3534//
3535// See ImportStacksToStackSet for details on how to use this API operation.
3536//
3537// The context must be non-nil and will be used for request cancellation. If
3538// the context is nil a panic will occur. In the future the SDK may create
3539// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3540// for more information on using Contexts.
3541func (c *CloudFormation) ImportStacksToStackSetWithContext(ctx aws.Context, input *ImportStacksToStackSetInput, opts ...request.Option) (*ImportStacksToStackSetOutput, error) {
3542	req, out := c.ImportStacksToStackSetRequest(input)
3543	req.SetContext(ctx)
3544	req.ApplyOptions(opts...)
3545	return out, req.Send()
3546}
3547
3548const opListChangeSets = "ListChangeSets"
3549
3550// ListChangeSetsRequest generates a "aws/request.Request" representing the
3551// client's request for the ListChangeSets operation. The "output" return
3552// value will be populated with the request's response once the request completes
3553// successfully.
3554//
3555// Use "Send" method on the returned Request to send the API call to the service.
3556// the "output" return value is not valid until after Send returns without error.
3557//
3558// See ListChangeSets for more information on using the ListChangeSets
3559// API call, and error handling.
3560//
3561// This method is useful when you want to inject custom logic or configuration
3562// into the SDK's request lifecycle. Such as custom headers, or retry logic.
3563//
3564//
3565//    // Example sending a request using the ListChangeSetsRequest method.
3566//    req, resp := client.ListChangeSetsRequest(params)
3567//
3568//    err := req.Send()
3569//    if err == nil { // resp is now filled
3570//        fmt.Println(resp)
3571//    }
3572//
3573// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/ListChangeSets
3574func (c *CloudFormation) ListChangeSetsRequest(input *ListChangeSetsInput) (req *request.Request, output *ListChangeSetsOutput) {
3575	op := &request.Operation{
3576		Name:       opListChangeSets,
3577		HTTPMethod: "POST",
3578		HTTPPath:   "/",
3579		Paginator: &request.Paginator{
3580			InputTokens:     []string{"NextToken"},
3581			OutputTokens:    []string{"NextToken"},
3582			LimitToken:      "",
3583			TruncationToken: "",
3584		},
3585	}
3586
3587	if input == nil {
3588		input = &ListChangeSetsInput{}
3589	}
3590
3591	output = &ListChangeSetsOutput{}
3592	req = c.newRequest(op, input, output)
3593	return
3594}
3595
3596// ListChangeSets API operation for AWS CloudFormation.
3597//
3598// Returns the ID and status of each active change set for a stack. For example,
3599// CloudFormation lists change sets that are in the CREATE_IN_PROGRESS or CREATE_PENDING
3600// state.
3601//
3602// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
3603// with awserr.Error's Code and Message methods to get detailed information about
3604// the error.
3605//
3606// See the AWS API reference guide for AWS CloudFormation's
3607// API operation ListChangeSets for usage and error information.
3608// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/ListChangeSets
3609func (c *CloudFormation) ListChangeSets(input *ListChangeSetsInput) (*ListChangeSetsOutput, error) {
3610	req, out := c.ListChangeSetsRequest(input)
3611	return out, req.Send()
3612}
3613
3614// ListChangeSetsWithContext is the same as ListChangeSets with the addition of
3615// the ability to pass a context and additional request options.
3616//
3617// See ListChangeSets for details on how to use this API operation.
3618//
3619// The context must be non-nil and will be used for request cancellation. If
3620// the context is nil a panic will occur. In the future the SDK may create
3621// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3622// for more information on using Contexts.
3623func (c *CloudFormation) ListChangeSetsWithContext(ctx aws.Context, input *ListChangeSetsInput, opts ...request.Option) (*ListChangeSetsOutput, error) {
3624	req, out := c.ListChangeSetsRequest(input)
3625	req.SetContext(ctx)
3626	req.ApplyOptions(opts...)
3627	return out, req.Send()
3628}
3629
3630// ListChangeSetsPages iterates over the pages of a ListChangeSets operation,
3631// calling the "fn" function with the response data for each page. To stop
3632// iterating, return false from the fn function.
3633//
3634// See ListChangeSets method for more information on how to use this operation.
3635//
3636// Note: This operation can generate multiple requests to a service.
3637//
3638//    // Example iterating over at most 3 pages of a ListChangeSets operation.
3639//    pageNum := 0
3640//    err := client.ListChangeSetsPages(params,
3641//        func(page *cloudformation.ListChangeSetsOutput, lastPage bool) bool {
3642//            pageNum++
3643//            fmt.Println(page)
3644//            return pageNum <= 3
3645//        })
3646//
3647func (c *CloudFormation) ListChangeSetsPages(input *ListChangeSetsInput, fn func(*ListChangeSetsOutput, bool) bool) error {
3648	return c.ListChangeSetsPagesWithContext(aws.BackgroundContext(), input, fn)
3649}
3650
3651// ListChangeSetsPagesWithContext same as ListChangeSetsPages except
3652// it takes a Context and allows setting request options on the pages.
3653//
3654// The context must be non-nil and will be used for request cancellation. If
3655// the context is nil a panic will occur. In the future the SDK may create
3656// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3657// for more information on using Contexts.
3658func (c *CloudFormation) ListChangeSetsPagesWithContext(ctx aws.Context, input *ListChangeSetsInput, fn func(*ListChangeSetsOutput, bool) bool, opts ...request.Option) error {
3659	p := request.Pagination{
3660		NewRequest: func() (*request.Request, error) {
3661			var inCpy *ListChangeSetsInput
3662			if input != nil {
3663				tmp := *input
3664				inCpy = &tmp
3665			}
3666			req, _ := c.ListChangeSetsRequest(inCpy)
3667			req.SetContext(ctx)
3668			req.ApplyOptions(opts...)
3669			return req, nil
3670		},
3671	}
3672
3673	for p.Next() {
3674		if !fn(p.Page().(*ListChangeSetsOutput), !p.HasNextPage()) {
3675			break
3676		}
3677	}
3678
3679	return p.Err()
3680}
3681
3682const opListExports = "ListExports"
3683
3684// ListExportsRequest generates a "aws/request.Request" representing the
3685// client's request for the ListExports operation. The "output" return
3686// value will be populated with the request's response once the request completes
3687// successfully.
3688//
3689// Use "Send" method on the returned Request to send the API call to the service.
3690// the "output" return value is not valid until after Send returns without error.
3691//
3692// See ListExports for more information on using the ListExports
3693// API call, and error handling.
3694//
3695// This method is useful when you want to inject custom logic or configuration
3696// into the SDK's request lifecycle. Such as custom headers, or retry logic.
3697//
3698//
3699//    // Example sending a request using the ListExportsRequest method.
3700//    req, resp := client.ListExportsRequest(params)
3701//
3702//    err := req.Send()
3703//    if err == nil { // resp is now filled
3704//        fmt.Println(resp)
3705//    }
3706//
3707// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/ListExports
3708func (c *CloudFormation) ListExportsRequest(input *ListExportsInput) (req *request.Request, output *ListExportsOutput) {
3709	op := &request.Operation{
3710		Name:       opListExports,
3711		HTTPMethod: "POST",
3712		HTTPPath:   "/",
3713		Paginator: &request.Paginator{
3714			InputTokens:     []string{"NextToken"},
3715			OutputTokens:    []string{"NextToken"},
3716			LimitToken:      "",
3717			TruncationToken: "",
3718		},
3719	}
3720
3721	if input == nil {
3722		input = &ListExportsInput{}
3723	}
3724
3725	output = &ListExportsOutput{}
3726	req = c.newRequest(op, input, output)
3727	return
3728}
3729
3730// ListExports API operation for AWS CloudFormation.
3731//
3732// Lists all exported output values in the account and Region in which you call
3733// this action. Use this action to see the exported output values that you can
3734// import into other stacks. To import values, use the Fn::ImportValue (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/intrinsic-function-reference-importvalue.html)
3735// function.
3736//
3737// For more information, see CloudFormation Export Stack Output Values (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-stack-exports.html).
3738//
3739// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
3740// with awserr.Error's Code and Message methods to get detailed information about
3741// the error.
3742//
3743// See the AWS API reference guide for AWS CloudFormation's
3744// API operation ListExports for usage and error information.
3745// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/ListExports
3746func (c *CloudFormation) ListExports(input *ListExportsInput) (*ListExportsOutput, error) {
3747	req, out := c.ListExportsRequest(input)
3748	return out, req.Send()
3749}
3750
3751// ListExportsWithContext is the same as ListExports with the addition of
3752// the ability to pass a context and additional request options.
3753//
3754// See ListExports for details on how to use this API operation.
3755//
3756// The context must be non-nil and will be used for request cancellation. If
3757// the context is nil a panic will occur. In the future the SDK may create
3758// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3759// for more information on using Contexts.
3760func (c *CloudFormation) ListExportsWithContext(ctx aws.Context, input *ListExportsInput, opts ...request.Option) (*ListExportsOutput, error) {
3761	req, out := c.ListExportsRequest(input)
3762	req.SetContext(ctx)
3763	req.ApplyOptions(opts...)
3764	return out, req.Send()
3765}
3766
3767// ListExportsPages iterates over the pages of a ListExports operation,
3768// calling the "fn" function with the response data for each page. To stop
3769// iterating, return false from the fn function.
3770//
3771// See ListExports method for more information on how to use this operation.
3772//
3773// Note: This operation can generate multiple requests to a service.
3774//
3775//    // Example iterating over at most 3 pages of a ListExports operation.
3776//    pageNum := 0
3777//    err := client.ListExportsPages(params,
3778//        func(page *cloudformation.ListExportsOutput, lastPage bool) bool {
3779//            pageNum++
3780//            fmt.Println(page)
3781//            return pageNum <= 3
3782//        })
3783//
3784func (c *CloudFormation) ListExportsPages(input *ListExportsInput, fn func(*ListExportsOutput, bool) bool) error {
3785	return c.ListExportsPagesWithContext(aws.BackgroundContext(), input, fn)
3786}
3787
3788// ListExportsPagesWithContext same as ListExportsPages except
3789// it takes a Context and allows setting request options on the pages.
3790//
3791// The context must be non-nil and will be used for request cancellation. If
3792// the context is nil a panic will occur. In the future the SDK may create
3793// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3794// for more information on using Contexts.
3795func (c *CloudFormation) ListExportsPagesWithContext(ctx aws.Context, input *ListExportsInput, fn func(*ListExportsOutput, bool) bool, opts ...request.Option) error {
3796	p := request.Pagination{
3797		NewRequest: func() (*request.Request, error) {
3798			var inCpy *ListExportsInput
3799			if input != nil {
3800				tmp := *input
3801				inCpy = &tmp
3802			}
3803			req, _ := c.ListExportsRequest(inCpy)
3804			req.SetContext(ctx)
3805			req.ApplyOptions(opts...)
3806			return req, nil
3807		},
3808	}
3809
3810	for p.Next() {
3811		if !fn(p.Page().(*ListExportsOutput), !p.HasNextPage()) {
3812			break
3813		}
3814	}
3815
3816	return p.Err()
3817}
3818
3819const opListImports = "ListImports"
3820
3821// ListImportsRequest generates a "aws/request.Request" representing the
3822// client's request for the ListImports operation. The "output" return
3823// value will be populated with the request's response once the request completes
3824// successfully.
3825//
3826// Use "Send" method on the returned Request to send the API call to the service.
3827// the "output" return value is not valid until after Send returns without error.
3828//
3829// See ListImports for more information on using the ListImports
3830// API call, and error handling.
3831//
3832// This method is useful when you want to inject custom logic or configuration
3833// into the SDK's request lifecycle. Such as custom headers, or retry logic.
3834//
3835//
3836//    // Example sending a request using the ListImportsRequest method.
3837//    req, resp := client.ListImportsRequest(params)
3838//
3839//    err := req.Send()
3840//    if err == nil { // resp is now filled
3841//        fmt.Println(resp)
3842//    }
3843//
3844// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/ListImports
3845func (c *CloudFormation) ListImportsRequest(input *ListImportsInput) (req *request.Request, output *ListImportsOutput) {
3846	op := &request.Operation{
3847		Name:       opListImports,
3848		HTTPMethod: "POST",
3849		HTTPPath:   "/",
3850		Paginator: &request.Paginator{
3851			InputTokens:     []string{"NextToken"},
3852			OutputTokens:    []string{"NextToken"},
3853			LimitToken:      "",
3854			TruncationToken: "",
3855		},
3856	}
3857
3858	if input == nil {
3859		input = &ListImportsInput{}
3860	}
3861
3862	output = &ListImportsOutput{}
3863	req = c.newRequest(op, input, output)
3864	return
3865}
3866
3867// ListImports API operation for AWS CloudFormation.
3868//
3869// Lists all stacks that are importing an exported output value. To modify or
3870// remove an exported output value, first use this action to see which stacks
3871// are using it. To see the exported output values in your account, see ListExports.
3872//
3873// For more information about importing an exported output value, see the Fn::ImportValue
3874// (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/intrinsic-function-reference-importvalue.html)
3875// function.
3876//
3877// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
3878// with awserr.Error's Code and Message methods to get detailed information about
3879// the error.
3880//
3881// See the AWS API reference guide for AWS CloudFormation's
3882// API operation ListImports for usage and error information.
3883// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/ListImports
3884func (c *CloudFormation) ListImports(input *ListImportsInput) (*ListImportsOutput, error) {
3885	req, out := c.ListImportsRequest(input)
3886	return out, req.Send()
3887}
3888
3889// ListImportsWithContext is the same as ListImports with the addition of
3890// the ability to pass a context and additional request options.
3891//
3892// See ListImports for details on how to use this API operation.
3893//
3894// The context must be non-nil and will be used for request cancellation. If
3895// the context is nil a panic will occur. In the future the SDK may create
3896// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3897// for more information on using Contexts.
3898func (c *CloudFormation) ListImportsWithContext(ctx aws.Context, input *ListImportsInput, opts ...request.Option) (*ListImportsOutput, error) {
3899	req, out := c.ListImportsRequest(input)
3900	req.SetContext(ctx)
3901	req.ApplyOptions(opts...)
3902	return out, req.Send()
3903}
3904
3905// ListImportsPages iterates over the pages of a ListImports operation,
3906// calling the "fn" function with the response data for each page. To stop
3907// iterating, return false from the fn function.
3908//
3909// See ListImports method for more information on how to use this operation.
3910//
3911// Note: This operation can generate multiple requests to a service.
3912//
3913//    // Example iterating over at most 3 pages of a ListImports operation.
3914//    pageNum := 0
3915//    err := client.ListImportsPages(params,
3916//        func(page *cloudformation.ListImportsOutput, lastPage bool) bool {
3917//            pageNum++
3918//            fmt.Println(page)
3919//            return pageNum <= 3
3920//        })
3921//
3922func (c *CloudFormation) ListImportsPages(input *ListImportsInput, fn func(*ListImportsOutput, bool) bool) error {
3923	return c.ListImportsPagesWithContext(aws.BackgroundContext(), input, fn)
3924}
3925
3926// ListImportsPagesWithContext same as ListImportsPages except
3927// it takes a Context and allows setting request options on the pages.
3928//
3929// The context must be non-nil and will be used for request cancellation. If
3930// the context is nil a panic will occur. In the future the SDK may create
3931// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3932// for more information on using Contexts.
3933func (c *CloudFormation) ListImportsPagesWithContext(ctx aws.Context, input *ListImportsInput, fn func(*ListImportsOutput, bool) bool, opts ...request.Option) error {
3934	p := request.Pagination{
3935		NewRequest: func() (*request.Request, error) {
3936			var inCpy *ListImportsInput
3937			if input != nil {
3938				tmp := *input
3939				inCpy = &tmp
3940			}
3941			req, _ := c.ListImportsRequest(inCpy)
3942			req.SetContext(ctx)
3943			req.ApplyOptions(opts...)
3944			return req, nil
3945		},
3946	}
3947
3948	for p.Next() {
3949		if !fn(p.Page().(*ListImportsOutput), !p.HasNextPage()) {
3950			break
3951		}
3952	}
3953
3954	return p.Err()
3955}
3956
3957const opListStackInstances = "ListStackInstances"
3958
3959// ListStackInstancesRequest generates a "aws/request.Request" representing the
3960// client's request for the ListStackInstances operation. The "output" return
3961// value will be populated with the request's response once the request completes
3962// successfully.
3963//
3964// Use "Send" method on the returned Request to send the API call to the service.
3965// the "output" return value is not valid until after Send returns without error.
3966//
3967// See ListStackInstances for more information on using the ListStackInstances
3968// API call, and error handling.
3969//
3970// This method is useful when you want to inject custom logic or configuration
3971// into the SDK's request lifecycle. Such as custom headers, or retry logic.
3972//
3973//
3974//    // Example sending a request using the ListStackInstancesRequest method.
3975//    req, resp := client.ListStackInstancesRequest(params)
3976//
3977//    err := req.Send()
3978//    if err == nil { // resp is now filled
3979//        fmt.Println(resp)
3980//    }
3981//
3982// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/ListStackInstances
3983func (c *CloudFormation) ListStackInstancesRequest(input *ListStackInstancesInput) (req *request.Request, output *ListStackInstancesOutput) {
3984	op := &request.Operation{
3985		Name:       opListStackInstances,
3986		HTTPMethod: "POST",
3987		HTTPPath:   "/",
3988		Paginator: &request.Paginator{
3989			InputTokens:     []string{"NextToken"},
3990			OutputTokens:    []string{"NextToken"},
3991			LimitToken:      "MaxResults",
3992			TruncationToken: "",
3993		},
3994	}
3995
3996	if input == nil {
3997		input = &ListStackInstancesInput{}
3998	}
3999
4000	output = &ListStackInstancesOutput{}
4001	req = c.newRequest(op, input, output)
4002	return
4003}
4004
4005// ListStackInstances API operation for AWS CloudFormation.
4006//
4007// Returns summary information about stack instances that are associated with
4008// the specified stack set. You can filter for stack instances that are associated
4009// with a specific Amazon Web Services account name or Region, or that have
4010// a specific status.
4011//
4012// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
4013// with awserr.Error's Code and Message methods to get detailed information about
4014// the error.
4015//
4016// See the AWS API reference guide for AWS CloudFormation's
4017// API operation ListStackInstances for usage and error information.
4018//
4019// Returned Error Codes:
4020//   * ErrCodeStackSetNotFoundException "StackSetNotFoundException"
4021//   The specified stack set doesn't exist.
4022//
4023// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/ListStackInstances
4024func (c *CloudFormation) ListStackInstances(input *ListStackInstancesInput) (*ListStackInstancesOutput, error) {
4025	req, out := c.ListStackInstancesRequest(input)
4026	return out, req.Send()
4027}
4028
4029// ListStackInstancesWithContext is the same as ListStackInstances with the addition of
4030// the ability to pass a context and additional request options.
4031//
4032// See ListStackInstances for details on how to use this API operation.
4033//
4034// The context must be non-nil and will be used for request cancellation. If
4035// the context is nil a panic will occur. In the future the SDK may create
4036// sub-contexts for http.Requests. See https://golang.org/pkg/context/
4037// for more information on using Contexts.
4038func (c *CloudFormation) ListStackInstancesWithContext(ctx aws.Context, input *ListStackInstancesInput, opts ...request.Option) (*ListStackInstancesOutput, error) {
4039	req, out := c.ListStackInstancesRequest(input)
4040	req.SetContext(ctx)
4041	req.ApplyOptions(opts...)
4042	return out, req.Send()
4043}
4044
4045// ListStackInstancesPages iterates over the pages of a ListStackInstances operation,
4046// calling the "fn" function with the response data for each page. To stop
4047// iterating, return false from the fn function.
4048//
4049// See ListStackInstances method for more information on how to use this operation.
4050//
4051// Note: This operation can generate multiple requests to a service.
4052//
4053//    // Example iterating over at most 3 pages of a ListStackInstances operation.
4054//    pageNum := 0
4055//    err := client.ListStackInstancesPages(params,
4056//        func(page *cloudformation.ListStackInstancesOutput, lastPage bool) bool {
4057//            pageNum++
4058//            fmt.Println(page)
4059//            return pageNum <= 3
4060//        })
4061//
4062func (c *CloudFormation) ListStackInstancesPages(input *ListStackInstancesInput, fn func(*ListStackInstancesOutput, bool) bool) error {
4063	return c.ListStackInstancesPagesWithContext(aws.BackgroundContext(), input, fn)
4064}
4065
4066// ListStackInstancesPagesWithContext same as ListStackInstancesPages except
4067// it takes a Context and allows setting request options on the pages.
4068//
4069// The context must be non-nil and will be used for request cancellation. If
4070// the context is nil a panic will occur. In the future the SDK may create
4071// sub-contexts for http.Requests. See https://golang.org/pkg/context/
4072// for more information on using Contexts.
4073func (c *CloudFormation) ListStackInstancesPagesWithContext(ctx aws.Context, input *ListStackInstancesInput, fn func(*ListStackInstancesOutput, bool) bool, opts ...request.Option) error {
4074	p := request.Pagination{
4075		NewRequest: func() (*request.Request, error) {
4076			var inCpy *ListStackInstancesInput
4077			if input != nil {
4078				tmp := *input
4079				inCpy = &tmp
4080			}
4081			req, _ := c.ListStackInstancesRequest(inCpy)
4082			req.SetContext(ctx)
4083			req.ApplyOptions(opts...)
4084			return req, nil
4085		},
4086	}
4087
4088	for p.Next() {
4089		if !fn(p.Page().(*ListStackInstancesOutput), !p.HasNextPage()) {
4090			break
4091		}
4092	}
4093
4094	return p.Err()
4095}
4096
4097const opListStackResources = "ListStackResources"
4098
4099// ListStackResourcesRequest generates a "aws/request.Request" representing the
4100// client's request for the ListStackResources operation. The "output" return
4101// value will be populated with the request's response once the request completes
4102// successfully.
4103//
4104// Use "Send" method on the returned Request to send the API call to the service.
4105// the "output" return value is not valid until after Send returns without error.
4106//
4107// See ListStackResources for more information on using the ListStackResources
4108// API call, and error handling.
4109//
4110// This method is useful when you want to inject custom logic or configuration
4111// into the SDK's request lifecycle. Such as custom headers, or retry logic.
4112//
4113//
4114//    // Example sending a request using the ListStackResourcesRequest method.
4115//    req, resp := client.ListStackResourcesRequest(params)
4116//
4117//    err := req.Send()
4118//    if err == nil { // resp is now filled
4119//        fmt.Println(resp)
4120//    }
4121//
4122// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/ListStackResources
4123func (c *CloudFormation) ListStackResourcesRequest(input *ListStackResourcesInput) (req *request.Request, output *ListStackResourcesOutput) {
4124	op := &request.Operation{
4125		Name:       opListStackResources,
4126		HTTPMethod: "POST",
4127		HTTPPath:   "/",
4128		Paginator: &request.Paginator{
4129			InputTokens:     []string{"NextToken"},
4130			OutputTokens:    []string{"NextToken"},
4131			LimitToken:      "",
4132			TruncationToken: "",
4133		},
4134	}
4135
4136	if input == nil {
4137		input = &ListStackResourcesInput{}
4138	}
4139
4140	output = &ListStackResourcesOutput{}
4141	req = c.newRequest(op, input, output)
4142	return
4143}
4144
4145// ListStackResources API operation for AWS CloudFormation.
4146//
4147// Returns descriptions of all resources of the specified stack.
4148//
4149// For deleted stacks, ListStackResources returns resource information for up
4150// to 90 days after the stack has been deleted.
4151//
4152// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
4153// with awserr.Error's Code and Message methods to get detailed information about
4154// the error.
4155//
4156// See the AWS API reference guide for AWS CloudFormation's
4157// API operation ListStackResources for usage and error information.
4158// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/ListStackResources
4159func (c *CloudFormation) ListStackResources(input *ListStackResourcesInput) (*ListStackResourcesOutput, error) {
4160	req, out := c.ListStackResourcesRequest(input)
4161	return out, req.Send()
4162}
4163
4164// ListStackResourcesWithContext is the same as ListStackResources with the addition of
4165// the ability to pass a context and additional request options.
4166//
4167// See ListStackResources for details on how to use this API operation.
4168//
4169// The context must be non-nil and will be used for request cancellation. If
4170// the context is nil a panic will occur. In the future the SDK may create
4171// sub-contexts for http.Requests. See https://golang.org/pkg/context/
4172// for more information on using Contexts.
4173func (c *CloudFormation) ListStackResourcesWithContext(ctx aws.Context, input *ListStackResourcesInput, opts ...request.Option) (*ListStackResourcesOutput, error) {
4174	req, out := c.ListStackResourcesRequest(input)
4175	req.SetContext(ctx)
4176	req.ApplyOptions(opts...)
4177	return out, req.Send()
4178}
4179
4180// ListStackResourcesPages iterates over the pages of a ListStackResources operation,
4181// calling the "fn" function with the response data for each page. To stop
4182// iterating, return false from the fn function.
4183//
4184// See ListStackResources method for more information on how to use this operation.
4185//
4186// Note: This operation can generate multiple requests to a service.
4187//
4188//    // Example iterating over at most 3 pages of a ListStackResources operation.
4189//    pageNum := 0
4190//    err := client.ListStackResourcesPages(params,
4191//        func(page *cloudformation.ListStackResourcesOutput, lastPage bool) bool {
4192//            pageNum++
4193//            fmt.Println(page)
4194//            return pageNum <= 3
4195//        })
4196//
4197func (c *CloudFormation) ListStackResourcesPages(input *ListStackResourcesInput, fn func(*ListStackResourcesOutput, bool) bool) error {
4198	return c.ListStackResourcesPagesWithContext(aws.BackgroundContext(), input, fn)
4199}
4200
4201// ListStackResourcesPagesWithContext same as ListStackResourcesPages except
4202// it takes a Context and allows setting request options on the pages.
4203//
4204// The context must be non-nil and will be used for request cancellation. If
4205// the context is nil a panic will occur. In the future the SDK may create
4206// sub-contexts for http.Requests. See https://golang.org/pkg/context/
4207// for more information on using Contexts.
4208func (c *CloudFormation) ListStackResourcesPagesWithContext(ctx aws.Context, input *ListStackResourcesInput, fn func(*ListStackResourcesOutput, bool) bool, opts ...request.Option) error {
4209	p := request.Pagination{
4210		NewRequest: func() (*request.Request, error) {
4211			var inCpy *ListStackResourcesInput
4212			if input != nil {
4213				tmp := *input
4214				inCpy = &tmp
4215			}
4216			req, _ := c.ListStackResourcesRequest(inCpy)
4217			req.SetContext(ctx)
4218			req.ApplyOptions(opts...)
4219			return req, nil
4220		},
4221	}
4222
4223	for p.Next() {
4224		if !fn(p.Page().(*ListStackResourcesOutput), !p.HasNextPage()) {
4225			break
4226		}
4227	}
4228
4229	return p.Err()
4230}
4231
4232const opListStackSetOperationResults = "ListStackSetOperationResults"
4233
4234// ListStackSetOperationResultsRequest generates a "aws/request.Request" representing the
4235// client's request for the ListStackSetOperationResults operation. The "output" return
4236// value will be populated with the request's response once the request completes
4237// successfully.
4238//
4239// Use "Send" method on the returned Request to send the API call to the service.
4240// the "output" return value is not valid until after Send returns without error.
4241//
4242// See ListStackSetOperationResults for more information on using the ListStackSetOperationResults
4243// API call, and error handling.
4244//
4245// This method is useful when you want to inject custom logic or configuration
4246// into the SDK's request lifecycle. Such as custom headers, or retry logic.
4247//
4248//
4249//    // Example sending a request using the ListStackSetOperationResultsRequest method.
4250//    req, resp := client.ListStackSetOperationResultsRequest(params)
4251//
4252//    err := req.Send()
4253//    if err == nil { // resp is now filled
4254//        fmt.Println(resp)
4255//    }
4256//
4257// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/ListStackSetOperationResults
4258func (c *CloudFormation) ListStackSetOperationResultsRequest(input *ListStackSetOperationResultsInput) (req *request.Request, output *ListStackSetOperationResultsOutput) {
4259	op := &request.Operation{
4260		Name:       opListStackSetOperationResults,
4261		HTTPMethod: "POST",
4262		HTTPPath:   "/",
4263		Paginator: &request.Paginator{
4264			InputTokens:     []string{"NextToken"},
4265			OutputTokens:    []string{"NextToken"},
4266			LimitToken:      "MaxResults",
4267			TruncationToken: "",
4268		},
4269	}
4270
4271	if input == nil {
4272		input = &ListStackSetOperationResultsInput{}
4273	}
4274
4275	output = &ListStackSetOperationResultsOutput{}
4276	req = c.newRequest(op, input, output)
4277	return
4278}
4279
4280// ListStackSetOperationResults API operation for AWS CloudFormation.
4281//
4282// Returns summary information about the results of a stack set operation.
4283//
4284// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
4285// with awserr.Error's Code and Message methods to get detailed information about
4286// the error.
4287//
4288// See the AWS API reference guide for AWS CloudFormation's
4289// API operation ListStackSetOperationResults for usage and error information.
4290//
4291// Returned Error Codes:
4292//   * ErrCodeStackSetNotFoundException "StackSetNotFoundException"
4293//   The specified stack set doesn't exist.
4294//
4295//   * ErrCodeOperationNotFoundException "OperationNotFoundException"
4296//   The specified ID refers to an operation that doesn't exist.
4297//
4298// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/ListStackSetOperationResults
4299func (c *CloudFormation) ListStackSetOperationResults(input *ListStackSetOperationResultsInput) (*ListStackSetOperationResultsOutput, error) {
4300	req, out := c.ListStackSetOperationResultsRequest(input)
4301	return out, req.Send()
4302}
4303
4304// ListStackSetOperationResultsWithContext is the same as ListStackSetOperationResults with the addition of
4305// the ability to pass a context and additional request options.
4306//
4307// See ListStackSetOperationResults for details on how to use this API operation.
4308//
4309// The context must be non-nil and will be used for request cancellation. If
4310// the context is nil a panic will occur. In the future the SDK may create
4311// sub-contexts for http.Requests. See https://golang.org/pkg/context/
4312// for more information on using Contexts.
4313func (c *CloudFormation) ListStackSetOperationResultsWithContext(ctx aws.Context, input *ListStackSetOperationResultsInput, opts ...request.Option) (*ListStackSetOperationResultsOutput, error) {
4314	req, out := c.ListStackSetOperationResultsRequest(input)
4315	req.SetContext(ctx)
4316	req.ApplyOptions(opts...)
4317	return out, req.Send()
4318}
4319
4320// ListStackSetOperationResultsPages iterates over the pages of a ListStackSetOperationResults operation,
4321// calling the "fn" function with the response data for each page. To stop
4322// iterating, return false from the fn function.
4323//
4324// See ListStackSetOperationResults method for more information on how to use this operation.
4325//
4326// Note: This operation can generate multiple requests to a service.
4327//
4328//    // Example iterating over at most 3 pages of a ListStackSetOperationResults operation.
4329//    pageNum := 0
4330//    err := client.ListStackSetOperationResultsPages(params,
4331//        func(page *cloudformation.ListStackSetOperationResultsOutput, lastPage bool) bool {
4332//            pageNum++
4333//            fmt.Println(page)
4334//            return pageNum <= 3
4335//        })
4336//
4337func (c *CloudFormation) ListStackSetOperationResultsPages(input *ListStackSetOperationResultsInput, fn func(*ListStackSetOperationResultsOutput, bool) bool) error {
4338	return c.ListStackSetOperationResultsPagesWithContext(aws.BackgroundContext(), input, fn)
4339}
4340
4341// ListStackSetOperationResultsPagesWithContext same as ListStackSetOperationResultsPages except
4342// it takes a Context and allows setting request options on the pages.
4343//
4344// The context must be non-nil and will be used for request cancellation. If
4345// the context is nil a panic will occur. In the future the SDK may create
4346// sub-contexts for http.Requests. See https://golang.org/pkg/context/
4347// for more information on using Contexts.
4348func (c *CloudFormation) ListStackSetOperationResultsPagesWithContext(ctx aws.Context, input *ListStackSetOperationResultsInput, fn func(*ListStackSetOperationResultsOutput, bool) bool, opts ...request.Option) error {
4349	p := request.Pagination{
4350		NewRequest: func() (*request.Request, error) {
4351			var inCpy *ListStackSetOperationResultsInput
4352			if input != nil {
4353				tmp := *input
4354				inCpy = &tmp
4355			}
4356			req, _ := c.ListStackSetOperationResultsRequest(inCpy)
4357			req.SetContext(ctx)
4358			req.ApplyOptions(opts...)
4359			return req, nil
4360		},
4361	}
4362
4363	for p.Next() {
4364		if !fn(p.Page().(*ListStackSetOperationResultsOutput), !p.HasNextPage()) {
4365			break
4366		}
4367	}
4368
4369	return p.Err()
4370}
4371
4372const opListStackSetOperations = "ListStackSetOperations"
4373
4374// ListStackSetOperationsRequest generates a "aws/request.Request" representing the
4375// client's request for the ListStackSetOperations operation. The "output" return
4376// value will be populated with the request's response once the request completes
4377// successfully.
4378//
4379// Use "Send" method on the returned Request to send the API call to the service.
4380// the "output" return value is not valid until after Send returns without error.
4381//
4382// See ListStackSetOperations for more information on using the ListStackSetOperations
4383// API call, and error handling.
4384//
4385// This method is useful when you want to inject custom logic or configuration
4386// into the SDK's request lifecycle. Such as custom headers, or retry logic.
4387//
4388//
4389//    // Example sending a request using the ListStackSetOperationsRequest method.
4390//    req, resp := client.ListStackSetOperationsRequest(params)
4391//
4392//    err := req.Send()
4393//    if err == nil { // resp is now filled
4394//        fmt.Println(resp)
4395//    }
4396//
4397// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/ListStackSetOperations
4398func (c *CloudFormation) ListStackSetOperationsRequest(input *ListStackSetOperationsInput) (req *request.Request, output *ListStackSetOperationsOutput) {
4399	op := &request.Operation{
4400		Name:       opListStackSetOperations,
4401		HTTPMethod: "POST",
4402		HTTPPath:   "/",
4403		Paginator: &request.Paginator{
4404			InputTokens:     []string{"NextToken"},
4405			OutputTokens:    []string{"NextToken"},
4406			LimitToken:      "MaxResults",
4407			TruncationToken: "",
4408		},
4409	}
4410
4411	if input == nil {
4412		input = &ListStackSetOperationsInput{}
4413	}
4414
4415	output = &ListStackSetOperationsOutput{}
4416	req = c.newRequest(op, input, output)
4417	return
4418}
4419
4420// ListStackSetOperations API operation for AWS CloudFormation.
4421//
4422// Returns summary information about operations performed on a stack set.
4423//
4424// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
4425// with awserr.Error's Code and Message methods to get detailed information about
4426// the error.
4427//
4428// See the AWS API reference guide for AWS CloudFormation's
4429// API operation ListStackSetOperations for usage and error information.
4430//
4431// Returned Error Codes:
4432//   * ErrCodeStackSetNotFoundException "StackSetNotFoundException"
4433//   The specified stack set doesn't exist.
4434//
4435// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/ListStackSetOperations
4436func (c *CloudFormation) ListStackSetOperations(input *ListStackSetOperationsInput) (*ListStackSetOperationsOutput, error) {
4437	req, out := c.ListStackSetOperationsRequest(input)
4438	return out, req.Send()
4439}
4440
4441// ListStackSetOperationsWithContext is the same as ListStackSetOperations with the addition of
4442// the ability to pass a context and additional request options.
4443//
4444// See ListStackSetOperations for details on how to use this API operation.
4445//
4446// The context must be non-nil and will be used for request cancellation. If
4447// the context is nil a panic will occur. In the future the SDK may create
4448// sub-contexts for http.Requests. See https://golang.org/pkg/context/
4449// for more information on using Contexts.
4450func (c *CloudFormation) ListStackSetOperationsWithContext(ctx aws.Context, input *ListStackSetOperationsInput, opts ...request.Option) (*ListStackSetOperationsOutput, error) {
4451	req, out := c.ListStackSetOperationsRequest(input)
4452	req.SetContext(ctx)
4453	req.ApplyOptions(opts...)
4454	return out, req.Send()
4455}
4456
4457// ListStackSetOperationsPages iterates over the pages of a ListStackSetOperations operation,
4458// calling the "fn" function with the response data for each page. To stop
4459// iterating, return false from the fn function.
4460//
4461// See ListStackSetOperations method for more information on how to use this operation.
4462//
4463// Note: This operation can generate multiple requests to a service.
4464//
4465//    // Example iterating over at most 3 pages of a ListStackSetOperations operation.
4466//    pageNum := 0
4467//    err := client.ListStackSetOperationsPages(params,
4468//        func(page *cloudformation.ListStackSetOperationsOutput, lastPage bool) bool {
4469//            pageNum++
4470//            fmt.Println(page)
4471//            return pageNum <= 3
4472//        })
4473//
4474func (c *CloudFormation) ListStackSetOperationsPages(input *ListStackSetOperationsInput, fn func(*ListStackSetOperationsOutput, bool) bool) error {
4475	return c.ListStackSetOperationsPagesWithContext(aws.BackgroundContext(), input, fn)
4476}
4477
4478// ListStackSetOperationsPagesWithContext same as ListStackSetOperationsPages except
4479// it takes a Context and allows setting request options on the pages.
4480//
4481// The context must be non-nil and will be used for request cancellation. If
4482// the context is nil a panic will occur. In the future the SDK may create
4483// sub-contexts for http.Requests. See https://golang.org/pkg/context/
4484// for more information on using Contexts.
4485func (c *CloudFormation) ListStackSetOperationsPagesWithContext(ctx aws.Context, input *ListStackSetOperationsInput, fn func(*ListStackSetOperationsOutput, bool) bool, opts ...request.Option) error {
4486	p := request.Pagination{
4487		NewRequest: func() (*request.Request, error) {
4488			var inCpy *ListStackSetOperationsInput
4489			if input != nil {
4490				tmp := *input
4491				inCpy = &tmp
4492			}
4493			req, _ := c.ListStackSetOperationsRequest(inCpy)
4494			req.SetContext(ctx)
4495			req.ApplyOptions(opts...)
4496			return req, nil
4497		},
4498	}
4499
4500	for p.Next() {
4501		if !fn(p.Page().(*ListStackSetOperationsOutput), !p.HasNextPage()) {
4502			break
4503		}
4504	}
4505
4506	return p.Err()
4507}
4508
4509const opListStackSets = "ListStackSets"
4510
4511// ListStackSetsRequest generates a "aws/request.Request" representing the
4512// client's request for the ListStackSets operation. The "output" return
4513// value will be populated with the request's response once the request completes
4514// successfully.
4515//
4516// Use "Send" method on the returned Request to send the API call to the service.
4517// the "output" return value is not valid until after Send returns without error.
4518//
4519// See ListStackSets for more information on using the ListStackSets
4520// API call, and error handling.
4521//
4522// This method is useful when you want to inject custom logic or configuration
4523// into the SDK's request lifecycle. Such as custom headers, or retry logic.
4524//
4525//
4526//    // Example sending a request using the ListStackSetsRequest method.
4527//    req, resp := client.ListStackSetsRequest(params)
4528//
4529//    err := req.Send()
4530//    if err == nil { // resp is now filled
4531//        fmt.Println(resp)
4532//    }
4533//
4534// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/ListStackSets
4535func (c *CloudFormation) ListStackSetsRequest(input *ListStackSetsInput) (req *request.Request, output *ListStackSetsOutput) {
4536	op := &request.Operation{
4537		Name:       opListStackSets,
4538		HTTPMethod: "POST",
4539		HTTPPath:   "/",
4540		Paginator: &request.Paginator{
4541			InputTokens:     []string{"NextToken"},
4542			OutputTokens:    []string{"NextToken"},
4543			LimitToken:      "MaxResults",
4544			TruncationToken: "",
4545		},
4546	}
4547
4548	if input == nil {
4549		input = &ListStackSetsInput{}
4550	}
4551
4552	output = &ListStackSetsOutput{}
4553	req = c.newRequest(op, input, output)
4554	return
4555}
4556
4557// ListStackSets API operation for AWS CloudFormation.
4558//
4559// Returns summary information about stack sets that are associated with the
4560// user.
4561//
4562//    * [Self-managed permissions] If you set the CallAs parameter to SELF while
4563//    signed in to your Amazon Web Services account, ListStackSets returns all
4564//    self-managed stack sets in your Amazon Web Services account.
4565//
4566//    * [Service-managed permissions] If you set the CallAs parameter to SELF
4567//    while signed in to the organization's management account, ListStackSets
4568//    returns all stack sets in the management account.
4569//
4570//    * [Service-managed permissions] If you set the CallAs parameter to DELEGATED_ADMIN
4571//    while signed in to your member account, ListStackSets returns all stack
4572//    sets with service-managed permissions in the management account.
4573//
4574// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
4575// with awserr.Error's Code and Message methods to get detailed information about
4576// the error.
4577//
4578// See the AWS API reference guide for AWS CloudFormation's
4579// API operation ListStackSets for usage and error information.
4580// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/ListStackSets
4581func (c *CloudFormation) ListStackSets(input *ListStackSetsInput) (*ListStackSetsOutput, error) {
4582	req, out := c.ListStackSetsRequest(input)
4583	return out, req.Send()
4584}
4585
4586// ListStackSetsWithContext is the same as ListStackSets with the addition of
4587// the ability to pass a context and additional request options.
4588//
4589// See ListStackSets for details on how to use this API operation.
4590//
4591// The context must be non-nil and will be used for request cancellation. If
4592// the context is nil a panic will occur. In the future the SDK may create
4593// sub-contexts for http.Requests. See https://golang.org/pkg/context/
4594// for more information on using Contexts.
4595func (c *CloudFormation) ListStackSetsWithContext(ctx aws.Context, input *ListStackSetsInput, opts ...request.Option) (*ListStackSetsOutput, error) {
4596	req, out := c.ListStackSetsRequest(input)
4597	req.SetContext(ctx)
4598	req.ApplyOptions(opts...)
4599	return out, req.Send()
4600}
4601
4602// ListStackSetsPages iterates over the pages of a ListStackSets operation,
4603// calling the "fn" function with the response data for each page. To stop
4604// iterating, return false from the fn function.
4605//
4606// See ListStackSets method for more information on how to use this operation.
4607//
4608// Note: This operation can generate multiple requests to a service.
4609//
4610//    // Example iterating over at most 3 pages of a ListStackSets operation.
4611//    pageNum := 0
4612//    err := client.ListStackSetsPages(params,
4613//        func(page *cloudformation.ListStackSetsOutput, lastPage bool) bool {
4614//            pageNum++
4615//            fmt.Println(page)
4616//            return pageNum <= 3
4617//        })
4618//
4619func (c *CloudFormation) ListStackSetsPages(input *ListStackSetsInput, fn func(*ListStackSetsOutput, bool) bool) error {
4620	return c.ListStackSetsPagesWithContext(aws.BackgroundContext(), input, fn)
4621}
4622
4623// ListStackSetsPagesWithContext same as ListStackSetsPages except
4624// it takes a Context and allows setting request options on the pages.
4625//
4626// The context must be non-nil and will be used for request cancellation. If
4627// the context is nil a panic will occur. In the future the SDK may create
4628// sub-contexts for http.Requests. See https://golang.org/pkg/context/
4629// for more information on using Contexts.
4630func (c *CloudFormation) ListStackSetsPagesWithContext(ctx aws.Context, input *ListStackSetsInput, fn func(*ListStackSetsOutput, bool) bool, opts ...request.Option) error {
4631	p := request.Pagination{
4632		NewRequest: func() (*request.Request, error) {
4633			var inCpy *ListStackSetsInput
4634			if input != nil {
4635				tmp := *input
4636				inCpy = &tmp
4637			}
4638			req, _ := c.ListStackSetsRequest(inCpy)
4639			req.SetContext(ctx)
4640			req.ApplyOptions(opts...)
4641			return req, nil
4642		},
4643	}
4644
4645	for p.Next() {
4646		if !fn(p.Page().(*ListStackSetsOutput), !p.HasNextPage()) {
4647			break
4648		}
4649	}
4650
4651	return p.Err()
4652}
4653
4654const opListStacks = "ListStacks"
4655
4656// ListStacksRequest generates a "aws/request.Request" representing the
4657// client's request for the ListStacks operation. The "output" return
4658// value will be populated with the request's response once the request completes
4659// successfully.
4660//
4661// Use "Send" method on the returned Request to send the API call to the service.
4662// the "output" return value is not valid until after Send returns without error.
4663//
4664// See ListStacks for more information on using the ListStacks
4665// API call, and error handling.
4666//
4667// This method is useful when you want to inject custom logic or configuration
4668// into the SDK's request lifecycle. Such as custom headers, or retry logic.
4669//
4670//
4671//    // Example sending a request using the ListStacksRequest method.
4672//    req, resp := client.ListStacksRequest(params)
4673//
4674//    err := req.Send()
4675//    if err == nil { // resp is now filled
4676//        fmt.Println(resp)
4677//    }
4678//
4679// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/ListStacks
4680func (c *CloudFormation) ListStacksRequest(input *ListStacksInput) (req *request.Request, output *ListStacksOutput) {
4681	op := &request.Operation{
4682		Name:       opListStacks,
4683		HTTPMethod: "POST",
4684		HTTPPath:   "/",
4685		Paginator: &request.Paginator{
4686			InputTokens:     []string{"NextToken"},
4687			OutputTokens:    []string{"NextToken"},
4688			LimitToken:      "",
4689			TruncationToken: "",
4690		},
4691	}
4692
4693	if input == nil {
4694		input = &ListStacksInput{}
4695	}
4696
4697	output = &ListStacksOutput{}
4698	req = c.newRequest(op, input, output)
4699	return
4700}
4701
4702// ListStacks API operation for AWS CloudFormation.
4703//
4704// Returns the summary information for stacks whose status matches the specified
4705// StackStatusFilter. Summary information for stacks that have been deleted
4706// is kept for 90 days after the stack is deleted. If no StackStatusFilter is
4707// specified, summary information for all stacks is returned (including existing
4708// stacks and stacks that have been deleted).
4709//
4710// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
4711// with awserr.Error's Code and Message methods to get detailed information about
4712// the error.
4713//
4714// See the AWS API reference guide for AWS CloudFormation's
4715// API operation ListStacks for usage and error information.
4716// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/ListStacks
4717func (c *CloudFormation) ListStacks(input *ListStacksInput) (*ListStacksOutput, error) {
4718	req, out := c.ListStacksRequest(input)
4719	return out, req.Send()
4720}
4721
4722// ListStacksWithContext is the same as ListStacks with the addition of
4723// the ability to pass a context and additional request options.
4724//
4725// See ListStacks for details on how to use this API operation.
4726//
4727// The context must be non-nil and will be used for request cancellation. If
4728// the context is nil a panic will occur. In the future the SDK may create
4729// sub-contexts for http.Requests. See https://golang.org/pkg/context/
4730// for more information on using Contexts.
4731func (c *CloudFormation) ListStacksWithContext(ctx aws.Context, input *ListStacksInput, opts ...request.Option) (*ListStacksOutput, error) {
4732	req, out := c.ListStacksRequest(input)
4733	req.SetContext(ctx)
4734	req.ApplyOptions(opts...)
4735	return out, req.Send()
4736}
4737
4738// ListStacksPages iterates over the pages of a ListStacks operation,
4739// calling the "fn" function with the response data for each page. To stop
4740// iterating, return false from the fn function.
4741//
4742// See ListStacks method for more information on how to use this operation.
4743//
4744// Note: This operation can generate multiple requests to a service.
4745//
4746//    // Example iterating over at most 3 pages of a ListStacks operation.
4747//    pageNum := 0
4748//    err := client.ListStacksPages(params,
4749//        func(page *cloudformation.ListStacksOutput, lastPage bool) bool {
4750//            pageNum++
4751//            fmt.Println(page)
4752//            return pageNum <= 3
4753//        })
4754//
4755func (c *CloudFormation) ListStacksPages(input *ListStacksInput, fn func(*ListStacksOutput, bool) bool) error {
4756	return c.ListStacksPagesWithContext(aws.BackgroundContext(), input, fn)
4757}
4758
4759// ListStacksPagesWithContext same as ListStacksPages except
4760// it takes a Context and allows setting request options on the pages.
4761//
4762// The context must be non-nil and will be used for request cancellation. If
4763// the context is nil a panic will occur. In the future the SDK may create
4764// sub-contexts for http.Requests. See https://golang.org/pkg/context/
4765// for more information on using Contexts.
4766func (c *CloudFormation) ListStacksPagesWithContext(ctx aws.Context, input *ListStacksInput, fn func(*ListStacksOutput, bool) bool, opts ...request.Option) error {
4767	p := request.Pagination{
4768		NewRequest: func() (*request.Request, error) {
4769			var inCpy *ListStacksInput
4770			if input != nil {
4771				tmp := *input
4772				inCpy = &tmp
4773			}
4774			req, _ := c.ListStacksRequest(inCpy)
4775			req.SetContext(ctx)
4776			req.ApplyOptions(opts...)
4777			return req, nil
4778		},
4779	}
4780
4781	for p.Next() {
4782		if !fn(p.Page().(*ListStacksOutput), !p.HasNextPage()) {
4783			break
4784		}
4785	}
4786
4787	return p.Err()
4788}
4789
4790const opListTypeRegistrations = "ListTypeRegistrations"
4791
4792// ListTypeRegistrationsRequest generates a "aws/request.Request" representing the
4793// client's request for the ListTypeRegistrations operation. The "output" return
4794// value will be populated with the request's response once the request completes
4795// successfully.
4796//
4797// Use "Send" method on the returned Request to send the API call to the service.
4798// the "output" return value is not valid until after Send returns without error.
4799//
4800// See ListTypeRegistrations for more information on using the ListTypeRegistrations
4801// API call, and error handling.
4802//
4803// This method is useful when you want to inject custom logic or configuration
4804// into the SDK's request lifecycle. Such as custom headers, or retry logic.
4805//
4806//
4807//    // Example sending a request using the ListTypeRegistrationsRequest method.
4808//    req, resp := client.ListTypeRegistrationsRequest(params)
4809//
4810//    err := req.Send()
4811//    if err == nil { // resp is now filled
4812//        fmt.Println(resp)
4813//    }
4814//
4815// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/ListTypeRegistrations
4816func (c *CloudFormation) ListTypeRegistrationsRequest(input *ListTypeRegistrationsInput) (req *request.Request, output *ListTypeRegistrationsOutput) {
4817	op := &request.Operation{
4818		Name:       opListTypeRegistrations,
4819		HTTPMethod: "POST",
4820		HTTPPath:   "/",
4821		Paginator: &request.Paginator{
4822			InputTokens:     []string{"NextToken"},
4823			OutputTokens:    []string{"NextToken"},
4824			LimitToken:      "MaxResults",
4825			TruncationToken: "",
4826		},
4827	}
4828
4829	if input == nil {
4830		input = &ListTypeRegistrationsInput{}
4831	}
4832
4833	output = &ListTypeRegistrationsOutput{}
4834	req = c.newRequest(op, input, output)
4835	return
4836}
4837
4838// ListTypeRegistrations API operation for AWS CloudFormation.
4839//
4840// Returns a list of registration tokens for the specified extension(s).
4841//
4842// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
4843// with awserr.Error's Code and Message methods to get detailed information about
4844// the error.
4845//
4846// See the AWS API reference guide for AWS CloudFormation's
4847// API operation ListTypeRegistrations for usage and error information.
4848//
4849// Returned Error Codes:
4850//   * ErrCodeCFNRegistryException "CFNRegistryException"
4851//   An error occurred during a CloudFormation registry operation.
4852//
4853// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/ListTypeRegistrations
4854func (c *CloudFormation) ListTypeRegistrations(input *ListTypeRegistrationsInput) (*ListTypeRegistrationsOutput, error) {
4855	req, out := c.ListTypeRegistrationsRequest(input)
4856	return out, req.Send()
4857}
4858
4859// ListTypeRegistrationsWithContext is the same as ListTypeRegistrations with the addition of
4860// the ability to pass a context and additional request options.
4861//
4862// See ListTypeRegistrations for details on how to use this API operation.
4863//
4864// The context must be non-nil and will be used for request cancellation. If
4865// the context is nil a panic will occur. In the future the SDK may create
4866// sub-contexts for http.Requests. See https://golang.org/pkg/context/
4867// for more information on using Contexts.
4868func (c *CloudFormation) ListTypeRegistrationsWithContext(ctx aws.Context, input *ListTypeRegistrationsInput, opts ...request.Option) (*ListTypeRegistrationsOutput, error) {
4869	req, out := c.ListTypeRegistrationsRequest(input)
4870	req.SetContext(ctx)
4871	req.ApplyOptions(opts...)
4872	return out, req.Send()
4873}
4874
4875// ListTypeRegistrationsPages iterates over the pages of a ListTypeRegistrations operation,
4876// calling the "fn" function with the response data for each page. To stop
4877// iterating, return false from the fn function.
4878//
4879// See ListTypeRegistrations method for more information on how to use this operation.
4880//
4881// Note: This operation can generate multiple requests to a service.
4882//
4883//    // Example iterating over at most 3 pages of a ListTypeRegistrations operation.
4884//    pageNum := 0
4885//    err := client.ListTypeRegistrationsPages(params,
4886//        func(page *cloudformation.ListTypeRegistrationsOutput, lastPage bool) bool {
4887//            pageNum++
4888//            fmt.Println(page)
4889//            return pageNum <= 3
4890//        })
4891//
4892func (c *CloudFormation) ListTypeRegistrationsPages(input *ListTypeRegistrationsInput, fn func(*ListTypeRegistrationsOutput, bool) bool) error {
4893	return c.ListTypeRegistrationsPagesWithContext(aws.BackgroundContext(), input, fn)
4894}
4895
4896// ListTypeRegistrationsPagesWithContext same as ListTypeRegistrationsPages except
4897// it takes a Context and allows setting request options on the pages.
4898//
4899// The context must be non-nil and will be used for request cancellation. If
4900// the context is nil a panic will occur. In the future the SDK may create
4901// sub-contexts for http.Requests. See https://golang.org/pkg/context/
4902// for more information on using Contexts.
4903func (c *CloudFormation) ListTypeRegistrationsPagesWithContext(ctx aws.Context, input *ListTypeRegistrationsInput, fn func(*ListTypeRegistrationsOutput, bool) bool, opts ...request.Option) error {
4904	p := request.Pagination{
4905		NewRequest: func() (*request.Request, error) {
4906			var inCpy *ListTypeRegistrationsInput
4907			if input != nil {
4908				tmp := *input
4909				inCpy = &tmp
4910			}
4911			req, _ := c.ListTypeRegistrationsRequest(inCpy)
4912			req.SetContext(ctx)
4913			req.ApplyOptions(opts...)
4914			return req, nil
4915		},
4916	}
4917
4918	for p.Next() {
4919		if !fn(p.Page().(*ListTypeRegistrationsOutput), !p.HasNextPage()) {
4920			break
4921		}
4922	}
4923
4924	return p.Err()
4925}
4926
4927const opListTypeVersions = "ListTypeVersions"
4928
4929// ListTypeVersionsRequest generates a "aws/request.Request" representing the
4930// client's request for the ListTypeVersions operation. The "output" return
4931// value will be populated with the request's response once the request completes
4932// successfully.
4933//
4934// Use "Send" method on the returned Request to send the API call to the service.
4935// the "output" return value is not valid until after Send returns without error.
4936//
4937// See ListTypeVersions for more information on using the ListTypeVersions
4938// API call, and error handling.
4939//
4940// This method is useful when you want to inject custom logic or configuration
4941// into the SDK's request lifecycle. Such as custom headers, or retry logic.
4942//
4943//
4944//    // Example sending a request using the ListTypeVersionsRequest method.
4945//    req, resp := client.ListTypeVersionsRequest(params)
4946//
4947//    err := req.Send()
4948//    if err == nil { // resp is now filled
4949//        fmt.Println(resp)
4950//    }
4951//
4952// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/ListTypeVersions
4953func (c *CloudFormation) ListTypeVersionsRequest(input *ListTypeVersionsInput) (req *request.Request, output *ListTypeVersionsOutput) {
4954	op := &request.Operation{
4955		Name:       opListTypeVersions,
4956		HTTPMethod: "POST",
4957		HTTPPath:   "/",
4958		Paginator: &request.Paginator{
4959			InputTokens:     []string{"NextToken"},
4960			OutputTokens:    []string{"NextToken"},
4961			LimitToken:      "MaxResults",
4962			TruncationToken: "",
4963		},
4964	}
4965
4966	if input == nil {
4967		input = &ListTypeVersionsInput{}
4968	}
4969
4970	output = &ListTypeVersionsOutput{}
4971	req = c.newRequest(op, input, output)
4972	return
4973}
4974
4975// ListTypeVersions API operation for AWS CloudFormation.
4976//
4977// Returns summary information about the versions of an extension.
4978//
4979// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
4980// with awserr.Error's Code and Message methods to get detailed information about
4981// the error.
4982//
4983// See the AWS API reference guide for AWS CloudFormation's
4984// API operation ListTypeVersions for usage and error information.
4985//
4986// Returned Error Codes:
4987//   * ErrCodeCFNRegistryException "CFNRegistryException"
4988//   An error occurred during a CloudFormation registry operation.
4989//
4990// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/ListTypeVersions
4991func (c *CloudFormation) ListTypeVersions(input *ListTypeVersionsInput) (*ListTypeVersionsOutput, error) {
4992	req, out := c.ListTypeVersionsRequest(input)
4993	return out, req.Send()
4994}
4995
4996// ListTypeVersionsWithContext is the same as ListTypeVersions with the addition of
4997// the ability to pass a context and additional request options.
4998//
4999// See ListTypeVersions for details on how to use this API operation.
5000//
5001// The context must be non-nil and will be used for request cancellation. If
5002// the context is nil a panic will occur. In the future the SDK may create
5003// sub-contexts for http.Requests. See https://golang.org/pkg/context/
5004// for more information on using Contexts.
5005func (c *CloudFormation) ListTypeVersionsWithContext(ctx aws.Context, input *ListTypeVersionsInput, opts ...request.Option) (*ListTypeVersionsOutput, error) {
5006	req, out := c.ListTypeVersionsRequest(input)
5007	req.SetContext(ctx)
5008	req.ApplyOptions(opts...)
5009	return out, req.Send()
5010}
5011
5012// ListTypeVersionsPages iterates over the pages of a ListTypeVersions operation,
5013// calling the "fn" function with the response data for each page. To stop
5014// iterating, return false from the fn function.
5015//
5016// See ListTypeVersions method for more information on how to use this operation.
5017//
5018// Note: This operation can generate multiple requests to a service.
5019//
5020//    // Example iterating over at most 3 pages of a ListTypeVersions operation.
5021//    pageNum := 0
5022//    err := client.ListTypeVersionsPages(params,
5023//        func(page *cloudformation.ListTypeVersionsOutput, lastPage bool) bool {
5024//            pageNum++
5025//            fmt.Println(page)
5026//            return pageNum <= 3
5027//        })
5028//
5029func (c *CloudFormation) ListTypeVersionsPages(input *ListTypeVersionsInput, fn func(*ListTypeVersionsOutput, bool) bool) error {
5030	return c.ListTypeVersionsPagesWithContext(aws.BackgroundContext(), input, fn)
5031}
5032
5033// ListTypeVersionsPagesWithContext same as ListTypeVersionsPages except
5034// it takes a Context and allows setting request options on the pages.
5035//
5036// The context must be non-nil and will be used for request cancellation. If
5037// the context is nil a panic will occur. In the future the SDK may create
5038// sub-contexts for http.Requests. See https://golang.org/pkg/context/
5039// for more information on using Contexts.
5040func (c *CloudFormation) ListTypeVersionsPagesWithContext(ctx aws.Context, input *ListTypeVersionsInput, fn func(*ListTypeVersionsOutput, bool) bool, opts ...request.Option) error {
5041	p := request.Pagination{
5042		NewRequest: func() (*request.Request, error) {
5043			var inCpy *ListTypeVersionsInput
5044			if input != nil {
5045				tmp := *input
5046				inCpy = &tmp
5047			}
5048			req, _ := c.ListTypeVersionsRequest(inCpy)
5049			req.SetContext(ctx)
5050			req.ApplyOptions(opts...)
5051			return req, nil
5052		},
5053	}
5054
5055	for p.Next() {
5056		if !fn(p.Page().(*ListTypeVersionsOutput), !p.HasNextPage()) {
5057			break
5058		}
5059	}
5060
5061	return p.Err()
5062}
5063
5064const opListTypes = "ListTypes"
5065
5066// ListTypesRequest generates a "aws/request.Request" representing the
5067// client's request for the ListTypes operation. The "output" return
5068// value will be populated with the request's response once the request completes
5069// successfully.
5070//
5071// Use "Send" method on the returned Request to send the API call to the service.
5072// the "output" return value is not valid until after Send returns without error.
5073//
5074// See ListTypes for more information on using the ListTypes
5075// API call, and error handling.
5076//
5077// This method is useful when you want to inject custom logic or configuration
5078// into the SDK's request lifecycle. Such as custom headers, or retry logic.
5079//
5080//
5081//    // Example sending a request using the ListTypesRequest method.
5082//    req, resp := client.ListTypesRequest(params)
5083//
5084//    err := req.Send()
5085//    if err == nil { // resp is now filled
5086//        fmt.Println(resp)
5087//    }
5088//
5089// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/ListTypes
5090func (c *CloudFormation) ListTypesRequest(input *ListTypesInput) (req *request.Request, output *ListTypesOutput) {
5091	op := &request.Operation{
5092		Name:       opListTypes,
5093		HTTPMethod: "POST",
5094		HTTPPath:   "/",
5095		Paginator: &request.Paginator{
5096			InputTokens:     []string{"NextToken"},
5097			OutputTokens:    []string{"NextToken"},
5098			LimitToken:      "MaxResults",
5099			TruncationToken: "",
5100		},
5101	}
5102
5103	if input == nil {
5104		input = &ListTypesInput{}
5105	}
5106
5107	output = &ListTypesOutput{}
5108	req = c.newRequest(op, input, output)
5109	return
5110}
5111
5112// ListTypes API operation for AWS CloudFormation.
5113//
5114// Returns summary information about extension that have been registered with
5115// CloudFormation.
5116//
5117// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
5118// with awserr.Error's Code and Message methods to get detailed information about
5119// the error.
5120//
5121// See the AWS API reference guide for AWS CloudFormation's
5122// API operation ListTypes for usage and error information.
5123//
5124// Returned Error Codes:
5125//   * ErrCodeCFNRegistryException "CFNRegistryException"
5126//   An error occurred during a CloudFormation registry operation.
5127//
5128// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/ListTypes
5129func (c *CloudFormation) ListTypes(input *ListTypesInput) (*ListTypesOutput, error) {
5130	req, out := c.ListTypesRequest(input)
5131	return out, req.Send()
5132}
5133
5134// ListTypesWithContext is the same as ListTypes with the addition of
5135// the ability to pass a context and additional request options.
5136//
5137// See ListTypes for details on how to use this API operation.
5138//
5139// The context must be non-nil and will be used for request cancellation. If
5140// the context is nil a panic will occur. In the future the SDK may create
5141// sub-contexts for http.Requests. See https://golang.org/pkg/context/
5142// for more information on using Contexts.
5143func (c *CloudFormation) ListTypesWithContext(ctx aws.Context, input *ListTypesInput, opts ...request.Option) (*ListTypesOutput, error) {
5144	req, out := c.ListTypesRequest(input)
5145	req.SetContext(ctx)
5146	req.ApplyOptions(opts...)
5147	return out, req.Send()
5148}
5149
5150// ListTypesPages iterates over the pages of a ListTypes operation,
5151// calling the "fn" function with the response data for each page. To stop
5152// iterating, return false from the fn function.
5153//
5154// See ListTypes method for more information on how to use this operation.
5155//
5156// Note: This operation can generate multiple requests to a service.
5157//
5158//    // Example iterating over at most 3 pages of a ListTypes operation.
5159//    pageNum := 0
5160//    err := client.ListTypesPages(params,
5161//        func(page *cloudformation.ListTypesOutput, lastPage bool) bool {
5162//            pageNum++
5163//            fmt.Println(page)
5164//            return pageNum <= 3
5165//        })
5166//
5167func (c *CloudFormation) ListTypesPages(input *ListTypesInput, fn func(*ListTypesOutput, bool) bool) error {
5168	return c.ListTypesPagesWithContext(aws.BackgroundContext(), input, fn)
5169}
5170
5171// ListTypesPagesWithContext same as ListTypesPages except
5172// it takes a Context and allows setting request options on the pages.
5173//
5174// The context must be non-nil and will be used for request cancellation. If
5175// the context is nil a panic will occur. In the future the SDK may create
5176// sub-contexts for http.Requests. See https://golang.org/pkg/context/
5177// for more information on using Contexts.
5178func (c *CloudFormation) ListTypesPagesWithContext(ctx aws.Context, input *ListTypesInput, fn func(*ListTypesOutput, bool) bool, opts ...request.Option) error {
5179	p := request.Pagination{
5180		NewRequest: func() (*request.Request, error) {
5181			var inCpy *ListTypesInput
5182			if input != nil {
5183				tmp := *input
5184				inCpy = &tmp
5185			}
5186			req, _ := c.ListTypesRequest(inCpy)
5187			req.SetContext(ctx)
5188			req.ApplyOptions(opts...)
5189			return req, nil
5190		},
5191	}
5192
5193	for p.Next() {
5194		if !fn(p.Page().(*ListTypesOutput), !p.HasNextPage()) {
5195			break
5196		}
5197	}
5198
5199	return p.Err()
5200}
5201
5202const opPublishType = "PublishType"
5203
5204// PublishTypeRequest generates a "aws/request.Request" representing the
5205// client's request for the PublishType operation. The "output" return
5206// value will be populated with the request's response once the request completes
5207// successfully.
5208//
5209// Use "Send" method on the returned Request to send the API call to the service.
5210// the "output" return value is not valid until after Send returns without error.
5211//
5212// See PublishType for more information on using the PublishType
5213// API call, and error handling.
5214//
5215// This method is useful when you want to inject custom logic or configuration
5216// into the SDK's request lifecycle. Such as custom headers, or retry logic.
5217//
5218//
5219//    // Example sending a request using the PublishTypeRequest method.
5220//    req, resp := client.PublishTypeRequest(params)
5221//
5222//    err := req.Send()
5223//    if err == nil { // resp is now filled
5224//        fmt.Println(resp)
5225//    }
5226//
5227// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/PublishType
5228func (c *CloudFormation) PublishTypeRequest(input *PublishTypeInput) (req *request.Request, output *PublishTypeOutput) {
5229	op := &request.Operation{
5230		Name:       opPublishType,
5231		HTTPMethod: "POST",
5232		HTTPPath:   "/",
5233	}
5234
5235	if input == nil {
5236		input = &PublishTypeInput{}
5237	}
5238
5239	output = &PublishTypeOutput{}
5240	req = c.newRequest(op, input, output)
5241	return
5242}
5243
5244// PublishType API operation for AWS CloudFormation.
5245//
5246// Publishes the specified extension to the CloudFormation registry as a public
5247// extension in this region. Public extensions are available for use by all
5248// CloudFormation users. For more information on publishing extensions, see
5249// Publishing extensions to make them available for public use (https://docs.aws.amazon.com/cloudformation-cli/latest/userguide/publish-extension.html)
5250// in the CloudFormation CLI User Guide.
5251//
5252// To publish an extension, you must be registered as a publisher with CloudFormation.
5253// For more information, see RegisterPublisher (https://docs.aws.amazon.com/AWSCloudFormation/latest/APIReference/API_RegisterPublisher.html).
5254//
5255// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
5256// with awserr.Error's Code and Message methods to get detailed information about
5257// the error.
5258//
5259// See the AWS API reference guide for AWS CloudFormation's
5260// API operation PublishType for usage and error information.
5261//
5262// Returned Error Codes:
5263//   * ErrCodeCFNRegistryException "CFNRegistryException"
5264//   An error occurred during a CloudFormation registry operation.
5265//
5266//   * ErrCodeTypeNotFoundException "TypeNotFoundException"
5267//   The specified extension does not exist in the CloudFormation registry.
5268//
5269// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/PublishType
5270func (c *CloudFormation) PublishType(input *PublishTypeInput) (*PublishTypeOutput, error) {
5271	req, out := c.PublishTypeRequest(input)
5272	return out, req.Send()
5273}
5274
5275// PublishTypeWithContext is the same as PublishType with the addition of
5276// the ability to pass a context and additional request options.
5277//
5278// See PublishType for details on how to use this API operation.
5279//
5280// The context must be non-nil and will be used for request cancellation. If
5281// the context is nil a panic will occur. In the future the SDK may create
5282// sub-contexts for http.Requests. See https://golang.org/pkg/context/
5283// for more information on using Contexts.
5284func (c *CloudFormation) PublishTypeWithContext(ctx aws.Context, input *PublishTypeInput, opts ...request.Option) (*PublishTypeOutput, error) {
5285	req, out := c.PublishTypeRequest(input)
5286	req.SetContext(ctx)
5287	req.ApplyOptions(opts...)
5288	return out, req.Send()
5289}
5290
5291const opRecordHandlerProgress = "RecordHandlerProgress"
5292
5293// RecordHandlerProgressRequest generates a "aws/request.Request" representing the
5294// client's request for the RecordHandlerProgress operation. The "output" return
5295// value will be populated with the request's response once the request completes
5296// successfully.
5297//
5298// Use "Send" method on the returned Request to send the API call to the service.
5299// the "output" return value is not valid until after Send returns without error.
5300//
5301// See RecordHandlerProgress for more information on using the RecordHandlerProgress
5302// API call, and error handling.
5303//
5304// This method is useful when you want to inject custom logic or configuration
5305// into the SDK's request lifecycle. Such as custom headers, or retry logic.
5306//
5307//
5308//    // Example sending a request using the RecordHandlerProgressRequest method.
5309//    req, resp := client.RecordHandlerProgressRequest(params)
5310//
5311//    err := req.Send()
5312//    if err == nil { // resp is now filled
5313//        fmt.Println(resp)
5314//    }
5315//
5316// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/RecordHandlerProgress
5317func (c *CloudFormation) RecordHandlerProgressRequest(input *RecordHandlerProgressInput) (req *request.Request, output *RecordHandlerProgressOutput) {
5318	op := &request.Operation{
5319		Name:       opRecordHandlerProgress,
5320		HTTPMethod: "POST",
5321		HTTPPath:   "/",
5322	}
5323
5324	if input == nil {
5325		input = &RecordHandlerProgressInput{}
5326	}
5327
5328	output = &RecordHandlerProgressOutput{}
5329	req = c.newRequest(op, input, output)
5330	req.Handlers.Unmarshal.Swap(query.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
5331	return
5332}
5333
5334// RecordHandlerProgress API operation for AWS CloudFormation.
5335//
5336// Reports progress of a resource handler to CloudFormation.
5337//
5338// Reserved for use by the CloudFormation CLI (https://docs.aws.amazon.com/cloudformation-cli/latest/userguide/what-is-cloudformation-cli.html).
5339// Do not use this API in your code.
5340//
5341// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
5342// with awserr.Error's Code and Message methods to get detailed information about
5343// the error.
5344//
5345// See the AWS API reference guide for AWS CloudFormation's
5346// API operation RecordHandlerProgress for usage and error information.
5347//
5348// Returned Error Codes:
5349//   * ErrCodeInvalidStateTransitionException "InvalidStateTransition"
5350//   Error reserved for use by the CloudFormation CLI (https://docs.aws.amazon.com/cloudformation-cli/latest/userguide/what-is-cloudformation-cli.html).
5351//   CloudFormation does not return this error to users.
5352//
5353//   * ErrCodeOperationStatusCheckFailedException "ConditionalCheckFailed"
5354//   Error reserved for use by the CloudFormation CLI (https://docs.aws.amazon.com/cloudformation-cli/latest/userguide/what-is-cloudformation-cli.html).
5355//   CloudFormation does not return this error to users.
5356//
5357// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/RecordHandlerProgress
5358func (c *CloudFormation) RecordHandlerProgress(input *RecordHandlerProgressInput) (*RecordHandlerProgressOutput, error) {
5359	req, out := c.RecordHandlerProgressRequest(input)
5360	return out, req.Send()
5361}
5362
5363// RecordHandlerProgressWithContext is the same as RecordHandlerProgress with the addition of
5364// the ability to pass a context and additional request options.
5365//
5366// See RecordHandlerProgress for details on how to use this API operation.
5367//
5368// The context must be non-nil and will be used for request cancellation. If
5369// the context is nil a panic will occur. In the future the SDK may create
5370// sub-contexts for http.Requests. See https://golang.org/pkg/context/
5371// for more information on using Contexts.
5372func (c *CloudFormation) RecordHandlerProgressWithContext(ctx aws.Context, input *RecordHandlerProgressInput, opts ...request.Option) (*RecordHandlerProgressOutput, error) {
5373	req, out := c.RecordHandlerProgressRequest(input)
5374	req.SetContext(ctx)
5375	req.ApplyOptions(opts...)
5376	return out, req.Send()
5377}
5378
5379const opRegisterPublisher = "RegisterPublisher"
5380
5381// RegisterPublisherRequest generates a "aws/request.Request" representing the
5382// client's request for the RegisterPublisher operation. The "output" return
5383// value will be populated with the request's response once the request completes
5384// successfully.
5385//
5386// Use "Send" method on the returned Request to send the API call to the service.
5387// the "output" return value is not valid until after Send returns without error.
5388//
5389// See RegisterPublisher for more information on using the RegisterPublisher
5390// API call, and error handling.
5391//
5392// This method is useful when you want to inject custom logic or configuration
5393// into the SDK's request lifecycle. Such as custom headers, or retry logic.
5394//
5395//
5396//    // Example sending a request using the RegisterPublisherRequest method.
5397//    req, resp := client.RegisterPublisherRequest(params)
5398//
5399//    err := req.Send()
5400//    if err == nil { // resp is now filled
5401//        fmt.Println(resp)
5402//    }
5403//
5404// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/RegisterPublisher
5405func (c *CloudFormation) RegisterPublisherRequest(input *RegisterPublisherInput) (req *request.Request, output *RegisterPublisherOutput) {
5406	op := &request.Operation{
5407		Name:       opRegisterPublisher,
5408		HTTPMethod: "POST",
5409		HTTPPath:   "/",
5410	}
5411
5412	if input == nil {
5413		input = &RegisterPublisherInput{}
5414	}
5415
5416	output = &RegisterPublisherOutput{}
5417	req = c.newRequest(op, input, output)
5418	return
5419}
5420
5421// RegisterPublisher API operation for AWS CloudFormation.
5422//
5423// Registers your account as a publisher of public extensions in the CloudFormation
5424// registry. Public extensions are available for use by all CloudFormation users.
5425// This publisher ID applies to your account in all Amazon Web Services Regions.
5426//
5427// For information on requirements for registering as a public extension publisher,
5428// see Registering your account to publish CloudFormation extensions (https://docs.aws.amazon.com/cloudformation-cli/latest/userguide/publish-extension.html#publish-extension-prereqs)
5429// in the CloudFormation CLI User Guide.
5430//
5431// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
5432// with awserr.Error's Code and Message methods to get detailed information about
5433// the error.
5434//
5435// See the AWS API reference guide for AWS CloudFormation's
5436// API operation RegisterPublisher for usage and error information.
5437//
5438// Returned Error Codes:
5439//   * ErrCodeCFNRegistryException "CFNRegistryException"
5440//   An error occurred during a CloudFormation registry operation.
5441//
5442// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/RegisterPublisher
5443func (c *CloudFormation) RegisterPublisher(input *RegisterPublisherInput) (*RegisterPublisherOutput, error) {
5444	req, out := c.RegisterPublisherRequest(input)
5445	return out, req.Send()
5446}
5447
5448// RegisterPublisherWithContext is the same as RegisterPublisher with the addition of
5449// the ability to pass a context and additional request options.
5450//
5451// See RegisterPublisher for details on how to use this API operation.
5452//
5453// The context must be non-nil and will be used for request cancellation. If
5454// the context is nil a panic will occur. In the future the SDK may create
5455// sub-contexts for http.Requests. See https://golang.org/pkg/context/
5456// for more information on using Contexts.
5457func (c *CloudFormation) RegisterPublisherWithContext(ctx aws.Context, input *RegisterPublisherInput, opts ...request.Option) (*RegisterPublisherOutput, error) {
5458	req, out := c.RegisterPublisherRequest(input)
5459	req.SetContext(ctx)
5460	req.ApplyOptions(opts...)
5461	return out, req.Send()
5462}
5463
5464const opRegisterType = "RegisterType"
5465
5466// RegisterTypeRequest generates a "aws/request.Request" representing the
5467// client's request for the RegisterType operation. The "output" return
5468// value will be populated with the request's response once the request completes
5469// successfully.
5470//
5471// Use "Send" method on the returned Request to send the API call to the service.
5472// the "output" return value is not valid until after Send returns without error.
5473//
5474// See RegisterType for more information on using the RegisterType
5475// API call, and error handling.
5476//
5477// This method is useful when you want to inject custom logic or configuration
5478// into the SDK's request lifecycle. Such as custom headers, or retry logic.
5479//
5480//
5481//    // Example sending a request using the RegisterTypeRequest method.
5482//    req, resp := client.RegisterTypeRequest(params)
5483//
5484//    err := req.Send()
5485//    if err == nil { // resp is now filled
5486//        fmt.Println(resp)
5487//    }
5488//
5489// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/RegisterType
5490func (c *CloudFormation) RegisterTypeRequest(input *RegisterTypeInput) (req *request.Request, output *RegisterTypeOutput) {
5491	op := &request.Operation{
5492		Name:       opRegisterType,
5493		HTTPMethod: "POST",
5494		HTTPPath:   "/",
5495	}
5496
5497	if input == nil {
5498		input = &RegisterTypeInput{}
5499	}
5500
5501	output = &RegisterTypeOutput{}
5502	req = c.newRequest(op, input, output)
5503	return
5504}
5505
5506// RegisterType API operation for AWS CloudFormation.
5507//
5508// Registers an extension with the CloudFormation service. Registering an extension
5509// makes it available for use in CloudFormation templates in your Amazon Web
5510// Services account, and includes:
5511//
5512//    * Validating the extension schema
5513//
5514//    * Determining which handlers, if any, have been specified for the extension
5515//
5516//    * Making the extension available for use in your account
5517//
5518// For more information on how to develop extensions and ready them for registeration,
5519// see Creating Resource Providers (https://docs.aws.amazon.com/cloudformation-cli/latest/userguide/resource-types.html)
5520// in the CloudFormation CLI User Guide.
5521//
5522// You can have a maximum of 50 resource extension versions registered at a
5523// time. This maximum is per account and per region. Use DeregisterType (AWSCloudFormation/latest/APIReference/API_DeregisterType.html)
5524// to deregister specific extension versions if necessary.
5525//
5526// Once you have initiated a registration request using RegisterType , you can
5527// use DescribeTypeRegistration to monitor the progress of the registration
5528// request.
5529//
5530// Once you have registered a private extension in your account and region,
5531// use SetTypeConfiguration (AWSCloudFormation/latest/APIReference/API_SetTypeConfiguration.html)
5532// to specify configuration properties for the extension. For more information,
5533// see Configuring extensions at the account level (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/registry-register.html#registry-set-configuration)
5534// in the CloudFormation User Guide.
5535//
5536// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
5537// with awserr.Error's Code and Message methods to get detailed information about
5538// the error.
5539//
5540// See the AWS API reference guide for AWS CloudFormation's
5541// API operation RegisterType for usage and error information.
5542//
5543// Returned Error Codes:
5544//   * ErrCodeCFNRegistryException "CFNRegistryException"
5545//   An error occurred during a CloudFormation registry operation.
5546//
5547// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/RegisterType
5548func (c *CloudFormation) RegisterType(input *RegisterTypeInput) (*RegisterTypeOutput, error) {
5549	req, out := c.RegisterTypeRequest(input)
5550	return out, req.Send()
5551}
5552
5553// RegisterTypeWithContext is the same as RegisterType with the addition of
5554// the ability to pass a context and additional request options.
5555//
5556// See RegisterType for details on how to use this API operation.
5557//
5558// The context must be non-nil and will be used for request cancellation. If
5559// the context is nil a panic will occur. In the future the SDK may create
5560// sub-contexts for http.Requests. See https://golang.org/pkg/context/
5561// for more information on using Contexts.
5562func (c *CloudFormation) RegisterTypeWithContext(ctx aws.Context, input *RegisterTypeInput, opts ...request.Option) (*RegisterTypeOutput, error) {
5563	req, out := c.RegisterTypeRequest(input)
5564	req.SetContext(ctx)
5565	req.ApplyOptions(opts...)
5566	return out, req.Send()
5567}
5568
5569const opRollbackStack = "RollbackStack"
5570
5571// RollbackStackRequest generates a "aws/request.Request" representing the
5572// client's request for the RollbackStack operation. The "output" return
5573// value will be populated with the request's response once the request completes
5574// successfully.
5575//
5576// Use "Send" method on the returned Request to send the API call to the service.
5577// the "output" return value is not valid until after Send returns without error.
5578//
5579// See RollbackStack for more information on using the RollbackStack
5580// API call, and error handling.
5581//
5582// This method is useful when you want to inject custom logic or configuration
5583// into the SDK's request lifecycle. Such as custom headers, or retry logic.
5584//
5585//
5586//    // Example sending a request using the RollbackStackRequest method.
5587//    req, resp := client.RollbackStackRequest(params)
5588//
5589//    err := req.Send()
5590//    if err == nil { // resp is now filled
5591//        fmt.Println(resp)
5592//    }
5593//
5594// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/RollbackStack
5595func (c *CloudFormation) RollbackStackRequest(input *RollbackStackInput) (req *request.Request, output *RollbackStackOutput) {
5596	op := &request.Operation{
5597		Name:       opRollbackStack,
5598		HTTPMethod: "POST",
5599		HTTPPath:   "/",
5600	}
5601
5602	if input == nil {
5603		input = &RollbackStackInput{}
5604	}
5605
5606	output = &RollbackStackOutput{}
5607	req = c.newRequest(op, input, output)
5608	return
5609}
5610
5611// RollbackStack API operation for AWS CloudFormation.
5612//
5613// When specifying RollbackStack, you preserve the state of previously provisioned
5614// resources when an operation fails. You can check the status of the stack
5615// through the DescribeStacks API.
5616//
5617// Rolls back the specified stack to the last known stable state from CREATE_FAILED
5618// or UPDATE_FAILED stack statuses.
5619//
5620// This operation will delete a stack if it doesn't contain a last known stable
5621// state. A last known stable state includes any status in a *_COMPLETE. This
5622// includes the following stack statuses.
5623//
5624//    * CREATE_COMPLETE
5625//
5626//    * UPDATE_COMPLETE
5627//
5628//    * UPDATE_ROLLBACK_COMPLETE
5629//
5630//    * IMPORT_COMPLETE
5631//
5632//    * IMPORT_ROLLBACK_COMPLETE
5633//
5634// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
5635// with awserr.Error's Code and Message methods to get detailed information about
5636// the error.
5637//
5638// See the AWS API reference guide for AWS CloudFormation's
5639// API operation RollbackStack for usage and error information.
5640//
5641// Returned Error Codes:
5642//   * ErrCodeTokenAlreadyExistsException "TokenAlreadyExistsException"
5643//   A client request token already exists.
5644//
5645// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/RollbackStack
5646func (c *CloudFormation) RollbackStack(input *RollbackStackInput) (*RollbackStackOutput, error) {
5647	req, out := c.RollbackStackRequest(input)
5648	return out, req.Send()
5649}
5650
5651// RollbackStackWithContext is the same as RollbackStack with the addition of
5652// the ability to pass a context and additional request options.
5653//
5654// See RollbackStack for details on how to use this API operation.
5655//
5656// The context must be non-nil and will be used for request cancellation. If
5657// the context is nil a panic will occur. In the future the SDK may create
5658// sub-contexts for http.Requests. See https://golang.org/pkg/context/
5659// for more information on using Contexts.
5660func (c *CloudFormation) RollbackStackWithContext(ctx aws.Context, input *RollbackStackInput, opts ...request.Option) (*RollbackStackOutput, error) {
5661	req, out := c.RollbackStackRequest(input)
5662	req.SetContext(ctx)
5663	req.ApplyOptions(opts...)
5664	return out, req.Send()
5665}
5666
5667const opSetStackPolicy = "SetStackPolicy"
5668
5669// SetStackPolicyRequest generates a "aws/request.Request" representing the
5670// client's request for the SetStackPolicy operation. The "output" return
5671// value will be populated with the request's response once the request completes
5672// successfully.
5673//
5674// Use "Send" method on the returned Request to send the API call to the service.
5675// the "output" return value is not valid until after Send returns without error.
5676//
5677// See SetStackPolicy for more information on using the SetStackPolicy
5678// API call, and error handling.
5679//
5680// This method is useful when you want to inject custom logic or configuration
5681// into the SDK's request lifecycle. Such as custom headers, or retry logic.
5682//
5683//
5684//    // Example sending a request using the SetStackPolicyRequest method.
5685//    req, resp := client.SetStackPolicyRequest(params)
5686//
5687//    err := req.Send()
5688//    if err == nil { // resp is now filled
5689//        fmt.Println(resp)
5690//    }
5691//
5692// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/SetStackPolicy
5693func (c *CloudFormation) SetStackPolicyRequest(input *SetStackPolicyInput) (req *request.Request, output *SetStackPolicyOutput) {
5694	op := &request.Operation{
5695		Name:       opSetStackPolicy,
5696		HTTPMethod: "POST",
5697		HTTPPath:   "/",
5698	}
5699
5700	if input == nil {
5701		input = &SetStackPolicyInput{}
5702	}
5703
5704	output = &SetStackPolicyOutput{}
5705	req = c.newRequest(op, input, output)
5706	req.Handlers.Unmarshal.Swap(query.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
5707	return
5708}
5709
5710// SetStackPolicy API operation for AWS CloudFormation.
5711//
5712// Sets a stack policy for a specified stack.
5713//
5714// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
5715// with awserr.Error's Code and Message methods to get detailed information about
5716// the error.
5717//
5718// See the AWS API reference guide for AWS CloudFormation's
5719// API operation SetStackPolicy for usage and error information.
5720// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/SetStackPolicy
5721func (c *CloudFormation) SetStackPolicy(input *SetStackPolicyInput) (*SetStackPolicyOutput, error) {
5722	req, out := c.SetStackPolicyRequest(input)
5723	return out, req.Send()
5724}
5725
5726// SetStackPolicyWithContext is the same as SetStackPolicy with the addition of
5727// the ability to pass a context and additional request options.
5728//
5729// See SetStackPolicy for details on how to use this API operation.
5730//
5731// The context must be non-nil and will be used for request cancellation. If
5732// the context is nil a panic will occur. In the future the SDK may create
5733// sub-contexts for http.Requests. See https://golang.org/pkg/context/
5734// for more information on using Contexts.
5735func (c *CloudFormation) SetStackPolicyWithContext(ctx aws.Context, input *SetStackPolicyInput, opts ...request.Option) (*SetStackPolicyOutput, error) {
5736	req, out := c.SetStackPolicyRequest(input)
5737	req.SetContext(ctx)
5738	req.ApplyOptions(opts...)
5739	return out, req.Send()
5740}
5741
5742const opSetTypeConfiguration = "SetTypeConfiguration"
5743
5744// SetTypeConfigurationRequest generates a "aws/request.Request" representing the
5745// client's request for the SetTypeConfiguration operation. The "output" return
5746// value will be populated with the request's response once the request completes
5747// successfully.
5748//
5749// Use "Send" method on the returned Request to send the API call to the service.
5750// the "output" return value is not valid until after Send returns without error.
5751//
5752// See SetTypeConfiguration for more information on using the SetTypeConfiguration
5753// API call, and error handling.
5754//
5755// This method is useful when you want to inject custom logic or configuration
5756// into the SDK's request lifecycle. Such as custom headers, or retry logic.
5757//
5758//
5759//    // Example sending a request using the SetTypeConfigurationRequest method.
5760//    req, resp := client.SetTypeConfigurationRequest(params)
5761//
5762//    err := req.Send()
5763//    if err == nil { // resp is now filled
5764//        fmt.Println(resp)
5765//    }
5766//
5767// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/SetTypeConfiguration
5768func (c *CloudFormation) SetTypeConfigurationRequest(input *SetTypeConfigurationInput) (req *request.Request, output *SetTypeConfigurationOutput) {
5769	op := &request.Operation{
5770		Name:       opSetTypeConfiguration,
5771		HTTPMethod: "POST",
5772		HTTPPath:   "/",
5773	}
5774
5775	if input == nil {
5776		input = &SetTypeConfigurationInput{}
5777	}
5778
5779	output = &SetTypeConfigurationOutput{}
5780	req = c.newRequest(op, input, output)
5781	return
5782}
5783
5784// SetTypeConfiguration API operation for AWS CloudFormation.
5785//
5786// Specifies the configuration data for a registered CloudFormation extension,
5787// in the given account and region.
5788//
5789// To view the current configuration data for an extension, refer to the ConfigurationSchema
5790// element of DescribeType (AWSCloudFormation/latest/APIReference/API_DescribeType.html).
5791// For more information, see Configuring extensions at the account level (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/registry-register.html#registry-set-configuration)
5792// in the CloudFormation User Guide.
5793//
5794// It is strongly recommended that you use dynamic references to restrict sensitive
5795// configuration definitions, such as third-party credentials. For more details
5796// on dynamic references, see Using dynamic references to specify template values
5797// (https://docs.aws.amazon.com/) in the CloudFormation User Guide.
5798//
5799// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
5800// with awserr.Error's Code and Message methods to get detailed information about
5801// the error.
5802//
5803// See the AWS API reference guide for AWS CloudFormation's
5804// API operation SetTypeConfiguration for usage and error information.
5805//
5806// Returned Error Codes:
5807//   * ErrCodeCFNRegistryException "CFNRegistryException"
5808//   An error occurred during a CloudFormation registry operation.
5809//
5810//   * ErrCodeTypeNotFoundException "TypeNotFoundException"
5811//   The specified extension does not exist in the CloudFormation registry.
5812//
5813// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/SetTypeConfiguration
5814func (c *CloudFormation) SetTypeConfiguration(input *SetTypeConfigurationInput) (*SetTypeConfigurationOutput, error) {
5815	req, out := c.SetTypeConfigurationRequest(input)
5816	return out, req.Send()
5817}
5818
5819// SetTypeConfigurationWithContext is the same as SetTypeConfiguration with the addition of
5820// the ability to pass a context and additional request options.
5821//
5822// See SetTypeConfiguration for details on how to use this API operation.
5823//
5824// The context must be non-nil and will be used for request cancellation. If
5825// the context is nil a panic will occur. In the future the SDK may create
5826// sub-contexts for http.Requests. See https://golang.org/pkg/context/
5827// for more information on using Contexts.
5828func (c *CloudFormation) SetTypeConfigurationWithContext(ctx aws.Context, input *SetTypeConfigurationInput, opts ...request.Option) (*SetTypeConfigurationOutput, error) {
5829	req, out := c.SetTypeConfigurationRequest(input)
5830	req.SetContext(ctx)
5831	req.ApplyOptions(opts...)
5832	return out, req.Send()
5833}
5834
5835const opSetTypeDefaultVersion = "SetTypeDefaultVersion"
5836
5837// SetTypeDefaultVersionRequest generates a "aws/request.Request" representing the
5838// client's request for the SetTypeDefaultVersion operation. The "output" return
5839// value will be populated with the request's response once the request completes
5840// successfully.
5841//
5842// Use "Send" method on the returned Request to send the API call to the service.
5843// the "output" return value is not valid until after Send returns without error.
5844//
5845// See SetTypeDefaultVersion for more information on using the SetTypeDefaultVersion
5846// API call, and error handling.
5847//
5848// This method is useful when you want to inject custom logic or configuration
5849// into the SDK's request lifecycle. Such as custom headers, or retry logic.
5850//
5851//
5852//    // Example sending a request using the SetTypeDefaultVersionRequest method.
5853//    req, resp := client.SetTypeDefaultVersionRequest(params)
5854//
5855//    err := req.Send()
5856//    if err == nil { // resp is now filled
5857//        fmt.Println(resp)
5858//    }
5859//
5860// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/SetTypeDefaultVersion
5861func (c *CloudFormation) SetTypeDefaultVersionRequest(input *SetTypeDefaultVersionInput) (req *request.Request, output *SetTypeDefaultVersionOutput) {
5862	op := &request.Operation{
5863		Name:       opSetTypeDefaultVersion,
5864		HTTPMethod: "POST",
5865		HTTPPath:   "/",
5866	}
5867
5868	if input == nil {
5869		input = &SetTypeDefaultVersionInput{}
5870	}
5871
5872	output = &SetTypeDefaultVersionOutput{}
5873	req = c.newRequest(op, input, output)
5874	req.Handlers.Unmarshal.Swap(query.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
5875	return
5876}
5877
5878// SetTypeDefaultVersion API operation for AWS CloudFormation.
5879//
5880// Specify the default version of an extension. The default version of an extension
5881// will be used in CloudFormation operations.
5882//
5883// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
5884// with awserr.Error's Code and Message methods to get detailed information about
5885// the error.
5886//
5887// See the AWS API reference guide for AWS CloudFormation's
5888// API operation SetTypeDefaultVersion for usage and error information.
5889//
5890// Returned Error Codes:
5891//   * ErrCodeCFNRegistryException "CFNRegistryException"
5892//   An error occurred during a CloudFormation registry operation.
5893//
5894//   * ErrCodeTypeNotFoundException "TypeNotFoundException"
5895//   The specified extension does not exist in the CloudFormation registry.
5896//
5897// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/SetTypeDefaultVersion
5898func (c *CloudFormation) SetTypeDefaultVersion(input *SetTypeDefaultVersionInput) (*SetTypeDefaultVersionOutput, error) {
5899	req, out := c.SetTypeDefaultVersionRequest(input)
5900	return out, req.Send()
5901}
5902
5903// SetTypeDefaultVersionWithContext is the same as SetTypeDefaultVersion with the addition of
5904// the ability to pass a context and additional request options.
5905//
5906// See SetTypeDefaultVersion for details on how to use this API operation.
5907//
5908// The context must be non-nil and will be used for request cancellation. If
5909// the context is nil a panic will occur. In the future the SDK may create
5910// sub-contexts for http.Requests. See https://golang.org/pkg/context/
5911// for more information on using Contexts.
5912func (c *CloudFormation) SetTypeDefaultVersionWithContext(ctx aws.Context, input *SetTypeDefaultVersionInput, opts ...request.Option) (*SetTypeDefaultVersionOutput, error) {
5913	req, out := c.SetTypeDefaultVersionRequest(input)
5914	req.SetContext(ctx)
5915	req.ApplyOptions(opts...)
5916	return out, req.Send()
5917}
5918
5919const opSignalResource = "SignalResource"
5920
5921// SignalResourceRequest generates a "aws/request.Request" representing the
5922// client's request for the SignalResource operation. The "output" return
5923// value will be populated with the request's response once the request completes
5924// successfully.
5925//
5926// Use "Send" method on the returned Request to send the API call to the service.
5927// the "output" return value is not valid until after Send returns without error.
5928//
5929// See SignalResource for more information on using the SignalResource
5930// API call, and error handling.
5931//
5932// This method is useful when you want to inject custom logic or configuration
5933// into the SDK's request lifecycle. Such as custom headers, or retry logic.
5934//
5935//
5936//    // Example sending a request using the SignalResourceRequest method.
5937//    req, resp := client.SignalResourceRequest(params)
5938//
5939//    err := req.Send()
5940//    if err == nil { // resp is now filled
5941//        fmt.Println(resp)
5942//    }
5943//
5944// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/SignalResource
5945func (c *CloudFormation) SignalResourceRequest(input *SignalResourceInput) (req *request.Request, output *SignalResourceOutput) {
5946	op := &request.Operation{
5947		Name:       opSignalResource,
5948		HTTPMethod: "POST",
5949		HTTPPath:   "/",
5950	}
5951
5952	if input == nil {
5953		input = &SignalResourceInput{}
5954	}
5955
5956	output = &SignalResourceOutput{}
5957	req = c.newRequest(op, input, output)
5958	req.Handlers.Unmarshal.Swap(query.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
5959	return
5960}
5961
5962// SignalResource API operation for AWS CloudFormation.
5963//
5964// Sends a signal to the specified resource with a success or failure status.
5965// You can use the SignalResource API in conjunction with a creation policy
5966// or update policy. CloudFormation doesn't proceed with a stack creation or
5967// update until resources receive the required number of signals or the timeout
5968// period is exceeded. The SignalResource API is useful in cases where you want
5969// to send signals from anywhere other than an Amazon EC2 instance.
5970//
5971// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
5972// with awserr.Error's Code and Message methods to get detailed information about
5973// the error.
5974//
5975// See the AWS API reference guide for AWS CloudFormation's
5976// API operation SignalResource for usage and error information.
5977// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/SignalResource
5978func (c *CloudFormation) SignalResource(input *SignalResourceInput) (*SignalResourceOutput, error) {
5979	req, out := c.SignalResourceRequest(input)
5980	return out, req.Send()
5981}
5982
5983// SignalResourceWithContext is the same as SignalResource with the addition of
5984// the ability to pass a context and additional request options.
5985//
5986// See SignalResource for details on how to use this API operation.
5987//
5988// The context must be non-nil and will be used for request cancellation. If
5989// the context is nil a panic will occur. In the future the SDK may create
5990// sub-contexts for http.Requests. See https://golang.org/pkg/context/
5991// for more information on using Contexts.
5992func (c *CloudFormation) SignalResourceWithContext(ctx aws.Context, input *SignalResourceInput, opts ...request.Option) (*SignalResourceOutput, error) {
5993	req, out := c.SignalResourceRequest(input)
5994	req.SetContext(ctx)
5995	req.ApplyOptions(opts...)
5996	return out, req.Send()
5997}
5998
5999const opStopStackSetOperation = "StopStackSetOperation"
6000
6001// StopStackSetOperationRequest generates a "aws/request.Request" representing the
6002// client's request for the StopStackSetOperation operation. The "output" return
6003// value will be populated with the request's response once the request completes
6004// successfully.
6005//
6006// Use "Send" method on the returned Request to send the API call to the service.
6007// the "output" return value is not valid until after Send returns without error.
6008//
6009// See StopStackSetOperation for more information on using the StopStackSetOperation
6010// API call, and error handling.
6011//
6012// This method is useful when you want to inject custom logic or configuration
6013// into the SDK's request lifecycle. Such as custom headers, or retry logic.
6014//
6015//
6016//    // Example sending a request using the StopStackSetOperationRequest method.
6017//    req, resp := client.StopStackSetOperationRequest(params)
6018//
6019//    err := req.Send()
6020//    if err == nil { // resp is now filled
6021//        fmt.Println(resp)
6022//    }
6023//
6024// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/StopStackSetOperation
6025func (c *CloudFormation) StopStackSetOperationRequest(input *StopStackSetOperationInput) (req *request.Request, output *StopStackSetOperationOutput) {
6026	op := &request.Operation{
6027		Name:       opStopStackSetOperation,
6028		HTTPMethod: "POST",
6029		HTTPPath:   "/",
6030	}
6031
6032	if input == nil {
6033		input = &StopStackSetOperationInput{}
6034	}
6035
6036	output = &StopStackSetOperationOutput{}
6037	req = c.newRequest(op, input, output)
6038	req.Handlers.Unmarshal.Swap(query.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
6039	return
6040}
6041
6042// StopStackSetOperation API operation for AWS CloudFormation.
6043//
6044// Stops an in-progress operation on a stack set and its associated stack instances.
6045//
6046// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
6047// with awserr.Error's Code and Message methods to get detailed information about
6048// the error.
6049//
6050// See the AWS API reference guide for AWS CloudFormation's
6051// API operation StopStackSetOperation for usage and error information.
6052//
6053// Returned Error Codes:
6054//   * ErrCodeStackSetNotFoundException "StackSetNotFoundException"
6055//   The specified stack set doesn't exist.
6056//
6057//   * ErrCodeOperationNotFoundException "OperationNotFoundException"
6058//   The specified ID refers to an operation that doesn't exist.
6059//
6060//   * ErrCodeInvalidOperationException "InvalidOperationException"
6061//   The specified operation isn't valid.
6062//
6063// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/StopStackSetOperation
6064func (c *CloudFormation) StopStackSetOperation(input *StopStackSetOperationInput) (*StopStackSetOperationOutput, error) {
6065	req, out := c.StopStackSetOperationRequest(input)
6066	return out, req.Send()
6067}
6068
6069// StopStackSetOperationWithContext is the same as StopStackSetOperation with the addition of
6070// the ability to pass a context and additional request options.
6071//
6072// See StopStackSetOperation for details on how to use this API operation.
6073//
6074// The context must be non-nil and will be used for request cancellation. If
6075// the context is nil a panic will occur. In the future the SDK may create
6076// sub-contexts for http.Requests. See https://golang.org/pkg/context/
6077// for more information on using Contexts.
6078func (c *CloudFormation) StopStackSetOperationWithContext(ctx aws.Context, input *StopStackSetOperationInput, opts ...request.Option) (*StopStackSetOperationOutput, error) {
6079	req, out := c.StopStackSetOperationRequest(input)
6080	req.SetContext(ctx)
6081	req.ApplyOptions(opts...)
6082	return out, req.Send()
6083}
6084
6085const opTestType = "TestType"
6086
6087// TestTypeRequest generates a "aws/request.Request" representing the
6088// client's request for the TestType operation. The "output" return
6089// value will be populated with the request's response once the request completes
6090// successfully.
6091//
6092// Use "Send" method on the returned Request to send the API call to the service.
6093// the "output" return value is not valid until after Send returns without error.
6094//
6095// See TestType for more information on using the TestType
6096// API call, and error handling.
6097//
6098// This method is useful when you want to inject custom logic or configuration
6099// into the SDK's request lifecycle. Such as custom headers, or retry logic.
6100//
6101//
6102//    // Example sending a request using the TestTypeRequest method.
6103//    req, resp := client.TestTypeRequest(params)
6104//
6105//    err := req.Send()
6106//    if err == nil { // resp is now filled
6107//        fmt.Println(resp)
6108//    }
6109//
6110// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/TestType
6111func (c *CloudFormation) TestTypeRequest(input *TestTypeInput) (req *request.Request, output *TestTypeOutput) {
6112	op := &request.Operation{
6113		Name:       opTestType,
6114		HTTPMethod: "POST",
6115		HTTPPath:   "/",
6116	}
6117
6118	if input == nil {
6119		input = &TestTypeInput{}
6120	}
6121
6122	output = &TestTypeOutput{}
6123	req = c.newRequest(op, input, output)
6124	return
6125}
6126
6127// TestType API operation for AWS CloudFormation.
6128//
6129// Tests a registered extension to make sure it meets all necessary requirements
6130// for being published in the CloudFormation registry.
6131//
6132//    * For resource types, this includes passing all contracts tests defined
6133//    for the type.
6134//
6135//    * For modules, this includes determining if the module's model meets all
6136//    necessary requirements.
6137//
6138// For more information, see Testing your public extension prior to publishing
6139// (https://docs.aws.amazon.com/cloudformation-cli/latest/userguide/publish-extension.html#publish-extension-testing)
6140// in the CloudFormation CLI User Guide.
6141//
6142// If you do not specify a version, CloudFormation uses the default version
6143// of the extension in your account and region for testing.
6144//
6145// To perform testing, CloudFormation assumes the execution role specified when
6146// the type was registered. For more information, see RegisterType (AWSCloudFormation/latest/APIReference/API_RegisterType.html).
6147//
6148// Once you've initiated testing on an extension using TestType, you can use
6149// DescribeType (https://docs.aws.amazon.com/AWSCloudFormation/latest/APIReference/API_DescribeType.html)
6150// to monitor the current test status and test status description for the extension.
6151//
6152// An extension must have a test status of PASSED before it can be published.
6153// For more information, see Publishing extensions to make them available for
6154// public use (https://docs.aws.amazon.com/cloudformation-cli/latest/userguide/resource-type-publish.html)
6155// in the CloudFormation CLI User Guide.
6156//
6157// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
6158// with awserr.Error's Code and Message methods to get detailed information about
6159// the error.
6160//
6161// See the AWS API reference guide for AWS CloudFormation's
6162// API operation TestType for usage and error information.
6163//
6164// Returned Error Codes:
6165//   * ErrCodeCFNRegistryException "CFNRegistryException"
6166//   An error occurred during a CloudFormation registry operation.
6167//
6168//   * ErrCodeTypeNotFoundException "TypeNotFoundException"
6169//   The specified extension does not exist in the CloudFormation registry.
6170//
6171// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/TestType
6172func (c *CloudFormation) TestType(input *TestTypeInput) (*TestTypeOutput, error) {
6173	req, out := c.TestTypeRequest(input)
6174	return out, req.Send()
6175}
6176
6177// TestTypeWithContext is the same as TestType with the addition of
6178// the ability to pass a context and additional request options.
6179//
6180// See TestType for details on how to use this API operation.
6181//
6182// The context must be non-nil and will be used for request cancellation. If
6183// the context is nil a panic will occur. In the future the SDK may create
6184// sub-contexts for http.Requests. See https://golang.org/pkg/context/
6185// for more information on using Contexts.
6186func (c *CloudFormation) TestTypeWithContext(ctx aws.Context, input *TestTypeInput, opts ...request.Option) (*TestTypeOutput, error) {
6187	req, out := c.TestTypeRequest(input)
6188	req.SetContext(ctx)
6189	req.ApplyOptions(opts...)
6190	return out, req.Send()
6191}
6192
6193const opUpdateStack = "UpdateStack"
6194
6195// UpdateStackRequest generates a "aws/request.Request" representing the
6196// client's request for the UpdateStack operation. The "output" return
6197// value will be populated with the request's response once the request completes
6198// successfully.
6199//
6200// Use "Send" method on the returned Request to send the API call to the service.
6201// the "output" return value is not valid until after Send returns without error.
6202//
6203// See UpdateStack for more information on using the UpdateStack
6204// API call, and error handling.
6205//
6206// This method is useful when you want to inject custom logic or configuration
6207// into the SDK's request lifecycle. Such as custom headers, or retry logic.
6208//
6209//
6210//    // Example sending a request using the UpdateStackRequest method.
6211//    req, resp := client.UpdateStackRequest(params)
6212//
6213//    err := req.Send()
6214//    if err == nil { // resp is now filled
6215//        fmt.Println(resp)
6216//    }
6217//
6218// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/UpdateStack
6219func (c *CloudFormation) UpdateStackRequest(input *UpdateStackInput) (req *request.Request, output *UpdateStackOutput) {
6220	op := &request.Operation{
6221		Name:       opUpdateStack,
6222		HTTPMethod: "POST",
6223		HTTPPath:   "/",
6224	}
6225
6226	if input == nil {
6227		input = &UpdateStackInput{}
6228	}
6229
6230	output = &UpdateStackOutput{}
6231	req = c.newRequest(op, input, output)
6232	return
6233}
6234
6235// UpdateStack API operation for AWS CloudFormation.
6236//
6237// Updates a stack as specified in the template. After the call completes successfully,
6238// the stack update starts. You can check the status of the stack via the DescribeStacks
6239// action.
6240//
6241// To get a copy of the template for an existing stack, you can use the GetTemplate
6242// action.
6243//
6244// For more information about creating an update template, updating a stack,
6245// and monitoring the progress of the update, see Updating a Stack (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks.html).
6246//
6247// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
6248// with awserr.Error's Code and Message methods to get detailed information about
6249// the error.
6250//
6251// See the AWS API reference guide for AWS CloudFormation's
6252// API operation UpdateStack for usage and error information.
6253//
6254// Returned Error Codes:
6255//   * ErrCodeInsufficientCapabilitiesException "InsufficientCapabilitiesException"
6256//   The template contains resources with capabilities that weren't specified
6257//   in the Capabilities parameter.
6258//
6259//   * ErrCodeTokenAlreadyExistsException "TokenAlreadyExistsException"
6260//   A client request token already exists.
6261//
6262// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/UpdateStack
6263func (c *CloudFormation) UpdateStack(input *UpdateStackInput) (*UpdateStackOutput, error) {
6264	req, out := c.UpdateStackRequest(input)
6265	return out, req.Send()
6266}
6267
6268// UpdateStackWithContext is the same as UpdateStack with the addition of
6269// the ability to pass a context and additional request options.
6270//
6271// See UpdateStack for details on how to use this API operation.
6272//
6273// The context must be non-nil and will be used for request cancellation. If
6274// the context is nil a panic will occur. In the future the SDK may create
6275// sub-contexts for http.Requests. See https://golang.org/pkg/context/
6276// for more information on using Contexts.
6277func (c *CloudFormation) UpdateStackWithContext(ctx aws.Context, input *UpdateStackInput, opts ...request.Option) (*UpdateStackOutput, error) {
6278	req, out := c.UpdateStackRequest(input)
6279	req.SetContext(ctx)
6280	req.ApplyOptions(opts...)
6281	return out, req.Send()
6282}
6283
6284const opUpdateStackInstances = "UpdateStackInstances"
6285
6286// UpdateStackInstancesRequest generates a "aws/request.Request" representing the
6287// client's request for the UpdateStackInstances operation. The "output" return
6288// value will be populated with the request's response once the request completes
6289// successfully.
6290//
6291// Use "Send" method on the returned Request to send the API call to the service.
6292// the "output" return value is not valid until after Send returns without error.
6293//
6294// See UpdateStackInstances for more information on using the UpdateStackInstances
6295// API call, and error handling.
6296//
6297// This method is useful when you want to inject custom logic or configuration
6298// into the SDK's request lifecycle. Such as custom headers, or retry logic.
6299//
6300//
6301//    // Example sending a request using the UpdateStackInstancesRequest method.
6302//    req, resp := client.UpdateStackInstancesRequest(params)
6303//
6304//    err := req.Send()
6305//    if err == nil { // resp is now filled
6306//        fmt.Println(resp)
6307//    }
6308//
6309// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/UpdateStackInstances
6310func (c *CloudFormation) UpdateStackInstancesRequest(input *UpdateStackInstancesInput) (req *request.Request, output *UpdateStackInstancesOutput) {
6311	op := &request.Operation{
6312		Name:       opUpdateStackInstances,
6313		HTTPMethod: "POST",
6314		HTTPPath:   "/",
6315	}
6316
6317	if input == nil {
6318		input = &UpdateStackInstancesInput{}
6319	}
6320
6321	output = &UpdateStackInstancesOutput{}
6322	req = c.newRequest(op, input, output)
6323	return
6324}
6325
6326// UpdateStackInstances API operation for AWS CloudFormation.
6327//
6328// Updates the parameter values for stack instances for the specified accounts,
6329// within the specified Regions. A stack instance refers to a stack in a specific
6330// account and Region.
6331//
6332// You can only update stack instances in Regions and accounts where they already
6333// exist; to create additional stack instances, use CreateStackInstances (https://docs.aws.amazon.com/AWSCloudFormation/latest/APIReference/API_CreateStackInstances.html).
6334//
6335// During stack set updates, any parameters overridden for a stack instance
6336// are not updated, but retain their overridden value.
6337//
6338// You can only update the parameter values that are specified in the stack
6339// set; to add or delete a parameter itself, use UpdateStackSet (https://docs.aws.amazon.com/AWSCloudFormation/latest/APIReference/API_UpdateStackSet.html)
6340// to update the stack set template. If you add a parameter to a template, before
6341// you can override the parameter value specified in the stack set you must
6342// first use UpdateStackSet (https://docs.aws.amazon.com/AWSCloudFormation/latest/APIReference/API_UpdateStackSet.html)
6343// to update all stack instances with the updated template and parameter value
6344// specified in the stack set. Once a stack instance has been updated with the
6345// new parameter, you can then override the parameter value using UpdateStackInstances.
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 UpdateStackInstances for usage and error information.
6353//
6354// Returned Error Codes:
6355//   * ErrCodeStackSetNotFoundException "StackSetNotFoundException"
6356//   The specified stack set doesn't exist.
6357//
6358//   * ErrCodeStackInstanceNotFoundException "StackInstanceNotFoundException"
6359//   The specified stack instance doesn't exist.
6360//
6361//   * ErrCodeOperationInProgressException "OperationInProgressException"
6362//   Another operation is currently in progress for this stack set. Only one operation
6363//   can be performed for a stack set at a given time.
6364//
6365//   * ErrCodeOperationIdAlreadyExistsException "OperationIdAlreadyExistsException"
6366//   The specified operation ID already exists.
6367//
6368//   * ErrCodeStaleRequestException "StaleRequestException"
6369//   Another operation has been performed on this stack set since the specified
6370//   operation was performed.
6371//
6372//   * ErrCodeInvalidOperationException "InvalidOperationException"
6373//   The specified operation isn't valid.
6374//
6375// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/UpdateStackInstances
6376func (c *CloudFormation) UpdateStackInstances(input *UpdateStackInstancesInput) (*UpdateStackInstancesOutput, error) {
6377	req, out := c.UpdateStackInstancesRequest(input)
6378	return out, req.Send()
6379}
6380
6381// UpdateStackInstancesWithContext is the same as UpdateStackInstances with the addition of
6382// the ability to pass a context and additional request options.
6383//
6384// See UpdateStackInstances for details on how to use this API operation.
6385//
6386// The context must be non-nil and will be used for request cancellation. If
6387// the context is nil a panic will occur. In the future the SDK may create
6388// sub-contexts for http.Requests. See https://golang.org/pkg/context/
6389// for more information on using Contexts.
6390func (c *CloudFormation) UpdateStackInstancesWithContext(ctx aws.Context, input *UpdateStackInstancesInput, opts ...request.Option) (*UpdateStackInstancesOutput, error) {
6391	req, out := c.UpdateStackInstancesRequest(input)
6392	req.SetContext(ctx)
6393	req.ApplyOptions(opts...)
6394	return out, req.Send()
6395}
6396
6397const opUpdateStackSet = "UpdateStackSet"
6398
6399// UpdateStackSetRequest generates a "aws/request.Request" representing the
6400// client's request for the UpdateStackSet operation. The "output" return
6401// value will be populated with the request's response once the request completes
6402// successfully.
6403//
6404// Use "Send" method on the returned Request to send the API call to the service.
6405// the "output" return value is not valid until after Send returns without error.
6406//
6407// See UpdateStackSet for more information on using the UpdateStackSet
6408// API call, and error handling.
6409//
6410// This method is useful when you want to inject custom logic or configuration
6411// into the SDK's request lifecycle. Such as custom headers, or retry logic.
6412//
6413//
6414//    // Example sending a request using the UpdateStackSetRequest method.
6415//    req, resp := client.UpdateStackSetRequest(params)
6416//
6417//    err := req.Send()
6418//    if err == nil { // resp is now filled
6419//        fmt.Println(resp)
6420//    }
6421//
6422// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/UpdateStackSet
6423func (c *CloudFormation) UpdateStackSetRequest(input *UpdateStackSetInput) (req *request.Request, output *UpdateStackSetOutput) {
6424	op := &request.Operation{
6425		Name:       opUpdateStackSet,
6426		HTTPMethod: "POST",
6427		HTTPPath:   "/",
6428	}
6429
6430	if input == nil {
6431		input = &UpdateStackSetInput{}
6432	}
6433
6434	output = &UpdateStackSetOutput{}
6435	req = c.newRequest(op, input, output)
6436	return
6437}
6438
6439// UpdateStackSet API operation for AWS CloudFormation.
6440//
6441// Updates the stack set, and associated stack instances in the specified accounts
6442// and Regions.
6443//
6444// Even if the stack set operation created by updating the stack set fails (completely
6445// or partially, below or above a specified failure tolerance), the stack set
6446// is updated with your changes. Subsequent CreateStackInstances calls on the
6447// specified stack set use the updated stack set.
6448//
6449// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
6450// with awserr.Error's Code and Message methods to get detailed information about
6451// the error.
6452//
6453// See the AWS API reference guide for AWS CloudFormation's
6454// API operation UpdateStackSet for usage and error information.
6455//
6456// Returned Error Codes:
6457//   * ErrCodeStackSetNotFoundException "StackSetNotFoundException"
6458//   The specified stack set doesn't exist.
6459//
6460//   * ErrCodeOperationInProgressException "OperationInProgressException"
6461//   Another operation is currently in progress for this stack set. Only one operation
6462//   can be performed for a stack set at a given time.
6463//
6464//   * ErrCodeOperationIdAlreadyExistsException "OperationIdAlreadyExistsException"
6465//   The specified operation ID already exists.
6466//
6467//   * ErrCodeStaleRequestException "StaleRequestException"
6468//   Another operation has been performed on this stack set since the specified
6469//   operation was performed.
6470//
6471//   * ErrCodeInvalidOperationException "InvalidOperationException"
6472//   The specified operation isn't valid.
6473//
6474//   * ErrCodeStackInstanceNotFoundException "StackInstanceNotFoundException"
6475//   The specified stack instance doesn't exist.
6476//
6477// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/UpdateStackSet
6478func (c *CloudFormation) UpdateStackSet(input *UpdateStackSetInput) (*UpdateStackSetOutput, error) {
6479	req, out := c.UpdateStackSetRequest(input)
6480	return out, req.Send()
6481}
6482
6483// UpdateStackSetWithContext is the same as UpdateStackSet with the addition of
6484// the ability to pass a context and additional request options.
6485//
6486// See UpdateStackSet for details on how to use this API operation.
6487//
6488// The context must be non-nil and will be used for request cancellation. If
6489// the context is nil a panic will occur. In the future the SDK may create
6490// sub-contexts for http.Requests. See https://golang.org/pkg/context/
6491// for more information on using Contexts.
6492func (c *CloudFormation) UpdateStackSetWithContext(ctx aws.Context, input *UpdateStackSetInput, opts ...request.Option) (*UpdateStackSetOutput, error) {
6493	req, out := c.UpdateStackSetRequest(input)
6494	req.SetContext(ctx)
6495	req.ApplyOptions(opts...)
6496	return out, req.Send()
6497}
6498
6499const opUpdateTerminationProtection = "UpdateTerminationProtection"
6500
6501// UpdateTerminationProtectionRequest generates a "aws/request.Request" representing the
6502// client's request for the UpdateTerminationProtection operation. The "output" return
6503// value will be populated with the request's response once the request completes
6504// successfully.
6505//
6506// Use "Send" method on the returned Request to send the API call to the service.
6507// the "output" return value is not valid until after Send returns without error.
6508//
6509// See UpdateTerminationProtection for more information on using the UpdateTerminationProtection
6510// API call, and error handling.
6511//
6512// This method is useful when you want to inject custom logic or configuration
6513// into the SDK's request lifecycle. Such as custom headers, or retry logic.
6514//
6515//
6516//    // Example sending a request using the UpdateTerminationProtectionRequest method.
6517//    req, resp := client.UpdateTerminationProtectionRequest(params)
6518//
6519//    err := req.Send()
6520//    if err == nil { // resp is now filled
6521//        fmt.Println(resp)
6522//    }
6523//
6524// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/UpdateTerminationProtection
6525func (c *CloudFormation) UpdateTerminationProtectionRequest(input *UpdateTerminationProtectionInput) (req *request.Request, output *UpdateTerminationProtectionOutput) {
6526	op := &request.Operation{
6527		Name:       opUpdateTerminationProtection,
6528		HTTPMethod: "POST",
6529		HTTPPath:   "/",
6530	}
6531
6532	if input == nil {
6533		input = &UpdateTerminationProtectionInput{}
6534	}
6535
6536	output = &UpdateTerminationProtectionOutput{}
6537	req = c.newRequest(op, input, output)
6538	return
6539}
6540
6541// UpdateTerminationProtection API operation for AWS CloudFormation.
6542//
6543// Updates termination protection for the specified stack. If a user attempts
6544// to delete a stack with termination protection enabled, the operation fails
6545// and the stack remains unchanged. For more information, see Protecting a Stack
6546// From Being Deleted (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-protect-stacks.html)
6547// in the CloudFormation User Guide.
6548//
6549// For nested stacks (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-nested-stacks.html),
6550// termination protection is set on the root stack and cannot be changed directly
6551// on the nested stack.
6552//
6553// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
6554// with awserr.Error's Code and Message methods to get detailed information about
6555// the error.
6556//
6557// See the AWS API reference guide for AWS CloudFormation's
6558// API operation UpdateTerminationProtection for usage and error information.
6559// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/UpdateTerminationProtection
6560func (c *CloudFormation) UpdateTerminationProtection(input *UpdateTerminationProtectionInput) (*UpdateTerminationProtectionOutput, error) {
6561	req, out := c.UpdateTerminationProtectionRequest(input)
6562	return out, req.Send()
6563}
6564
6565// UpdateTerminationProtectionWithContext is the same as UpdateTerminationProtection with the addition of
6566// the ability to pass a context and additional request options.
6567//
6568// See UpdateTerminationProtection for details on how to use this API operation.
6569//
6570// The context must be non-nil and will be used for request cancellation. If
6571// the context is nil a panic will occur. In the future the SDK may create
6572// sub-contexts for http.Requests. See https://golang.org/pkg/context/
6573// for more information on using Contexts.
6574func (c *CloudFormation) UpdateTerminationProtectionWithContext(ctx aws.Context, input *UpdateTerminationProtectionInput, opts ...request.Option) (*UpdateTerminationProtectionOutput, error) {
6575	req, out := c.UpdateTerminationProtectionRequest(input)
6576	req.SetContext(ctx)
6577	req.ApplyOptions(opts...)
6578	return out, req.Send()
6579}
6580
6581const opValidateTemplate = "ValidateTemplate"
6582
6583// ValidateTemplateRequest generates a "aws/request.Request" representing the
6584// client's request for the ValidateTemplate operation. The "output" return
6585// value will be populated with the request's response once the request completes
6586// successfully.
6587//
6588// Use "Send" method on the returned Request to send the API call to the service.
6589// the "output" return value is not valid until after Send returns without error.
6590//
6591// See ValidateTemplate for more information on using the ValidateTemplate
6592// API call, and error handling.
6593//
6594// This method is useful when you want to inject custom logic or configuration
6595// into the SDK's request lifecycle. Such as custom headers, or retry logic.
6596//
6597//
6598//    // Example sending a request using the ValidateTemplateRequest method.
6599//    req, resp := client.ValidateTemplateRequest(params)
6600//
6601//    err := req.Send()
6602//    if err == nil { // resp is now filled
6603//        fmt.Println(resp)
6604//    }
6605//
6606// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/ValidateTemplate
6607func (c *CloudFormation) ValidateTemplateRequest(input *ValidateTemplateInput) (req *request.Request, output *ValidateTemplateOutput) {
6608	op := &request.Operation{
6609		Name:       opValidateTemplate,
6610		HTTPMethod: "POST",
6611		HTTPPath:   "/",
6612	}
6613
6614	if input == nil {
6615		input = &ValidateTemplateInput{}
6616	}
6617
6618	output = &ValidateTemplateOutput{}
6619	req = c.newRequest(op, input, output)
6620	return
6621}
6622
6623// ValidateTemplate API operation for AWS CloudFormation.
6624//
6625// Validates a specified template. CloudFormation first checks if the template
6626// is valid JSON. If it isn't, CloudFormation checks if the template is valid
6627// YAML. If both these checks fail, CloudFormation returns a template validation
6628// error.
6629//
6630// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
6631// with awserr.Error's Code and Message methods to get detailed information about
6632// the error.
6633//
6634// See the AWS API reference guide for AWS CloudFormation's
6635// API operation ValidateTemplate for usage and error information.
6636// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/ValidateTemplate
6637func (c *CloudFormation) ValidateTemplate(input *ValidateTemplateInput) (*ValidateTemplateOutput, error) {
6638	req, out := c.ValidateTemplateRequest(input)
6639	return out, req.Send()
6640}
6641
6642// ValidateTemplateWithContext is the same as ValidateTemplate with the addition of
6643// the ability to pass a context and additional request options.
6644//
6645// See ValidateTemplate for details on how to use this API operation.
6646//
6647// The context must be non-nil and will be used for request cancellation. If
6648// the context is nil a panic will occur. In the future the SDK may create
6649// sub-contexts for http.Requests. See https://golang.org/pkg/context/
6650// for more information on using Contexts.
6651func (c *CloudFormation) ValidateTemplateWithContext(ctx aws.Context, input *ValidateTemplateInput, opts ...request.Option) (*ValidateTemplateOutput, error) {
6652	req, out := c.ValidateTemplateRequest(input)
6653	req.SetContext(ctx)
6654	req.ApplyOptions(opts...)
6655	return out, req.Send()
6656}
6657
6658// Structure that contains the results of the account gate function which CloudFormation
6659// invokes, if present, before proceeding with a stack set operation in an account
6660// and Region.
6661//
6662// For each account and Region, CloudFormation lets you specify a Lambda function
6663// that encapsulates any requirements that must be met before CloudFormation
6664// can proceed with a stack set operation in that account and Region. CloudFormation
6665// invokes the function each time a stack set operation is requested for that
6666// account and Region; if the function returns FAILED, CloudFormation cancels
6667// the operation in that account and Region, and sets the stack set operation
6668// result status for that account and Region to FAILED.
6669//
6670// For more information, see Configuring a target account gate (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/stacksets-account-gating.html).
6671type AccountGateResult struct {
6672	_ struct{} `type:"structure"`
6673
6674	// The status of the account gate function.
6675	//
6676	//    * SUCCEEDED: The account gate function has determined that the account
6677	//    and Region passes any requirements for a stack set operation to occur.
6678	//    CloudFormation proceeds with the stack operation in that account and Region.
6679	//
6680	//    * FAILED: The account gate function has determined that the account and
6681	//    Region does not meet the requirements for a stack set operation to occur.
6682	//    AWS CloudFormation cancels the stack set operation in that account and
6683	//    Region, and sets the stack set operation result status for that account
6684	//    and Region to FAILED.
6685	//
6686	//    * SKIPPED: CloudFormation has skipped calling the account gate function
6687	//    for this account and Region, for one of the following reasons: An account
6688	//    gate function has not been specified for the account and Region. CloudFormation
6689	//    proceeds with the stack set operation in this account and Region. The
6690	//    AWSCloudFormationStackSetExecutionRole of the stack set adminstration
6691	//    account lacks permissions to invoke the function. CloudFormation proceeds
6692	//    with the stack set operation in this account and Region. Either no action
6693	//    is necessary, or no action is possible, on the stack. CloudFormation skips
6694	//    the stack set operation in this account and Region.
6695	Status *string `type:"string" enum:"AccountGateStatus"`
6696
6697	// The reason for the account gate status assigned to this account and Region
6698	// for the stack set operation.
6699	StatusReason *string `type:"string"`
6700}
6701
6702// String returns the string representation.
6703//
6704// API parameter values that are decorated as "sensitive" in the API will not
6705// be included in the string output. The member name will be present, but the
6706// value will be replaced with "sensitive".
6707func (s AccountGateResult) String() string {
6708	return awsutil.Prettify(s)
6709}
6710
6711// GoString returns the string representation.
6712//
6713// API parameter values that are decorated as "sensitive" in the API will not
6714// be included in the string output. The member name will be present, but the
6715// value will be replaced with "sensitive".
6716func (s AccountGateResult) GoString() string {
6717	return s.String()
6718}
6719
6720// SetStatus sets the Status field's value.
6721func (s *AccountGateResult) SetStatus(v string) *AccountGateResult {
6722	s.Status = &v
6723	return s
6724}
6725
6726// SetStatusReason sets the StatusReason field's value.
6727func (s *AccountGateResult) SetStatusReason(v string) *AccountGateResult {
6728	s.StatusReason = &v
6729	return s
6730}
6731
6732// The AccountLimit data type.
6733//
6734// CloudFormation has the following limits per account:
6735//
6736//    * Number of concurrent resources
6737//
6738//    * Number of stacks
6739//
6740//    * Number of stack outputs
6741//
6742// For more information about these account limits, and other CloudFormation
6743// limits, see CloudFormation Limits (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/cloudformation-limits.html)
6744// in the CloudFormation User Guide.
6745type AccountLimit struct {
6746	_ struct{} `type:"structure"`
6747
6748	// The name of the account limit.
6749	//
6750	// Values: ConcurrentResourcesLimit | StackLimit | StackOutputsLimit
6751	Name *string `type:"string"`
6752
6753	// The value that is associated with the account limit name.
6754	Value *int64 `type:"integer"`
6755}
6756
6757// String returns the string representation.
6758//
6759// API parameter values that are decorated as "sensitive" in the API will not
6760// be included in the string output. The member name will be present, but the
6761// value will be replaced with "sensitive".
6762func (s AccountLimit) String() string {
6763	return awsutil.Prettify(s)
6764}
6765
6766// GoString returns the string representation.
6767//
6768// API parameter values that are decorated as "sensitive" in the API will not
6769// be included in the string output. The member name will be present, but the
6770// value will be replaced with "sensitive".
6771func (s AccountLimit) GoString() string {
6772	return s.String()
6773}
6774
6775// SetName sets the Name field's value.
6776func (s *AccountLimit) SetName(v string) *AccountLimit {
6777	s.Name = &v
6778	return s
6779}
6780
6781// SetValue sets the Value field's value.
6782func (s *AccountLimit) SetValue(v int64) *AccountLimit {
6783	s.Value = &v
6784	return s
6785}
6786
6787type ActivateTypeInput struct {
6788	_ struct{} `type:"structure"`
6789
6790	// Whether to automatically update the extension in this account and region
6791	// when a new minor version is published by the extension publisher. Major versions
6792	// released by the publisher must be manually updated.
6793	//
6794	// The default is true.
6795	AutoUpdate *bool `type:"boolean"`
6796
6797	// The name of the IAM execution role to use to activate the extension.
6798	ExecutionRoleArn *string `min:"1" type:"string"`
6799
6800	// Contains logging configuration information for an extension.
6801	LoggingConfig *LoggingConfig `type:"structure"`
6802
6803	// The major version of this extension you want to activate, if multiple major
6804	// versions are available. The default is the latest major version. CloudFormation
6805	// uses the latest available minor version of the major version selected.
6806	//
6807	// You can specify MajorVersion or VersionBump, but not both.
6808	MajorVersion *int64 `min:"1" type:"long"`
6809
6810	// The Amazon Resource Number (ARN) of the public extension.
6811	//
6812	// Conditional: You must specify PublicTypeArn, or TypeName, Type, and PublisherId.
6813	PublicTypeArn *string `type:"string"`
6814
6815	// The ID of the extension publisher.
6816	//
6817	// Conditional: You must specify PublicTypeArn, or TypeName, Type, and PublisherId.
6818	PublisherId *string `min:"1" type:"string"`
6819
6820	// The extension type.
6821	//
6822	// Conditional: You must specify PublicTypeArn, or TypeName, Type, and PublisherId.
6823	Type *string `type:"string" enum:"ThirdPartyType"`
6824
6825	// The name of the extension.
6826	//
6827	// Conditional: You must specify PublicTypeArn, or TypeName, Type, and PublisherId.
6828	TypeName *string `min:"10" type:"string"`
6829
6830	// An alias to assign to the public extension, in this account and region. If
6831	// you specify an alias for the extension, CloudFormation treats the alias as
6832	// the extension type name within this account and region. You must use the
6833	// alias to refer to the extension in your templates, API calls, and CloudFormation
6834	// console.
6835	//
6836	// An extension alias must be unique within a given account and region. You
6837	// can activate the same public resource multiple times in the same account
6838	// and region, using different type name aliases.
6839	TypeNameAlias *string `min:"10" type:"string"`
6840
6841	// Manually updates a previously-activated type to a new major or minor version,
6842	// if available. You can also use this parameter to update the value of AutoUpdate.
6843	//
6844	//    * MAJOR: CloudFormation updates the extension to the newest major version,
6845	//    if one is available.
6846	//
6847	//    * MINOR: CloudFormation updates the extension to the newest minor version,
6848	//    if one is available.
6849	VersionBump *string `type:"string" enum:"VersionBump"`
6850}
6851
6852// String returns the string representation.
6853//
6854// API parameter values that are decorated as "sensitive" in the API will not
6855// be included in the string output. The member name will be present, but the
6856// value will be replaced with "sensitive".
6857func (s ActivateTypeInput) String() string {
6858	return awsutil.Prettify(s)
6859}
6860
6861// GoString returns the string representation.
6862//
6863// API parameter values that are decorated as "sensitive" in the API will not
6864// be included in the string output. The member name will be present, but the
6865// value will be replaced with "sensitive".
6866func (s ActivateTypeInput) GoString() string {
6867	return s.String()
6868}
6869
6870// Validate inspects the fields of the type to determine if they are valid.
6871func (s *ActivateTypeInput) Validate() error {
6872	invalidParams := request.ErrInvalidParams{Context: "ActivateTypeInput"}
6873	if s.ExecutionRoleArn != nil && len(*s.ExecutionRoleArn) < 1 {
6874		invalidParams.Add(request.NewErrParamMinLen("ExecutionRoleArn", 1))
6875	}
6876	if s.MajorVersion != nil && *s.MajorVersion < 1 {
6877		invalidParams.Add(request.NewErrParamMinValue("MajorVersion", 1))
6878	}
6879	if s.PublisherId != nil && len(*s.PublisherId) < 1 {
6880		invalidParams.Add(request.NewErrParamMinLen("PublisherId", 1))
6881	}
6882	if s.TypeName != nil && len(*s.TypeName) < 10 {
6883		invalidParams.Add(request.NewErrParamMinLen("TypeName", 10))
6884	}
6885	if s.TypeNameAlias != nil && len(*s.TypeNameAlias) < 10 {
6886		invalidParams.Add(request.NewErrParamMinLen("TypeNameAlias", 10))
6887	}
6888	if s.LoggingConfig != nil {
6889		if err := s.LoggingConfig.Validate(); err != nil {
6890			invalidParams.AddNested("LoggingConfig", err.(request.ErrInvalidParams))
6891		}
6892	}
6893
6894	if invalidParams.Len() > 0 {
6895		return invalidParams
6896	}
6897	return nil
6898}
6899
6900// SetAutoUpdate sets the AutoUpdate field's value.
6901func (s *ActivateTypeInput) SetAutoUpdate(v bool) *ActivateTypeInput {
6902	s.AutoUpdate = &v
6903	return s
6904}
6905
6906// SetExecutionRoleArn sets the ExecutionRoleArn field's value.
6907func (s *ActivateTypeInput) SetExecutionRoleArn(v string) *ActivateTypeInput {
6908	s.ExecutionRoleArn = &v
6909	return s
6910}
6911
6912// SetLoggingConfig sets the LoggingConfig field's value.
6913func (s *ActivateTypeInput) SetLoggingConfig(v *LoggingConfig) *ActivateTypeInput {
6914	s.LoggingConfig = v
6915	return s
6916}
6917
6918// SetMajorVersion sets the MajorVersion field's value.
6919func (s *ActivateTypeInput) SetMajorVersion(v int64) *ActivateTypeInput {
6920	s.MajorVersion = &v
6921	return s
6922}
6923
6924// SetPublicTypeArn sets the PublicTypeArn field's value.
6925func (s *ActivateTypeInput) SetPublicTypeArn(v string) *ActivateTypeInput {
6926	s.PublicTypeArn = &v
6927	return s
6928}
6929
6930// SetPublisherId sets the PublisherId field's value.
6931func (s *ActivateTypeInput) SetPublisherId(v string) *ActivateTypeInput {
6932	s.PublisherId = &v
6933	return s
6934}
6935
6936// SetType sets the Type field's value.
6937func (s *ActivateTypeInput) SetType(v string) *ActivateTypeInput {
6938	s.Type = &v
6939	return s
6940}
6941
6942// SetTypeName sets the TypeName field's value.
6943func (s *ActivateTypeInput) SetTypeName(v string) *ActivateTypeInput {
6944	s.TypeName = &v
6945	return s
6946}
6947
6948// SetTypeNameAlias sets the TypeNameAlias field's value.
6949func (s *ActivateTypeInput) SetTypeNameAlias(v string) *ActivateTypeInput {
6950	s.TypeNameAlias = &v
6951	return s
6952}
6953
6954// SetVersionBump sets the VersionBump field's value.
6955func (s *ActivateTypeInput) SetVersionBump(v string) *ActivateTypeInput {
6956	s.VersionBump = &v
6957	return s
6958}
6959
6960type ActivateTypeOutput struct {
6961	_ struct{} `type:"structure"`
6962
6963	// The Amazon Resource Number (ARN) of the activated extension, in this account
6964	// and region.
6965	Arn *string `type:"string"`
6966}
6967
6968// String returns the string representation.
6969//
6970// API parameter values that are decorated as "sensitive" in the API will not
6971// be included in the string output. The member name will be present, but the
6972// value will be replaced with "sensitive".
6973func (s ActivateTypeOutput) String() string {
6974	return awsutil.Prettify(s)
6975}
6976
6977// GoString returns the string representation.
6978//
6979// API parameter values that are decorated as "sensitive" in the API will not
6980// be included in the string output. The member name will be present, but the
6981// value will be replaced with "sensitive".
6982func (s ActivateTypeOutput) GoString() string {
6983	return s.String()
6984}
6985
6986// SetArn sets the Arn field's value.
6987func (s *ActivateTypeOutput) SetArn(v string) *ActivateTypeOutput {
6988	s.Arn = &v
6989	return s
6990}
6991
6992// [Service-managed permissions] Describes whether StackSets automatically deploys
6993// to Organizations accounts that are added to a target organization or organizational
6994// unit (OU).
6995type AutoDeployment struct {
6996	_ struct{} `type:"structure"`
6997
6998	// If set to true, StackSets automatically deploys additional stack instances
6999	// to Organizations accounts that are added to a target organization or organizational
7000	// unit (OU) in the specified Regions. If an account is removed from a target
7001	// organization or OU, StackSets deletes stack instances from the account in
7002	// the specified Regions.
7003	Enabled *bool `type:"boolean"`
7004
7005	// If set to true, stack resources are retained when an account is removed from
7006	// a target organization or OU. If set to false, stack resources are deleted.
7007	// Specify only if Enabled is set to True.
7008	RetainStacksOnAccountRemoval *bool `type:"boolean"`
7009}
7010
7011// String returns the string representation.
7012//
7013// API parameter values that are decorated as "sensitive" in the API will not
7014// be included in the string output. The member name will be present, but the
7015// value will be replaced with "sensitive".
7016func (s AutoDeployment) String() string {
7017	return awsutil.Prettify(s)
7018}
7019
7020// GoString returns the string representation.
7021//
7022// API parameter values that are decorated as "sensitive" in the API will not
7023// be included in the string output. The member name will be present, but the
7024// value will be replaced with "sensitive".
7025func (s AutoDeployment) GoString() string {
7026	return s.String()
7027}
7028
7029// SetEnabled sets the Enabled field's value.
7030func (s *AutoDeployment) SetEnabled(v bool) *AutoDeployment {
7031	s.Enabled = &v
7032	return s
7033}
7034
7035// SetRetainStacksOnAccountRemoval sets the RetainStacksOnAccountRemoval field's value.
7036func (s *AutoDeployment) SetRetainStacksOnAccountRemoval(v bool) *AutoDeployment {
7037	s.RetainStacksOnAccountRemoval = &v
7038	return s
7039}
7040
7041// Detailed information concerning an error generated during the setting of
7042// configuration data for a CloudFormation extension.
7043type BatchDescribeTypeConfigurationsError struct {
7044	_ struct{} `type:"structure"`
7045
7046	// The error code.
7047	ErrorCode *string `min:"3" type:"string"`
7048
7049	// The error message.
7050	ErrorMessage *string `min:"1" type:"string"`
7051
7052	// Identifying information for the configuration of a CloudFormation extension.
7053	TypeConfigurationIdentifier *TypeConfigurationIdentifier `type:"structure"`
7054}
7055
7056// String returns the string representation.
7057//
7058// API parameter values that are decorated as "sensitive" in the API will not
7059// be included in the string output. The member name will be present, but the
7060// value will be replaced with "sensitive".
7061func (s BatchDescribeTypeConfigurationsError) String() string {
7062	return awsutil.Prettify(s)
7063}
7064
7065// GoString returns the string representation.
7066//
7067// API parameter values that are decorated as "sensitive" in the API will not
7068// be included in the string output. The member name will be present, but the
7069// value will be replaced with "sensitive".
7070func (s BatchDescribeTypeConfigurationsError) GoString() string {
7071	return s.String()
7072}
7073
7074// SetErrorCode sets the ErrorCode field's value.
7075func (s *BatchDescribeTypeConfigurationsError) SetErrorCode(v string) *BatchDescribeTypeConfigurationsError {
7076	s.ErrorCode = &v
7077	return s
7078}
7079
7080// SetErrorMessage sets the ErrorMessage field's value.
7081func (s *BatchDescribeTypeConfigurationsError) SetErrorMessage(v string) *BatchDescribeTypeConfigurationsError {
7082	s.ErrorMessage = &v
7083	return s
7084}
7085
7086// SetTypeConfigurationIdentifier sets the TypeConfigurationIdentifier field's value.
7087func (s *BatchDescribeTypeConfigurationsError) SetTypeConfigurationIdentifier(v *TypeConfigurationIdentifier) *BatchDescribeTypeConfigurationsError {
7088	s.TypeConfigurationIdentifier = v
7089	return s
7090}
7091
7092type BatchDescribeTypeConfigurationsInput struct {
7093	_ struct{} `type:"structure"`
7094
7095	// The list of identifiers for the desired extension configurations.
7096	//
7097	// TypeConfigurationIdentifiers is a required field
7098	TypeConfigurationIdentifiers []*TypeConfigurationIdentifier `min:"1" type:"list" required:"true"`
7099}
7100
7101// String returns the string representation.
7102//
7103// API parameter values that are decorated as "sensitive" in the API will not
7104// be included in the string output. The member name will be present, but the
7105// value will be replaced with "sensitive".
7106func (s BatchDescribeTypeConfigurationsInput) String() string {
7107	return awsutil.Prettify(s)
7108}
7109
7110// GoString returns the string representation.
7111//
7112// API parameter values that are decorated as "sensitive" in the API will not
7113// be included in the string output. The member name will be present, but the
7114// value will be replaced with "sensitive".
7115func (s BatchDescribeTypeConfigurationsInput) GoString() string {
7116	return s.String()
7117}
7118
7119// Validate inspects the fields of the type to determine if they are valid.
7120func (s *BatchDescribeTypeConfigurationsInput) Validate() error {
7121	invalidParams := request.ErrInvalidParams{Context: "BatchDescribeTypeConfigurationsInput"}
7122	if s.TypeConfigurationIdentifiers == nil {
7123		invalidParams.Add(request.NewErrParamRequired("TypeConfigurationIdentifiers"))
7124	}
7125	if s.TypeConfigurationIdentifiers != nil && len(s.TypeConfigurationIdentifiers) < 1 {
7126		invalidParams.Add(request.NewErrParamMinLen("TypeConfigurationIdentifiers", 1))
7127	}
7128	if s.TypeConfigurationIdentifiers != nil {
7129		for i, v := range s.TypeConfigurationIdentifiers {
7130			if v == nil {
7131				continue
7132			}
7133			if err := v.Validate(); err != nil {
7134				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "TypeConfigurationIdentifiers", i), err.(request.ErrInvalidParams))
7135			}
7136		}
7137	}
7138
7139	if invalidParams.Len() > 0 {
7140		return invalidParams
7141	}
7142	return nil
7143}
7144
7145// SetTypeConfigurationIdentifiers sets the TypeConfigurationIdentifiers field's value.
7146func (s *BatchDescribeTypeConfigurationsInput) SetTypeConfigurationIdentifiers(v []*TypeConfigurationIdentifier) *BatchDescribeTypeConfigurationsInput {
7147	s.TypeConfigurationIdentifiers = v
7148	return s
7149}
7150
7151type BatchDescribeTypeConfigurationsOutput struct {
7152	_ struct{} `type:"structure"`
7153
7154	// A list of information concerning any errors generated during the setting
7155	// of the specified configurations.
7156	Errors []*BatchDescribeTypeConfigurationsError `type:"list"`
7157
7158	// A list of any of the specified extension configurations from the CloudFormation
7159	// registry.
7160	TypeConfigurations []*TypeConfigurationDetails `type:"list"`
7161
7162	// A list of any of the specified extension configurations that CloudFormation
7163	// could not process for any reason.
7164	UnprocessedTypeConfigurations []*TypeConfigurationIdentifier `type:"list"`
7165}
7166
7167// String returns the string representation.
7168//
7169// API parameter values that are decorated as "sensitive" in the API will not
7170// be included in the string output. The member name will be present, but the
7171// value will be replaced with "sensitive".
7172func (s BatchDescribeTypeConfigurationsOutput) String() string {
7173	return awsutil.Prettify(s)
7174}
7175
7176// GoString returns the string representation.
7177//
7178// API parameter values that are decorated as "sensitive" in the API will not
7179// be included in the string output. The member name will be present, but the
7180// value will be replaced with "sensitive".
7181func (s BatchDescribeTypeConfigurationsOutput) GoString() string {
7182	return s.String()
7183}
7184
7185// SetErrors sets the Errors field's value.
7186func (s *BatchDescribeTypeConfigurationsOutput) SetErrors(v []*BatchDescribeTypeConfigurationsError) *BatchDescribeTypeConfigurationsOutput {
7187	s.Errors = v
7188	return s
7189}
7190
7191// SetTypeConfigurations sets the TypeConfigurations field's value.
7192func (s *BatchDescribeTypeConfigurationsOutput) SetTypeConfigurations(v []*TypeConfigurationDetails) *BatchDescribeTypeConfigurationsOutput {
7193	s.TypeConfigurations = v
7194	return s
7195}
7196
7197// SetUnprocessedTypeConfigurations sets the UnprocessedTypeConfigurations field's value.
7198func (s *BatchDescribeTypeConfigurationsOutput) SetUnprocessedTypeConfigurations(v []*TypeConfigurationIdentifier) *BatchDescribeTypeConfigurationsOutput {
7199	s.UnprocessedTypeConfigurations = v
7200	return s
7201}
7202
7203// The input for the CancelUpdateStack action.
7204type CancelUpdateStackInput struct {
7205	_ struct{} `type:"structure"`
7206
7207	// A unique identifier for this CancelUpdateStack request. Specify this token
7208	// if you plan to retry requests so that CloudFormation knows that you're not
7209	// attempting to cancel an update on a stack with the same name. You might retry
7210	// CancelUpdateStack requests to ensure that CloudFormation successfully received
7211	// them.
7212	ClientRequestToken *string `min:"1" type:"string"`
7213
7214	// The name or the unique stack ID that is associated with the stack.
7215	//
7216	// StackName is a required field
7217	StackName *string `type:"string" required:"true"`
7218}
7219
7220// String returns the string representation.
7221//
7222// API parameter values that are decorated as "sensitive" in the API will not
7223// be included in the string output. The member name will be present, but the
7224// value will be replaced with "sensitive".
7225func (s CancelUpdateStackInput) String() string {
7226	return awsutil.Prettify(s)
7227}
7228
7229// GoString returns the string representation.
7230//
7231// API parameter values that are decorated as "sensitive" in the API will not
7232// be included in the string output. The member name will be present, but the
7233// value will be replaced with "sensitive".
7234func (s CancelUpdateStackInput) GoString() string {
7235	return s.String()
7236}
7237
7238// Validate inspects the fields of the type to determine if they are valid.
7239func (s *CancelUpdateStackInput) Validate() error {
7240	invalidParams := request.ErrInvalidParams{Context: "CancelUpdateStackInput"}
7241	if s.ClientRequestToken != nil && len(*s.ClientRequestToken) < 1 {
7242		invalidParams.Add(request.NewErrParamMinLen("ClientRequestToken", 1))
7243	}
7244	if s.StackName == nil {
7245		invalidParams.Add(request.NewErrParamRequired("StackName"))
7246	}
7247
7248	if invalidParams.Len() > 0 {
7249		return invalidParams
7250	}
7251	return nil
7252}
7253
7254// SetClientRequestToken sets the ClientRequestToken field's value.
7255func (s *CancelUpdateStackInput) SetClientRequestToken(v string) *CancelUpdateStackInput {
7256	s.ClientRequestToken = &v
7257	return s
7258}
7259
7260// SetStackName sets the StackName field's value.
7261func (s *CancelUpdateStackInput) SetStackName(v string) *CancelUpdateStackInput {
7262	s.StackName = &v
7263	return s
7264}
7265
7266type CancelUpdateStackOutput struct {
7267	_ struct{} `type:"structure"`
7268}
7269
7270// String returns the string representation.
7271//
7272// API parameter values that are decorated as "sensitive" in the API will not
7273// be included in the string output. The member name will be present, but the
7274// value will be replaced with "sensitive".
7275func (s CancelUpdateStackOutput) String() string {
7276	return awsutil.Prettify(s)
7277}
7278
7279// GoString returns the string representation.
7280//
7281// API parameter values that are decorated as "sensitive" in the API will not
7282// be included in the string output. The member name will be present, but the
7283// value will be replaced with "sensitive".
7284func (s CancelUpdateStackOutput) GoString() string {
7285	return s.String()
7286}
7287
7288// The Change structure describes the changes CloudFormation will perform if
7289// you execute the change set.
7290type Change struct {
7291	_ struct{} `type:"structure"`
7292
7293	// A ResourceChange structure that describes the resource and action that CloudFormation
7294	// will perform.
7295	ResourceChange *ResourceChange `type:"structure"`
7296
7297	// The type of entity that CloudFormation changes. Currently, the only entity
7298	// type is Resource.
7299	Type *string `type:"string" enum:"ChangeType"`
7300}
7301
7302// String returns the string representation.
7303//
7304// API parameter values that are decorated as "sensitive" in the API will not
7305// be included in the string output. The member name will be present, but the
7306// value will be replaced with "sensitive".
7307func (s Change) String() string {
7308	return awsutil.Prettify(s)
7309}
7310
7311// GoString returns the string representation.
7312//
7313// API parameter values that are decorated as "sensitive" in the API will not
7314// be included in the string output. The member name will be present, but the
7315// value will be replaced with "sensitive".
7316func (s Change) GoString() string {
7317	return s.String()
7318}
7319
7320// SetResourceChange sets the ResourceChange field's value.
7321func (s *Change) SetResourceChange(v *ResourceChange) *Change {
7322	s.ResourceChange = v
7323	return s
7324}
7325
7326// SetType sets the Type field's value.
7327func (s *Change) SetType(v string) *Change {
7328	s.Type = &v
7329	return s
7330}
7331
7332// The ChangeSetSummary structure describes a change set, its status, and the
7333// stack with which it's associated.
7334type ChangeSetSummary struct {
7335	_ struct{} `type:"structure"`
7336
7337	// The ID of the change set.
7338	ChangeSetId *string `min:"1" type:"string"`
7339
7340	// The name of the change set.
7341	ChangeSetName *string `min:"1" type:"string"`
7342
7343	// The start time when the change set was created, in UTC.
7344	CreationTime *time.Time `type:"timestamp"`
7345
7346	// Descriptive information about the change set.
7347	Description *string `min:"1" type:"string"`
7348
7349	// If the change set execution status is AVAILABLE, you can execute the change
7350	// set. If you can’t execute the change set, the status indicates why. For
7351	// example, a change set might be in an UNAVAILABLE state because CloudFormation
7352	// is still creating it or in an OBSOLETE state because the stack was already
7353	// updated.
7354	ExecutionStatus *string `type:"string" enum:"ExecutionStatus"`
7355
7356	// Specifies the current setting of IncludeNestedStacks for the change set.
7357	IncludeNestedStacks *bool `type:"boolean"`
7358
7359	// The parent change set ID.
7360	ParentChangeSetId *string `min:"1" type:"string"`
7361
7362	// The root change set ID.
7363	RootChangeSetId *string `min:"1" type:"string"`
7364
7365	// The ID of the stack with which the change set is associated.
7366	StackId *string `type:"string"`
7367
7368	// The name of the stack with which the change set is associated.
7369	StackName *string `type:"string"`
7370
7371	// The state of the change set, such as CREATE_IN_PROGRESS, CREATE_COMPLETE,
7372	// or FAILED.
7373	Status *string `type:"string" enum:"ChangeSetStatus"`
7374
7375	// A description of the change set's status. For example, if your change set
7376	// is in the FAILED state, CloudFormation shows the error message.
7377	StatusReason *string `type:"string"`
7378}
7379
7380// String returns the string representation.
7381//
7382// API parameter values that are decorated as "sensitive" in the API will not
7383// be included in the string output. The member name will be present, but the
7384// value will be replaced with "sensitive".
7385func (s ChangeSetSummary) String() string {
7386	return awsutil.Prettify(s)
7387}
7388
7389// GoString returns the string representation.
7390//
7391// API parameter values that are decorated as "sensitive" in the API will not
7392// be included in the string output. The member name will be present, but the
7393// value will be replaced with "sensitive".
7394func (s ChangeSetSummary) GoString() string {
7395	return s.String()
7396}
7397
7398// SetChangeSetId sets the ChangeSetId field's value.
7399func (s *ChangeSetSummary) SetChangeSetId(v string) *ChangeSetSummary {
7400	s.ChangeSetId = &v
7401	return s
7402}
7403
7404// SetChangeSetName sets the ChangeSetName field's value.
7405func (s *ChangeSetSummary) SetChangeSetName(v string) *ChangeSetSummary {
7406	s.ChangeSetName = &v
7407	return s
7408}
7409
7410// SetCreationTime sets the CreationTime field's value.
7411func (s *ChangeSetSummary) SetCreationTime(v time.Time) *ChangeSetSummary {
7412	s.CreationTime = &v
7413	return s
7414}
7415
7416// SetDescription sets the Description field's value.
7417func (s *ChangeSetSummary) SetDescription(v string) *ChangeSetSummary {
7418	s.Description = &v
7419	return s
7420}
7421
7422// SetExecutionStatus sets the ExecutionStatus field's value.
7423func (s *ChangeSetSummary) SetExecutionStatus(v string) *ChangeSetSummary {
7424	s.ExecutionStatus = &v
7425	return s
7426}
7427
7428// SetIncludeNestedStacks sets the IncludeNestedStacks field's value.
7429func (s *ChangeSetSummary) SetIncludeNestedStacks(v bool) *ChangeSetSummary {
7430	s.IncludeNestedStacks = &v
7431	return s
7432}
7433
7434// SetParentChangeSetId sets the ParentChangeSetId field's value.
7435func (s *ChangeSetSummary) SetParentChangeSetId(v string) *ChangeSetSummary {
7436	s.ParentChangeSetId = &v
7437	return s
7438}
7439
7440// SetRootChangeSetId sets the RootChangeSetId field's value.
7441func (s *ChangeSetSummary) SetRootChangeSetId(v string) *ChangeSetSummary {
7442	s.RootChangeSetId = &v
7443	return s
7444}
7445
7446// SetStackId sets the StackId field's value.
7447func (s *ChangeSetSummary) SetStackId(v string) *ChangeSetSummary {
7448	s.StackId = &v
7449	return s
7450}
7451
7452// SetStackName sets the StackName field's value.
7453func (s *ChangeSetSummary) SetStackName(v string) *ChangeSetSummary {
7454	s.StackName = &v
7455	return s
7456}
7457
7458// SetStatus sets the Status field's value.
7459func (s *ChangeSetSummary) SetStatus(v string) *ChangeSetSummary {
7460	s.Status = &v
7461	return s
7462}
7463
7464// SetStatusReason sets the StatusReason field's value.
7465func (s *ChangeSetSummary) SetStatusReason(v string) *ChangeSetSummary {
7466	s.StatusReason = &v
7467	return s
7468}
7469
7470// The input for the ContinueUpdateRollback action.
7471type ContinueUpdateRollbackInput struct {
7472	_ struct{} `type:"structure"`
7473
7474	// A unique identifier for this ContinueUpdateRollback request. Specify this
7475	// token if you plan to retry requests so that CloudFormationknows that you're
7476	// not attempting to continue the rollback to a stack with the same name. You
7477	// might retry ContinueUpdateRollback requests to ensure that CloudFormation
7478	// successfully received them.
7479	ClientRequestToken *string `min:"1" type:"string"`
7480
7481	// A list of the logical IDs of the resources that CloudFormation skips during
7482	// the continue update rollback operation. You can specify only resources that
7483	// are in the UPDATE_FAILED state because a rollback failed. You can't specify
7484	// resources that are in the UPDATE_FAILED state for other reasons, for example,
7485	// because an update was cancelled. To check why a resource update failed, use
7486	// the DescribeStackResources action, and view the resource status reason.
7487	//
7488	// Specify this property to skip rolling back resources that CloudFormation
7489	// 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)
7490	// resources before skipping them. CloudFormation sets the status of the specified
7491	// resources to UPDATE_COMPLETE and continues to roll back the stack. After
7492	// the rollback is complete, the state of the skipped resources will be inconsistent
7493	// with the state of the resources in the stack template. Before performing
7494	// another stack update, you must update the stack or resources to be consistent
7495	// with each other. If you don't, subsequent stack updates might fail, and the
7496	// stack will become unrecoverable.
7497	//
7498	// Specify the minimum number of resources required to successfully roll back
7499	// your stack. For example, a failed resource update might cause dependent resources
7500	// to fail. In this case, it might not be necessary to skip the dependent resources.
7501	//
7502	// To skip resources that are part of nested stacks, use the following format:
7503	// NestedStackName.ResourceLogicalID. If you want to specify the logical ID
7504	// of a stack resource (Type: AWS::CloudFormation::Stack) in the ResourcesToSkip
7505	// list, then its corresponding embedded stack must be in one of the following
7506	// states: DELETE_IN_PROGRESS, DELETE_COMPLETE, or DELETE_FAILED.
7507	//
7508	// Don't confuse a child stack's name with its corresponding logical ID defined
7509	// in the parent stack. For an example of a continue update rollback operation
7510	// with nested stacks, see Using ResourcesToSkip to recover a nested stacks
7511	// hierarchy (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-continueupdaterollback.html#nested-stacks).
7512	ResourcesToSkip []*string `type:"list"`
7513
7514	// The Amazon Resource Name (ARN) of an Identity and Access Management (IAM)
7515	// role that CloudFormation assumes to roll back the stack. CloudFormation uses
7516	// the role's credentials to make calls on your behalf. CloudFormation always
7517	// uses this role for all future operations on the stack. As long as users have
7518	// permission to operate on the stack, CloudFormation uses this role even if
7519	// the users don't have permission to pass it. Ensure that the role grants least
7520	// privilege.
7521	//
7522	// If you don't specify a value, CloudFormation uses the role that was previously
7523	// associated with the stack. If no role is available, CloudFormation uses a
7524	// temporary session that is generated from your user credentials.
7525	RoleARN *string `min:"20" type:"string"`
7526
7527	// The name or the unique ID of the stack that you want to continue rolling
7528	// back.
7529	//
7530	// Don't specify the name of a nested stack (a stack that was created by using
7531	// the AWS::CloudFormation::Stack resource). Instead, use this operation on
7532	// the parent stack (the stack that contains the AWS::CloudFormation::Stack
7533	// resource).
7534	//
7535	// StackName is a required field
7536	StackName *string `min:"1" type:"string" required:"true"`
7537}
7538
7539// String returns the string representation.
7540//
7541// API parameter values that are decorated as "sensitive" in the API will not
7542// be included in the string output. The member name will be present, but the
7543// value will be replaced with "sensitive".
7544func (s ContinueUpdateRollbackInput) String() string {
7545	return awsutil.Prettify(s)
7546}
7547
7548// GoString returns the string representation.
7549//
7550// API parameter values that are decorated as "sensitive" in the API will not
7551// be included in the string output. The member name will be present, but the
7552// value will be replaced with "sensitive".
7553func (s ContinueUpdateRollbackInput) GoString() string {
7554	return s.String()
7555}
7556
7557// Validate inspects the fields of the type to determine if they are valid.
7558func (s *ContinueUpdateRollbackInput) Validate() error {
7559	invalidParams := request.ErrInvalidParams{Context: "ContinueUpdateRollbackInput"}
7560	if s.ClientRequestToken != nil && len(*s.ClientRequestToken) < 1 {
7561		invalidParams.Add(request.NewErrParamMinLen("ClientRequestToken", 1))
7562	}
7563	if s.RoleARN != nil && len(*s.RoleARN) < 20 {
7564		invalidParams.Add(request.NewErrParamMinLen("RoleARN", 20))
7565	}
7566	if s.StackName == nil {
7567		invalidParams.Add(request.NewErrParamRequired("StackName"))
7568	}
7569	if s.StackName != nil && len(*s.StackName) < 1 {
7570		invalidParams.Add(request.NewErrParamMinLen("StackName", 1))
7571	}
7572
7573	if invalidParams.Len() > 0 {
7574		return invalidParams
7575	}
7576	return nil
7577}
7578
7579// SetClientRequestToken sets the ClientRequestToken field's value.
7580func (s *ContinueUpdateRollbackInput) SetClientRequestToken(v string) *ContinueUpdateRollbackInput {
7581	s.ClientRequestToken = &v
7582	return s
7583}
7584
7585// SetResourcesToSkip sets the ResourcesToSkip field's value.
7586func (s *ContinueUpdateRollbackInput) SetResourcesToSkip(v []*string) *ContinueUpdateRollbackInput {
7587	s.ResourcesToSkip = v
7588	return s
7589}
7590
7591// SetRoleARN sets the RoleARN field's value.
7592func (s *ContinueUpdateRollbackInput) SetRoleARN(v string) *ContinueUpdateRollbackInput {
7593	s.RoleARN = &v
7594	return s
7595}
7596
7597// SetStackName sets the StackName field's value.
7598func (s *ContinueUpdateRollbackInput) SetStackName(v string) *ContinueUpdateRollbackInput {
7599	s.StackName = &v
7600	return s
7601}
7602
7603// The output for a ContinueUpdateRollback action.
7604type ContinueUpdateRollbackOutput struct {
7605	_ struct{} `type:"structure"`
7606}
7607
7608// String returns the string representation.
7609//
7610// API parameter values that are decorated as "sensitive" in the API will not
7611// be included in the string output. The member name will be present, but the
7612// value will be replaced with "sensitive".
7613func (s ContinueUpdateRollbackOutput) String() string {
7614	return awsutil.Prettify(s)
7615}
7616
7617// GoString returns the string representation.
7618//
7619// API parameter values that are decorated as "sensitive" in the API will not
7620// be included in the string output. The member name will be present, but the
7621// value will be replaced with "sensitive".
7622func (s ContinueUpdateRollbackOutput) GoString() string {
7623	return s.String()
7624}
7625
7626// The input for the CreateChangeSet action.
7627type CreateChangeSetInput struct {
7628	_ struct{} `type:"structure"`
7629
7630	// In some cases, you must explicitly acknowledge that your stack template contains
7631	// certain capabilities in order for CloudFormation to create the stack.
7632	//
7633	//    * CAPABILITY_IAM and CAPABILITY_NAMED_IAM Some stack templates might include
7634	//    resources that can affect permissions in your Amazon Web Services account;
7635	//    for example, by creating new Identity and Access Management (IAM) users.
7636	//    For those stacks, you must explicitly acknowledge this by specifying one
7637	//    of these capabilities. The following IAM resources require you to specify
7638	//    either the CAPABILITY_IAM or CAPABILITY_NAMED_IAM capability. If you have
7639	//    IAM resources, you can specify either capability. If you have IAM resources
7640	//    with custom names, you must specify CAPABILITY_NAMED_IAM. If you don't
7641	//    specify either of these capabilities, CloudFormation returns an InsufficientCapabilities
7642	//    error. If your stack template contains these resources, we recommend that
7643	//    you review all permissions associated with them and edit their permissions
7644	//    if necessary. AWS::IAM::AccessKey (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iam-accesskey.html)
7645	//    AWS::IAM::Group (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iam-group.html)
7646	//    AWS::IAM::InstanceProfile (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iam-instanceprofile.html)
7647	//    AWS::IAM::Policy (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iam-policy.html)
7648	//    AWS::IAM::Role (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iam-role.html)
7649	//    AWS::IAM::User (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iam-user.html)
7650	//    AWS::IAM::UserToGroupAddition (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iam-addusertogroup.html)
7651	//    For more information, see Acknowledging IAM Resources in CloudFormation
7652	//    Templates (http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-iam-template.html#capabilities).
7653	//
7654	//    * CAPABILITY_AUTO_EXPAND Some template contain macros. Macros perform
7655	//    custom processing on templates; this can include simple actions like find-and-replace
7656	//    operations, all the way to extensive transformations of entire templates.
7657	//    Because of this, users typically create a change set from the processed
7658	//    template, so that they can review the changes resulting from the macros
7659	//    before actually creating the stack. If your stack template contains one
7660	//    or more macros, and you choose to create a stack directly from the processed
7661	//    template, without first reviewing the resulting changes in a change set,
7662	//    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)
7663	//    and AWS::Serverless (http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/transform-aws-serverless.html)
7664	//    transforms, which are macros hosted by CloudFormation. This capacity does
7665	//    not apply to creating change sets, and specifying it when creating change
7666	//    sets has no effect. If you want to create a stack from a stack template
7667	//    that contains macros and nested stacks, you must create or update the
7668	//    stack directly from the template using the CreateStack or UpdateStack
7669	//    action, and specifying this capability. For more information on macros,
7670	//    see Using CloudFormation Macros to Perform Custom Processing on Templates
7671	//    (http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/template-macros.html).
7672	Capabilities []*string `type:"list"`
7673
7674	// The name of the change set. The name must be unique among all change sets
7675	// that are associated with the specified stack.
7676	//
7677	// A change set name can contain only alphanumeric, case sensitive characters
7678	// and hyphens. It must start with an alphabetic character and cannot exceed
7679	// 128 characters.
7680	//
7681	// ChangeSetName is a required field
7682	ChangeSetName *string `min:"1" type:"string" required:"true"`
7683
7684	// The type of change set operation. To create a change set for a new stack,
7685	// specify CREATE. To create a change set for an existing stack, specify UPDATE.
7686	// To create a change set for an import operation, specify IMPORT.
7687	//
7688	// If you create a change set for a new stack, CloudFormation creates a stack
7689	// with a unique stack ID, but no template or resources. The stack will be in
7690	// the REVIEW_IN_PROGRESS (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-describing-stacks.html#d0e11995)
7691	// state until you execute the change set.
7692	//
7693	// By default, CloudFormation specifies UPDATE. You can't use the UPDATE type
7694	// to create a change set for a new stack or the CREATE type to create a change
7695	// set for an existing stack.
7696	ChangeSetType *string `type:"string" enum:"ChangeSetType"`
7697
7698	// A unique identifier for this CreateChangeSet request. Specify this token
7699	// if you plan to retry requests so that CloudFormation knows that you're not
7700	// attempting to create another change set with the same name. You might retry
7701	// CreateChangeSet requests to ensure that CloudFormation successfully received
7702	// them.
7703	ClientToken *string `min:"1" type:"string"`
7704
7705	// A description to help you identify this change set.
7706	Description *string `min:"1" type:"string"`
7707
7708	// Creates a change set for the all nested stacks specified in the template.
7709	// The default behavior of this action is set to False. To include nested sets
7710	// in a change set, specify True.
7711	IncludeNestedStacks *bool `type:"boolean"`
7712
7713	// The Amazon Resource Names (ARNs) of Amazon Simple Notification Service (Amazon
7714	// SNS) topics that CloudFormation associates with the stack. To remove all
7715	// associated notification topics, specify an empty list.
7716	NotificationARNs []*string `type:"list"`
7717
7718	// A list of Parameter structures that specify input parameters for the change
7719	// set. For more information, see the Parameter data type.
7720	Parameters []*Parameter `type:"list"`
7721
7722	// The template resource types that you have permissions to work with if you
7723	// execute this change set, such as AWS::EC2::Instance, AWS::EC2::*, or Custom::MyCustomInstance.
7724	//
7725	// If the list of resource types doesn't include a resource type that you're
7726	// updating, the stack update fails. By default, CloudFormation grants permissions
7727	// to all resource types. Identity and Access Management (IAM) uses this parameter
7728	// for condition keys in IAM policies for CloudFormation. For more information,
7729	// see Controlling Access with Identity and Access Management (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-iam-template.html)
7730	// in the CloudFormation User Guide.
7731	ResourceTypes []*string `type:"list"`
7732
7733	// The resources to import into your stack.
7734	ResourcesToImport []*ResourceToImport `type:"list"`
7735
7736	// The Amazon Resource Name (ARN) of an Identity and Access Management (IAM)
7737	// role that CloudFormation assumes when executing the change set. CloudFormation
7738	// uses the role's credentials to make calls on your behalf. CloudFormation
7739	// uses this role for all future operations on the stack. As long as users have
7740	// permission to operate on the stack, CloudFormation uses this role even if
7741	// the users don't have permission to pass it. Ensure that the role grants least
7742	// privilege.
7743	//
7744	// If you don't specify a value, CloudFormation uses the role that was previously
7745	// associated with the stack. If no role is available, CloudFormation uses a
7746	// temporary session that is generated from your user credentials.
7747	RoleARN *string `min:"20" type:"string"`
7748
7749	// The rollback triggers for CloudFormation to monitor during stack creation
7750	// and updating operations, and for the specified monitoring period afterwards.
7751	RollbackConfiguration *RollbackConfiguration `type:"structure"`
7752
7753	// The name or the unique ID of the stack for which you are creating a change
7754	// set. CloudFormation generates the change set by comparing this stack's information
7755	// with the information that you submit, such as a modified template or different
7756	// parameter input values.
7757	//
7758	// StackName is a required field
7759	StackName *string `min:"1" type:"string" required:"true"`
7760
7761	// Key-value pairs to associate with this stack. CloudFormation also propagates
7762	// these tags to resources in the stack. You can specify a maximum of 50 tags.
7763	Tags []*Tag `type:"list"`
7764
7765	// A structure that contains the body of the revised template, with a minimum
7766	// length of 1 byte and a maximum length of 51,200 bytes. CloudFormation generates
7767	// the change set by comparing this template with the template of the stack
7768	// that you specified.
7769	//
7770	// Conditional: You must specify only TemplateBody or TemplateURL.
7771	TemplateBody *string `min:"1" type:"string"`
7772
7773	// The location of the file that contains the revised template. The URL must
7774	// point to a template (max size: 460,800 bytes) that is located in an S3 bucket
7775	// or a Systems Manager document. CloudFormation generates the change set by
7776	// comparing this template with the stack that you specified.
7777	//
7778	// Conditional: You must specify only TemplateBody or TemplateURL.
7779	TemplateURL *string `min:"1" type:"string"`
7780
7781	// Whether to reuse the template that is associated with the stack to create
7782	// the change set.
7783	UsePreviousTemplate *bool `type:"boolean"`
7784}
7785
7786// String returns the string representation.
7787//
7788// API parameter values that are decorated as "sensitive" in the API will not
7789// be included in the string output. The member name will be present, but the
7790// value will be replaced with "sensitive".
7791func (s CreateChangeSetInput) String() string {
7792	return awsutil.Prettify(s)
7793}
7794
7795// GoString returns the string representation.
7796//
7797// API parameter values that are decorated as "sensitive" in the API will not
7798// be included in the string output. The member name will be present, but the
7799// value will be replaced with "sensitive".
7800func (s CreateChangeSetInput) GoString() string {
7801	return s.String()
7802}
7803
7804// Validate inspects the fields of the type to determine if they are valid.
7805func (s *CreateChangeSetInput) Validate() error {
7806	invalidParams := request.ErrInvalidParams{Context: "CreateChangeSetInput"}
7807	if s.ChangeSetName == nil {
7808		invalidParams.Add(request.NewErrParamRequired("ChangeSetName"))
7809	}
7810	if s.ChangeSetName != nil && len(*s.ChangeSetName) < 1 {
7811		invalidParams.Add(request.NewErrParamMinLen("ChangeSetName", 1))
7812	}
7813	if s.ClientToken != nil && len(*s.ClientToken) < 1 {
7814		invalidParams.Add(request.NewErrParamMinLen("ClientToken", 1))
7815	}
7816	if s.Description != nil && len(*s.Description) < 1 {
7817		invalidParams.Add(request.NewErrParamMinLen("Description", 1))
7818	}
7819	if s.RoleARN != nil && len(*s.RoleARN) < 20 {
7820		invalidParams.Add(request.NewErrParamMinLen("RoleARN", 20))
7821	}
7822	if s.StackName == nil {
7823		invalidParams.Add(request.NewErrParamRequired("StackName"))
7824	}
7825	if s.StackName != nil && len(*s.StackName) < 1 {
7826		invalidParams.Add(request.NewErrParamMinLen("StackName", 1))
7827	}
7828	if s.TemplateBody != nil && len(*s.TemplateBody) < 1 {
7829		invalidParams.Add(request.NewErrParamMinLen("TemplateBody", 1))
7830	}
7831	if s.TemplateURL != nil && len(*s.TemplateURL) < 1 {
7832		invalidParams.Add(request.NewErrParamMinLen("TemplateURL", 1))
7833	}
7834	if s.ResourcesToImport != nil {
7835		for i, v := range s.ResourcesToImport {
7836			if v == nil {
7837				continue
7838			}
7839			if err := v.Validate(); err != nil {
7840				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "ResourcesToImport", i), err.(request.ErrInvalidParams))
7841			}
7842		}
7843	}
7844	if s.RollbackConfiguration != nil {
7845		if err := s.RollbackConfiguration.Validate(); err != nil {
7846			invalidParams.AddNested("RollbackConfiguration", err.(request.ErrInvalidParams))
7847		}
7848	}
7849	if s.Tags != nil {
7850		for i, v := range s.Tags {
7851			if v == nil {
7852				continue
7853			}
7854			if err := v.Validate(); err != nil {
7855				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Tags", i), err.(request.ErrInvalidParams))
7856			}
7857		}
7858	}
7859
7860	if invalidParams.Len() > 0 {
7861		return invalidParams
7862	}
7863	return nil
7864}
7865
7866// SetCapabilities sets the Capabilities field's value.
7867func (s *CreateChangeSetInput) SetCapabilities(v []*string) *CreateChangeSetInput {
7868	s.Capabilities = v
7869	return s
7870}
7871
7872// SetChangeSetName sets the ChangeSetName field's value.
7873func (s *CreateChangeSetInput) SetChangeSetName(v string) *CreateChangeSetInput {
7874	s.ChangeSetName = &v
7875	return s
7876}
7877
7878// SetChangeSetType sets the ChangeSetType field's value.
7879func (s *CreateChangeSetInput) SetChangeSetType(v string) *CreateChangeSetInput {
7880	s.ChangeSetType = &v
7881	return s
7882}
7883
7884// SetClientToken sets the ClientToken field's value.
7885func (s *CreateChangeSetInput) SetClientToken(v string) *CreateChangeSetInput {
7886	s.ClientToken = &v
7887	return s
7888}
7889
7890// SetDescription sets the Description field's value.
7891func (s *CreateChangeSetInput) SetDescription(v string) *CreateChangeSetInput {
7892	s.Description = &v
7893	return s
7894}
7895
7896// SetIncludeNestedStacks sets the IncludeNestedStacks field's value.
7897func (s *CreateChangeSetInput) SetIncludeNestedStacks(v bool) *CreateChangeSetInput {
7898	s.IncludeNestedStacks = &v
7899	return s
7900}
7901
7902// SetNotificationARNs sets the NotificationARNs field's value.
7903func (s *CreateChangeSetInput) SetNotificationARNs(v []*string) *CreateChangeSetInput {
7904	s.NotificationARNs = v
7905	return s
7906}
7907
7908// SetParameters sets the Parameters field's value.
7909func (s *CreateChangeSetInput) SetParameters(v []*Parameter) *CreateChangeSetInput {
7910	s.Parameters = v
7911	return s
7912}
7913
7914// SetResourceTypes sets the ResourceTypes field's value.
7915func (s *CreateChangeSetInput) SetResourceTypes(v []*string) *CreateChangeSetInput {
7916	s.ResourceTypes = v
7917	return s
7918}
7919
7920// SetResourcesToImport sets the ResourcesToImport field's value.
7921func (s *CreateChangeSetInput) SetResourcesToImport(v []*ResourceToImport) *CreateChangeSetInput {
7922	s.ResourcesToImport = v
7923	return s
7924}
7925
7926// SetRoleARN sets the RoleARN field's value.
7927func (s *CreateChangeSetInput) SetRoleARN(v string) *CreateChangeSetInput {
7928	s.RoleARN = &v
7929	return s
7930}
7931
7932// SetRollbackConfiguration sets the RollbackConfiguration field's value.
7933func (s *CreateChangeSetInput) SetRollbackConfiguration(v *RollbackConfiguration) *CreateChangeSetInput {
7934	s.RollbackConfiguration = v
7935	return s
7936}
7937
7938// SetStackName sets the StackName field's value.
7939func (s *CreateChangeSetInput) SetStackName(v string) *CreateChangeSetInput {
7940	s.StackName = &v
7941	return s
7942}
7943
7944// SetTags sets the Tags field's value.
7945func (s *CreateChangeSetInput) SetTags(v []*Tag) *CreateChangeSetInput {
7946	s.Tags = v
7947	return s
7948}
7949
7950// SetTemplateBody sets the TemplateBody field's value.
7951func (s *CreateChangeSetInput) SetTemplateBody(v string) *CreateChangeSetInput {
7952	s.TemplateBody = &v
7953	return s
7954}
7955
7956// SetTemplateURL sets the TemplateURL field's value.
7957func (s *CreateChangeSetInput) SetTemplateURL(v string) *CreateChangeSetInput {
7958	s.TemplateURL = &v
7959	return s
7960}
7961
7962// SetUsePreviousTemplate sets the UsePreviousTemplate field's value.
7963func (s *CreateChangeSetInput) SetUsePreviousTemplate(v bool) *CreateChangeSetInput {
7964	s.UsePreviousTemplate = &v
7965	return s
7966}
7967
7968// The output for the CreateChangeSet action.
7969type CreateChangeSetOutput struct {
7970	_ struct{} `type:"structure"`
7971
7972	// The Amazon Resource Name (ARN) of the change set.
7973	Id *string `min:"1" type:"string"`
7974
7975	// The unique ID of the stack.
7976	StackId *string `type:"string"`
7977}
7978
7979// String returns the string representation.
7980//
7981// API parameter values that are decorated as "sensitive" in the API will not
7982// be included in the string output. The member name will be present, but the
7983// value will be replaced with "sensitive".
7984func (s CreateChangeSetOutput) String() string {
7985	return awsutil.Prettify(s)
7986}
7987
7988// GoString returns the string representation.
7989//
7990// API parameter values that are decorated as "sensitive" in the API will not
7991// be included in the string output. The member name will be present, but the
7992// value will be replaced with "sensitive".
7993func (s CreateChangeSetOutput) GoString() string {
7994	return s.String()
7995}
7996
7997// SetId sets the Id field's value.
7998func (s *CreateChangeSetOutput) SetId(v string) *CreateChangeSetOutput {
7999	s.Id = &v
8000	return s
8001}
8002
8003// SetStackId sets the StackId field's value.
8004func (s *CreateChangeSetOutput) SetStackId(v string) *CreateChangeSetOutput {
8005	s.StackId = &v
8006	return s
8007}
8008
8009// The input for CreateStack action.
8010type CreateStackInput struct {
8011	_ struct{} `type:"structure"`
8012
8013	// In some cases, you must explicitly acknowledge that your stack template contains
8014	// certain capabilities in order for CloudFormation to create the stack.
8015	//
8016	//    * CAPABILITY_IAM and CAPABILITY_NAMED_IAM Some stack templates might include
8017	//    resources that can affect permissions in your Amazon Web Services account;
8018	//    for example, by creating new Identity and Access Management (IAM) users.
8019	//    For those stacks, you must explicitly acknowledge this by specifying one
8020	//    of these capabilities. The following IAM resources require you to specify
8021	//    either the CAPABILITY_IAM or CAPABILITY_NAMED_IAM capability. If you have
8022	//    IAM resources, you can specify either capability. If you have IAM resources
8023	//    with custom names, you must specify CAPABILITY_NAMED_IAM. If you don't
8024	//    specify either of these capabilities, CloudFormation returns an InsufficientCapabilities
8025	//    error. If your stack template contains these resources, we recommend that
8026	//    you review all permissions associated with them and edit their permissions
8027	//    if necessary. AWS::IAM::AccessKey (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iam-accesskey.html)
8028	//    AWS::IAM::Group (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iam-group.html)
8029	//    AWS::IAM::InstanceProfile (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iam-instanceprofile.html)
8030	//    AWS::IAM::Policy (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iam-policy.html)
8031	//    AWS::IAM::Role (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iam-role.html)
8032	//    AWS::IAM::User (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iam-user.html)
8033	//    AWS::IAM::UserToGroupAddition (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iam-addusertogroup.html)
8034	//    For more information, see Acknowledging IAM Resources in CloudFormation
8035	//    Templates (http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-iam-template.html#capabilities).
8036	//
8037	//    * CAPABILITY_AUTO_EXPAND Some template contain macros. Macros perform
8038	//    custom processing on templates; this can include simple actions like find-and-replace
8039	//    operations, all the way to extensive transformations of entire templates.
8040	//    Because of this, users typically create a change set from the processed
8041	//    template, so that they can review the changes resulting from the macros
8042	//    before actually creating the stack. If your stack template contains one
8043	//    or more macros, and you choose to create a stack directly from the processed
8044	//    template, without first reviewing the resulting changes in a change set,
8045	//    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)
8046	//    and AWS::Serverless (http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/transform-aws-serverless.html)
8047	//    transforms, which are macros hosted by CloudFormation. If you want to
8048	//    create a stack from a stack template that contains macros and nested stacks,
8049	//    you must create the stack directly from the template using this capability.
8050	//    You should only create stacks directly from a stack template that contains
8051	//    macros if you know what processing the macro performs. Each macro relies
8052	//    on an underlying Lambda service function for processing stack templates.
8053	//    Be aware that the Lambda function owner can update the function operation
8054	//    without CloudFormation being notified. For more information, see Using
8055	//    CloudFormation Macros to Perform Custom Processing on Templates (http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/template-macros.html).
8056	Capabilities []*string `type:"list"`
8057
8058	// A unique identifier for this CreateStack request. Specify this token if you
8059	// plan to retry requests so that CloudFormation knows that you're not attempting
8060	// to create a stack with the same name. You might retry CreateStack requests
8061	// to ensure that CloudFormation successfully received them.
8062	//
8063	// All events triggered by a given stack operation are assigned the same client
8064	// request token, which you can use to track operations. For example, if you
8065	// execute a CreateStack operation with the token token1, then all the StackEvents
8066	// generated by that operation will have ClientRequestToken set as token1.
8067	//
8068	// In the console, stack operations display the client request token on the
8069	// Events tab. Stack operations that are initiated from the console use the
8070	// token format Console-StackOperation-ID, which helps you easily identify the
8071	// stack operation . For example, if you create a stack using the console, each
8072	// stack event would be assigned the same token in the following format: Console-CreateStack-7f59c3cf-00d2-40c7-b2ff-e75db0987002.
8073	ClientRequestToken *string `min:"1" type:"string"`
8074
8075	// Set to true to disable rollback of the stack if stack creation failed. You
8076	// can specify either DisableRollback or OnFailure, but not both.
8077	//
8078	// Default: false
8079	DisableRollback *bool `type:"boolean"`
8080
8081	// Whether to enable termination protection on the specified stack. If a user
8082	// attempts to delete a stack with termination protection enabled, the operation
8083	// fails and the stack remains unchanged. For more information, see Protecting
8084	// a Stack From Being Deleted (http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-protect-stacks.html)
8085	// in the CloudFormation User Guide. Termination protection is disabled on stacks
8086	// by default.
8087	//
8088	// For nested stacks (http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-nested-stacks.html),
8089	// termination protection is set on the root stack and cannot be changed directly
8090	// on the nested stack.
8091	EnableTerminationProtection *bool `type:"boolean"`
8092
8093	// The Simple Notification Service (SNS) topic ARNs to publish stack related
8094	// events. You can find your SNS topic ARNs using the SNS console or your Command
8095	// Line Interface (CLI).
8096	NotificationARNs []*string `type:"list"`
8097
8098	// Determines what action will be taken if stack creation fails. This must be
8099	// one of: DO_NOTHING, ROLLBACK, or DELETE. You can specify either OnFailure
8100	// or DisableRollback, but not both.
8101	//
8102	// Default: ROLLBACK
8103	OnFailure *string `type:"string" enum:"OnFailure"`
8104
8105	// A list of Parameter structures that specify input parameters for the stack.
8106	// For more information, see the Parameter (https://docs.aws.amazon.com/AWSCloudFormation/latest/APIReference/API_Parameter.html)
8107	// data type.
8108	Parameters []*Parameter `type:"list"`
8109
8110	// The template resource types that you have permissions to work with for this
8111	// create stack action, such as AWS::EC2::Instance, AWS::EC2::*, or Custom::MyCustomInstance.
8112	// Use the following syntax to describe template resource types: AWS::* (for
8113	// all Amazon Web Services resources), Custom::* (for all custom resources),
8114	// Custom::logical_ID (for a specific custom resource), AWS::service_name::*
8115	// (for all resources of a particular Amazon Web Services service), and AWS::service_name::resource_logical_ID
8116	// (for a specific Amazon Web Services resource).
8117	//
8118	// If the list of resource types doesn't include a resource that you're creating,
8119	// the stack creation fails. By default, CloudFormation grants permissions to
8120	// all resource types. Identity and Access Management (IAM) uses this parameter
8121	// for CloudFormation-specific condition keys in IAM policies. For more information,
8122	// see Controlling Access with Identity and Access Management (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-iam-template.html).
8123	ResourceTypes []*string `type:"list"`
8124
8125	// The Amazon Resource Name (ARN) of an Identity and Access Management (IAM)
8126	// role that CloudFormation assumes to create the stack. CloudFormation uses
8127	// the role's credentials to make calls on your behalf. CloudFormation always
8128	// uses this role for all future operations on the stack. As long as users have
8129	// permission to operate on the stack, CloudFormation uses this role even if
8130	// the users don't have permission to pass it. Ensure that the role grants least
8131	// privilege.
8132	//
8133	// If you don't specify a value, CloudFormation uses the role that was previously
8134	// associated with the stack. If no role is available, CloudFormation uses a
8135	// temporary session that is generated from your user credentials.
8136	RoleARN *string `min:"20" type:"string"`
8137
8138	// The rollback triggers for CloudFormation to monitor during stack creation
8139	// and updating operations, and for the specified monitoring period afterwards.
8140	RollbackConfiguration *RollbackConfiguration `type:"structure"`
8141
8142	// The name that is associated with the stack. The name must be unique in the
8143	// Region in which you are creating the stack.
8144	//
8145	// A stack name can contain only alphanumeric characters (case sensitive) and
8146	// hyphens. It must start with an alphabetical character and cannot be longer
8147	// than 128 characters.
8148	//
8149	// StackName is a required field
8150	StackName *string `type:"string" required:"true"`
8151
8152	// Structure containing the stack policy body. For more information, go to Prevent
8153	// Updates to Stack Resources (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/protect-stack-resources.html)
8154	// in the CloudFormation User Guide. You can specify either the StackPolicyBody
8155	// or the StackPolicyURL parameter, but not both.
8156	StackPolicyBody *string `min:"1" type:"string"`
8157
8158	// Location of a file containing the stack policy. The URL must point to a policy
8159	// (maximum size: 16 KB) located in an S3 bucket in the same Region as the stack.
8160	// You can specify either the StackPolicyBody or the StackPolicyURL parameter,
8161	// but not both.
8162	StackPolicyURL *string `min:"1" type:"string"`
8163
8164	// Key-value pairs to associate with this stack. CloudFormation also propagates
8165	// these tags to the resources created in the stack. A maximum number of 50
8166	// tags can be specified.
8167	Tags []*Tag `type:"list"`
8168
8169	// Structure containing the template body with a minimum length of 1 byte and
8170	// a maximum length of 51,200 bytes. For more information, go to Template Anatomy
8171	// (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/template-anatomy.html)
8172	// in the CloudFormation User Guide.
8173	//
8174	// Conditional: You must specify either the TemplateBody or the TemplateURL
8175	// parameter, but not both.
8176	TemplateBody *string `min:"1" type:"string"`
8177
8178	// Location of file containing the template body. The URL must point to a template
8179	// (max size: 460,800 bytes) that is located in an Amazon S3 bucket or a Systems
8180	// Manager document. For more information, go to the Template Anatomy (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/template-anatomy.html)
8181	// in the CloudFormation User Guide.
8182	//
8183	// Conditional: You must specify either the TemplateBody or the TemplateURL
8184	// parameter, but not both.
8185	TemplateURL *string `min:"1" type:"string"`
8186
8187	// The amount of time that can pass before the stack status becomes CREATE_FAILED;
8188	// if DisableRollback is not set or is set to false, the stack will be rolled
8189	// back.
8190	TimeoutInMinutes *int64 `min:"1" type:"integer"`
8191}
8192
8193// String returns the string representation.
8194//
8195// API parameter values that are decorated as "sensitive" in the API will not
8196// be included in the string output. The member name will be present, but the
8197// value will be replaced with "sensitive".
8198func (s CreateStackInput) String() string {
8199	return awsutil.Prettify(s)
8200}
8201
8202// GoString returns the string representation.
8203//
8204// API parameter values that are decorated as "sensitive" in the API will not
8205// be included in the string output. The member name will be present, but the
8206// value will be replaced with "sensitive".
8207func (s CreateStackInput) GoString() string {
8208	return s.String()
8209}
8210
8211// Validate inspects the fields of the type to determine if they are valid.
8212func (s *CreateStackInput) Validate() error {
8213	invalidParams := request.ErrInvalidParams{Context: "CreateStackInput"}
8214	if s.ClientRequestToken != nil && len(*s.ClientRequestToken) < 1 {
8215		invalidParams.Add(request.NewErrParamMinLen("ClientRequestToken", 1))
8216	}
8217	if s.RoleARN != nil && len(*s.RoleARN) < 20 {
8218		invalidParams.Add(request.NewErrParamMinLen("RoleARN", 20))
8219	}
8220	if s.StackName == nil {
8221		invalidParams.Add(request.NewErrParamRequired("StackName"))
8222	}
8223	if s.StackPolicyBody != nil && len(*s.StackPolicyBody) < 1 {
8224		invalidParams.Add(request.NewErrParamMinLen("StackPolicyBody", 1))
8225	}
8226	if s.StackPolicyURL != nil && len(*s.StackPolicyURL) < 1 {
8227		invalidParams.Add(request.NewErrParamMinLen("StackPolicyURL", 1))
8228	}
8229	if s.TemplateBody != nil && len(*s.TemplateBody) < 1 {
8230		invalidParams.Add(request.NewErrParamMinLen("TemplateBody", 1))
8231	}
8232	if s.TemplateURL != nil && len(*s.TemplateURL) < 1 {
8233		invalidParams.Add(request.NewErrParamMinLen("TemplateURL", 1))
8234	}
8235	if s.TimeoutInMinutes != nil && *s.TimeoutInMinutes < 1 {
8236		invalidParams.Add(request.NewErrParamMinValue("TimeoutInMinutes", 1))
8237	}
8238	if s.RollbackConfiguration != nil {
8239		if err := s.RollbackConfiguration.Validate(); err != nil {
8240			invalidParams.AddNested("RollbackConfiguration", err.(request.ErrInvalidParams))
8241		}
8242	}
8243	if s.Tags != nil {
8244		for i, v := range s.Tags {
8245			if v == nil {
8246				continue
8247			}
8248			if err := v.Validate(); err != nil {
8249				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Tags", i), err.(request.ErrInvalidParams))
8250			}
8251		}
8252	}
8253
8254	if invalidParams.Len() > 0 {
8255		return invalidParams
8256	}
8257	return nil
8258}
8259
8260// SetCapabilities sets the Capabilities field's value.
8261func (s *CreateStackInput) SetCapabilities(v []*string) *CreateStackInput {
8262	s.Capabilities = v
8263	return s
8264}
8265
8266// SetClientRequestToken sets the ClientRequestToken field's value.
8267func (s *CreateStackInput) SetClientRequestToken(v string) *CreateStackInput {
8268	s.ClientRequestToken = &v
8269	return s
8270}
8271
8272// SetDisableRollback sets the DisableRollback field's value.
8273func (s *CreateStackInput) SetDisableRollback(v bool) *CreateStackInput {
8274	s.DisableRollback = &v
8275	return s
8276}
8277
8278// SetEnableTerminationProtection sets the EnableTerminationProtection field's value.
8279func (s *CreateStackInput) SetEnableTerminationProtection(v bool) *CreateStackInput {
8280	s.EnableTerminationProtection = &v
8281	return s
8282}
8283
8284// SetNotificationARNs sets the NotificationARNs field's value.
8285func (s *CreateStackInput) SetNotificationARNs(v []*string) *CreateStackInput {
8286	s.NotificationARNs = v
8287	return s
8288}
8289
8290// SetOnFailure sets the OnFailure field's value.
8291func (s *CreateStackInput) SetOnFailure(v string) *CreateStackInput {
8292	s.OnFailure = &v
8293	return s
8294}
8295
8296// SetParameters sets the Parameters field's value.
8297func (s *CreateStackInput) SetParameters(v []*Parameter) *CreateStackInput {
8298	s.Parameters = v
8299	return s
8300}
8301
8302// SetResourceTypes sets the ResourceTypes field's value.
8303func (s *CreateStackInput) SetResourceTypes(v []*string) *CreateStackInput {
8304	s.ResourceTypes = v
8305	return s
8306}
8307
8308// SetRoleARN sets the RoleARN field's value.
8309func (s *CreateStackInput) SetRoleARN(v string) *CreateStackInput {
8310	s.RoleARN = &v
8311	return s
8312}
8313
8314// SetRollbackConfiguration sets the RollbackConfiguration field's value.
8315func (s *CreateStackInput) SetRollbackConfiguration(v *RollbackConfiguration) *CreateStackInput {
8316	s.RollbackConfiguration = v
8317	return s
8318}
8319
8320// SetStackName sets the StackName field's value.
8321func (s *CreateStackInput) SetStackName(v string) *CreateStackInput {
8322	s.StackName = &v
8323	return s
8324}
8325
8326// SetStackPolicyBody sets the StackPolicyBody field's value.
8327func (s *CreateStackInput) SetStackPolicyBody(v string) *CreateStackInput {
8328	s.StackPolicyBody = &v
8329	return s
8330}
8331
8332// SetStackPolicyURL sets the StackPolicyURL field's value.
8333func (s *CreateStackInput) SetStackPolicyURL(v string) *CreateStackInput {
8334	s.StackPolicyURL = &v
8335	return s
8336}
8337
8338// SetTags sets the Tags field's value.
8339func (s *CreateStackInput) SetTags(v []*Tag) *CreateStackInput {
8340	s.Tags = v
8341	return s
8342}
8343
8344// SetTemplateBody sets the TemplateBody field's value.
8345func (s *CreateStackInput) SetTemplateBody(v string) *CreateStackInput {
8346	s.TemplateBody = &v
8347	return s
8348}
8349
8350// SetTemplateURL sets the TemplateURL field's value.
8351func (s *CreateStackInput) SetTemplateURL(v string) *CreateStackInput {
8352	s.TemplateURL = &v
8353	return s
8354}
8355
8356// SetTimeoutInMinutes sets the TimeoutInMinutes field's value.
8357func (s *CreateStackInput) SetTimeoutInMinutes(v int64) *CreateStackInput {
8358	s.TimeoutInMinutes = &v
8359	return s
8360}
8361
8362type CreateStackInstancesInput struct {
8363	_ struct{} `type:"structure"`
8364
8365	// [Self-managed permissions] The names of one or more Amazon Web Services accounts
8366	// that you want to create stack instances in the specified Region(s) for.
8367	//
8368	// You can specify Accounts or DeploymentTargets, but not both.
8369	Accounts []*string `type:"list"`
8370
8371	// [Service-managed permissions] Specifies whether you are acting as an account
8372	// administrator in the organization's management account or as a delegated
8373	// administrator in a member account.
8374	//
8375	// By default, SELF is specified. Use SELF for stack sets with self-managed
8376	// permissions.
8377	//
8378	//    * If you are signed in to the management account, specify SELF.
8379	//
8380	//    * If you are signed in to a delegated administrator account, specify DELEGATED_ADMIN.
8381	//    Your Amazon Web Services account must be registered as a delegated administrator
8382	//    in the management account. For more information, see Register a delegated
8383	//    administrator (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/stacksets-orgs-delegated-admin.html)
8384	//    in the CloudFormation User Guide.
8385	CallAs *string `type:"string" enum:"CallAs"`
8386
8387	// [Service-managed permissions] The Organizations accounts for which to create
8388	// stack instances in the specified Regions.
8389	//
8390	// You can specify Accounts or DeploymentTargets, but not both.
8391	DeploymentTargets *DeploymentTargets `type:"structure"`
8392
8393	// The unique identifier for this stack set operation.
8394	//
8395	// The operation ID also functions as an idempotency token, to ensure that CloudFormation
8396	// performs the stack set operation only once, even if you retry the request
8397	// multiple times. You might retry stack set operation requests to ensure that
8398	// CloudFormation successfully received them.
8399	//
8400	// If you don't specify an operation ID, the SDK generates one automatically.
8401	//
8402	// Repeating this stack set operation with a new operation ID retries all stack
8403	// instances whose status is OUTDATED.
8404	OperationId *string `min:"1" type:"string" idempotencyToken:"true"`
8405
8406	// Preferences for how CloudFormation performs this stack set operation.
8407	OperationPreferences *StackSetOperationPreferences `type:"structure"`
8408
8409	// A list of stack set parameters whose values you want to override in the selected
8410	// stack instances.
8411	//
8412	// Any overridden parameter values will be applied to all stack instances in
8413	// the specified accounts and Regions. When specifying parameters and their
8414	// values, be aware of how CloudFormation sets parameter values during stack
8415	// instance operations:
8416	//
8417	//    * To override the current value for a parameter, include the parameter
8418	//    and specify its value.
8419	//
8420	//    * To leave an overridden parameter set to its present value, include the
8421	//    parameter and specify UsePreviousValue as true. (You cannot specify both
8422	//    a value and set UsePreviousValue to true.)
8423	//
8424	//    * To set an overridden parameter back to the value specified in the stack
8425	//    set, specify a parameter list but do not include the parameter in the
8426	//    list.
8427	//
8428	//    * To leave all parameters set to their present values, do not specify
8429	//    this property at all.
8430	//
8431	// During stack set updates, any parameter values overridden for a stack instance
8432	// are not updated, but retain their overridden value.
8433	//
8434	// You can only override the parameter values that are specified in the stack
8435	// set; to add or delete a parameter itself, use UpdateStackSet (https://docs.aws.amazon.com/AWSCloudFormation/latest/APIReference/API_UpdateStackSet.html)
8436	// to update the stack set template.
8437	ParameterOverrides []*Parameter `type:"list"`
8438
8439	// The names of one or more Regions where you want to create stack instances
8440	// using the specified Amazon Web Services accounts.
8441	//
8442	// Regions is a required field
8443	Regions []*string `type:"list" required:"true"`
8444
8445	// The name or unique ID of the stack set that you want to create stack instances
8446	// from.
8447	//
8448	// StackSetName is a required field
8449	StackSetName *string `type:"string" required:"true"`
8450}
8451
8452// String returns the string representation.
8453//
8454// API parameter values that are decorated as "sensitive" in the API will not
8455// be included in the string output. The member name will be present, but the
8456// value will be replaced with "sensitive".
8457func (s CreateStackInstancesInput) String() string {
8458	return awsutil.Prettify(s)
8459}
8460
8461// GoString returns the string representation.
8462//
8463// API parameter values that are decorated as "sensitive" in the API will not
8464// be included in the string output. The member name will be present, but the
8465// value will be replaced with "sensitive".
8466func (s CreateStackInstancesInput) GoString() string {
8467	return s.String()
8468}
8469
8470// Validate inspects the fields of the type to determine if they are valid.
8471func (s *CreateStackInstancesInput) Validate() error {
8472	invalidParams := request.ErrInvalidParams{Context: "CreateStackInstancesInput"}
8473	if s.OperationId != nil && len(*s.OperationId) < 1 {
8474		invalidParams.Add(request.NewErrParamMinLen("OperationId", 1))
8475	}
8476	if s.Regions == nil {
8477		invalidParams.Add(request.NewErrParamRequired("Regions"))
8478	}
8479	if s.StackSetName == nil {
8480		invalidParams.Add(request.NewErrParamRequired("StackSetName"))
8481	}
8482	if s.DeploymentTargets != nil {
8483		if err := s.DeploymentTargets.Validate(); err != nil {
8484			invalidParams.AddNested("DeploymentTargets", err.(request.ErrInvalidParams))
8485		}
8486	}
8487	if s.OperationPreferences != nil {
8488		if err := s.OperationPreferences.Validate(); err != nil {
8489			invalidParams.AddNested("OperationPreferences", err.(request.ErrInvalidParams))
8490		}
8491	}
8492
8493	if invalidParams.Len() > 0 {
8494		return invalidParams
8495	}
8496	return nil
8497}
8498
8499// SetAccounts sets the Accounts field's value.
8500func (s *CreateStackInstancesInput) SetAccounts(v []*string) *CreateStackInstancesInput {
8501	s.Accounts = v
8502	return s
8503}
8504
8505// SetCallAs sets the CallAs field's value.
8506func (s *CreateStackInstancesInput) SetCallAs(v string) *CreateStackInstancesInput {
8507	s.CallAs = &v
8508	return s
8509}
8510
8511// SetDeploymentTargets sets the DeploymentTargets field's value.
8512func (s *CreateStackInstancesInput) SetDeploymentTargets(v *DeploymentTargets) *CreateStackInstancesInput {
8513	s.DeploymentTargets = v
8514	return s
8515}
8516
8517// SetOperationId sets the OperationId field's value.
8518func (s *CreateStackInstancesInput) SetOperationId(v string) *CreateStackInstancesInput {
8519	s.OperationId = &v
8520	return s
8521}
8522
8523// SetOperationPreferences sets the OperationPreferences field's value.
8524func (s *CreateStackInstancesInput) SetOperationPreferences(v *StackSetOperationPreferences) *CreateStackInstancesInput {
8525	s.OperationPreferences = v
8526	return s
8527}
8528
8529// SetParameterOverrides sets the ParameterOverrides field's value.
8530func (s *CreateStackInstancesInput) SetParameterOverrides(v []*Parameter) *CreateStackInstancesInput {
8531	s.ParameterOverrides = v
8532	return s
8533}
8534
8535// SetRegions sets the Regions field's value.
8536func (s *CreateStackInstancesInput) SetRegions(v []*string) *CreateStackInstancesInput {
8537	s.Regions = v
8538	return s
8539}
8540
8541// SetStackSetName sets the StackSetName field's value.
8542func (s *CreateStackInstancesInput) SetStackSetName(v string) *CreateStackInstancesInput {
8543	s.StackSetName = &v
8544	return s
8545}
8546
8547type CreateStackInstancesOutput struct {
8548	_ struct{} `type:"structure"`
8549
8550	// The unique identifier for this stack set operation.
8551	OperationId *string `min:"1" type:"string"`
8552}
8553
8554// String returns the string representation.
8555//
8556// API parameter values that are decorated as "sensitive" in the API will not
8557// be included in the string output. The member name will be present, but the
8558// value will be replaced with "sensitive".
8559func (s CreateStackInstancesOutput) String() string {
8560	return awsutil.Prettify(s)
8561}
8562
8563// GoString returns the string representation.
8564//
8565// API parameter values that are decorated as "sensitive" in the API will not
8566// be included in the string output. The member name will be present, but the
8567// value will be replaced with "sensitive".
8568func (s CreateStackInstancesOutput) GoString() string {
8569	return s.String()
8570}
8571
8572// SetOperationId sets the OperationId field's value.
8573func (s *CreateStackInstancesOutput) SetOperationId(v string) *CreateStackInstancesOutput {
8574	s.OperationId = &v
8575	return s
8576}
8577
8578// The output for a CreateStack action.
8579type CreateStackOutput struct {
8580	_ struct{} `type:"structure"`
8581
8582	// Unique identifier of the stack.
8583	StackId *string `type:"string"`
8584}
8585
8586// String returns the string representation.
8587//
8588// API parameter values that are decorated as "sensitive" in the API will not
8589// be included in the string output. The member name will be present, but the
8590// value will be replaced with "sensitive".
8591func (s CreateStackOutput) String() string {
8592	return awsutil.Prettify(s)
8593}
8594
8595// GoString returns the string representation.
8596//
8597// API parameter values that are decorated as "sensitive" in the API will not
8598// be included in the string output. The member name will be present, but the
8599// value will be replaced with "sensitive".
8600func (s CreateStackOutput) GoString() string {
8601	return s.String()
8602}
8603
8604// SetStackId sets the StackId field's value.
8605func (s *CreateStackOutput) SetStackId(v string) *CreateStackOutput {
8606	s.StackId = &v
8607	return s
8608}
8609
8610type CreateStackSetInput struct {
8611	_ struct{} `type:"structure"`
8612
8613	// The Amazon Resource Number (ARN) of the IAM role to use to create this stack
8614	// set.
8615	//
8616	// Specify an IAM role only if you are using customized administrator roles
8617	// to control which users or groups can manage specific stack sets within the
8618	// same administrator account. For more information, see Prerequisites: Granting
8619	// Permissions for Stack Set Operations (http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/stacksets-prereqs.html)
8620	// in the CloudFormation User Guide.
8621	AdministrationRoleARN *string `min:"20" type:"string"`
8622
8623	// Describes whether StackSets automatically deploys to Organizations accounts
8624	// that are added to the target organization or organizational unit (OU). Specify
8625	// only if PermissionModel is SERVICE_MANAGED.
8626	AutoDeployment *AutoDeployment `type:"structure"`
8627
8628	// [Service-managed permissions] Specifies whether you are acting as an account
8629	// administrator in the organization's management account or as a delegated
8630	// administrator in a member account.
8631	//
8632	// By default, SELF is specified. Use SELF for stack sets with self-managed
8633	// permissions.
8634	//
8635	//    * To create a stack set with service-managed permissions while signed
8636	//    in to the management account, specify SELF.
8637	//
8638	//    * To create a stack set with service-managed permissions while signed
8639	//    in to a delegated administrator account, specify DELEGATED_ADMIN. Your
8640	//    Amazon Web Services account must be registered as a delegated admin in
8641	//    the management account. For more information, see Register a delegated
8642	//    administrator (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/stacksets-orgs-delegated-admin.html)
8643	//    in the CloudFormation User Guide.
8644	//
8645	// Stack sets with service-managed permissions are created in the management
8646	// account, including stack sets that are created by delegated administrators.
8647	CallAs *string `type:"string" enum:"CallAs"`
8648
8649	// In some cases, you must explicitly acknowledge that your stack set template
8650	// contains certain capabilities in order for CloudFormation to create the stack
8651	// set and related stack instances.
8652	//
8653	//    * CAPABILITY_IAM and CAPABILITY_NAMED_IAM Some stack templates might include
8654	//    resources that can affect permissions in your Amazon Web Services account;
8655	//    for example, by creating new Identity and Access Management (IAM) users.
8656	//    For those stack sets, you must explicitly acknowledge this by specifying
8657	//    one of these capabilities. The following IAM resources require you to
8658	//    specify either the CAPABILITY_IAM or CAPABILITY_NAMED_IAM capability.
8659	//    If you have IAM resources, you can specify either capability. If you have
8660	//    IAM resources with custom names, you must specify CAPABILITY_NAMED_IAM.
8661	//    If you don't specify either of these capabilities, CloudFormation returns
8662	//    an InsufficientCapabilities error. If your stack template contains these
8663	//    resources, we recommend that you review all permissions associated with
8664	//    them and edit their permissions if necessary. AWS::IAM::AccessKey (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iam-accesskey.html)
8665	//    AWS::IAM::Group (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iam-group.html)
8666	//    AWS::IAM::InstanceProfile (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iam-instanceprofile.html)
8667	//    AWS::IAM::Policy (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iam-policy.html)
8668	//    AWS::IAM::Role (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iam-role.html)
8669	//    AWS::IAM::User (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iam-user.html)
8670	//    AWS::IAM::UserToGroupAddition (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iam-addusertogroup.html)
8671	//    For more information, see Acknowledging IAM Resources in CloudFormation
8672	//    Templates (http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-iam-template.html#capabilities).
8673	//
8674	//    * CAPABILITY_AUTO_EXPAND Some templates reference macros. If your stack
8675	//    set template references one or more macros, you must create the stack
8676	//    set directly from the processed template, without first reviewing the
8677	//    resulting changes in a change set. To create the stack set directly, you
8678	//    must acknowledge this capability. For more information, see Using CloudFormation
8679	//    Macros to Perform Custom Processing on Templates (http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/template-macros.html).
8680	//    Stack sets with service-managed permissions do not currently support the
8681	//    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)
8682	//    and AWS::Serverless (http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/transform-aws-serverless.html)
8683	//    transforms, which are macros hosted by CloudFormation.) Even if you specify
8684	//    this capability for a stack set with service-managed permissions, if you
8685	//    reference a macro in your template the stack set operation will fail.
8686	Capabilities []*string `type:"list"`
8687
8688	// A unique identifier for this CreateStackSet request. Specify this token if
8689	// you plan to retry requests so that CloudFormation knows that you're not attempting
8690	// to create another stack set with the same name. You might retry CreateStackSet
8691	// requests to ensure that CloudFormation successfully received them.
8692	//
8693	// If you don't specify an operation ID, the SDK generates one automatically.
8694	ClientRequestToken *string `min:"1" type:"string" idempotencyToken:"true"`
8695
8696	// A description of the stack set. You can use the description to identify the
8697	// stack set's purpose or other important information.
8698	Description *string `min:"1" type:"string"`
8699
8700	// The name of the IAM execution role to use to create the stack set. If you
8701	// do not specify an execution role, CloudFormation uses the AWSCloudFormationStackSetExecutionRole
8702	// role for the stack set operation.
8703	//
8704	// Specify an IAM role only if you are using customized execution roles to control
8705	// which stack resources users and groups can include in their stack sets.
8706	ExecutionRoleName *string `min:"1" type:"string"`
8707
8708	// The input parameters for the stack set template.
8709	Parameters []*Parameter `type:"list"`
8710
8711	// Describes how the IAM roles required for stack set operations are created.
8712	// By default, SELF-MANAGED is specified.
8713	//
8714	//    * With self-managed permissions, you must create the administrator and
8715	//    execution roles required to deploy to target accounts. For more information,
8716	//    see Grant Self-Managed Stack Set Permissions (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/stacksets-prereqs-self-managed.html).
8717	//
8718	//    * With service-managed permissions, StackSets automatically creates the
8719	//    IAM roles required to deploy to accounts managed by Organizations. For
8720	//    more information, see Grant Service-Managed Stack Set Permissions (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/stacksets-prereqs-service-managed.html).
8721	PermissionModel *string `type:"string" enum:"PermissionModels"`
8722
8723	// The stack ID you are importing into a new stack set. Specify the Amazon Resource
8724	// Number (ARN) of the stack.
8725	StackId *string `type:"string"`
8726
8727	// The name to associate with the stack set. The name must be unique in the
8728	// Region where you create your stack set.
8729	//
8730	// A stack name can contain only alphanumeric characters (case-sensitive) and
8731	// hyphens. It must start with an alphabetic character and can't be longer than
8732	// 128 characters.
8733	//
8734	// StackSetName is a required field
8735	StackSetName *string `type:"string" required:"true"`
8736
8737	// The key-value pairs to associate with this stack set and the stacks created
8738	// from it. CloudFormation also propagates these tags to supported resources
8739	// that are created in the stacks. A maximum number of 50 tags can be specified.
8740	//
8741	// If you specify tags as part of a CreateStackSet action, CloudFormation checks
8742	// to see if you have the required IAM permission to tag resources. If you don't,
8743	// the entire CreateStackSet action fails with an access denied error, and the
8744	// stack set is not created.
8745	Tags []*Tag `type:"list"`
8746
8747	// The structure that contains the template body, with a minimum length of 1
8748	// byte and a maximum length of 51,200 bytes. For more information, see Template
8749	// Anatomy (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/template-anatomy.html)
8750	// in the CloudFormation User Guide.
8751	//
8752	// Conditional: You must specify either the TemplateBody or the TemplateURL
8753	// parameter, but not both.
8754	TemplateBody *string `min:"1" type:"string"`
8755
8756	// The location of the file that contains the template body. The URL must point
8757	// to a template (maximum size: 460,800 bytes) that's located in an Amazon S3
8758	// bucket or a Systems Manager document. For more information, see Template
8759	// Anatomy (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/template-anatomy.html)
8760	// in the CloudFormation User Guide.
8761	//
8762	// Conditional: You must specify either the TemplateBody or the TemplateURL
8763	// parameter, but not both.
8764	TemplateURL *string `min:"1" type:"string"`
8765}
8766
8767// String returns the string representation.
8768//
8769// API parameter values that are decorated as "sensitive" in the API will not
8770// be included in the string output. The member name will be present, but the
8771// value will be replaced with "sensitive".
8772func (s CreateStackSetInput) String() string {
8773	return awsutil.Prettify(s)
8774}
8775
8776// GoString returns the string representation.
8777//
8778// API parameter values that are decorated as "sensitive" in the API will not
8779// be included in the string output. The member name will be present, but the
8780// value will be replaced with "sensitive".
8781func (s CreateStackSetInput) GoString() string {
8782	return s.String()
8783}
8784
8785// Validate inspects the fields of the type to determine if they are valid.
8786func (s *CreateStackSetInput) Validate() error {
8787	invalidParams := request.ErrInvalidParams{Context: "CreateStackSetInput"}
8788	if s.AdministrationRoleARN != nil && len(*s.AdministrationRoleARN) < 20 {
8789		invalidParams.Add(request.NewErrParamMinLen("AdministrationRoleARN", 20))
8790	}
8791	if s.ClientRequestToken != nil && len(*s.ClientRequestToken) < 1 {
8792		invalidParams.Add(request.NewErrParamMinLen("ClientRequestToken", 1))
8793	}
8794	if s.Description != nil && len(*s.Description) < 1 {
8795		invalidParams.Add(request.NewErrParamMinLen("Description", 1))
8796	}
8797	if s.ExecutionRoleName != nil && len(*s.ExecutionRoleName) < 1 {
8798		invalidParams.Add(request.NewErrParamMinLen("ExecutionRoleName", 1))
8799	}
8800	if s.StackSetName == nil {
8801		invalidParams.Add(request.NewErrParamRequired("StackSetName"))
8802	}
8803	if s.TemplateBody != nil && len(*s.TemplateBody) < 1 {
8804		invalidParams.Add(request.NewErrParamMinLen("TemplateBody", 1))
8805	}
8806	if s.TemplateURL != nil && len(*s.TemplateURL) < 1 {
8807		invalidParams.Add(request.NewErrParamMinLen("TemplateURL", 1))
8808	}
8809	if s.Tags != nil {
8810		for i, v := range s.Tags {
8811			if v == nil {
8812				continue
8813			}
8814			if err := v.Validate(); err != nil {
8815				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Tags", i), err.(request.ErrInvalidParams))
8816			}
8817		}
8818	}
8819
8820	if invalidParams.Len() > 0 {
8821		return invalidParams
8822	}
8823	return nil
8824}
8825
8826// SetAdministrationRoleARN sets the AdministrationRoleARN field's value.
8827func (s *CreateStackSetInput) SetAdministrationRoleARN(v string) *CreateStackSetInput {
8828	s.AdministrationRoleARN = &v
8829	return s
8830}
8831
8832// SetAutoDeployment sets the AutoDeployment field's value.
8833func (s *CreateStackSetInput) SetAutoDeployment(v *AutoDeployment) *CreateStackSetInput {
8834	s.AutoDeployment = v
8835	return s
8836}
8837
8838// SetCallAs sets the CallAs field's value.
8839func (s *CreateStackSetInput) SetCallAs(v string) *CreateStackSetInput {
8840	s.CallAs = &v
8841	return s
8842}
8843
8844// SetCapabilities sets the Capabilities field's value.
8845func (s *CreateStackSetInput) SetCapabilities(v []*string) *CreateStackSetInput {
8846	s.Capabilities = v
8847	return s
8848}
8849
8850// SetClientRequestToken sets the ClientRequestToken field's value.
8851func (s *CreateStackSetInput) SetClientRequestToken(v string) *CreateStackSetInput {
8852	s.ClientRequestToken = &v
8853	return s
8854}
8855
8856// SetDescription sets the Description field's value.
8857func (s *CreateStackSetInput) SetDescription(v string) *CreateStackSetInput {
8858	s.Description = &v
8859	return s
8860}
8861
8862// SetExecutionRoleName sets the ExecutionRoleName field's value.
8863func (s *CreateStackSetInput) SetExecutionRoleName(v string) *CreateStackSetInput {
8864	s.ExecutionRoleName = &v
8865	return s
8866}
8867
8868// SetParameters sets the Parameters field's value.
8869func (s *CreateStackSetInput) SetParameters(v []*Parameter) *CreateStackSetInput {
8870	s.Parameters = v
8871	return s
8872}
8873
8874// SetPermissionModel sets the PermissionModel field's value.
8875func (s *CreateStackSetInput) SetPermissionModel(v string) *CreateStackSetInput {
8876	s.PermissionModel = &v
8877	return s
8878}
8879
8880// SetStackId sets the StackId field's value.
8881func (s *CreateStackSetInput) SetStackId(v string) *CreateStackSetInput {
8882	s.StackId = &v
8883	return s
8884}
8885
8886// SetStackSetName sets the StackSetName field's value.
8887func (s *CreateStackSetInput) SetStackSetName(v string) *CreateStackSetInput {
8888	s.StackSetName = &v
8889	return s
8890}
8891
8892// SetTags sets the Tags field's value.
8893func (s *CreateStackSetInput) SetTags(v []*Tag) *CreateStackSetInput {
8894	s.Tags = v
8895	return s
8896}
8897
8898// SetTemplateBody sets the TemplateBody field's value.
8899func (s *CreateStackSetInput) SetTemplateBody(v string) *CreateStackSetInput {
8900	s.TemplateBody = &v
8901	return s
8902}
8903
8904// SetTemplateURL sets the TemplateURL field's value.
8905func (s *CreateStackSetInput) SetTemplateURL(v string) *CreateStackSetInput {
8906	s.TemplateURL = &v
8907	return s
8908}
8909
8910type CreateStackSetOutput struct {
8911	_ struct{} `type:"structure"`
8912
8913	// The ID of the stack set that you're creating.
8914	StackSetId *string `type:"string"`
8915}
8916
8917// String returns the string representation.
8918//
8919// API parameter values that are decorated as "sensitive" in the API will not
8920// be included in the string output. The member name will be present, but the
8921// value will be replaced with "sensitive".
8922func (s CreateStackSetOutput) String() string {
8923	return awsutil.Prettify(s)
8924}
8925
8926// GoString returns the string representation.
8927//
8928// API parameter values that are decorated as "sensitive" in the API will not
8929// be included in the string output. The member name will be present, but the
8930// value will be replaced with "sensitive".
8931func (s CreateStackSetOutput) GoString() string {
8932	return s.String()
8933}
8934
8935// SetStackSetId sets the StackSetId field's value.
8936func (s *CreateStackSetOutput) SetStackSetId(v string) *CreateStackSetOutput {
8937	s.StackSetId = &v
8938	return s
8939}
8940
8941type DeactivateTypeInput struct {
8942	_ struct{} `type:"structure"`
8943
8944	// The Amazon Resource Name (ARN) for the extension, in this account and region.
8945	//
8946	// Conditional: You must specify either Arn, or TypeName and Type.
8947	Arn *string `type:"string"`
8948
8949	// The extension type.
8950	//
8951	// Conditional: You must specify either Arn, or TypeName and Type.
8952	Type *string `type:"string" enum:"ThirdPartyType"`
8953
8954	// The type name of the extension, in this account and region. If you specified
8955	// a type name alias when enabling the extension, use the type name alias.
8956	//
8957	// Conditional: You must specify either Arn, or TypeName and Type.
8958	TypeName *string `min:"10" type:"string"`
8959}
8960
8961// String returns the string representation.
8962//
8963// API parameter values that are decorated as "sensitive" in the API will not
8964// be included in the string output. The member name will be present, but the
8965// value will be replaced with "sensitive".
8966func (s DeactivateTypeInput) String() string {
8967	return awsutil.Prettify(s)
8968}
8969
8970// GoString returns the string representation.
8971//
8972// API parameter values that are decorated as "sensitive" in the API will not
8973// be included in the string output. The member name will be present, but the
8974// value will be replaced with "sensitive".
8975func (s DeactivateTypeInput) GoString() string {
8976	return s.String()
8977}
8978
8979// Validate inspects the fields of the type to determine if they are valid.
8980func (s *DeactivateTypeInput) Validate() error {
8981	invalidParams := request.ErrInvalidParams{Context: "DeactivateTypeInput"}
8982	if s.TypeName != nil && len(*s.TypeName) < 10 {
8983		invalidParams.Add(request.NewErrParamMinLen("TypeName", 10))
8984	}
8985
8986	if invalidParams.Len() > 0 {
8987		return invalidParams
8988	}
8989	return nil
8990}
8991
8992// SetArn sets the Arn field's value.
8993func (s *DeactivateTypeInput) SetArn(v string) *DeactivateTypeInput {
8994	s.Arn = &v
8995	return s
8996}
8997
8998// SetType sets the Type field's value.
8999func (s *DeactivateTypeInput) SetType(v string) *DeactivateTypeInput {
9000	s.Type = &v
9001	return s
9002}
9003
9004// SetTypeName sets the TypeName field's value.
9005func (s *DeactivateTypeInput) SetTypeName(v string) *DeactivateTypeInput {
9006	s.TypeName = &v
9007	return s
9008}
9009
9010type DeactivateTypeOutput struct {
9011	_ struct{} `type:"structure"`
9012}
9013
9014// String returns the string representation.
9015//
9016// API parameter values that are decorated as "sensitive" in the API will not
9017// be included in the string output. The member name will be present, but the
9018// value will be replaced with "sensitive".
9019func (s DeactivateTypeOutput) String() string {
9020	return awsutil.Prettify(s)
9021}
9022
9023// GoString returns the string representation.
9024//
9025// API parameter values that are decorated as "sensitive" in the API will not
9026// be included in the string output. The member name will be present, but the
9027// value will be replaced with "sensitive".
9028func (s DeactivateTypeOutput) GoString() string {
9029	return s.String()
9030}
9031
9032// The input for the DeleteChangeSet action.
9033type DeleteChangeSetInput struct {
9034	_ struct{} `type:"structure"`
9035
9036	// The name or Amazon Resource Name (ARN) of the change set that you want to
9037	// delete.
9038	//
9039	// ChangeSetName is a required field
9040	ChangeSetName *string `min:"1" type:"string" required:"true"`
9041
9042	// If you specified the name of a change set to delete, specify the stack name
9043	// or ID (ARN) that is associated with it.
9044	StackName *string `min:"1" type:"string"`
9045}
9046
9047// String returns the string representation.
9048//
9049// API parameter values that are decorated as "sensitive" in the API will not
9050// be included in the string output. The member name will be present, but the
9051// value will be replaced with "sensitive".
9052func (s DeleteChangeSetInput) String() string {
9053	return awsutil.Prettify(s)
9054}
9055
9056// GoString returns the string representation.
9057//
9058// API parameter values that are decorated as "sensitive" in the API will not
9059// be included in the string output. The member name will be present, but the
9060// value will be replaced with "sensitive".
9061func (s DeleteChangeSetInput) GoString() string {
9062	return s.String()
9063}
9064
9065// Validate inspects the fields of the type to determine if they are valid.
9066func (s *DeleteChangeSetInput) Validate() error {
9067	invalidParams := request.ErrInvalidParams{Context: "DeleteChangeSetInput"}
9068	if s.ChangeSetName == nil {
9069		invalidParams.Add(request.NewErrParamRequired("ChangeSetName"))
9070	}
9071	if s.ChangeSetName != nil && len(*s.ChangeSetName) < 1 {
9072		invalidParams.Add(request.NewErrParamMinLen("ChangeSetName", 1))
9073	}
9074	if s.StackName != nil && len(*s.StackName) < 1 {
9075		invalidParams.Add(request.NewErrParamMinLen("StackName", 1))
9076	}
9077
9078	if invalidParams.Len() > 0 {
9079		return invalidParams
9080	}
9081	return nil
9082}
9083
9084// SetChangeSetName sets the ChangeSetName field's value.
9085func (s *DeleteChangeSetInput) SetChangeSetName(v string) *DeleteChangeSetInput {
9086	s.ChangeSetName = &v
9087	return s
9088}
9089
9090// SetStackName sets the StackName field's value.
9091func (s *DeleteChangeSetInput) SetStackName(v string) *DeleteChangeSetInput {
9092	s.StackName = &v
9093	return s
9094}
9095
9096// The output for the DeleteChangeSet action.
9097type DeleteChangeSetOutput struct {
9098	_ struct{} `type:"structure"`
9099}
9100
9101// String returns the string representation.
9102//
9103// API parameter values that are decorated as "sensitive" in the API will not
9104// be included in the string output. The member name will be present, but the
9105// value will be replaced with "sensitive".
9106func (s DeleteChangeSetOutput) String() string {
9107	return awsutil.Prettify(s)
9108}
9109
9110// GoString returns the string representation.
9111//
9112// API parameter values that are decorated as "sensitive" in the API will not
9113// be included in the string output. The member name will be present, but the
9114// value will be replaced with "sensitive".
9115func (s DeleteChangeSetOutput) GoString() string {
9116	return s.String()
9117}
9118
9119// The input for DeleteStack action.
9120type DeleteStackInput struct {
9121	_ struct{} `type:"structure"`
9122
9123	// A unique identifier for this DeleteStack request. Specify this token if you
9124	// plan to retry requests so that CloudFormation knows that you're not attempting
9125	// to delete a stack with the same name. You might retry DeleteStack requests
9126	// to ensure that CloudFormation successfully received them.
9127	//
9128	// All events triggered by a given stack operation are assigned the same client
9129	// request token, which you can use to track operations. For example, if you
9130	// execute a CreateStack operation with the token token1, then all the StackEvents
9131	// generated by that operation will have ClientRequestToken set as token1.
9132	//
9133	// In the console, stack operations display the client request token on the
9134	// Events tab. Stack operations that are initiated from the console use the
9135	// token format Console-StackOperation-ID, which helps you easily identify the
9136	// stack operation . For example, if you create a stack using the console, each
9137	// stack event would be assigned the same token in the following format: Console-CreateStack-7f59c3cf-00d2-40c7-b2ff-e75db0987002.
9138	ClientRequestToken *string `min:"1" type:"string"`
9139
9140	// For stacks in the DELETE_FAILED state, a list of resource logical IDs that
9141	// are associated with the resources you want to retain. During deletion, CloudFormation
9142	// deletes the stack but does not delete the retained resources.
9143	//
9144	// Retaining resources is useful when you cannot delete a resource, such as
9145	// a non-empty S3 bucket, but you want to delete the stack.
9146	RetainResources []*string `type:"list"`
9147
9148	// The Amazon Resource Name (ARN) of an Identity and Access Management (IAM)
9149	// role that CloudFormation assumes to delete the stack. CloudFormation uses
9150	// the role's credentials to make calls on your behalf.
9151	//
9152	// If you don't specify a value, CloudFormation uses the role that was previously
9153	// associated with the stack. If no role is available, CloudFormation uses a
9154	// temporary session that is generated from your user credentials.
9155	RoleARN *string `min:"20" type:"string"`
9156
9157	// The name or the unique stack ID that is associated with the stack.
9158	//
9159	// StackName is a required field
9160	StackName *string `type:"string" required:"true"`
9161}
9162
9163// String returns the string representation.
9164//
9165// API parameter values that are decorated as "sensitive" in the API will not
9166// be included in the string output. The member name will be present, but the
9167// value will be replaced with "sensitive".
9168func (s DeleteStackInput) String() string {
9169	return awsutil.Prettify(s)
9170}
9171
9172// GoString returns the string representation.
9173//
9174// API parameter values that are decorated as "sensitive" in the API will not
9175// be included in the string output. The member name will be present, but the
9176// value will be replaced with "sensitive".
9177func (s DeleteStackInput) GoString() string {
9178	return s.String()
9179}
9180
9181// Validate inspects the fields of the type to determine if they are valid.
9182func (s *DeleteStackInput) Validate() error {
9183	invalidParams := request.ErrInvalidParams{Context: "DeleteStackInput"}
9184	if s.ClientRequestToken != nil && len(*s.ClientRequestToken) < 1 {
9185		invalidParams.Add(request.NewErrParamMinLen("ClientRequestToken", 1))
9186	}
9187	if s.RoleARN != nil && len(*s.RoleARN) < 20 {
9188		invalidParams.Add(request.NewErrParamMinLen("RoleARN", 20))
9189	}
9190	if s.StackName == nil {
9191		invalidParams.Add(request.NewErrParamRequired("StackName"))
9192	}
9193
9194	if invalidParams.Len() > 0 {
9195		return invalidParams
9196	}
9197	return nil
9198}
9199
9200// SetClientRequestToken sets the ClientRequestToken field's value.
9201func (s *DeleteStackInput) SetClientRequestToken(v string) *DeleteStackInput {
9202	s.ClientRequestToken = &v
9203	return s
9204}
9205
9206// SetRetainResources sets the RetainResources field's value.
9207func (s *DeleteStackInput) SetRetainResources(v []*string) *DeleteStackInput {
9208	s.RetainResources = v
9209	return s
9210}
9211
9212// SetRoleARN sets the RoleARN field's value.
9213func (s *DeleteStackInput) SetRoleARN(v string) *DeleteStackInput {
9214	s.RoleARN = &v
9215	return s
9216}
9217
9218// SetStackName sets the StackName field's value.
9219func (s *DeleteStackInput) SetStackName(v string) *DeleteStackInput {
9220	s.StackName = &v
9221	return s
9222}
9223
9224type DeleteStackInstancesInput struct {
9225	_ struct{} `type:"structure"`
9226
9227	// [Self-managed permissions] The names of the Amazon Web Services accounts
9228	// that you want to delete stack instances for.
9229	//
9230	// You can specify Accounts or DeploymentTargets, but not both.
9231	Accounts []*string `type:"list"`
9232
9233	// [Service-managed permissions] Specifies whether you are acting as an account
9234	// administrator in the organization's management account or as a delegated
9235	// administrator in a member account.
9236	//
9237	// By default, SELF is specified. Use SELF for stack sets with self-managed
9238	// permissions.
9239	//
9240	//    * If you are signed in to the management account, specify SELF.
9241	//
9242	//    * If you are signed in to a delegated administrator account, specify DELEGATED_ADMIN.
9243	//    Your Amazon Web Services account must be registered as a delegated administrator
9244	//    in the management account. For more information, see Register a delegated
9245	//    administrator (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/stacksets-orgs-delegated-admin.html)
9246	//    in the CloudFormation User Guide.
9247	CallAs *string `type:"string" enum:"CallAs"`
9248
9249	// [Service-managed permissions] The Organizations accounts from which to delete
9250	// stack instances.
9251	//
9252	// You can specify Accounts or DeploymentTargets, but not both.
9253	DeploymentTargets *DeploymentTargets `type:"structure"`
9254
9255	// The unique identifier for this stack set operation.
9256	//
9257	// If you don't specify an operation ID, the SDK generates one automatically.
9258	//
9259	// The operation ID also functions as an idempotency token, to ensure that CloudFormation
9260	// performs the stack set operation only once, even if you retry the request
9261	// multiple times. You can retry stack set operation requests to ensure that
9262	// CloudFormation successfully received them.
9263	//
9264	// Repeating this stack set operation with a new operation ID retries all stack
9265	// instances whose status is OUTDATED.
9266	OperationId *string `min:"1" type:"string" idempotencyToken:"true"`
9267
9268	// Preferences for how CloudFormation performs this stack set operation.
9269	OperationPreferences *StackSetOperationPreferences `type:"structure"`
9270
9271	// The Regions where you want to delete stack set instances.
9272	//
9273	// Regions is a required field
9274	Regions []*string `type:"list" required:"true"`
9275
9276	// Removes the stack instances from the specified stack set, but doesn't delete
9277	// the stacks. You can't reassociate a retained stack or add an existing, saved
9278	// stack to a new stack set.
9279	//
9280	// For more information, see Stack set operation options (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/stacksets-concepts.html#stackset-ops-options).
9281	//
9282	// RetainStacks is a required field
9283	RetainStacks *bool `type:"boolean" required:"true"`
9284
9285	// The name or unique ID of the stack set that you want to delete stack instances
9286	// for.
9287	//
9288	// StackSetName is a required field
9289	StackSetName *string `type:"string" required:"true"`
9290}
9291
9292// String returns the string representation.
9293//
9294// API parameter values that are decorated as "sensitive" in the API will not
9295// be included in the string output. The member name will be present, but the
9296// value will be replaced with "sensitive".
9297func (s DeleteStackInstancesInput) String() string {
9298	return awsutil.Prettify(s)
9299}
9300
9301// GoString returns the string representation.
9302//
9303// API parameter values that are decorated as "sensitive" in the API will not
9304// be included in the string output. The member name will be present, but the
9305// value will be replaced with "sensitive".
9306func (s DeleteStackInstancesInput) GoString() string {
9307	return s.String()
9308}
9309
9310// Validate inspects the fields of the type to determine if they are valid.
9311func (s *DeleteStackInstancesInput) Validate() error {
9312	invalidParams := request.ErrInvalidParams{Context: "DeleteStackInstancesInput"}
9313	if s.OperationId != nil && len(*s.OperationId) < 1 {
9314		invalidParams.Add(request.NewErrParamMinLen("OperationId", 1))
9315	}
9316	if s.Regions == nil {
9317		invalidParams.Add(request.NewErrParamRequired("Regions"))
9318	}
9319	if s.RetainStacks == nil {
9320		invalidParams.Add(request.NewErrParamRequired("RetainStacks"))
9321	}
9322	if s.StackSetName == nil {
9323		invalidParams.Add(request.NewErrParamRequired("StackSetName"))
9324	}
9325	if s.DeploymentTargets != nil {
9326		if err := s.DeploymentTargets.Validate(); err != nil {
9327			invalidParams.AddNested("DeploymentTargets", err.(request.ErrInvalidParams))
9328		}
9329	}
9330	if s.OperationPreferences != nil {
9331		if err := s.OperationPreferences.Validate(); err != nil {
9332			invalidParams.AddNested("OperationPreferences", err.(request.ErrInvalidParams))
9333		}
9334	}
9335
9336	if invalidParams.Len() > 0 {
9337		return invalidParams
9338	}
9339	return nil
9340}
9341
9342// SetAccounts sets the Accounts field's value.
9343func (s *DeleteStackInstancesInput) SetAccounts(v []*string) *DeleteStackInstancesInput {
9344	s.Accounts = v
9345	return s
9346}
9347
9348// SetCallAs sets the CallAs field's value.
9349func (s *DeleteStackInstancesInput) SetCallAs(v string) *DeleteStackInstancesInput {
9350	s.CallAs = &v
9351	return s
9352}
9353
9354// SetDeploymentTargets sets the DeploymentTargets field's value.
9355func (s *DeleteStackInstancesInput) SetDeploymentTargets(v *DeploymentTargets) *DeleteStackInstancesInput {
9356	s.DeploymentTargets = v
9357	return s
9358}
9359
9360// SetOperationId sets the OperationId field's value.
9361func (s *DeleteStackInstancesInput) SetOperationId(v string) *DeleteStackInstancesInput {
9362	s.OperationId = &v
9363	return s
9364}
9365
9366// SetOperationPreferences sets the OperationPreferences field's value.
9367func (s *DeleteStackInstancesInput) SetOperationPreferences(v *StackSetOperationPreferences) *DeleteStackInstancesInput {
9368	s.OperationPreferences = v
9369	return s
9370}
9371
9372// SetRegions sets the Regions field's value.
9373func (s *DeleteStackInstancesInput) SetRegions(v []*string) *DeleteStackInstancesInput {
9374	s.Regions = v
9375	return s
9376}
9377
9378// SetRetainStacks sets the RetainStacks field's value.
9379func (s *DeleteStackInstancesInput) SetRetainStacks(v bool) *DeleteStackInstancesInput {
9380	s.RetainStacks = &v
9381	return s
9382}
9383
9384// SetStackSetName sets the StackSetName field's value.
9385func (s *DeleteStackInstancesInput) SetStackSetName(v string) *DeleteStackInstancesInput {
9386	s.StackSetName = &v
9387	return s
9388}
9389
9390type DeleteStackInstancesOutput struct {
9391	_ struct{} `type:"structure"`
9392
9393	// The unique identifier for this stack set operation.
9394	OperationId *string `min:"1" type:"string"`
9395}
9396
9397// String returns the string representation.
9398//
9399// API parameter values that are decorated as "sensitive" in the API will not
9400// be included in the string output. The member name will be present, but the
9401// value will be replaced with "sensitive".
9402func (s DeleteStackInstancesOutput) String() string {
9403	return awsutil.Prettify(s)
9404}
9405
9406// GoString returns the string representation.
9407//
9408// API parameter values that are decorated as "sensitive" in the API will not
9409// be included in the string output. The member name will be present, but the
9410// value will be replaced with "sensitive".
9411func (s DeleteStackInstancesOutput) GoString() string {
9412	return s.String()
9413}
9414
9415// SetOperationId sets the OperationId field's value.
9416func (s *DeleteStackInstancesOutput) SetOperationId(v string) *DeleteStackInstancesOutput {
9417	s.OperationId = &v
9418	return s
9419}
9420
9421type DeleteStackOutput struct {
9422	_ struct{} `type:"structure"`
9423}
9424
9425// String returns the string representation.
9426//
9427// API parameter values that are decorated as "sensitive" in the API will not
9428// be included in the string output. The member name will be present, but the
9429// value will be replaced with "sensitive".
9430func (s DeleteStackOutput) String() string {
9431	return awsutil.Prettify(s)
9432}
9433
9434// GoString returns the string representation.
9435//
9436// API parameter values that are decorated as "sensitive" in the API will not
9437// be included in the string output. The member name will be present, but the
9438// value will be replaced with "sensitive".
9439func (s DeleteStackOutput) GoString() string {
9440	return s.String()
9441}
9442
9443type DeleteStackSetInput struct {
9444	_ struct{} `type:"structure"`
9445
9446	// [Service-managed permissions] Specifies whether you are acting as an account
9447	// administrator in the organization's management account or as a delegated
9448	// administrator in a member account.
9449	//
9450	// By default, SELF is specified. Use SELF for stack sets with self-managed
9451	// permissions.
9452	//
9453	//    * If you are signed in to the management account, specify SELF.
9454	//
9455	//    * If you are signed in to a delegated administrator account, specify DELEGATED_ADMIN.
9456	//    Your Amazon Web Services account must be registered as a delegated administrator
9457	//    in the management account. For more information, see Register a delegated
9458	//    administrator (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/stacksets-orgs-delegated-admin.html)
9459	//    in the CloudFormation User Guide.
9460	CallAs *string `type:"string" enum:"CallAs"`
9461
9462	// The name or unique ID of the stack set that you're deleting. You can obtain
9463	// this value by running ListStackSets.
9464	//
9465	// StackSetName is a required field
9466	StackSetName *string `type:"string" required:"true"`
9467}
9468
9469// String returns the string representation.
9470//
9471// API parameter values that are decorated as "sensitive" in the API will not
9472// be included in the string output. The member name will be present, but the
9473// value will be replaced with "sensitive".
9474func (s DeleteStackSetInput) String() string {
9475	return awsutil.Prettify(s)
9476}
9477
9478// GoString returns the string representation.
9479//
9480// API parameter values that are decorated as "sensitive" in the API will not
9481// be included in the string output. The member name will be present, but the
9482// value will be replaced with "sensitive".
9483func (s DeleteStackSetInput) GoString() string {
9484	return s.String()
9485}
9486
9487// Validate inspects the fields of the type to determine if they are valid.
9488func (s *DeleteStackSetInput) Validate() error {
9489	invalidParams := request.ErrInvalidParams{Context: "DeleteStackSetInput"}
9490	if s.StackSetName == nil {
9491		invalidParams.Add(request.NewErrParamRequired("StackSetName"))
9492	}
9493
9494	if invalidParams.Len() > 0 {
9495		return invalidParams
9496	}
9497	return nil
9498}
9499
9500// SetCallAs sets the CallAs field's value.
9501func (s *DeleteStackSetInput) SetCallAs(v string) *DeleteStackSetInput {
9502	s.CallAs = &v
9503	return s
9504}
9505
9506// SetStackSetName sets the StackSetName field's value.
9507func (s *DeleteStackSetInput) SetStackSetName(v string) *DeleteStackSetInput {
9508	s.StackSetName = &v
9509	return s
9510}
9511
9512type DeleteStackSetOutput struct {
9513	_ struct{} `type:"structure"`
9514}
9515
9516// String returns the string representation.
9517//
9518// API parameter values that are decorated as "sensitive" in the API will not
9519// be included in the string output. The member name will be present, but the
9520// value will be replaced with "sensitive".
9521func (s DeleteStackSetOutput) String() string {
9522	return awsutil.Prettify(s)
9523}
9524
9525// GoString returns the string representation.
9526//
9527// API parameter values that are decorated as "sensitive" in the API will not
9528// be included in the string output. The member name will be present, but the
9529// value will be replaced with "sensitive".
9530func (s DeleteStackSetOutput) GoString() string {
9531	return s.String()
9532}
9533
9534// [Service-managed permissions] The Organizations accounts to which StackSets
9535// deploys. StackSets does not deploy stack instances to the organization management
9536// account, even if the organization management account is in your organization
9537// or in an OU in your organization.
9538//
9539// For update operations, you can specify either Accounts or OrganizationalUnitIds.
9540// For create and delete operations, specify OrganizationalUnitIds.
9541type DeploymentTargets struct {
9542	_ struct{} `type:"structure"`
9543
9544	// The names of one or more Amazon Web Services accounts for which you want
9545	// to deploy stack set updates.
9546	Accounts []*string `type:"list"`
9547
9548	// Returns the value of the AccountsUrl property.
9549	AccountsUrl *string `min:"1" type:"string"`
9550
9551	// The organization root ID or organizational unit (OU) IDs to which StackSets
9552	// deploys.
9553	OrganizationalUnitIds []*string `type:"list"`
9554}
9555
9556// String returns the string representation.
9557//
9558// API parameter values that are decorated as "sensitive" in the API will not
9559// be included in the string output. The member name will be present, but the
9560// value will be replaced with "sensitive".
9561func (s DeploymentTargets) String() string {
9562	return awsutil.Prettify(s)
9563}
9564
9565// GoString returns the string representation.
9566//
9567// API parameter values that are decorated as "sensitive" in the API will not
9568// be included in the string output. The member name will be present, but the
9569// value will be replaced with "sensitive".
9570func (s DeploymentTargets) GoString() string {
9571	return s.String()
9572}
9573
9574// Validate inspects the fields of the type to determine if they are valid.
9575func (s *DeploymentTargets) Validate() error {
9576	invalidParams := request.ErrInvalidParams{Context: "DeploymentTargets"}
9577	if s.AccountsUrl != nil && len(*s.AccountsUrl) < 1 {
9578		invalidParams.Add(request.NewErrParamMinLen("AccountsUrl", 1))
9579	}
9580
9581	if invalidParams.Len() > 0 {
9582		return invalidParams
9583	}
9584	return nil
9585}
9586
9587// SetAccounts sets the Accounts field's value.
9588func (s *DeploymentTargets) SetAccounts(v []*string) *DeploymentTargets {
9589	s.Accounts = v
9590	return s
9591}
9592
9593// SetAccountsUrl sets the AccountsUrl field's value.
9594func (s *DeploymentTargets) SetAccountsUrl(v string) *DeploymentTargets {
9595	s.AccountsUrl = &v
9596	return s
9597}
9598
9599// SetOrganizationalUnitIds sets the OrganizationalUnitIds field's value.
9600func (s *DeploymentTargets) SetOrganizationalUnitIds(v []*string) *DeploymentTargets {
9601	s.OrganizationalUnitIds = v
9602	return s
9603}
9604
9605type DeregisterTypeInput struct {
9606	_ struct{} `type:"structure"`
9607
9608	// The Amazon Resource Name (ARN) of the extension.
9609	//
9610	// Conditional: You must specify either TypeName and Type, or Arn.
9611	Arn *string `type:"string"`
9612
9613	// The kind of extension.
9614	//
9615	// Conditional: You must specify either TypeName and Type, or Arn.
9616	Type *string `type:"string" enum:"RegistryType"`
9617
9618	// The name of the extension.
9619	//
9620	// Conditional: You must specify either TypeName and Type, or Arn.
9621	TypeName *string `min:"10" type:"string"`
9622
9623	// The ID of a specific version of the extension. The version ID is the value
9624	// at the end of the Amazon Resource Name (ARN) assigned to the extension version
9625	// when it is registered.
9626	VersionId *string `min:"1" type:"string"`
9627}
9628
9629// String returns the string representation.
9630//
9631// API parameter values that are decorated as "sensitive" in the API will not
9632// be included in the string output. The member name will be present, but the
9633// value will be replaced with "sensitive".
9634func (s DeregisterTypeInput) String() string {
9635	return awsutil.Prettify(s)
9636}
9637
9638// GoString returns the string representation.
9639//
9640// API parameter values that are decorated as "sensitive" in the API will not
9641// be included in the string output. The member name will be present, but the
9642// value will be replaced with "sensitive".
9643func (s DeregisterTypeInput) GoString() string {
9644	return s.String()
9645}
9646
9647// Validate inspects the fields of the type to determine if they are valid.
9648func (s *DeregisterTypeInput) Validate() error {
9649	invalidParams := request.ErrInvalidParams{Context: "DeregisterTypeInput"}
9650	if s.TypeName != nil && len(*s.TypeName) < 10 {
9651		invalidParams.Add(request.NewErrParamMinLen("TypeName", 10))
9652	}
9653	if s.VersionId != nil && len(*s.VersionId) < 1 {
9654		invalidParams.Add(request.NewErrParamMinLen("VersionId", 1))
9655	}
9656
9657	if invalidParams.Len() > 0 {
9658		return invalidParams
9659	}
9660	return nil
9661}
9662
9663// SetArn sets the Arn field's value.
9664func (s *DeregisterTypeInput) SetArn(v string) *DeregisterTypeInput {
9665	s.Arn = &v
9666	return s
9667}
9668
9669// SetType sets the Type field's value.
9670func (s *DeregisterTypeInput) SetType(v string) *DeregisterTypeInput {
9671	s.Type = &v
9672	return s
9673}
9674
9675// SetTypeName sets the TypeName field's value.
9676func (s *DeregisterTypeInput) SetTypeName(v string) *DeregisterTypeInput {
9677	s.TypeName = &v
9678	return s
9679}
9680
9681// SetVersionId sets the VersionId field's value.
9682func (s *DeregisterTypeInput) SetVersionId(v string) *DeregisterTypeInput {
9683	s.VersionId = &v
9684	return s
9685}
9686
9687type DeregisterTypeOutput struct {
9688	_ struct{} `type:"structure"`
9689}
9690
9691// String returns the string representation.
9692//
9693// API parameter values that are decorated as "sensitive" in the API will not
9694// be included in the string output. The member name will be present, but the
9695// value will be replaced with "sensitive".
9696func (s DeregisterTypeOutput) String() string {
9697	return awsutil.Prettify(s)
9698}
9699
9700// GoString returns the string representation.
9701//
9702// API parameter values that are decorated as "sensitive" in the API will not
9703// be included in the string output. The member name will be present, but the
9704// value will be replaced with "sensitive".
9705func (s DeregisterTypeOutput) GoString() string {
9706	return s.String()
9707}
9708
9709// The input for the DescribeAccountLimits action.
9710type DescribeAccountLimitsInput struct {
9711	_ struct{} `type:"structure"`
9712
9713	// A string that identifies the next page of limits that you want to retrieve.
9714	NextToken *string `min:"1" type:"string"`
9715}
9716
9717// String returns the string representation.
9718//
9719// API parameter values that are decorated as "sensitive" in the API will not
9720// be included in the string output. The member name will be present, but the
9721// value will be replaced with "sensitive".
9722func (s DescribeAccountLimitsInput) String() string {
9723	return awsutil.Prettify(s)
9724}
9725
9726// GoString returns the string representation.
9727//
9728// API parameter values that are decorated as "sensitive" in the API will not
9729// be included in the string output. The member name will be present, but the
9730// value will be replaced with "sensitive".
9731func (s DescribeAccountLimitsInput) GoString() string {
9732	return s.String()
9733}
9734
9735// Validate inspects the fields of the type to determine if they are valid.
9736func (s *DescribeAccountLimitsInput) Validate() error {
9737	invalidParams := request.ErrInvalidParams{Context: "DescribeAccountLimitsInput"}
9738	if s.NextToken != nil && len(*s.NextToken) < 1 {
9739		invalidParams.Add(request.NewErrParamMinLen("NextToken", 1))
9740	}
9741
9742	if invalidParams.Len() > 0 {
9743		return invalidParams
9744	}
9745	return nil
9746}
9747
9748// SetNextToken sets the NextToken field's value.
9749func (s *DescribeAccountLimitsInput) SetNextToken(v string) *DescribeAccountLimitsInput {
9750	s.NextToken = &v
9751	return s
9752}
9753
9754// The output for the DescribeAccountLimits action.
9755type DescribeAccountLimitsOutput struct {
9756	_ struct{} `type:"structure"`
9757
9758	// An account limit structure that contain a list of CloudFormation account
9759	// limits and their values.
9760	AccountLimits []*AccountLimit `type:"list"`
9761
9762	// If the output exceeds 1 MB in size, a string that identifies the next page
9763	// of limits. If no additional page exists, this value is null.
9764	NextToken *string `min:"1" type:"string"`
9765}
9766
9767// String returns the string representation.
9768//
9769// API parameter values that are decorated as "sensitive" in the API will not
9770// be included in the string output. The member name will be present, but the
9771// value will be replaced with "sensitive".
9772func (s DescribeAccountLimitsOutput) String() string {
9773	return awsutil.Prettify(s)
9774}
9775
9776// GoString returns the string representation.
9777//
9778// API parameter values that are decorated as "sensitive" in the API will not
9779// be included in the string output. The member name will be present, but the
9780// value will be replaced with "sensitive".
9781func (s DescribeAccountLimitsOutput) GoString() string {
9782	return s.String()
9783}
9784
9785// SetAccountLimits sets the AccountLimits field's value.
9786func (s *DescribeAccountLimitsOutput) SetAccountLimits(v []*AccountLimit) *DescribeAccountLimitsOutput {
9787	s.AccountLimits = v
9788	return s
9789}
9790
9791// SetNextToken sets the NextToken field's value.
9792func (s *DescribeAccountLimitsOutput) SetNextToken(v string) *DescribeAccountLimitsOutput {
9793	s.NextToken = &v
9794	return s
9795}
9796
9797// The input for the DescribeChangeSet action.
9798type DescribeChangeSetInput struct {
9799	_ struct{} `type:"structure"`
9800
9801	// The name or Amazon Resource Name (ARN) of the change set that you want to
9802	// describe.
9803	//
9804	// ChangeSetName is a required field
9805	ChangeSetName *string `min:"1" type:"string" required:"true"`
9806
9807	// A string (provided by the DescribeChangeSet response output) that identifies
9808	// the next page of information that you want to retrieve.
9809	NextToken *string `min:"1" type:"string"`
9810
9811	// If you specified the name of a change set, specify the stack name or ID (ARN)
9812	// of the change set you want to describe.
9813	StackName *string `min:"1" type:"string"`
9814}
9815
9816// String returns the string representation.
9817//
9818// API parameter values that are decorated as "sensitive" in the API will not
9819// be included in the string output. The member name will be present, but the
9820// value will be replaced with "sensitive".
9821func (s DescribeChangeSetInput) String() string {
9822	return awsutil.Prettify(s)
9823}
9824
9825// GoString returns the string representation.
9826//
9827// API parameter values that are decorated as "sensitive" in the API will not
9828// be included in the string output. The member name will be present, but the
9829// value will be replaced with "sensitive".
9830func (s DescribeChangeSetInput) GoString() string {
9831	return s.String()
9832}
9833
9834// Validate inspects the fields of the type to determine if they are valid.
9835func (s *DescribeChangeSetInput) Validate() error {
9836	invalidParams := request.ErrInvalidParams{Context: "DescribeChangeSetInput"}
9837	if s.ChangeSetName == nil {
9838		invalidParams.Add(request.NewErrParamRequired("ChangeSetName"))
9839	}
9840	if s.ChangeSetName != nil && len(*s.ChangeSetName) < 1 {
9841		invalidParams.Add(request.NewErrParamMinLen("ChangeSetName", 1))
9842	}
9843	if s.NextToken != nil && len(*s.NextToken) < 1 {
9844		invalidParams.Add(request.NewErrParamMinLen("NextToken", 1))
9845	}
9846	if s.StackName != nil && len(*s.StackName) < 1 {
9847		invalidParams.Add(request.NewErrParamMinLen("StackName", 1))
9848	}
9849
9850	if invalidParams.Len() > 0 {
9851		return invalidParams
9852	}
9853	return nil
9854}
9855
9856// SetChangeSetName sets the ChangeSetName field's value.
9857func (s *DescribeChangeSetInput) SetChangeSetName(v string) *DescribeChangeSetInput {
9858	s.ChangeSetName = &v
9859	return s
9860}
9861
9862// SetNextToken sets the NextToken field's value.
9863func (s *DescribeChangeSetInput) SetNextToken(v string) *DescribeChangeSetInput {
9864	s.NextToken = &v
9865	return s
9866}
9867
9868// SetStackName sets the StackName field's value.
9869func (s *DescribeChangeSetInput) SetStackName(v string) *DescribeChangeSetInput {
9870	s.StackName = &v
9871	return s
9872}
9873
9874// The output for the DescribeChangeSet action.
9875type DescribeChangeSetOutput struct {
9876	_ struct{} `type:"structure"`
9877
9878	// If you execute the change set, the list of capabilities that were explicitly
9879	// acknowledged when the change set was created.
9880	Capabilities []*string `type:"list"`
9881
9882	// The ARN of the change set.
9883	ChangeSetId *string `min:"1" type:"string"`
9884
9885	// The name of the change set.
9886	ChangeSetName *string `min:"1" type:"string"`
9887
9888	// A list of Change structures that describes the resources CloudFormation changes
9889	// if you execute the change set.
9890	Changes []*Change `type:"list"`
9891
9892	// The start time when the change set was created, in UTC.
9893	CreationTime *time.Time `type:"timestamp"`
9894
9895	// Information about the change set.
9896	Description *string `min:"1" type:"string"`
9897
9898	// If the change set execution status is AVAILABLE, you can execute the change
9899	// set. If you can’t execute the change set, the status indicates why. For
9900	// example, a change set might be in an UNAVAILABLE state because CloudFormation
9901	// is still creating it or in an OBSOLETE state because the stack was already
9902	// updated.
9903	ExecutionStatus *string `type:"string" enum:"ExecutionStatus"`
9904
9905	// Verifies if IncludeNestedStacks is set to True.
9906	IncludeNestedStacks *bool `type:"boolean"`
9907
9908	// If the output exceeds 1 MB, a string that identifies the next page of changes.
9909	// If there is no additional page, this value is null.
9910	NextToken *string `min:"1" type:"string"`
9911
9912	// The ARNs of the Amazon Simple Notification Service (Amazon SNS) topics that
9913	// will be associated with the stack if you execute the change set.
9914	NotificationARNs []*string `type:"list"`
9915
9916	// A list of Parameter structures that describes the input parameters and their
9917	// values used to create the change set. For more information, see the Parameter
9918	// (https://docs.aws.amazon.com/AWSCloudFormation/latest/APIReference/API_Parameter.html)
9919	// data type.
9920	Parameters []*Parameter `type:"list"`
9921
9922	// Specifies the change set ID of the parent change set in the current nested
9923	// change set hierarchy.
9924	ParentChangeSetId *string `min:"1" type:"string"`
9925
9926	// The rollback triggers for CloudFormation to monitor during stack creation
9927	// and updating operations, and for the specified monitoring period afterwards.
9928	RollbackConfiguration *RollbackConfiguration `type:"structure"`
9929
9930	// Specifies the change set ID of the root change set in the current nested
9931	// change set hierarchy.
9932	RootChangeSetId *string `min:"1" type:"string"`
9933
9934	// The ARN of the stack that is associated with the change set.
9935	StackId *string `type:"string"`
9936
9937	// The name of the stack that is associated with the change set.
9938	StackName *string `type:"string"`
9939
9940	// The current status of the change set, such as CREATE_IN_PROGRESS, CREATE_COMPLETE,
9941	// or FAILED.
9942	Status *string `type:"string" enum:"ChangeSetStatus"`
9943
9944	// A description of the change set's status. For example, if your attempt to
9945	// create a change set failed, CloudFormation shows the error message.
9946	StatusReason *string `type:"string"`
9947
9948	// If you execute the change set, the tags that will be associated with the
9949	// stack.
9950	Tags []*Tag `type:"list"`
9951}
9952
9953// String returns the string representation.
9954//
9955// API parameter values that are decorated as "sensitive" in the API will not
9956// be included in the string output. The member name will be present, but the
9957// value will be replaced with "sensitive".
9958func (s DescribeChangeSetOutput) String() string {
9959	return awsutil.Prettify(s)
9960}
9961
9962// GoString returns the string representation.
9963//
9964// API parameter values that are decorated as "sensitive" in the API will not
9965// be included in the string output. The member name will be present, but the
9966// value will be replaced with "sensitive".
9967func (s DescribeChangeSetOutput) GoString() string {
9968	return s.String()
9969}
9970
9971// SetCapabilities sets the Capabilities field's value.
9972func (s *DescribeChangeSetOutput) SetCapabilities(v []*string) *DescribeChangeSetOutput {
9973	s.Capabilities = v
9974	return s
9975}
9976
9977// SetChangeSetId sets the ChangeSetId field's value.
9978func (s *DescribeChangeSetOutput) SetChangeSetId(v string) *DescribeChangeSetOutput {
9979	s.ChangeSetId = &v
9980	return s
9981}
9982
9983// SetChangeSetName sets the ChangeSetName field's value.
9984func (s *DescribeChangeSetOutput) SetChangeSetName(v string) *DescribeChangeSetOutput {
9985	s.ChangeSetName = &v
9986	return s
9987}
9988
9989// SetChanges sets the Changes field's value.
9990func (s *DescribeChangeSetOutput) SetChanges(v []*Change) *DescribeChangeSetOutput {
9991	s.Changes = v
9992	return s
9993}
9994
9995// SetCreationTime sets the CreationTime field's value.
9996func (s *DescribeChangeSetOutput) SetCreationTime(v time.Time) *DescribeChangeSetOutput {
9997	s.CreationTime = &v
9998	return s
9999}
10000
10001// SetDescription sets the Description field's value.
10002func (s *DescribeChangeSetOutput) SetDescription(v string) *DescribeChangeSetOutput {
10003	s.Description = &v
10004	return s
10005}
10006
10007// SetExecutionStatus sets the ExecutionStatus field's value.
10008func (s *DescribeChangeSetOutput) SetExecutionStatus(v string) *DescribeChangeSetOutput {
10009	s.ExecutionStatus = &v
10010	return s
10011}
10012
10013// SetIncludeNestedStacks sets the IncludeNestedStacks field's value.
10014func (s *DescribeChangeSetOutput) SetIncludeNestedStacks(v bool) *DescribeChangeSetOutput {
10015	s.IncludeNestedStacks = &v
10016	return s
10017}
10018
10019// SetNextToken sets the NextToken field's value.
10020func (s *DescribeChangeSetOutput) SetNextToken(v string) *DescribeChangeSetOutput {
10021	s.NextToken = &v
10022	return s
10023}
10024
10025// SetNotificationARNs sets the NotificationARNs field's value.
10026func (s *DescribeChangeSetOutput) SetNotificationARNs(v []*string) *DescribeChangeSetOutput {
10027	s.NotificationARNs = v
10028	return s
10029}
10030
10031// SetParameters sets the Parameters field's value.
10032func (s *DescribeChangeSetOutput) SetParameters(v []*Parameter) *DescribeChangeSetOutput {
10033	s.Parameters = v
10034	return s
10035}
10036
10037// SetParentChangeSetId sets the ParentChangeSetId field's value.
10038func (s *DescribeChangeSetOutput) SetParentChangeSetId(v string) *DescribeChangeSetOutput {
10039	s.ParentChangeSetId = &v
10040	return s
10041}
10042
10043// SetRollbackConfiguration sets the RollbackConfiguration field's value.
10044func (s *DescribeChangeSetOutput) SetRollbackConfiguration(v *RollbackConfiguration) *DescribeChangeSetOutput {
10045	s.RollbackConfiguration = v
10046	return s
10047}
10048
10049// SetRootChangeSetId sets the RootChangeSetId field's value.
10050func (s *DescribeChangeSetOutput) SetRootChangeSetId(v string) *DescribeChangeSetOutput {
10051	s.RootChangeSetId = &v
10052	return s
10053}
10054
10055// SetStackId sets the StackId field's value.
10056func (s *DescribeChangeSetOutput) SetStackId(v string) *DescribeChangeSetOutput {
10057	s.StackId = &v
10058	return s
10059}
10060
10061// SetStackName sets the StackName field's value.
10062func (s *DescribeChangeSetOutput) SetStackName(v string) *DescribeChangeSetOutput {
10063	s.StackName = &v
10064	return s
10065}
10066
10067// SetStatus sets the Status field's value.
10068func (s *DescribeChangeSetOutput) SetStatus(v string) *DescribeChangeSetOutput {
10069	s.Status = &v
10070	return s
10071}
10072
10073// SetStatusReason sets the StatusReason field's value.
10074func (s *DescribeChangeSetOutput) SetStatusReason(v string) *DescribeChangeSetOutput {
10075	s.StatusReason = &v
10076	return s
10077}
10078
10079// SetTags sets the Tags field's value.
10080func (s *DescribeChangeSetOutput) SetTags(v []*Tag) *DescribeChangeSetOutput {
10081	s.Tags = v
10082	return s
10083}
10084
10085type DescribePublisherInput struct {
10086	_ struct{} `type:"structure"`
10087
10088	// The ID of the extension publisher.
10089	//
10090	// If you do not supply a PublisherId, and you have registered as an extension
10091	// publisher, DescribePublisher returns information about your own publisher
10092	// account.
10093	PublisherId *string `min:"1" type:"string"`
10094}
10095
10096// String returns the string representation.
10097//
10098// API parameter values that are decorated as "sensitive" in the API will not
10099// be included in the string output. The member name will be present, but the
10100// value will be replaced with "sensitive".
10101func (s DescribePublisherInput) String() string {
10102	return awsutil.Prettify(s)
10103}
10104
10105// GoString returns the string representation.
10106//
10107// API parameter values that are decorated as "sensitive" in the API will not
10108// be included in the string output. The member name will be present, but the
10109// value will be replaced with "sensitive".
10110func (s DescribePublisherInput) GoString() string {
10111	return s.String()
10112}
10113
10114// Validate inspects the fields of the type to determine if they are valid.
10115func (s *DescribePublisherInput) Validate() error {
10116	invalidParams := request.ErrInvalidParams{Context: "DescribePublisherInput"}
10117	if s.PublisherId != nil && len(*s.PublisherId) < 1 {
10118		invalidParams.Add(request.NewErrParamMinLen("PublisherId", 1))
10119	}
10120
10121	if invalidParams.Len() > 0 {
10122		return invalidParams
10123	}
10124	return nil
10125}
10126
10127// SetPublisherId sets the PublisherId field's value.
10128func (s *DescribePublisherInput) SetPublisherId(v string) *DescribePublisherInput {
10129	s.PublisherId = &v
10130	return s
10131}
10132
10133type DescribePublisherOutput struct {
10134	_ struct{} `type:"structure"`
10135
10136	// The type of account used as the identity provider when registering this publisher
10137	// with CloudFormation.
10138	IdentityProvider *string `type:"string" enum:"IdentityProvider"`
10139
10140	// The ID of the extension publisher.
10141	PublisherId *string `min:"1" type:"string"`
10142
10143	// The URL to the publisher's profile with the identity provider.
10144	PublisherProfile *string `type:"string"`
10145
10146	// Whether the publisher is verified. Currently, all registered publishers are
10147	// verified.
10148	PublisherStatus *string `type:"string" enum:"PublisherStatus"`
10149}
10150
10151// String returns the string representation.
10152//
10153// API parameter values that are decorated as "sensitive" in the API will not
10154// be included in the string output. The member name will be present, but the
10155// value will be replaced with "sensitive".
10156func (s DescribePublisherOutput) String() string {
10157	return awsutil.Prettify(s)
10158}
10159
10160// GoString returns the string representation.
10161//
10162// API parameter values that are decorated as "sensitive" in the API will not
10163// be included in the string output. The member name will be present, but the
10164// value will be replaced with "sensitive".
10165func (s DescribePublisherOutput) GoString() string {
10166	return s.String()
10167}
10168
10169// SetIdentityProvider sets the IdentityProvider field's value.
10170func (s *DescribePublisherOutput) SetIdentityProvider(v string) *DescribePublisherOutput {
10171	s.IdentityProvider = &v
10172	return s
10173}
10174
10175// SetPublisherId sets the PublisherId field's value.
10176func (s *DescribePublisherOutput) SetPublisherId(v string) *DescribePublisherOutput {
10177	s.PublisherId = &v
10178	return s
10179}
10180
10181// SetPublisherProfile sets the PublisherProfile field's value.
10182func (s *DescribePublisherOutput) SetPublisherProfile(v string) *DescribePublisherOutput {
10183	s.PublisherProfile = &v
10184	return s
10185}
10186
10187// SetPublisherStatus sets the PublisherStatus field's value.
10188func (s *DescribePublisherOutput) SetPublisherStatus(v string) *DescribePublisherOutput {
10189	s.PublisherStatus = &v
10190	return s
10191}
10192
10193type DescribeStackDriftDetectionStatusInput struct {
10194	_ struct{} `type:"structure"`
10195
10196	// The ID of the drift detection results of this operation.
10197	//
10198	// CloudFormation generates new results, with a new drift detection ID, each
10199	// time this operation is run. However, the number of drift results CloudFormation
10200	// retains for any given stack, and for how long, may vary.
10201	//
10202	// StackDriftDetectionId is a required field
10203	StackDriftDetectionId *string `min:"1" type:"string" required:"true"`
10204}
10205
10206// String returns the string representation.
10207//
10208// API parameter values that are decorated as "sensitive" in the API will not
10209// be included in the string output. The member name will be present, but the
10210// value will be replaced with "sensitive".
10211func (s DescribeStackDriftDetectionStatusInput) String() string {
10212	return awsutil.Prettify(s)
10213}
10214
10215// GoString returns the string representation.
10216//
10217// API parameter values that are decorated as "sensitive" in the API will not
10218// be included in the string output. The member name will be present, but the
10219// value will be replaced with "sensitive".
10220func (s DescribeStackDriftDetectionStatusInput) GoString() string {
10221	return s.String()
10222}
10223
10224// Validate inspects the fields of the type to determine if they are valid.
10225func (s *DescribeStackDriftDetectionStatusInput) Validate() error {
10226	invalidParams := request.ErrInvalidParams{Context: "DescribeStackDriftDetectionStatusInput"}
10227	if s.StackDriftDetectionId == nil {
10228		invalidParams.Add(request.NewErrParamRequired("StackDriftDetectionId"))
10229	}
10230	if s.StackDriftDetectionId != nil && len(*s.StackDriftDetectionId) < 1 {
10231		invalidParams.Add(request.NewErrParamMinLen("StackDriftDetectionId", 1))
10232	}
10233
10234	if invalidParams.Len() > 0 {
10235		return invalidParams
10236	}
10237	return nil
10238}
10239
10240// SetStackDriftDetectionId sets the StackDriftDetectionId field's value.
10241func (s *DescribeStackDriftDetectionStatusInput) SetStackDriftDetectionId(v string) *DescribeStackDriftDetectionStatusInput {
10242	s.StackDriftDetectionId = &v
10243	return s
10244}
10245
10246type DescribeStackDriftDetectionStatusOutput struct {
10247	_ struct{} `type:"structure"`
10248
10249	// The status of the stack drift detection operation.
10250	//
10251	//    * DETECTION_COMPLETE: The stack drift detection operation has successfully
10252	//    completed for all resources in the stack that support drift detection.
10253	//    (Resources that do not currently support stack detection remain unchecked.)
10254	//    If you specified logical resource IDs for CloudFormation to use as a filter
10255	//    for the stack drift detection operation, only the resources with those
10256	//    logical IDs are checked for drift.
10257	//
10258	//    * DETECTION_FAILED: The stack drift detection operation has failed for
10259	//    at least one resource in the stack. Results will be available for resources
10260	//    on which CloudFormation successfully completed drift detection.
10261	//
10262	//    * DETECTION_IN_PROGRESS: The stack drift detection operation is currently
10263	//    in progress.
10264	//
10265	// DetectionStatus is a required field
10266	DetectionStatus *string `type:"string" required:"true" enum:"StackDriftDetectionStatus"`
10267
10268	// The reason the stack drift detection operation has its current status.
10269	DetectionStatusReason *string `type:"string"`
10270
10271	// Total number of stack resources that have drifted. This is NULL until the
10272	// drift detection operation reaches a status of DETECTION_COMPLETE. This value
10273	// will be 0 for stacks whose drift status is IN_SYNC.
10274	DriftedStackResourceCount *int64 `type:"integer"`
10275
10276	// The ID of the drift detection results of this operation.
10277	//
10278	// CloudFormation generates new results, with a new drift detection ID, each
10279	// time this operation is run. However, the number of reports CloudFormation
10280	// retains for any given stack, and for how long, may vary.
10281	//
10282	// StackDriftDetectionId is a required field
10283	StackDriftDetectionId *string `min:"1" type:"string" required:"true"`
10284
10285	// Status of the stack's actual configuration compared to its expected configuration.
10286	//
10287	//    * DRIFTED: The stack differs from its expected template configuration.
10288	//    A stack is considered to have drifted if one or more of its resources
10289	//    have drifted.
10290	//
10291	//    * NOT_CHECKED: CloudFormation has not checked if the stack differs from
10292	//    its expected template configuration.
10293	//
10294	//    * IN_SYNC: The stack's actual configuration matches its expected template
10295	//    configuration.
10296	//
10297	//    * UNKNOWN: This value is reserved for future use.
10298	StackDriftStatus *string `type:"string" enum:"StackDriftStatus"`
10299
10300	// The ID of the stack.
10301	//
10302	// StackId is a required field
10303	StackId *string `type:"string" required:"true"`
10304
10305	// Time at which the stack drift detection operation was initiated.
10306	//
10307	// Timestamp is a required field
10308	Timestamp *time.Time `type:"timestamp" required:"true"`
10309}
10310
10311// String returns the string representation.
10312//
10313// API parameter values that are decorated as "sensitive" in the API will not
10314// be included in the string output. The member name will be present, but the
10315// value will be replaced with "sensitive".
10316func (s DescribeStackDriftDetectionStatusOutput) String() string {
10317	return awsutil.Prettify(s)
10318}
10319
10320// GoString returns the string representation.
10321//
10322// API parameter values that are decorated as "sensitive" in the API will not
10323// be included in the string output. The member name will be present, but the
10324// value will be replaced with "sensitive".
10325func (s DescribeStackDriftDetectionStatusOutput) GoString() string {
10326	return s.String()
10327}
10328
10329// SetDetectionStatus sets the DetectionStatus field's value.
10330func (s *DescribeStackDriftDetectionStatusOutput) SetDetectionStatus(v string) *DescribeStackDriftDetectionStatusOutput {
10331	s.DetectionStatus = &v
10332	return s
10333}
10334
10335// SetDetectionStatusReason sets the DetectionStatusReason field's value.
10336func (s *DescribeStackDriftDetectionStatusOutput) SetDetectionStatusReason(v string) *DescribeStackDriftDetectionStatusOutput {
10337	s.DetectionStatusReason = &v
10338	return s
10339}
10340
10341// SetDriftedStackResourceCount sets the DriftedStackResourceCount field's value.
10342func (s *DescribeStackDriftDetectionStatusOutput) SetDriftedStackResourceCount(v int64) *DescribeStackDriftDetectionStatusOutput {
10343	s.DriftedStackResourceCount = &v
10344	return s
10345}
10346
10347// SetStackDriftDetectionId sets the StackDriftDetectionId field's value.
10348func (s *DescribeStackDriftDetectionStatusOutput) SetStackDriftDetectionId(v string) *DescribeStackDriftDetectionStatusOutput {
10349	s.StackDriftDetectionId = &v
10350	return s
10351}
10352
10353// SetStackDriftStatus sets the StackDriftStatus field's value.
10354func (s *DescribeStackDriftDetectionStatusOutput) SetStackDriftStatus(v string) *DescribeStackDriftDetectionStatusOutput {
10355	s.StackDriftStatus = &v
10356	return s
10357}
10358
10359// SetStackId sets the StackId field's value.
10360func (s *DescribeStackDriftDetectionStatusOutput) SetStackId(v string) *DescribeStackDriftDetectionStatusOutput {
10361	s.StackId = &v
10362	return s
10363}
10364
10365// SetTimestamp sets the Timestamp field's value.
10366func (s *DescribeStackDriftDetectionStatusOutput) SetTimestamp(v time.Time) *DescribeStackDriftDetectionStatusOutput {
10367	s.Timestamp = &v
10368	return s
10369}
10370
10371// The input for DescribeStackEvents action.
10372type DescribeStackEventsInput struct {
10373	_ struct{} `type:"structure"`
10374
10375	// A string that identifies the next page of events that you want to retrieve.
10376	NextToken *string `min:"1" type:"string"`
10377
10378	// The name or the unique stack ID that is associated with the stack, which
10379	// are not always interchangeable:
10380	//
10381	//    * Running stacks: You can specify either the stack's name or its unique
10382	//    stack ID.
10383	//
10384	//    * Deleted stacks: You must specify the unique stack ID.
10385	//
10386	// Default: There is no default value.
10387	StackName *string `type:"string"`
10388}
10389
10390// String returns the string representation.
10391//
10392// API parameter values that are decorated as "sensitive" in the API will not
10393// be included in the string output. The member name will be present, but the
10394// value will be replaced with "sensitive".
10395func (s DescribeStackEventsInput) String() string {
10396	return awsutil.Prettify(s)
10397}
10398
10399// GoString returns the string representation.
10400//
10401// API parameter values that are decorated as "sensitive" in the API will not
10402// be included in the string output. The member name will be present, but the
10403// value will be replaced with "sensitive".
10404func (s DescribeStackEventsInput) GoString() string {
10405	return s.String()
10406}
10407
10408// Validate inspects the fields of the type to determine if they are valid.
10409func (s *DescribeStackEventsInput) Validate() error {
10410	invalidParams := request.ErrInvalidParams{Context: "DescribeStackEventsInput"}
10411	if s.NextToken != nil && len(*s.NextToken) < 1 {
10412		invalidParams.Add(request.NewErrParamMinLen("NextToken", 1))
10413	}
10414
10415	if invalidParams.Len() > 0 {
10416		return invalidParams
10417	}
10418	return nil
10419}
10420
10421// SetNextToken sets the NextToken field's value.
10422func (s *DescribeStackEventsInput) SetNextToken(v string) *DescribeStackEventsInput {
10423	s.NextToken = &v
10424	return s
10425}
10426
10427// SetStackName sets the StackName field's value.
10428func (s *DescribeStackEventsInput) SetStackName(v string) *DescribeStackEventsInput {
10429	s.StackName = &v
10430	return s
10431}
10432
10433// The output for a DescribeStackEvents action.
10434type DescribeStackEventsOutput struct {
10435	_ struct{} `type:"structure"`
10436
10437	// If the output exceeds 1 MB in size, a string that identifies the next page
10438	// of events. If no additional page exists, this value is null.
10439	NextToken *string `min:"1" type:"string"`
10440
10441	// A list of StackEvents structures.
10442	StackEvents []*StackEvent `type:"list"`
10443}
10444
10445// String returns the string representation.
10446//
10447// API parameter values that are decorated as "sensitive" in the API will not
10448// be included in the string output. The member name will be present, but the
10449// value will be replaced with "sensitive".
10450func (s DescribeStackEventsOutput) String() string {
10451	return awsutil.Prettify(s)
10452}
10453
10454// GoString returns the string representation.
10455//
10456// API parameter values that are decorated as "sensitive" in the API will not
10457// be included in the string output. The member name will be present, but the
10458// value will be replaced with "sensitive".
10459func (s DescribeStackEventsOutput) GoString() string {
10460	return s.String()
10461}
10462
10463// SetNextToken sets the NextToken field's value.
10464func (s *DescribeStackEventsOutput) SetNextToken(v string) *DescribeStackEventsOutput {
10465	s.NextToken = &v
10466	return s
10467}
10468
10469// SetStackEvents sets the StackEvents field's value.
10470func (s *DescribeStackEventsOutput) SetStackEvents(v []*StackEvent) *DescribeStackEventsOutput {
10471	s.StackEvents = v
10472	return s
10473}
10474
10475type DescribeStackInstanceInput struct {
10476	_ struct{} `type:"structure"`
10477
10478	// [Service-managed permissions] Specifies whether you are acting as an account
10479	// administrator in the organization's management account or as a delegated
10480	// administrator in a member account.
10481	//
10482	// By default, SELF is specified. Use SELF for stack sets with self-managed
10483	// permissions.
10484	//
10485	//    * If you are signed in to the management account, specify SELF.
10486	//
10487	//    * If you are signed in to a delegated administrator account, specify DELEGATED_ADMIN.
10488	//    Your Amazon Web Services account must be registered as a delegated administrator
10489	//    in the management account. For more information, see Register a delegated
10490	//    administrator (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/stacksets-orgs-delegated-admin.html)
10491	//    in the CloudFormation User Guide.
10492	CallAs *string `type:"string" enum:"CallAs"`
10493
10494	// The ID of an Amazon Web Services account that's associated with this stack
10495	// instance.
10496	//
10497	// StackInstanceAccount is a required field
10498	StackInstanceAccount *string `type:"string" required:"true"`
10499
10500	// The name of a Region that's associated with this stack instance.
10501	//
10502	// StackInstanceRegion is a required field
10503	StackInstanceRegion *string `type:"string" required:"true"`
10504
10505	// The name or the unique stack ID of the stack set that you want to get stack
10506	// instance information for.
10507	//
10508	// StackSetName is a required field
10509	StackSetName *string `type:"string" required:"true"`
10510}
10511
10512// String returns the string representation.
10513//
10514// API parameter values that are decorated as "sensitive" in the API will not
10515// be included in the string output. The member name will be present, but the
10516// value will be replaced with "sensitive".
10517func (s DescribeStackInstanceInput) String() string {
10518	return awsutil.Prettify(s)
10519}
10520
10521// GoString returns the string representation.
10522//
10523// API parameter values that are decorated as "sensitive" in the API will not
10524// be included in the string output. The member name will be present, but the
10525// value will be replaced with "sensitive".
10526func (s DescribeStackInstanceInput) GoString() string {
10527	return s.String()
10528}
10529
10530// Validate inspects the fields of the type to determine if they are valid.
10531func (s *DescribeStackInstanceInput) Validate() error {
10532	invalidParams := request.ErrInvalidParams{Context: "DescribeStackInstanceInput"}
10533	if s.StackInstanceAccount == nil {
10534		invalidParams.Add(request.NewErrParamRequired("StackInstanceAccount"))
10535	}
10536	if s.StackInstanceRegion == nil {
10537		invalidParams.Add(request.NewErrParamRequired("StackInstanceRegion"))
10538	}
10539	if s.StackSetName == nil {
10540		invalidParams.Add(request.NewErrParamRequired("StackSetName"))
10541	}
10542
10543	if invalidParams.Len() > 0 {
10544		return invalidParams
10545	}
10546	return nil
10547}
10548
10549// SetCallAs sets the CallAs field's value.
10550func (s *DescribeStackInstanceInput) SetCallAs(v string) *DescribeStackInstanceInput {
10551	s.CallAs = &v
10552	return s
10553}
10554
10555// SetStackInstanceAccount sets the StackInstanceAccount field's value.
10556func (s *DescribeStackInstanceInput) SetStackInstanceAccount(v string) *DescribeStackInstanceInput {
10557	s.StackInstanceAccount = &v
10558	return s
10559}
10560
10561// SetStackInstanceRegion sets the StackInstanceRegion field's value.
10562func (s *DescribeStackInstanceInput) SetStackInstanceRegion(v string) *DescribeStackInstanceInput {
10563	s.StackInstanceRegion = &v
10564	return s
10565}
10566
10567// SetStackSetName sets the StackSetName field's value.
10568func (s *DescribeStackInstanceInput) SetStackSetName(v string) *DescribeStackInstanceInput {
10569	s.StackSetName = &v
10570	return s
10571}
10572
10573type DescribeStackInstanceOutput struct {
10574	_ struct{} `type:"structure"`
10575
10576	// The stack instance that matches the specified request parameters.
10577	StackInstance *StackInstance `type:"structure"`
10578}
10579
10580// String returns the string representation.
10581//
10582// API parameter values that are decorated as "sensitive" in the API will not
10583// be included in the string output. The member name will be present, but the
10584// value will be replaced with "sensitive".
10585func (s DescribeStackInstanceOutput) String() string {
10586	return awsutil.Prettify(s)
10587}
10588
10589// GoString returns the string representation.
10590//
10591// API parameter values that are decorated as "sensitive" in the API will not
10592// be included in the string output. The member name will be present, but the
10593// value will be replaced with "sensitive".
10594func (s DescribeStackInstanceOutput) GoString() string {
10595	return s.String()
10596}
10597
10598// SetStackInstance sets the StackInstance field's value.
10599func (s *DescribeStackInstanceOutput) SetStackInstance(v *StackInstance) *DescribeStackInstanceOutput {
10600	s.StackInstance = v
10601	return s
10602}
10603
10604type DescribeStackResourceDriftsInput struct {
10605	_ struct{} `type:"structure"`
10606
10607	// The maximum number of results to be returned with a single call. If the number
10608	// of available results exceeds this maximum, the response includes a NextToken
10609	// value that you can assign to the NextToken request parameter to get the next
10610	// set of results.
10611	MaxResults *int64 `min:"1" type:"integer"`
10612
10613	// A string that identifies the next page of stack resource drift results.
10614	NextToken *string `min:"1" type:"string"`
10615
10616	// The name of the stack for which you want drift information.
10617	//
10618	// StackName is a required field
10619	StackName *string `min:"1" type:"string" required:"true"`
10620
10621	// The resource drift status values to use as filters for the resource drift
10622	// results returned.
10623	//
10624	//    * DELETED: The resource differs from its expected template configuration
10625	//    in that the resource has been deleted.
10626	//
10627	//    * MODIFIED: One or more resource properties differ from their expected
10628	//    template values.
10629	//
10630	//    * IN_SYNC: The resources's actual configuration matches its expected template
10631	//    configuration.
10632	//
10633	//    * NOT_CHECKED: CloudFormation does not currently return this value.
10634	StackResourceDriftStatusFilters []*string `min:"1" type:"list"`
10635}
10636
10637// String returns the string representation.
10638//
10639// API parameter values that are decorated as "sensitive" in the API will not
10640// be included in the string output. The member name will be present, but the
10641// value will be replaced with "sensitive".
10642func (s DescribeStackResourceDriftsInput) String() string {
10643	return awsutil.Prettify(s)
10644}
10645
10646// GoString returns the string representation.
10647//
10648// API parameter values that are decorated as "sensitive" in the API will not
10649// be included in the string output. The member name will be present, but the
10650// value will be replaced with "sensitive".
10651func (s DescribeStackResourceDriftsInput) GoString() string {
10652	return s.String()
10653}
10654
10655// Validate inspects the fields of the type to determine if they are valid.
10656func (s *DescribeStackResourceDriftsInput) Validate() error {
10657	invalidParams := request.ErrInvalidParams{Context: "DescribeStackResourceDriftsInput"}
10658	if s.MaxResults != nil && *s.MaxResults < 1 {
10659		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
10660	}
10661	if s.NextToken != nil && len(*s.NextToken) < 1 {
10662		invalidParams.Add(request.NewErrParamMinLen("NextToken", 1))
10663	}
10664	if s.StackName == nil {
10665		invalidParams.Add(request.NewErrParamRequired("StackName"))
10666	}
10667	if s.StackName != nil && len(*s.StackName) < 1 {
10668		invalidParams.Add(request.NewErrParamMinLen("StackName", 1))
10669	}
10670	if s.StackResourceDriftStatusFilters != nil && len(s.StackResourceDriftStatusFilters) < 1 {
10671		invalidParams.Add(request.NewErrParamMinLen("StackResourceDriftStatusFilters", 1))
10672	}
10673
10674	if invalidParams.Len() > 0 {
10675		return invalidParams
10676	}
10677	return nil
10678}
10679
10680// SetMaxResults sets the MaxResults field's value.
10681func (s *DescribeStackResourceDriftsInput) SetMaxResults(v int64) *DescribeStackResourceDriftsInput {
10682	s.MaxResults = &v
10683	return s
10684}
10685
10686// SetNextToken sets the NextToken field's value.
10687func (s *DescribeStackResourceDriftsInput) SetNextToken(v string) *DescribeStackResourceDriftsInput {
10688	s.NextToken = &v
10689	return s
10690}
10691
10692// SetStackName sets the StackName field's value.
10693func (s *DescribeStackResourceDriftsInput) SetStackName(v string) *DescribeStackResourceDriftsInput {
10694	s.StackName = &v
10695	return s
10696}
10697
10698// SetStackResourceDriftStatusFilters sets the StackResourceDriftStatusFilters field's value.
10699func (s *DescribeStackResourceDriftsInput) SetStackResourceDriftStatusFilters(v []*string) *DescribeStackResourceDriftsInput {
10700	s.StackResourceDriftStatusFilters = v
10701	return s
10702}
10703
10704type DescribeStackResourceDriftsOutput struct {
10705	_ struct{} `type:"structure"`
10706
10707	// If the request doesn't return all of the remaining results, NextToken is
10708	// set to a token. To retrieve the next set of results, call DescribeStackResourceDrifts
10709	// again and assign that token to the request object's NextToken parameter.
10710	// If the request returns all results, NextToken is set to null.
10711	NextToken *string `min:"1" type:"string"`
10712
10713	// Drift information for the resources that have been checked for drift in the
10714	// specified stack. This includes actual and expected configuration values for
10715	// resources where CloudFormation detects drift.
10716	//
10717	// For a given stack, there will be one StackResourceDrift for each stack resource
10718	// that has been checked for drift. Resources that have not yet been checked
10719	// for drift are not included. Resources that do not currently support drift
10720	// detection are not checked, and so not included. For a list of resources that
10721	// support drift detection, see Resources that Support Drift Detection (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-stack-drift-resource-list.html).
10722	//
10723	// StackResourceDrifts is a required field
10724	StackResourceDrifts []*StackResourceDrift `type:"list" required:"true"`
10725}
10726
10727// String returns the string representation.
10728//
10729// API parameter values that are decorated as "sensitive" in the API will not
10730// be included in the string output. The member name will be present, but the
10731// value will be replaced with "sensitive".
10732func (s DescribeStackResourceDriftsOutput) String() string {
10733	return awsutil.Prettify(s)
10734}
10735
10736// GoString returns the string representation.
10737//
10738// API parameter values that are decorated as "sensitive" in the API will not
10739// be included in the string output. The member name will be present, but the
10740// value will be replaced with "sensitive".
10741func (s DescribeStackResourceDriftsOutput) GoString() string {
10742	return s.String()
10743}
10744
10745// SetNextToken sets the NextToken field's value.
10746func (s *DescribeStackResourceDriftsOutput) SetNextToken(v string) *DescribeStackResourceDriftsOutput {
10747	s.NextToken = &v
10748	return s
10749}
10750
10751// SetStackResourceDrifts sets the StackResourceDrifts field's value.
10752func (s *DescribeStackResourceDriftsOutput) SetStackResourceDrifts(v []*StackResourceDrift) *DescribeStackResourceDriftsOutput {
10753	s.StackResourceDrifts = v
10754	return s
10755}
10756
10757// The input for DescribeStackResource action.
10758type DescribeStackResourceInput struct {
10759	_ struct{} `type:"structure"`
10760
10761	// The logical name of the resource as specified in the template.
10762	//
10763	// Default: There is no default value.
10764	//
10765	// LogicalResourceId is a required field
10766	LogicalResourceId *string `type:"string" required:"true"`
10767
10768	// The name or the unique stack ID that is associated with the stack, which
10769	// are not always interchangeable:
10770	//
10771	//    * Running stacks: You can specify either the stack's name or its unique
10772	//    stack ID.
10773	//
10774	//    * Deleted stacks: You must specify the unique stack ID.
10775	//
10776	// Default: There is no default value.
10777	//
10778	// StackName is a required field
10779	StackName *string `type:"string" required:"true"`
10780}
10781
10782// String returns the string representation.
10783//
10784// API parameter values that are decorated as "sensitive" in the API will not
10785// be included in the string output. The member name will be present, but the
10786// value will be replaced with "sensitive".
10787func (s DescribeStackResourceInput) String() string {
10788	return awsutil.Prettify(s)
10789}
10790
10791// GoString returns the string representation.
10792//
10793// API parameter values that are decorated as "sensitive" in the API will not
10794// be included in the string output. The member name will be present, but the
10795// value will be replaced with "sensitive".
10796func (s DescribeStackResourceInput) GoString() string {
10797	return s.String()
10798}
10799
10800// Validate inspects the fields of the type to determine if they are valid.
10801func (s *DescribeStackResourceInput) Validate() error {
10802	invalidParams := request.ErrInvalidParams{Context: "DescribeStackResourceInput"}
10803	if s.LogicalResourceId == nil {
10804		invalidParams.Add(request.NewErrParamRequired("LogicalResourceId"))
10805	}
10806	if s.StackName == nil {
10807		invalidParams.Add(request.NewErrParamRequired("StackName"))
10808	}
10809
10810	if invalidParams.Len() > 0 {
10811		return invalidParams
10812	}
10813	return nil
10814}
10815
10816// SetLogicalResourceId sets the LogicalResourceId field's value.
10817func (s *DescribeStackResourceInput) SetLogicalResourceId(v string) *DescribeStackResourceInput {
10818	s.LogicalResourceId = &v
10819	return s
10820}
10821
10822// SetStackName sets the StackName field's value.
10823func (s *DescribeStackResourceInput) SetStackName(v string) *DescribeStackResourceInput {
10824	s.StackName = &v
10825	return s
10826}
10827
10828// The output for a DescribeStackResource action.
10829type DescribeStackResourceOutput struct {
10830	_ struct{} `type:"structure"`
10831
10832	// A StackResourceDetail structure containing the description of the specified
10833	// resource in the specified stack.
10834	StackResourceDetail *StackResourceDetail `type:"structure"`
10835}
10836
10837// String returns the string representation.
10838//
10839// API parameter values that are decorated as "sensitive" in the API will not
10840// be included in the string output. The member name will be present, but the
10841// value will be replaced with "sensitive".
10842func (s DescribeStackResourceOutput) String() string {
10843	return awsutil.Prettify(s)
10844}
10845
10846// GoString returns the string representation.
10847//
10848// API parameter values that are decorated as "sensitive" in the API will not
10849// be included in the string output. The member name will be present, but the
10850// value will be replaced with "sensitive".
10851func (s DescribeStackResourceOutput) GoString() string {
10852	return s.String()
10853}
10854
10855// SetStackResourceDetail sets the StackResourceDetail field's value.
10856func (s *DescribeStackResourceOutput) SetStackResourceDetail(v *StackResourceDetail) *DescribeStackResourceOutput {
10857	s.StackResourceDetail = v
10858	return s
10859}
10860
10861// The input for DescribeStackResources action.
10862type DescribeStackResourcesInput struct {
10863	_ struct{} `type:"structure"`
10864
10865	// The logical name of the resource as specified in the template.
10866	//
10867	// Default: There is no default value.
10868	LogicalResourceId *string `type:"string"`
10869
10870	// The name or unique identifier that corresponds to a physical instance ID
10871	// of a resource supported by CloudFormation.
10872	//
10873	// For example, for an Amazon Elastic Compute Cloud (EC2) instance, PhysicalResourceId
10874	// corresponds to the InstanceId. You can pass the EC2 InstanceId to DescribeStackResources
10875	// to find which stack the instance belongs to and what other resources are
10876	// part of the stack.
10877	//
10878	// Required: Conditional. If you do not specify PhysicalResourceId, you must
10879	// specify StackName.
10880	//
10881	// Default: There is no default value.
10882	PhysicalResourceId *string `type:"string"`
10883
10884	// The name or the unique stack ID that is associated with the stack, which
10885	// are not always interchangeable:
10886	//
10887	//    * Running stacks: You can specify either the stack's name or its unique
10888	//    stack ID.
10889	//
10890	//    * Deleted stacks: You must specify the unique stack ID.
10891	//
10892	// Default: There is no default value.
10893	//
10894	// Required: Conditional. If you do not specify StackName, you must specify
10895	// PhysicalResourceId.
10896	StackName *string `type:"string"`
10897}
10898
10899// String returns the string representation.
10900//
10901// API parameter values that are decorated as "sensitive" in the API will not
10902// be included in the string output. The member name will be present, but the
10903// value will be replaced with "sensitive".
10904func (s DescribeStackResourcesInput) String() string {
10905	return awsutil.Prettify(s)
10906}
10907
10908// GoString returns the string representation.
10909//
10910// API parameter values that are decorated as "sensitive" in the API will not
10911// be included in the string output. The member name will be present, but the
10912// value will be replaced with "sensitive".
10913func (s DescribeStackResourcesInput) GoString() string {
10914	return s.String()
10915}
10916
10917// SetLogicalResourceId sets the LogicalResourceId field's value.
10918func (s *DescribeStackResourcesInput) SetLogicalResourceId(v string) *DescribeStackResourcesInput {
10919	s.LogicalResourceId = &v
10920	return s
10921}
10922
10923// SetPhysicalResourceId sets the PhysicalResourceId field's value.
10924func (s *DescribeStackResourcesInput) SetPhysicalResourceId(v string) *DescribeStackResourcesInput {
10925	s.PhysicalResourceId = &v
10926	return s
10927}
10928
10929// SetStackName sets the StackName field's value.
10930func (s *DescribeStackResourcesInput) SetStackName(v string) *DescribeStackResourcesInput {
10931	s.StackName = &v
10932	return s
10933}
10934
10935// The output for a DescribeStackResources action.
10936type DescribeStackResourcesOutput struct {
10937	_ struct{} `type:"structure"`
10938
10939	// A list of StackResource structures.
10940	StackResources []*StackResource `type:"list"`
10941}
10942
10943// String returns the string representation.
10944//
10945// API parameter values that are decorated as "sensitive" in the API will not
10946// be included in the string output. The member name will be present, but the
10947// value will be replaced with "sensitive".
10948func (s DescribeStackResourcesOutput) String() string {
10949	return awsutil.Prettify(s)
10950}
10951
10952// GoString returns the string representation.
10953//
10954// API parameter values that are decorated as "sensitive" in the API will not
10955// be included in the string output. The member name will be present, but the
10956// value will be replaced with "sensitive".
10957func (s DescribeStackResourcesOutput) GoString() string {
10958	return s.String()
10959}
10960
10961// SetStackResources sets the StackResources field's value.
10962func (s *DescribeStackResourcesOutput) SetStackResources(v []*StackResource) *DescribeStackResourcesOutput {
10963	s.StackResources = v
10964	return s
10965}
10966
10967type DescribeStackSetInput struct {
10968	_ struct{} `type:"structure"`
10969
10970	// [Service-managed permissions] Specifies whether you are acting as an account
10971	// administrator in the organization's management account or as a delegated
10972	// administrator in a member account.
10973	//
10974	// By default, SELF is specified. Use SELF for stack sets with self-managed
10975	// permissions.
10976	//
10977	//    * If you are signed in to the management account, specify SELF.
10978	//
10979	//    * If you are signed in to a delegated administrator account, specify DELEGATED_ADMIN.
10980	//    Your Amazon Web Services account must be registered as a delegated administrator
10981	//    in the management account. For more information, see Register a delegated
10982	//    administrator (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/stacksets-orgs-delegated-admin.html)
10983	//    in the CloudFormation User Guide.
10984	CallAs *string `type:"string" enum:"CallAs"`
10985
10986	// The name or unique ID of the stack set whose description you want.
10987	//
10988	// StackSetName is a required field
10989	StackSetName *string `type:"string" required:"true"`
10990}
10991
10992// String returns the string representation.
10993//
10994// API parameter values that are decorated as "sensitive" in the API will not
10995// be included in the string output. The member name will be present, but the
10996// value will be replaced with "sensitive".
10997func (s DescribeStackSetInput) String() string {
10998	return awsutil.Prettify(s)
10999}
11000
11001// GoString returns the string representation.
11002//
11003// API parameter values that are decorated as "sensitive" in the API will not
11004// be included in the string output. The member name will be present, but the
11005// value will be replaced with "sensitive".
11006func (s DescribeStackSetInput) GoString() string {
11007	return s.String()
11008}
11009
11010// Validate inspects the fields of the type to determine if they are valid.
11011func (s *DescribeStackSetInput) Validate() error {
11012	invalidParams := request.ErrInvalidParams{Context: "DescribeStackSetInput"}
11013	if s.StackSetName == nil {
11014		invalidParams.Add(request.NewErrParamRequired("StackSetName"))
11015	}
11016
11017	if invalidParams.Len() > 0 {
11018		return invalidParams
11019	}
11020	return nil
11021}
11022
11023// SetCallAs sets the CallAs field's value.
11024func (s *DescribeStackSetInput) SetCallAs(v string) *DescribeStackSetInput {
11025	s.CallAs = &v
11026	return s
11027}
11028
11029// SetStackSetName sets the StackSetName field's value.
11030func (s *DescribeStackSetInput) SetStackSetName(v string) *DescribeStackSetInput {
11031	s.StackSetName = &v
11032	return s
11033}
11034
11035type DescribeStackSetOperationInput struct {
11036	_ struct{} `type:"structure"`
11037
11038	// [Service-managed permissions] Specifies whether you are acting as an account
11039	// administrator in the organization's management account or as a delegated
11040	// administrator in a member account.
11041	//
11042	// By default, SELF is specified. Use SELF for stack sets with self-managed
11043	// permissions.
11044	//
11045	//    * If you are signed in to the management account, specify SELF.
11046	//
11047	//    * If you are signed in to a delegated administrator account, specify DELEGATED_ADMIN.
11048	//    Your Amazon Web Services account must be registered as a delegated administrator
11049	//    in the management account. For more information, see Register a delegated
11050	//    administrator (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/stacksets-orgs-delegated-admin.html)
11051	//    in the CloudFormation User Guide.
11052	CallAs *string `type:"string" enum:"CallAs"`
11053
11054	// The unique ID of the stack set operation.
11055	//
11056	// OperationId is a required field
11057	OperationId *string `min:"1" type:"string" required:"true"`
11058
11059	// The name or the unique stack ID of the stack set for the stack operation.
11060	//
11061	// StackSetName is a required field
11062	StackSetName *string `type:"string" required:"true"`
11063}
11064
11065// String returns the string representation.
11066//
11067// API parameter values that are decorated as "sensitive" in the API will not
11068// be included in the string output. The member name will be present, but the
11069// value will be replaced with "sensitive".
11070func (s DescribeStackSetOperationInput) String() string {
11071	return awsutil.Prettify(s)
11072}
11073
11074// GoString returns the string representation.
11075//
11076// API parameter values that are decorated as "sensitive" in the API will not
11077// be included in the string output. The member name will be present, but the
11078// value will be replaced with "sensitive".
11079func (s DescribeStackSetOperationInput) GoString() string {
11080	return s.String()
11081}
11082
11083// Validate inspects the fields of the type to determine if they are valid.
11084func (s *DescribeStackSetOperationInput) Validate() error {
11085	invalidParams := request.ErrInvalidParams{Context: "DescribeStackSetOperationInput"}
11086	if s.OperationId == nil {
11087		invalidParams.Add(request.NewErrParamRequired("OperationId"))
11088	}
11089	if s.OperationId != nil && len(*s.OperationId) < 1 {
11090		invalidParams.Add(request.NewErrParamMinLen("OperationId", 1))
11091	}
11092	if s.StackSetName == nil {
11093		invalidParams.Add(request.NewErrParamRequired("StackSetName"))
11094	}
11095
11096	if invalidParams.Len() > 0 {
11097		return invalidParams
11098	}
11099	return nil
11100}
11101
11102// SetCallAs sets the CallAs field's value.
11103func (s *DescribeStackSetOperationInput) SetCallAs(v string) *DescribeStackSetOperationInput {
11104	s.CallAs = &v
11105	return s
11106}
11107
11108// SetOperationId sets the OperationId field's value.
11109func (s *DescribeStackSetOperationInput) SetOperationId(v string) *DescribeStackSetOperationInput {
11110	s.OperationId = &v
11111	return s
11112}
11113
11114// SetStackSetName sets the StackSetName field's value.
11115func (s *DescribeStackSetOperationInput) SetStackSetName(v string) *DescribeStackSetOperationInput {
11116	s.StackSetName = &v
11117	return s
11118}
11119
11120type DescribeStackSetOperationOutput struct {
11121	_ struct{} `type:"structure"`
11122
11123	// The specified stack set operation.
11124	StackSetOperation *StackSetOperation `type:"structure"`
11125}
11126
11127// String returns the string representation.
11128//
11129// API parameter values that are decorated as "sensitive" in the API will not
11130// be included in the string output. The member name will be present, but the
11131// value will be replaced with "sensitive".
11132func (s DescribeStackSetOperationOutput) String() string {
11133	return awsutil.Prettify(s)
11134}
11135
11136// GoString returns the string representation.
11137//
11138// API parameter values that are decorated as "sensitive" in the API will not
11139// be included in the string output. The member name will be present, but the
11140// value will be replaced with "sensitive".
11141func (s DescribeStackSetOperationOutput) GoString() string {
11142	return s.String()
11143}
11144
11145// SetStackSetOperation sets the StackSetOperation field's value.
11146func (s *DescribeStackSetOperationOutput) SetStackSetOperation(v *StackSetOperation) *DescribeStackSetOperationOutput {
11147	s.StackSetOperation = v
11148	return s
11149}
11150
11151type DescribeStackSetOutput struct {
11152	_ struct{} `type:"structure"`
11153
11154	// The specified stack set.
11155	StackSet *StackSet `type:"structure"`
11156}
11157
11158// String returns the string representation.
11159//
11160// API parameter values that are decorated as "sensitive" in the API will not
11161// be included in the string output. The member name will be present, but the
11162// value will be replaced with "sensitive".
11163func (s DescribeStackSetOutput) String() string {
11164	return awsutil.Prettify(s)
11165}
11166
11167// GoString returns the string representation.
11168//
11169// API parameter values that are decorated as "sensitive" in the API will not
11170// be included in the string output. The member name will be present, but the
11171// value will be replaced with "sensitive".
11172func (s DescribeStackSetOutput) GoString() string {
11173	return s.String()
11174}
11175
11176// SetStackSet sets the StackSet field's value.
11177func (s *DescribeStackSetOutput) SetStackSet(v *StackSet) *DescribeStackSetOutput {
11178	s.StackSet = v
11179	return s
11180}
11181
11182// The input for DescribeStacks action.
11183type DescribeStacksInput struct {
11184	_ struct{} `type:"structure"`
11185
11186	// A string that identifies the next page of stacks that you want to retrieve.
11187	NextToken *string `min:"1" type:"string"`
11188
11189	// The name or the unique stack ID that is associated with the stack, which
11190	// are not always interchangeable:
11191	//
11192	//    * Running stacks: You can specify either the stack's name or its unique
11193	//    stack ID.
11194	//
11195	//    * Deleted stacks: You must specify the unique stack ID.
11196	//
11197	// Default: There is no default value.
11198	StackName *string `type:"string"`
11199}
11200
11201// String returns the string representation.
11202//
11203// API parameter values that are decorated as "sensitive" in the API will not
11204// be included in the string output. The member name will be present, but the
11205// value will be replaced with "sensitive".
11206func (s DescribeStacksInput) String() string {
11207	return awsutil.Prettify(s)
11208}
11209
11210// GoString returns the string representation.
11211//
11212// API parameter values that are decorated as "sensitive" in the API will not
11213// be included in the string output. The member name will be present, but the
11214// value will be replaced with "sensitive".
11215func (s DescribeStacksInput) GoString() string {
11216	return s.String()
11217}
11218
11219// Validate inspects the fields of the type to determine if they are valid.
11220func (s *DescribeStacksInput) Validate() error {
11221	invalidParams := request.ErrInvalidParams{Context: "DescribeStacksInput"}
11222	if s.NextToken != nil && len(*s.NextToken) < 1 {
11223		invalidParams.Add(request.NewErrParamMinLen("NextToken", 1))
11224	}
11225
11226	if invalidParams.Len() > 0 {
11227		return invalidParams
11228	}
11229	return nil
11230}
11231
11232// SetNextToken sets the NextToken field's value.
11233func (s *DescribeStacksInput) SetNextToken(v string) *DescribeStacksInput {
11234	s.NextToken = &v
11235	return s
11236}
11237
11238// SetStackName sets the StackName field's value.
11239func (s *DescribeStacksInput) SetStackName(v string) *DescribeStacksInput {
11240	s.StackName = &v
11241	return s
11242}
11243
11244// The output for a DescribeStacks action.
11245type DescribeStacksOutput struct {
11246	_ struct{} `type:"structure"`
11247
11248	// If the output exceeds 1 MB in size, a string that identifies the next page
11249	// of stacks. If no additional page exists, this value is null.
11250	NextToken *string `min:"1" type:"string"`
11251
11252	// A list of stack structures.
11253	Stacks []*Stack `type:"list"`
11254}
11255
11256// String returns the string representation.
11257//
11258// API parameter values that are decorated as "sensitive" in the API will not
11259// be included in the string output. The member name will be present, but the
11260// value will be replaced with "sensitive".
11261func (s DescribeStacksOutput) String() string {
11262	return awsutil.Prettify(s)
11263}
11264
11265// GoString returns the string representation.
11266//
11267// API parameter values that are decorated as "sensitive" in the API will not
11268// be included in the string output. The member name will be present, but the
11269// value will be replaced with "sensitive".
11270func (s DescribeStacksOutput) GoString() string {
11271	return s.String()
11272}
11273
11274// SetNextToken sets the NextToken field's value.
11275func (s *DescribeStacksOutput) SetNextToken(v string) *DescribeStacksOutput {
11276	s.NextToken = &v
11277	return s
11278}
11279
11280// SetStacks sets the Stacks field's value.
11281func (s *DescribeStacksOutput) SetStacks(v []*Stack) *DescribeStacksOutput {
11282	s.Stacks = v
11283	return s
11284}
11285
11286type DescribeTypeInput struct {
11287	_ struct{} `type:"structure"`
11288
11289	// The Amazon Resource Name (ARN) of the extension.
11290	//
11291	// Conditional: You must specify either TypeName and Type, or Arn.
11292	Arn *string `type:"string"`
11293
11294	// The version number of a public third-party extension.
11295	PublicVersionNumber *string `min:"5" type:"string"`
11296
11297	// The publisher ID of the extension publisher.
11298	//
11299	// Extensions provided by Amazon are not assigned a publisher ID.
11300	PublisherId *string `min:"1" type:"string"`
11301
11302	// The kind of extension.
11303	//
11304	// Conditional: You must specify either TypeName and Type, or Arn.
11305	Type *string `type:"string" enum:"RegistryType"`
11306
11307	// The name of the extension.
11308	//
11309	// Conditional: You must specify either TypeName and Type, or Arn.
11310	TypeName *string `min:"10" type:"string"`
11311
11312	// The ID of a specific version of the extension. The version ID is the value
11313	// at the end of the Amazon Resource Name (ARN) assigned to the extension version
11314	// when it is registered.
11315	//
11316	// If you specify a VersionId, DescribeType returns information about that specific
11317	// extension version. Otherwise, it returns information about the default extension
11318	// version.
11319	VersionId *string `min:"1" type:"string"`
11320}
11321
11322// String returns the string representation.
11323//
11324// API parameter values that are decorated as "sensitive" in the API will not
11325// be included in the string output. The member name will be present, but the
11326// value will be replaced with "sensitive".
11327func (s DescribeTypeInput) String() string {
11328	return awsutil.Prettify(s)
11329}
11330
11331// GoString returns the string representation.
11332//
11333// API parameter values that are decorated as "sensitive" in the API will not
11334// be included in the string output. The member name will be present, but the
11335// value will be replaced with "sensitive".
11336func (s DescribeTypeInput) GoString() string {
11337	return s.String()
11338}
11339
11340// Validate inspects the fields of the type to determine if they are valid.
11341func (s *DescribeTypeInput) Validate() error {
11342	invalidParams := request.ErrInvalidParams{Context: "DescribeTypeInput"}
11343	if s.PublicVersionNumber != nil && len(*s.PublicVersionNumber) < 5 {
11344		invalidParams.Add(request.NewErrParamMinLen("PublicVersionNumber", 5))
11345	}
11346	if s.PublisherId != nil && len(*s.PublisherId) < 1 {
11347		invalidParams.Add(request.NewErrParamMinLen("PublisherId", 1))
11348	}
11349	if s.TypeName != nil && len(*s.TypeName) < 10 {
11350		invalidParams.Add(request.NewErrParamMinLen("TypeName", 10))
11351	}
11352	if s.VersionId != nil && len(*s.VersionId) < 1 {
11353		invalidParams.Add(request.NewErrParamMinLen("VersionId", 1))
11354	}
11355
11356	if invalidParams.Len() > 0 {
11357		return invalidParams
11358	}
11359	return nil
11360}
11361
11362// SetArn sets the Arn field's value.
11363func (s *DescribeTypeInput) SetArn(v string) *DescribeTypeInput {
11364	s.Arn = &v
11365	return s
11366}
11367
11368// SetPublicVersionNumber sets the PublicVersionNumber field's value.
11369func (s *DescribeTypeInput) SetPublicVersionNumber(v string) *DescribeTypeInput {
11370	s.PublicVersionNumber = &v
11371	return s
11372}
11373
11374// SetPublisherId sets the PublisherId field's value.
11375func (s *DescribeTypeInput) SetPublisherId(v string) *DescribeTypeInput {
11376	s.PublisherId = &v
11377	return s
11378}
11379
11380// SetType sets the Type field's value.
11381func (s *DescribeTypeInput) SetType(v string) *DescribeTypeInput {
11382	s.Type = &v
11383	return s
11384}
11385
11386// SetTypeName sets the TypeName field's value.
11387func (s *DescribeTypeInput) SetTypeName(v string) *DescribeTypeInput {
11388	s.TypeName = &v
11389	return s
11390}
11391
11392// SetVersionId sets the VersionId field's value.
11393func (s *DescribeTypeInput) SetVersionId(v string) *DescribeTypeInput {
11394	s.VersionId = &v
11395	return s
11396}
11397
11398type DescribeTypeOutput struct {
11399	_ struct{} `type:"structure"`
11400
11401	// The Amazon Resource Name (ARN) of the extension.
11402	Arn *string `type:"string"`
11403
11404	// Whether CloudFormation automatically updates the extension in this account
11405	// and region when a new minor version is published by the extension publisher.
11406	// Major versions released by the publisher must be manually updated. For more
11407	// information, see Activating public extensions for use in your account (AWSCloudFormation/latest/UserGuide/registry-public.html#registry-public-enable)
11408	// in the CloudFormation User Guide.
11409	AutoUpdate *bool `type:"boolean"`
11410
11411	// A JSON string that represent the current configuration data for the extension
11412	// in this account and region.
11413	//
11414	// To set the configuration data for an extension, use SetTypeConfiguration
11415	// (https://docs.aws.amazon.com/AWSCloudFormation/latest/APIReference/API_SetTypeConfiguration.html).
11416	// For more information, see Configuring extensions at the account level (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/registry-register.html#registry-set-configuration)
11417	// in the CloudFormation User Guide.
11418	ConfigurationSchema *string `min:"1" type:"string"`
11419
11420	// The ID of the default version of the extension. The default version is used
11421	// when the extension version is not specified.
11422	//
11423	// This applies only to private extensions you have registered in your account.
11424	// For public extensions, both those provided by Amazon and published by third
11425	// parties, CloudFormation returns null. For more information, see RegisterType
11426	// (https://docs.aws.amazon.com/AWSCloudFormation/latest/APIReference/API_RegisterType.html).
11427	//
11428	// To set the default version of an extension, use SetTypeDefaultVersion .
11429	DefaultVersionId *string `min:"1" type:"string"`
11430
11431	// The deprecation status of the extension version.
11432	//
11433	// Valid values include:
11434	//
11435	//    * LIVE: The extension is activated or registered and can be used in CloudFormation
11436	//    operations, dependent on its provisioning behavior and visibility scope.
11437	//
11438	//    * DEPRECATED: The extension has been deactivated or deregistered and can
11439	//    no longer be used in CloudFormation operations.
11440	//
11441	// For public third-party extensions, CloudFormation returns null.
11442	DeprecatedStatus *string `type:"string" enum:"DeprecatedStatus"`
11443
11444	// The description of the extension.
11445	Description *string `min:"1" type:"string"`
11446
11447	// The URL of a page providing detailed documentation for this extension.
11448	DocumentationUrl *string `type:"string"`
11449
11450	// The Amazon Resource Name (ARN) of the IAM execution role used to register
11451	// the extension. This applies only to private extensions you have registered
11452	// in your account. For more information, see RegisterType (https://docs.aws.amazon.com/AWSCloudFormation/latest/APIReference/API_RegisterType.html).
11453	//
11454	// If the registered extension calls any Amazon Web Services APIs, you must
11455	// create an IAM execution role (https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles.html)
11456	// that includes the necessary permissions to call those Amazon Web Services
11457	// APIs, and provision that execution role in your account. CloudFormation then
11458	// assumes that execution role to provide your extension with the appropriate
11459	// credentials.
11460	ExecutionRoleArn *string `min:"1" type:"string"`
11461
11462	// Whether or not the extension is activated in the account and region.
11463	//
11464	// This only applies to public third-party extensions. For all other extensions,
11465	// CloudFormation returns null.
11466	IsActivated *bool `type:"boolean"`
11467
11468	// Whether the specified extension version is set as the default version.
11469	//
11470	// This applies only to private extensions you have registered in your account,
11471	// and extensions published by Amazon. For public third-party extensions, whether
11472	// or not they are activated in your account, CloudFormation returns null.
11473	IsDefaultVersion *bool `type:"boolean"`
11474
11475	// When the specified extension version was registered. This applies only to:
11476	//
11477	//    * Private extensions you have registered in your account. For more information,
11478	//    see RegisterType (https://docs.aws.amazon.com/AWSCloudFormation/latest/APIReference/API_RegisterType.html).
11479	//
11480	//    * Public extensions you have activated in your account with auto-update
11481	//    specified. For more information, see ActivateType (https://docs.aws.amazon.com/AWSCloudFormation/latest/APIReference/API_ActivateType.html).
11482	LastUpdated *time.Time `type:"timestamp"`
11483
11484	// The latest version of a public extension that is available for use.
11485	//
11486	// This only applies if you specify a public extension, and you do not specify
11487	// a version. For all other requests, CloudFormation returns null.
11488	LatestPublicVersion *string `min:"5" type:"string"`
11489
11490	// Contains logging configuration information for private extensions. This applies
11491	// only to private extensions you have registered in your account. For public
11492	// extensions, both those provided by Amazon and published by third parties,
11493	// CloudFormation returns null. For more information, see RegisterType (https://docs.aws.amazon.com/AWSCloudFormation/latest/APIReference/API_RegisterType.html).
11494	LoggingConfig *LoggingConfig `type:"structure"`
11495
11496	// For public extensions that have been activated for this account and region,
11497	// the Amazon Resource Name (ARN) of the public extension.
11498	OriginalTypeArn *string `type:"string"`
11499
11500	// For public extensions that have been activated for this account and region,
11501	// the type name of the public extension.
11502	//
11503	// If you specified a TypeNameAlias when enabling the extension in this account
11504	// and region, CloudFormation treats that alias as the extension's type name
11505	// within the account and region, not the type name of the public extension.
11506	// 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)
11507	// in the CloudFormation User Guide.
11508	OriginalTypeName *string `min:"10" type:"string"`
11509
11510	// For resource type extensions, the provisioning behavior of the resource type.
11511	// CloudFormation determines the provisioning type during registration, based
11512	// on the types of handlers in the schema handler package submitted.
11513	//
11514	// Valid values include:
11515	//
11516	//    * FULLY_MUTABLE: The resource type includes an update handler to process
11517	//    updates to the type during stack update operations.
11518	//
11519	//    * IMMUTABLE: The resource type does not include an update handler, so
11520	//    the type cannot be updated and must instead be replaced during stack update
11521	//    operations.
11522	//
11523	//    * NON_PROVISIONABLE: The resource type does not include all of the following
11524	//    handlers, and therefore cannot actually be provisioned. create read delete
11525	ProvisioningType *string `type:"string" enum:"ProvisioningType"`
11526
11527	// The version number of a public third-party extension.
11528	//
11529	// This applies only if you specify a public extension you have activated in
11530	// your account, or specify a public extension without specifying a version.
11531	// For all other extensions, CloudFormation returns null.
11532	PublicVersionNumber *string `min:"5" type:"string"`
11533
11534	// The publisher ID of the extension publisher.
11535	//
11536	// This applies only to public third-party extensions. For private registered
11537	// extensions, and extensions provided by Amazon, CloudFormation returns null.
11538	PublisherId *string `min:"1" type:"string"`
11539
11540	// For extensions that are modules, the public third-party extensions that must
11541	// be activated in your account in order for the module itself to be activated.
11542	RequiredActivatedTypes []*RequiredActivatedType `type:"list"`
11543
11544	// The schema that defines the extension.
11545	//
11546	// For more information on extension schemas, see Resource Provider Schema (https://docs.aws.amazon.com/cloudformation-cli/latest/userguide/resource-type-schema.html)
11547	// in the CloudFormation CLI User Guide.
11548	Schema *string `min:"1" type:"string"`
11549
11550	// The URL of the source code for the extension.
11551	SourceUrl *string `type:"string"`
11552
11553	// When the specified private extension version was registered or activated
11554	// in your account.
11555	TimeCreated *time.Time `type:"timestamp"`
11556
11557	// The kind of extension.
11558	Type *string `type:"string" enum:"RegistryType"`
11559
11560	// The name of the extension.
11561	//
11562	// If the extension is a public third-party type you have activated with a type
11563	// name alias, CloudFormation returns the type name alias. For more information,
11564	// see ActivateType (https://docs.aws.amazon.com/AWSCloudFormation/latest/APIReference/API_ActivateType.html).
11565	TypeName *string `min:"10" type:"string"`
11566
11567	// The contract test status of the registered extension version. To return the
11568	// extension test status of a specifc extension version, you must specify VersionId.
11569	//
11570	// This applies only to registered private extension versions. CloudFormation
11571	// does not return this information for public extensions, whether or not they
11572	// are activated in your account.
11573	//
11574	//    * PASSED: The extension has passed all its contract tests. An extension
11575	//    must have a test status of PASSED before it can be published. For more
11576	//    information, see Publishing extensions to make them available for public
11577	//    use (https://docs.aws.amazon.com/cloudformation-cli/latest/userguide/resource-type-publish.html)
11578	//    in the CloudFormation Command Line Interface User Guide.
11579	//
11580	//    * FAILED: The extension has failed one or more contract tests.
11581	//
11582	//    * IN_PROGRESS: Contract tests are currently being performed on the extension.
11583	//
11584	//    * NOT_TESTED: Contract tests have not been performed on the extension.
11585	TypeTestsStatus *string `type:"string" enum:"TypeTestsStatus"`
11586
11587	// The description of the test status. To return the extension test status of
11588	// a specifc extension version, you must specify VersionId.
11589	//
11590	// This applies only to registered private extension versions. CloudFormation
11591	// does not return this information for public extensions, whether or not they
11592	// are activated in your account.
11593	TypeTestsStatusDescription *string `min:"1" type:"string"`
11594
11595	// The scope at which the extension is visible and usable in CloudFormation
11596	// operations.
11597	//
11598	// Valid values include:
11599	//
11600	//    * PRIVATE: The extension is only visible and usable within the account
11601	//    in which it is registered. CloudFormation marks any extensions you register
11602	//    as PRIVATE.
11603	//
11604	//    * PUBLIC: The extension is publically visible and usable within any Amazon
11605	//    account.
11606	Visibility *string `type:"string" enum:"Visibility"`
11607}
11608
11609// String returns the string representation.
11610//
11611// API parameter values that are decorated as "sensitive" in the API will not
11612// be included in the string output. The member name will be present, but the
11613// value will be replaced with "sensitive".
11614func (s DescribeTypeOutput) String() string {
11615	return awsutil.Prettify(s)
11616}
11617
11618// GoString returns the string representation.
11619//
11620// API parameter values that are decorated as "sensitive" in the API will not
11621// be included in the string output. The member name will be present, but the
11622// value will be replaced with "sensitive".
11623func (s DescribeTypeOutput) GoString() string {
11624	return s.String()
11625}
11626
11627// SetArn sets the Arn field's value.
11628func (s *DescribeTypeOutput) SetArn(v string) *DescribeTypeOutput {
11629	s.Arn = &v
11630	return s
11631}
11632
11633// SetAutoUpdate sets the AutoUpdate field's value.
11634func (s *DescribeTypeOutput) SetAutoUpdate(v bool) *DescribeTypeOutput {
11635	s.AutoUpdate = &v
11636	return s
11637}
11638
11639// SetConfigurationSchema sets the ConfigurationSchema field's value.
11640func (s *DescribeTypeOutput) SetConfigurationSchema(v string) *DescribeTypeOutput {
11641	s.ConfigurationSchema = &v
11642	return s
11643}
11644
11645// SetDefaultVersionId sets the DefaultVersionId field's value.
11646func (s *DescribeTypeOutput) SetDefaultVersionId(v string) *DescribeTypeOutput {
11647	s.DefaultVersionId = &v
11648	return s
11649}
11650
11651// SetDeprecatedStatus sets the DeprecatedStatus field's value.
11652func (s *DescribeTypeOutput) SetDeprecatedStatus(v string) *DescribeTypeOutput {
11653	s.DeprecatedStatus = &v
11654	return s
11655}
11656
11657// SetDescription sets the Description field's value.
11658func (s *DescribeTypeOutput) SetDescription(v string) *DescribeTypeOutput {
11659	s.Description = &v
11660	return s
11661}
11662
11663// SetDocumentationUrl sets the DocumentationUrl field's value.
11664func (s *DescribeTypeOutput) SetDocumentationUrl(v string) *DescribeTypeOutput {
11665	s.DocumentationUrl = &v
11666	return s
11667}
11668
11669// SetExecutionRoleArn sets the ExecutionRoleArn field's value.
11670func (s *DescribeTypeOutput) SetExecutionRoleArn(v string) *DescribeTypeOutput {
11671	s.ExecutionRoleArn = &v
11672	return s
11673}
11674
11675// SetIsActivated sets the IsActivated field's value.
11676func (s *DescribeTypeOutput) SetIsActivated(v bool) *DescribeTypeOutput {
11677	s.IsActivated = &v
11678	return s
11679}
11680
11681// SetIsDefaultVersion sets the IsDefaultVersion field's value.
11682func (s *DescribeTypeOutput) SetIsDefaultVersion(v bool) *DescribeTypeOutput {
11683	s.IsDefaultVersion = &v
11684	return s
11685}
11686
11687// SetLastUpdated sets the LastUpdated field's value.
11688func (s *DescribeTypeOutput) SetLastUpdated(v time.Time) *DescribeTypeOutput {
11689	s.LastUpdated = &v
11690	return s
11691}
11692
11693// SetLatestPublicVersion sets the LatestPublicVersion field's value.
11694func (s *DescribeTypeOutput) SetLatestPublicVersion(v string) *DescribeTypeOutput {
11695	s.LatestPublicVersion = &v
11696	return s
11697}
11698
11699// SetLoggingConfig sets the LoggingConfig field's value.
11700func (s *DescribeTypeOutput) SetLoggingConfig(v *LoggingConfig) *DescribeTypeOutput {
11701	s.LoggingConfig = v
11702	return s
11703}
11704
11705// SetOriginalTypeArn sets the OriginalTypeArn field's value.
11706func (s *DescribeTypeOutput) SetOriginalTypeArn(v string) *DescribeTypeOutput {
11707	s.OriginalTypeArn = &v
11708	return s
11709}
11710
11711// SetOriginalTypeName sets the OriginalTypeName field's value.
11712func (s *DescribeTypeOutput) SetOriginalTypeName(v string) *DescribeTypeOutput {
11713	s.OriginalTypeName = &v
11714	return s
11715}
11716
11717// SetProvisioningType sets the ProvisioningType field's value.
11718func (s *DescribeTypeOutput) SetProvisioningType(v string) *DescribeTypeOutput {
11719	s.ProvisioningType = &v
11720	return s
11721}
11722
11723// SetPublicVersionNumber sets the PublicVersionNumber field's value.
11724func (s *DescribeTypeOutput) SetPublicVersionNumber(v string) *DescribeTypeOutput {
11725	s.PublicVersionNumber = &v
11726	return s
11727}
11728
11729// SetPublisherId sets the PublisherId field's value.
11730func (s *DescribeTypeOutput) SetPublisherId(v string) *DescribeTypeOutput {
11731	s.PublisherId = &v
11732	return s
11733}
11734
11735// SetRequiredActivatedTypes sets the RequiredActivatedTypes field's value.
11736func (s *DescribeTypeOutput) SetRequiredActivatedTypes(v []*RequiredActivatedType) *DescribeTypeOutput {
11737	s.RequiredActivatedTypes = v
11738	return s
11739}
11740
11741// SetSchema sets the Schema field's value.
11742func (s *DescribeTypeOutput) SetSchema(v string) *DescribeTypeOutput {
11743	s.Schema = &v
11744	return s
11745}
11746
11747// SetSourceUrl sets the SourceUrl field's value.
11748func (s *DescribeTypeOutput) SetSourceUrl(v string) *DescribeTypeOutput {
11749	s.SourceUrl = &v
11750	return s
11751}
11752
11753// SetTimeCreated sets the TimeCreated field's value.
11754func (s *DescribeTypeOutput) SetTimeCreated(v time.Time) *DescribeTypeOutput {
11755	s.TimeCreated = &v
11756	return s
11757}
11758
11759// SetType sets the Type field's value.
11760func (s *DescribeTypeOutput) SetType(v string) *DescribeTypeOutput {
11761	s.Type = &v
11762	return s
11763}
11764
11765// SetTypeName sets the TypeName field's value.
11766func (s *DescribeTypeOutput) SetTypeName(v string) *DescribeTypeOutput {
11767	s.TypeName = &v
11768	return s
11769}
11770
11771// SetTypeTestsStatus sets the TypeTestsStatus field's value.
11772func (s *DescribeTypeOutput) SetTypeTestsStatus(v string) *DescribeTypeOutput {
11773	s.TypeTestsStatus = &v
11774	return s
11775}
11776
11777// SetTypeTestsStatusDescription sets the TypeTestsStatusDescription field's value.
11778func (s *DescribeTypeOutput) SetTypeTestsStatusDescription(v string) *DescribeTypeOutput {
11779	s.TypeTestsStatusDescription = &v
11780	return s
11781}
11782
11783// SetVisibility sets the Visibility field's value.
11784func (s *DescribeTypeOutput) SetVisibility(v string) *DescribeTypeOutput {
11785	s.Visibility = &v
11786	return s
11787}
11788
11789type DescribeTypeRegistrationInput struct {
11790	_ struct{} `type:"structure"`
11791
11792	// The identifier for this registration request.
11793	//
11794	// This registration token is generated by CloudFormation when you initiate
11795	// a registration request using RegisterType .
11796	//
11797	// RegistrationToken is a required field
11798	RegistrationToken *string `min:"1" type:"string" required:"true"`
11799}
11800
11801// String returns the string representation.
11802//
11803// API parameter values that are decorated as "sensitive" in the API will not
11804// be included in the string output. The member name will be present, but the
11805// value will be replaced with "sensitive".
11806func (s DescribeTypeRegistrationInput) String() string {
11807	return awsutil.Prettify(s)
11808}
11809
11810// GoString returns the string representation.
11811//
11812// API parameter values that are decorated as "sensitive" in the API will not
11813// be included in the string output. The member name will be present, but the
11814// value will be replaced with "sensitive".
11815func (s DescribeTypeRegistrationInput) GoString() string {
11816	return s.String()
11817}
11818
11819// Validate inspects the fields of the type to determine if they are valid.
11820func (s *DescribeTypeRegistrationInput) Validate() error {
11821	invalidParams := request.ErrInvalidParams{Context: "DescribeTypeRegistrationInput"}
11822	if s.RegistrationToken == nil {
11823		invalidParams.Add(request.NewErrParamRequired("RegistrationToken"))
11824	}
11825	if s.RegistrationToken != nil && len(*s.RegistrationToken) < 1 {
11826		invalidParams.Add(request.NewErrParamMinLen("RegistrationToken", 1))
11827	}
11828
11829	if invalidParams.Len() > 0 {
11830		return invalidParams
11831	}
11832	return nil
11833}
11834
11835// SetRegistrationToken sets the RegistrationToken field's value.
11836func (s *DescribeTypeRegistrationInput) SetRegistrationToken(v string) *DescribeTypeRegistrationInput {
11837	s.RegistrationToken = &v
11838	return s
11839}
11840
11841type DescribeTypeRegistrationOutput struct {
11842	_ struct{} `type:"structure"`
11843
11844	// The description of the extension registration request.
11845	Description *string `min:"1" type:"string"`
11846
11847	// The current status of the extension registration request.
11848	ProgressStatus *string `type:"string" enum:"RegistrationStatus"`
11849
11850	// The Amazon Resource Name (ARN) of the extension being registered.
11851	//
11852	// For registration requests with a ProgressStatus of other than COMPLETE, this
11853	// will be null.
11854	TypeArn *string `type:"string"`
11855
11856	// The Amazon Resource Name (ARN) of this specific version of the extension
11857	// being registered.
11858	//
11859	// For registration requests with a ProgressStatus of other than COMPLETE, this
11860	// will be null.
11861	TypeVersionArn *string `type:"string"`
11862}
11863
11864// String returns the string representation.
11865//
11866// API parameter values that are decorated as "sensitive" in the API will not
11867// be included in the string output. The member name will be present, but the
11868// value will be replaced with "sensitive".
11869func (s DescribeTypeRegistrationOutput) String() string {
11870	return awsutil.Prettify(s)
11871}
11872
11873// GoString returns the string representation.
11874//
11875// API parameter values that are decorated as "sensitive" in the API will not
11876// be included in the string output. The member name will be present, but the
11877// value will be replaced with "sensitive".
11878func (s DescribeTypeRegistrationOutput) GoString() string {
11879	return s.String()
11880}
11881
11882// SetDescription sets the Description field's value.
11883func (s *DescribeTypeRegistrationOutput) SetDescription(v string) *DescribeTypeRegistrationOutput {
11884	s.Description = &v
11885	return s
11886}
11887
11888// SetProgressStatus sets the ProgressStatus field's value.
11889func (s *DescribeTypeRegistrationOutput) SetProgressStatus(v string) *DescribeTypeRegistrationOutput {
11890	s.ProgressStatus = &v
11891	return s
11892}
11893
11894// SetTypeArn sets the TypeArn field's value.
11895func (s *DescribeTypeRegistrationOutput) SetTypeArn(v string) *DescribeTypeRegistrationOutput {
11896	s.TypeArn = &v
11897	return s
11898}
11899
11900// SetTypeVersionArn sets the TypeVersionArn field's value.
11901func (s *DescribeTypeRegistrationOutput) SetTypeVersionArn(v string) *DescribeTypeRegistrationOutput {
11902	s.TypeVersionArn = &v
11903	return s
11904}
11905
11906type DetectStackDriftInput struct {
11907	_ struct{} `type:"structure"`
11908
11909	// The logical names of any resources you want to use as filters.
11910	LogicalResourceIds []*string `min:"1" type:"list"`
11911
11912	// The name of the stack for which you want to detect drift.
11913	//
11914	// StackName is a required field
11915	StackName *string `min:"1" type:"string" required:"true"`
11916}
11917
11918// String returns the string representation.
11919//
11920// API parameter values that are decorated as "sensitive" in the API will not
11921// be included in the string output. The member name will be present, but the
11922// value will be replaced with "sensitive".
11923func (s DetectStackDriftInput) String() string {
11924	return awsutil.Prettify(s)
11925}
11926
11927// GoString returns the string representation.
11928//
11929// API parameter values that are decorated as "sensitive" in the API will not
11930// be included in the string output. The member name will be present, but the
11931// value will be replaced with "sensitive".
11932func (s DetectStackDriftInput) GoString() string {
11933	return s.String()
11934}
11935
11936// Validate inspects the fields of the type to determine if they are valid.
11937func (s *DetectStackDriftInput) Validate() error {
11938	invalidParams := request.ErrInvalidParams{Context: "DetectStackDriftInput"}
11939	if s.LogicalResourceIds != nil && len(s.LogicalResourceIds) < 1 {
11940		invalidParams.Add(request.NewErrParamMinLen("LogicalResourceIds", 1))
11941	}
11942	if s.StackName == nil {
11943		invalidParams.Add(request.NewErrParamRequired("StackName"))
11944	}
11945	if s.StackName != nil && len(*s.StackName) < 1 {
11946		invalidParams.Add(request.NewErrParamMinLen("StackName", 1))
11947	}
11948
11949	if invalidParams.Len() > 0 {
11950		return invalidParams
11951	}
11952	return nil
11953}
11954
11955// SetLogicalResourceIds sets the LogicalResourceIds field's value.
11956func (s *DetectStackDriftInput) SetLogicalResourceIds(v []*string) *DetectStackDriftInput {
11957	s.LogicalResourceIds = v
11958	return s
11959}
11960
11961// SetStackName sets the StackName field's value.
11962func (s *DetectStackDriftInput) SetStackName(v string) *DetectStackDriftInput {
11963	s.StackName = &v
11964	return s
11965}
11966
11967type DetectStackDriftOutput struct {
11968	_ struct{} `type:"structure"`
11969
11970	// The ID of the drift detection results of this operation.
11971	//
11972	// CloudFormation generates new results, with a new drift detection ID, each
11973	// time this operation is run. However, the number of drift results CloudFormation
11974	// retains for any given stack, and for how long, may vary.
11975	//
11976	// StackDriftDetectionId is a required field
11977	StackDriftDetectionId *string `min:"1" type:"string" required:"true"`
11978}
11979
11980// String returns the string representation.
11981//
11982// API parameter values that are decorated as "sensitive" in the API will not
11983// be included in the string output. The member name will be present, but the
11984// value will be replaced with "sensitive".
11985func (s DetectStackDriftOutput) String() string {
11986	return awsutil.Prettify(s)
11987}
11988
11989// GoString returns the string representation.
11990//
11991// API parameter values that are decorated as "sensitive" in the API will not
11992// be included in the string output. The member name will be present, but the
11993// value will be replaced with "sensitive".
11994func (s DetectStackDriftOutput) GoString() string {
11995	return s.String()
11996}
11997
11998// SetStackDriftDetectionId sets the StackDriftDetectionId field's value.
11999func (s *DetectStackDriftOutput) SetStackDriftDetectionId(v string) *DetectStackDriftOutput {
12000	s.StackDriftDetectionId = &v
12001	return s
12002}
12003
12004type DetectStackResourceDriftInput struct {
12005	_ struct{} `type:"structure"`
12006
12007	// The logical name of the resource for which to return drift information.
12008	//
12009	// LogicalResourceId is a required field
12010	LogicalResourceId *string `type:"string" required:"true"`
12011
12012	// The name of the stack to which the resource belongs.
12013	//
12014	// StackName is a required field
12015	StackName *string `min:"1" type:"string" required:"true"`
12016}
12017
12018// String returns the string representation.
12019//
12020// API parameter values that are decorated as "sensitive" in the API will not
12021// be included in the string output. The member name will be present, but the
12022// value will be replaced with "sensitive".
12023func (s DetectStackResourceDriftInput) String() string {
12024	return awsutil.Prettify(s)
12025}
12026
12027// GoString returns the string representation.
12028//
12029// API parameter values that are decorated as "sensitive" in the API will not
12030// be included in the string output. The member name will be present, but the
12031// value will be replaced with "sensitive".
12032func (s DetectStackResourceDriftInput) GoString() string {
12033	return s.String()
12034}
12035
12036// Validate inspects the fields of the type to determine if they are valid.
12037func (s *DetectStackResourceDriftInput) Validate() error {
12038	invalidParams := request.ErrInvalidParams{Context: "DetectStackResourceDriftInput"}
12039	if s.LogicalResourceId == nil {
12040		invalidParams.Add(request.NewErrParamRequired("LogicalResourceId"))
12041	}
12042	if s.StackName == nil {
12043		invalidParams.Add(request.NewErrParamRequired("StackName"))
12044	}
12045	if s.StackName != nil && len(*s.StackName) < 1 {
12046		invalidParams.Add(request.NewErrParamMinLen("StackName", 1))
12047	}
12048
12049	if invalidParams.Len() > 0 {
12050		return invalidParams
12051	}
12052	return nil
12053}
12054
12055// SetLogicalResourceId sets the LogicalResourceId field's value.
12056func (s *DetectStackResourceDriftInput) SetLogicalResourceId(v string) *DetectStackResourceDriftInput {
12057	s.LogicalResourceId = &v
12058	return s
12059}
12060
12061// SetStackName sets the StackName field's value.
12062func (s *DetectStackResourceDriftInput) SetStackName(v string) *DetectStackResourceDriftInput {
12063	s.StackName = &v
12064	return s
12065}
12066
12067type DetectStackResourceDriftOutput struct {
12068	_ struct{} `type:"structure"`
12069
12070	// Information about whether the resource's actual configuration has drifted
12071	// from its expected template configuration, including actual and expected property
12072	// values and any differences detected.
12073	//
12074	// StackResourceDrift is a required field
12075	StackResourceDrift *StackResourceDrift `type:"structure" required:"true"`
12076}
12077
12078// String returns the string representation.
12079//
12080// API parameter values that are decorated as "sensitive" in the API will not
12081// be included in the string output. The member name will be present, but the
12082// value will be replaced with "sensitive".
12083func (s DetectStackResourceDriftOutput) String() string {
12084	return awsutil.Prettify(s)
12085}
12086
12087// GoString returns the string representation.
12088//
12089// API parameter values that are decorated as "sensitive" in the API will not
12090// be included in the string output. The member name will be present, but the
12091// value will be replaced with "sensitive".
12092func (s DetectStackResourceDriftOutput) GoString() string {
12093	return s.String()
12094}
12095
12096// SetStackResourceDrift sets the StackResourceDrift field's value.
12097func (s *DetectStackResourceDriftOutput) SetStackResourceDrift(v *StackResourceDrift) *DetectStackResourceDriftOutput {
12098	s.StackResourceDrift = v
12099	return s
12100}
12101
12102type DetectStackSetDriftInput struct {
12103	_ struct{} `type:"structure"`
12104
12105	// [Service-managed permissions] Specifies whether you are acting as an account
12106	// administrator in the organization's management account or as a delegated
12107	// administrator in a member account.
12108	//
12109	// By default, SELF is specified. Use SELF for stack sets with self-managed
12110	// permissions.
12111	//
12112	//    * If you are signed in to the management account, specify SELF.
12113	//
12114	//    * If you are signed in to a delegated administrator account, specify DELEGATED_ADMIN.
12115	//    Your Amazon Web Services account must be registered as a delegated administrator
12116	//    in the management account. For more information, see Register a delegated
12117	//    administrator (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/stacksets-orgs-delegated-admin.html)
12118	//    in the CloudFormation User Guide.
12119	CallAs *string `type:"string" enum:"CallAs"`
12120
12121	// The ID of the stack set operation.
12122	OperationId *string `min:"1" type:"string" idempotencyToken:"true"`
12123
12124	// The user-specified preferences for how CloudFormation performs a stack set
12125	// operation.
12126	//
12127	// For more information on maximum concurrent accounts and failure tolerance,
12128	// see Stack set operation options (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/stacksets-concepts.html#stackset-ops-options).
12129	OperationPreferences *StackSetOperationPreferences `type:"structure"`
12130
12131	// The name of the stack set on which to perform the drift detection operation.
12132	//
12133	// StackSetName is a required field
12134	StackSetName *string `type:"string" required:"true"`
12135}
12136
12137// String returns the string representation.
12138//
12139// API parameter values that are decorated as "sensitive" in the API will not
12140// be included in the string output. The member name will be present, but the
12141// value will be replaced with "sensitive".
12142func (s DetectStackSetDriftInput) String() string {
12143	return awsutil.Prettify(s)
12144}
12145
12146// GoString returns the string representation.
12147//
12148// API parameter values that are decorated as "sensitive" in the API will not
12149// be included in the string output. The member name will be present, but the
12150// value will be replaced with "sensitive".
12151func (s DetectStackSetDriftInput) GoString() string {
12152	return s.String()
12153}
12154
12155// Validate inspects the fields of the type to determine if they are valid.
12156func (s *DetectStackSetDriftInput) Validate() error {
12157	invalidParams := request.ErrInvalidParams{Context: "DetectStackSetDriftInput"}
12158	if s.OperationId != nil && len(*s.OperationId) < 1 {
12159		invalidParams.Add(request.NewErrParamMinLen("OperationId", 1))
12160	}
12161	if s.StackSetName == nil {
12162		invalidParams.Add(request.NewErrParamRequired("StackSetName"))
12163	}
12164	if s.OperationPreferences != nil {
12165		if err := s.OperationPreferences.Validate(); err != nil {
12166			invalidParams.AddNested("OperationPreferences", err.(request.ErrInvalidParams))
12167		}
12168	}
12169
12170	if invalidParams.Len() > 0 {
12171		return invalidParams
12172	}
12173	return nil
12174}
12175
12176// SetCallAs sets the CallAs field's value.
12177func (s *DetectStackSetDriftInput) SetCallAs(v string) *DetectStackSetDriftInput {
12178	s.CallAs = &v
12179	return s
12180}
12181
12182// SetOperationId sets the OperationId field's value.
12183func (s *DetectStackSetDriftInput) SetOperationId(v string) *DetectStackSetDriftInput {
12184	s.OperationId = &v
12185	return s
12186}
12187
12188// SetOperationPreferences sets the OperationPreferences field's value.
12189func (s *DetectStackSetDriftInput) SetOperationPreferences(v *StackSetOperationPreferences) *DetectStackSetDriftInput {
12190	s.OperationPreferences = v
12191	return s
12192}
12193
12194// SetStackSetName sets the StackSetName field's value.
12195func (s *DetectStackSetDriftInput) SetStackSetName(v string) *DetectStackSetDriftInput {
12196	s.StackSetName = &v
12197	return s
12198}
12199
12200type DetectStackSetDriftOutput struct {
12201	_ struct{} `type:"structure"`
12202
12203	// The ID of the drift detection stack set operation.
12204	//
12205	// you can use this operation id with DescribeStackSetOperation to monitor the
12206	// progress of the drift detection operation.
12207	OperationId *string `min:"1" type:"string"`
12208}
12209
12210// String returns the string representation.
12211//
12212// API parameter values that are decorated as "sensitive" in the API will not
12213// be included in the string output. The member name will be present, but the
12214// value will be replaced with "sensitive".
12215func (s DetectStackSetDriftOutput) String() string {
12216	return awsutil.Prettify(s)
12217}
12218
12219// GoString returns the string representation.
12220//
12221// API parameter values that are decorated as "sensitive" in the API will not
12222// be included in the string output. The member name will be present, but the
12223// value will be replaced with "sensitive".
12224func (s DetectStackSetDriftOutput) GoString() string {
12225	return s.String()
12226}
12227
12228// SetOperationId sets the OperationId field's value.
12229func (s *DetectStackSetDriftOutput) SetOperationId(v string) *DetectStackSetDriftOutput {
12230	s.OperationId = &v
12231	return s
12232}
12233
12234// The input for an EstimateTemplateCost action.
12235type EstimateTemplateCostInput struct {
12236	_ struct{} `type:"structure"`
12237
12238	// A list of Parameter structures that specify input parameters.
12239	Parameters []*Parameter `type:"list"`
12240
12241	// Structure containing the template body with a minimum length of 1 byte and
12242	// a maximum length of 51,200 bytes. (For more information, go to Template Anatomy
12243	// (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/template-anatomy.html)
12244	// in the CloudFormation User Guide.)
12245	//
12246	// Conditional: You must pass TemplateBody or TemplateURL. If both are passed,
12247	// only TemplateBody is used.
12248	TemplateBody *string `min:"1" type:"string"`
12249
12250	// Location of file containing the template body. The URL must point to a template
12251	// that is located in an Amazon S3 bucket or a Systems Manager document. For
12252	// more information, go to Template Anatomy (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/template-anatomy.html)
12253	// in the CloudFormation User Guide.
12254	//
12255	// Conditional: You must pass TemplateURL or TemplateBody. If both are passed,
12256	// only TemplateBody is used.
12257	TemplateURL *string `min:"1" type:"string"`
12258}
12259
12260// String returns the string representation.
12261//
12262// API parameter values that are decorated as "sensitive" in the API will not
12263// be included in the string output. The member name will be present, but the
12264// value will be replaced with "sensitive".
12265func (s EstimateTemplateCostInput) String() string {
12266	return awsutil.Prettify(s)
12267}
12268
12269// GoString returns the string representation.
12270//
12271// API parameter values that are decorated as "sensitive" in the API will not
12272// be included in the string output. The member name will be present, but the
12273// value will be replaced with "sensitive".
12274func (s EstimateTemplateCostInput) GoString() string {
12275	return s.String()
12276}
12277
12278// Validate inspects the fields of the type to determine if they are valid.
12279func (s *EstimateTemplateCostInput) Validate() error {
12280	invalidParams := request.ErrInvalidParams{Context: "EstimateTemplateCostInput"}
12281	if s.TemplateBody != nil && len(*s.TemplateBody) < 1 {
12282		invalidParams.Add(request.NewErrParamMinLen("TemplateBody", 1))
12283	}
12284	if s.TemplateURL != nil && len(*s.TemplateURL) < 1 {
12285		invalidParams.Add(request.NewErrParamMinLen("TemplateURL", 1))
12286	}
12287
12288	if invalidParams.Len() > 0 {
12289		return invalidParams
12290	}
12291	return nil
12292}
12293
12294// SetParameters sets the Parameters field's value.
12295func (s *EstimateTemplateCostInput) SetParameters(v []*Parameter) *EstimateTemplateCostInput {
12296	s.Parameters = v
12297	return s
12298}
12299
12300// SetTemplateBody sets the TemplateBody field's value.
12301func (s *EstimateTemplateCostInput) SetTemplateBody(v string) *EstimateTemplateCostInput {
12302	s.TemplateBody = &v
12303	return s
12304}
12305
12306// SetTemplateURL sets the TemplateURL field's value.
12307func (s *EstimateTemplateCostInput) SetTemplateURL(v string) *EstimateTemplateCostInput {
12308	s.TemplateURL = &v
12309	return s
12310}
12311
12312// The output for a EstimateTemplateCost action.
12313type EstimateTemplateCostOutput struct {
12314	_ struct{} `type:"structure"`
12315
12316	// An Amazon Web Services Simple Monthly Calculator URL with a query string
12317	// that describes the resources required to run the template.
12318	Url *string `type:"string"`
12319}
12320
12321// String returns the string representation.
12322//
12323// API parameter values that are decorated as "sensitive" in the API will not
12324// be included in the string output. The member name will be present, but the
12325// value will be replaced with "sensitive".
12326func (s EstimateTemplateCostOutput) String() string {
12327	return awsutil.Prettify(s)
12328}
12329
12330// GoString returns the string representation.
12331//
12332// API parameter values that are decorated as "sensitive" in the API will not
12333// be included in the string output. The member name will be present, but the
12334// value will be replaced with "sensitive".
12335func (s EstimateTemplateCostOutput) GoString() string {
12336	return s.String()
12337}
12338
12339// SetUrl sets the Url field's value.
12340func (s *EstimateTemplateCostOutput) SetUrl(v string) *EstimateTemplateCostOutput {
12341	s.Url = &v
12342	return s
12343}
12344
12345// The input for the ExecuteChangeSet action.
12346type ExecuteChangeSetInput struct {
12347	_ struct{} `type:"structure"`
12348
12349	// The name or ARN of the change set that you want use to update the specified
12350	// stack.
12351	//
12352	// ChangeSetName is a required field
12353	ChangeSetName *string `min:"1" type:"string" required:"true"`
12354
12355	// A unique identifier for this ExecuteChangeSet request. Specify this token
12356	// if you plan to retry requests so that CloudFormation knows that you're not
12357	// attempting to execute a change set to update a stack with the same name.
12358	// You might retry ExecuteChangeSet requests to ensure that CloudFormation successfully
12359	// received them.
12360	ClientRequestToken *string `min:"1" type:"string"`
12361
12362	// Preserves the state of previously provisioned resources when an operation
12363	// fails.
12364	//
12365	// Default: True
12366	DisableRollback *bool `type:"boolean"`
12367
12368	// If you specified the name of a change set, specify the stack name or ID (ARN)
12369	// that is associated with the change set you want to execute.
12370	StackName *string `min:"1" type:"string"`
12371}
12372
12373// String returns the string representation.
12374//
12375// API parameter values that are decorated as "sensitive" in the API will not
12376// be included in the string output. The member name will be present, but the
12377// value will be replaced with "sensitive".
12378func (s ExecuteChangeSetInput) String() string {
12379	return awsutil.Prettify(s)
12380}
12381
12382// GoString returns the string representation.
12383//
12384// API parameter values that are decorated as "sensitive" in the API will not
12385// be included in the string output. The member name will be present, but the
12386// value will be replaced with "sensitive".
12387func (s ExecuteChangeSetInput) GoString() string {
12388	return s.String()
12389}
12390
12391// Validate inspects the fields of the type to determine if they are valid.
12392func (s *ExecuteChangeSetInput) Validate() error {
12393	invalidParams := request.ErrInvalidParams{Context: "ExecuteChangeSetInput"}
12394	if s.ChangeSetName == nil {
12395		invalidParams.Add(request.NewErrParamRequired("ChangeSetName"))
12396	}
12397	if s.ChangeSetName != nil && len(*s.ChangeSetName) < 1 {
12398		invalidParams.Add(request.NewErrParamMinLen("ChangeSetName", 1))
12399	}
12400	if s.ClientRequestToken != nil && len(*s.ClientRequestToken) < 1 {
12401		invalidParams.Add(request.NewErrParamMinLen("ClientRequestToken", 1))
12402	}
12403	if s.StackName != nil && len(*s.StackName) < 1 {
12404		invalidParams.Add(request.NewErrParamMinLen("StackName", 1))
12405	}
12406
12407	if invalidParams.Len() > 0 {
12408		return invalidParams
12409	}
12410	return nil
12411}
12412
12413// SetChangeSetName sets the ChangeSetName field's value.
12414func (s *ExecuteChangeSetInput) SetChangeSetName(v string) *ExecuteChangeSetInput {
12415	s.ChangeSetName = &v
12416	return s
12417}
12418
12419// SetClientRequestToken sets the ClientRequestToken field's value.
12420func (s *ExecuteChangeSetInput) SetClientRequestToken(v string) *ExecuteChangeSetInput {
12421	s.ClientRequestToken = &v
12422	return s
12423}
12424
12425// SetDisableRollback sets the DisableRollback field's value.
12426func (s *ExecuteChangeSetInput) SetDisableRollback(v bool) *ExecuteChangeSetInput {
12427	s.DisableRollback = &v
12428	return s
12429}
12430
12431// SetStackName sets the StackName field's value.
12432func (s *ExecuteChangeSetInput) SetStackName(v string) *ExecuteChangeSetInput {
12433	s.StackName = &v
12434	return s
12435}
12436
12437// The output for the ExecuteChangeSet action.
12438type ExecuteChangeSetOutput struct {
12439	_ struct{} `type:"structure"`
12440}
12441
12442// String returns the string representation.
12443//
12444// API parameter values that are decorated as "sensitive" in the API will not
12445// be included in the string output. The member name will be present, but the
12446// value will be replaced with "sensitive".
12447func (s ExecuteChangeSetOutput) String() string {
12448	return awsutil.Prettify(s)
12449}
12450
12451// GoString returns the string representation.
12452//
12453// API parameter values that are decorated as "sensitive" in the API will not
12454// be included in the string output. The member name will be present, but the
12455// value will be replaced with "sensitive".
12456func (s ExecuteChangeSetOutput) GoString() string {
12457	return s.String()
12458}
12459
12460// The Export structure describes the exported output values for a stack.
12461type Export struct {
12462	_ struct{} `type:"structure"`
12463
12464	// The stack that contains the exported output name and value.
12465	ExportingStackId *string `type:"string"`
12466
12467	// The name of exported output value. Use this name and the Fn::ImportValue
12468	// function to import the associated value into other stacks. The name is defined
12469	// in the Export field in the associated stack's Outputs section.
12470	Name *string `type:"string"`
12471
12472	// The value of the exported output, such as a resource physical ID. This value
12473	// is defined in the Export field in the associated stack's Outputs section.
12474	Value *string `type:"string"`
12475}
12476
12477// String returns the string representation.
12478//
12479// API parameter values that are decorated as "sensitive" in the API will not
12480// be included in the string output. The member name will be present, but the
12481// value will be replaced with "sensitive".
12482func (s Export) String() string {
12483	return awsutil.Prettify(s)
12484}
12485
12486// GoString returns the string representation.
12487//
12488// API parameter values that are decorated as "sensitive" in the API will not
12489// be included in the string output. The member name will be present, but the
12490// value will be replaced with "sensitive".
12491func (s Export) GoString() string {
12492	return s.String()
12493}
12494
12495// SetExportingStackId sets the ExportingStackId field's value.
12496func (s *Export) SetExportingStackId(v string) *Export {
12497	s.ExportingStackId = &v
12498	return s
12499}
12500
12501// SetName sets the Name field's value.
12502func (s *Export) SetName(v string) *Export {
12503	s.Name = &v
12504	return s
12505}
12506
12507// SetValue sets the Value field's value.
12508func (s *Export) SetValue(v string) *Export {
12509	s.Value = &v
12510	return s
12511}
12512
12513// The input for the GetStackPolicy action.
12514type GetStackPolicyInput struct {
12515	_ struct{} `type:"structure"`
12516
12517	// The name or unique stack ID that is associated with the stack whose policy
12518	// you want to get.
12519	//
12520	// StackName is a required field
12521	StackName *string `type:"string" required:"true"`
12522}
12523
12524// String returns the string representation.
12525//
12526// API parameter values that are decorated as "sensitive" in the API will not
12527// be included in the string output. The member name will be present, but the
12528// value will be replaced with "sensitive".
12529func (s GetStackPolicyInput) String() string {
12530	return awsutil.Prettify(s)
12531}
12532
12533// GoString returns the string representation.
12534//
12535// API parameter values that are decorated as "sensitive" in the API will not
12536// be included in the string output. The member name will be present, but the
12537// value will be replaced with "sensitive".
12538func (s GetStackPolicyInput) GoString() string {
12539	return s.String()
12540}
12541
12542// Validate inspects the fields of the type to determine if they are valid.
12543func (s *GetStackPolicyInput) Validate() error {
12544	invalidParams := request.ErrInvalidParams{Context: "GetStackPolicyInput"}
12545	if s.StackName == nil {
12546		invalidParams.Add(request.NewErrParamRequired("StackName"))
12547	}
12548
12549	if invalidParams.Len() > 0 {
12550		return invalidParams
12551	}
12552	return nil
12553}
12554
12555// SetStackName sets the StackName field's value.
12556func (s *GetStackPolicyInput) SetStackName(v string) *GetStackPolicyInput {
12557	s.StackName = &v
12558	return s
12559}
12560
12561// The output for the GetStackPolicy action.
12562type GetStackPolicyOutput struct {
12563	_ struct{} `type:"structure"`
12564
12565	// Structure containing the stack policy body. (For more information, go to
12566	// Prevent Updates to Stack Resources (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/protect-stack-resources.html)
12567	// in the CloudFormation User Guide.)
12568	StackPolicyBody *string `min:"1" type:"string"`
12569}
12570
12571// String returns the string representation.
12572//
12573// API parameter values that are decorated as "sensitive" in the API will not
12574// be included in the string output. The member name will be present, but the
12575// value will be replaced with "sensitive".
12576func (s GetStackPolicyOutput) String() string {
12577	return awsutil.Prettify(s)
12578}
12579
12580// GoString returns the string representation.
12581//
12582// API parameter values that are decorated as "sensitive" in the API will not
12583// be included in the string output. The member name will be present, but the
12584// value will be replaced with "sensitive".
12585func (s GetStackPolicyOutput) GoString() string {
12586	return s.String()
12587}
12588
12589// SetStackPolicyBody sets the StackPolicyBody field's value.
12590func (s *GetStackPolicyOutput) SetStackPolicyBody(v string) *GetStackPolicyOutput {
12591	s.StackPolicyBody = &v
12592	return s
12593}
12594
12595// The input for a GetTemplate action.
12596type GetTemplateInput struct {
12597	_ struct{} `type:"structure"`
12598
12599	// The name or Amazon Resource Name (ARN) of a change set for which CloudFormation
12600	// returns the associated template. If you specify a name, you must also specify
12601	// the StackName.
12602	ChangeSetName *string `min:"1" type:"string"`
12603
12604	// The name or the unique stack ID that is associated with the stack, which
12605	// are not always interchangeable:
12606	//
12607	//    * Running stacks: You can specify either the stack's name or its unique
12608	//    stack ID.
12609	//
12610	//    * Deleted stacks: You must specify the unique stack ID.
12611	//
12612	// Default: There is no default value.
12613	StackName *string `type:"string"`
12614
12615	// For templates that include transforms, the stage of the template that CloudFormation
12616	// returns. To get the user-submitted template, specify Original. To get the
12617	// template after CloudFormation has processed all transforms, specify Processed.
12618	//
12619	// If the template doesn't include transforms, Original and Processed return
12620	// the same template. By default, CloudFormation specifies Processed.
12621	TemplateStage *string `type:"string" enum:"TemplateStage"`
12622}
12623
12624// String returns the string representation.
12625//
12626// API parameter values that are decorated as "sensitive" in the API will not
12627// be included in the string output. The member name will be present, but the
12628// value will be replaced with "sensitive".
12629func (s GetTemplateInput) String() string {
12630	return awsutil.Prettify(s)
12631}
12632
12633// GoString returns the string representation.
12634//
12635// API parameter values that are decorated as "sensitive" in the API will not
12636// be included in the string output. The member name will be present, but the
12637// value will be replaced with "sensitive".
12638func (s GetTemplateInput) GoString() string {
12639	return s.String()
12640}
12641
12642// Validate inspects the fields of the type to determine if they are valid.
12643func (s *GetTemplateInput) Validate() error {
12644	invalidParams := request.ErrInvalidParams{Context: "GetTemplateInput"}
12645	if s.ChangeSetName != nil && len(*s.ChangeSetName) < 1 {
12646		invalidParams.Add(request.NewErrParamMinLen("ChangeSetName", 1))
12647	}
12648
12649	if invalidParams.Len() > 0 {
12650		return invalidParams
12651	}
12652	return nil
12653}
12654
12655// SetChangeSetName sets the ChangeSetName field's value.
12656func (s *GetTemplateInput) SetChangeSetName(v string) *GetTemplateInput {
12657	s.ChangeSetName = &v
12658	return s
12659}
12660
12661// SetStackName sets the StackName field's value.
12662func (s *GetTemplateInput) SetStackName(v string) *GetTemplateInput {
12663	s.StackName = &v
12664	return s
12665}
12666
12667// SetTemplateStage sets the TemplateStage field's value.
12668func (s *GetTemplateInput) SetTemplateStage(v string) *GetTemplateInput {
12669	s.TemplateStage = &v
12670	return s
12671}
12672
12673// The output for GetTemplate action.
12674type GetTemplateOutput struct {
12675	_ struct{} `type:"structure"`
12676
12677	// The stage of the template that you can retrieve. For stacks, the Original
12678	// and Processed templates are always available. For change sets, the Original
12679	// template is always available. After CloudFormation finishes creating the
12680	// change set, the Processed template becomes available.
12681	StagesAvailable []*string `type:"list"`
12682
12683	// Structure containing the template body. (For more information, go to Template
12684	// Anatomy (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/template-anatomy.html)
12685	// in the CloudFormation User Guide.)
12686	//
12687	// CloudFormation returns the same template that was used when the stack was
12688	// created.
12689	TemplateBody *string `min:"1" type:"string"`
12690}
12691
12692// String returns the string representation.
12693//
12694// API parameter values that are decorated as "sensitive" in the API will not
12695// be included in the string output. The member name will be present, but the
12696// value will be replaced with "sensitive".
12697func (s GetTemplateOutput) String() string {
12698	return awsutil.Prettify(s)
12699}
12700
12701// GoString returns the string representation.
12702//
12703// API parameter values that are decorated as "sensitive" in the API will not
12704// be included in the string output. The member name will be present, but the
12705// value will be replaced with "sensitive".
12706func (s GetTemplateOutput) GoString() string {
12707	return s.String()
12708}
12709
12710// SetStagesAvailable sets the StagesAvailable field's value.
12711func (s *GetTemplateOutput) SetStagesAvailable(v []*string) *GetTemplateOutput {
12712	s.StagesAvailable = v
12713	return s
12714}
12715
12716// SetTemplateBody sets the TemplateBody field's value.
12717func (s *GetTemplateOutput) SetTemplateBody(v string) *GetTemplateOutput {
12718	s.TemplateBody = &v
12719	return s
12720}
12721
12722// The input for the GetTemplateSummary action.
12723type GetTemplateSummaryInput struct {
12724	_ struct{} `type:"structure"`
12725
12726	// [Service-managed permissions] Specifies whether you are acting as an account
12727	// administrator in the organization's management account or as a delegated
12728	// administrator in a member account.
12729	//
12730	// By default, SELF is specified. Use SELF for stack sets with self-managed
12731	// permissions.
12732	//
12733	//    * If you are signed in to the management account, specify SELF.
12734	//
12735	//    * If you are signed in to a delegated administrator account, specify DELEGATED_ADMIN.
12736	//    Your Amazon Web Services account must be registered as a delegated administrator
12737	//    in the management account. For more information, see Register a delegated
12738	//    administrator (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/stacksets-orgs-delegated-admin.html)
12739	//    in the CloudFormation User Guide.
12740	CallAs *string `type:"string" enum:"CallAs"`
12741
12742	// The name or the stack ID that is associated with the stack, which are not
12743	// always interchangeable. For running stacks, you can specify either the stack's
12744	// name or its unique stack ID. For deleted stack, you must specify the unique
12745	// stack ID.
12746	//
12747	// Conditional: You must specify only one of the following parameters: StackName,
12748	// StackSetName, TemplateBody, or TemplateURL.
12749	StackName *string `min:"1" type:"string"`
12750
12751	// The name or unique ID of the stack set from which the stack was created.
12752	//
12753	// Conditional: You must specify only one of the following parameters: StackName,
12754	// StackSetName, TemplateBody, or TemplateURL.
12755	StackSetName *string `type:"string"`
12756
12757	// Structure containing the template body with a minimum length of 1 byte and
12758	// a maximum length of 51,200 bytes. For more information about templates, see
12759	// Template Anatomy (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/template-anatomy.html)
12760	// in the CloudFormation User Guide.
12761	//
12762	// Conditional: You must specify only one of the following parameters: StackName,
12763	// StackSetName, TemplateBody, or TemplateURL.
12764	TemplateBody *string `min:"1" type:"string"`
12765
12766	// Location of file containing the template body. The URL must point to a template
12767	// (max size: 460,800 bytes) that is located in an Amazon S3 bucket or a Systems
12768	// Manager document. For more information about templates, see Template Anatomy
12769	// (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/template-anatomy.html)
12770	// in the CloudFormation User Guide.
12771	//
12772	// Conditional: You must specify only one of the following parameters: StackName,
12773	// StackSetName, TemplateBody, or TemplateURL.
12774	TemplateURL *string `min:"1" type:"string"`
12775}
12776
12777// String returns the string representation.
12778//
12779// API parameter values that are decorated as "sensitive" in the API will not
12780// be included in the string output. The member name will be present, but the
12781// value will be replaced with "sensitive".
12782func (s GetTemplateSummaryInput) String() string {
12783	return awsutil.Prettify(s)
12784}
12785
12786// GoString returns the string representation.
12787//
12788// API parameter values that are decorated as "sensitive" in the API will not
12789// be included in the string output. The member name will be present, but the
12790// value will be replaced with "sensitive".
12791func (s GetTemplateSummaryInput) GoString() string {
12792	return s.String()
12793}
12794
12795// Validate inspects the fields of the type to determine if they are valid.
12796func (s *GetTemplateSummaryInput) Validate() error {
12797	invalidParams := request.ErrInvalidParams{Context: "GetTemplateSummaryInput"}
12798	if s.StackName != nil && len(*s.StackName) < 1 {
12799		invalidParams.Add(request.NewErrParamMinLen("StackName", 1))
12800	}
12801	if s.TemplateBody != nil && len(*s.TemplateBody) < 1 {
12802		invalidParams.Add(request.NewErrParamMinLen("TemplateBody", 1))
12803	}
12804	if s.TemplateURL != nil && len(*s.TemplateURL) < 1 {
12805		invalidParams.Add(request.NewErrParamMinLen("TemplateURL", 1))
12806	}
12807
12808	if invalidParams.Len() > 0 {
12809		return invalidParams
12810	}
12811	return nil
12812}
12813
12814// SetCallAs sets the CallAs field's value.
12815func (s *GetTemplateSummaryInput) SetCallAs(v string) *GetTemplateSummaryInput {
12816	s.CallAs = &v
12817	return s
12818}
12819
12820// SetStackName sets the StackName field's value.
12821func (s *GetTemplateSummaryInput) SetStackName(v string) *GetTemplateSummaryInput {
12822	s.StackName = &v
12823	return s
12824}
12825
12826// SetStackSetName sets the StackSetName field's value.
12827func (s *GetTemplateSummaryInput) SetStackSetName(v string) *GetTemplateSummaryInput {
12828	s.StackSetName = &v
12829	return s
12830}
12831
12832// SetTemplateBody sets the TemplateBody field's value.
12833func (s *GetTemplateSummaryInput) SetTemplateBody(v string) *GetTemplateSummaryInput {
12834	s.TemplateBody = &v
12835	return s
12836}
12837
12838// SetTemplateURL sets the TemplateURL field's value.
12839func (s *GetTemplateSummaryInput) SetTemplateURL(v string) *GetTemplateSummaryInput {
12840	s.TemplateURL = &v
12841	return s
12842}
12843
12844// The output for the GetTemplateSummary action.
12845type GetTemplateSummaryOutput struct {
12846	_ struct{} `type:"structure"`
12847
12848	// The capabilities found within the template. If your template contains IAM
12849	// resources, you must specify the CAPABILITY_IAM or CAPABILITY_NAMED_IAM value
12850	// for this parameter when you use the CreateStack or UpdateStack actions with
12851	// your template; otherwise, those actions return an InsufficientCapabilities
12852	// error.
12853	//
12854	// For more information, see Acknowledging IAM Resources in CloudFormation Templates
12855	// (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-iam-template.html#capabilities).
12856	Capabilities []*string `type:"list"`
12857
12858	// The list of resources that generated the values in the Capabilities response
12859	// element.
12860	CapabilitiesReason *string `type:"string"`
12861
12862	// A list of the transforms that are declared in the template.
12863	DeclaredTransforms []*string `type:"list"`
12864
12865	// The value that is defined in the Description property of the template.
12866	Description *string `min:"1" type:"string"`
12867
12868	// The value that is defined for the Metadata property of the template.
12869	Metadata *string `type:"string"`
12870
12871	// A list of parameter declarations that describe various properties for each
12872	// parameter.
12873	Parameters []*ParameterDeclaration `type:"list"`
12874
12875	// A list of resource identifier summaries that describe the target resources
12876	// of an import operation and the properties you can provide during the import
12877	// to identify the target resources. For example, BucketName is a possible identifier
12878	// property for an AWS::S3::Bucket resource.
12879	ResourceIdentifierSummaries []*ResourceIdentifierSummary `type:"list"`
12880
12881	// A list of all the template resource types that are defined in the template,
12882	// such as AWS::EC2::Instance, AWS::Dynamo::Table, and Custom::MyCustomInstance.
12883	ResourceTypes []*string `type:"list"`
12884
12885	// The Amazon Web Services template format version, which identifies the capabilities
12886	// of the template.
12887	Version *string `type:"string"`
12888}
12889
12890// String returns the string representation.
12891//
12892// API parameter values that are decorated as "sensitive" in the API will not
12893// be included in the string output. The member name will be present, but the
12894// value will be replaced with "sensitive".
12895func (s GetTemplateSummaryOutput) String() string {
12896	return awsutil.Prettify(s)
12897}
12898
12899// GoString returns the string representation.
12900//
12901// API parameter values that are decorated as "sensitive" in the API will not
12902// be included in the string output. The member name will be present, but the
12903// value will be replaced with "sensitive".
12904func (s GetTemplateSummaryOutput) GoString() string {
12905	return s.String()
12906}
12907
12908// SetCapabilities sets the Capabilities field's value.
12909func (s *GetTemplateSummaryOutput) SetCapabilities(v []*string) *GetTemplateSummaryOutput {
12910	s.Capabilities = v
12911	return s
12912}
12913
12914// SetCapabilitiesReason sets the CapabilitiesReason field's value.
12915func (s *GetTemplateSummaryOutput) SetCapabilitiesReason(v string) *GetTemplateSummaryOutput {
12916	s.CapabilitiesReason = &v
12917	return s
12918}
12919
12920// SetDeclaredTransforms sets the DeclaredTransforms field's value.
12921func (s *GetTemplateSummaryOutput) SetDeclaredTransforms(v []*string) *GetTemplateSummaryOutput {
12922	s.DeclaredTransforms = v
12923	return s
12924}
12925
12926// SetDescription sets the Description field's value.
12927func (s *GetTemplateSummaryOutput) SetDescription(v string) *GetTemplateSummaryOutput {
12928	s.Description = &v
12929	return s
12930}
12931
12932// SetMetadata sets the Metadata field's value.
12933func (s *GetTemplateSummaryOutput) SetMetadata(v string) *GetTemplateSummaryOutput {
12934	s.Metadata = &v
12935	return s
12936}
12937
12938// SetParameters sets the Parameters field's value.
12939func (s *GetTemplateSummaryOutput) SetParameters(v []*ParameterDeclaration) *GetTemplateSummaryOutput {
12940	s.Parameters = v
12941	return s
12942}
12943
12944// SetResourceIdentifierSummaries sets the ResourceIdentifierSummaries field's value.
12945func (s *GetTemplateSummaryOutput) SetResourceIdentifierSummaries(v []*ResourceIdentifierSummary) *GetTemplateSummaryOutput {
12946	s.ResourceIdentifierSummaries = v
12947	return s
12948}
12949
12950// SetResourceTypes sets the ResourceTypes field's value.
12951func (s *GetTemplateSummaryOutput) SetResourceTypes(v []*string) *GetTemplateSummaryOutput {
12952	s.ResourceTypes = v
12953	return s
12954}
12955
12956// SetVersion sets the Version field's value.
12957func (s *GetTemplateSummaryOutput) SetVersion(v string) *GetTemplateSummaryOutput {
12958	s.Version = &v
12959	return s
12960}
12961
12962type ImportStacksToStackSetInput struct {
12963	_ struct{} `type:"structure"`
12964
12965	// By default, SELF is specified. Use SELF for stack sets with self-managed
12966	// permissions.
12967	//
12968	//    * If you are signed in to the management account, specify SELF.
12969	//
12970	//    * For service managed stack sets, specify DELEGATED_ADMIN.
12971	CallAs *string `type:"string" enum:"CallAs"`
12972
12973	// A unique, user defined, identifier for the stack set operation.
12974	OperationId *string `min:"1" type:"string" idempotencyToken:"true"`
12975
12976	// The user-specified preferences for how CloudFormation performs a stack set
12977	// operation.
12978	//
12979	// For more information on maximum concurrent accounts and failure tolerance,
12980	// see Stack set operation options (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/stacksets-concepts.html#stackset-ops-options).
12981	OperationPreferences *StackSetOperationPreferences `type:"structure"`
12982
12983	// The IDs of the stacks you are importing into a stack set. You import up to
12984	// 10 stacks per stack set at a time.
12985	//
12986	// StackIds is a required field
12987	StackIds []*string `type:"list" required:"true"`
12988
12989	// The name of the stack set. The name must be unique in the Region where you
12990	// create your stack set.
12991	//
12992	// StackSetName is a required field
12993	StackSetName *string `type:"string" required:"true"`
12994}
12995
12996// String returns the string representation.
12997//
12998// API parameter values that are decorated as "sensitive" in the API will not
12999// be included in the string output. The member name will be present, but the
13000// value will be replaced with "sensitive".
13001func (s ImportStacksToStackSetInput) String() string {
13002	return awsutil.Prettify(s)
13003}
13004
13005// GoString returns the string representation.
13006//
13007// API parameter values that are decorated as "sensitive" in the API will not
13008// be included in the string output. The member name will be present, but the
13009// value will be replaced with "sensitive".
13010func (s ImportStacksToStackSetInput) GoString() string {
13011	return s.String()
13012}
13013
13014// Validate inspects the fields of the type to determine if they are valid.
13015func (s *ImportStacksToStackSetInput) Validate() error {
13016	invalidParams := request.ErrInvalidParams{Context: "ImportStacksToStackSetInput"}
13017	if s.OperationId != nil && len(*s.OperationId) < 1 {
13018		invalidParams.Add(request.NewErrParamMinLen("OperationId", 1))
13019	}
13020	if s.StackIds == nil {
13021		invalidParams.Add(request.NewErrParamRequired("StackIds"))
13022	}
13023	if s.StackSetName == nil {
13024		invalidParams.Add(request.NewErrParamRequired("StackSetName"))
13025	}
13026	if s.OperationPreferences != nil {
13027		if err := s.OperationPreferences.Validate(); err != nil {
13028			invalidParams.AddNested("OperationPreferences", err.(request.ErrInvalidParams))
13029		}
13030	}
13031
13032	if invalidParams.Len() > 0 {
13033		return invalidParams
13034	}
13035	return nil
13036}
13037
13038// SetCallAs sets the CallAs field's value.
13039func (s *ImportStacksToStackSetInput) SetCallAs(v string) *ImportStacksToStackSetInput {
13040	s.CallAs = &v
13041	return s
13042}
13043
13044// SetOperationId sets the OperationId field's value.
13045func (s *ImportStacksToStackSetInput) SetOperationId(v string) *ImportStacksToStackSetInput {
13046	s.OperationId = &v
13047	return s
13048}
13049
13050// SetOperationPreferences sets the OperationPreferences field's value.
13051func (s *ImportStacksToStackSetInput) SetOperationPreferences(v *StackSetOperationPreferences) *ImportStacksToStackSetInput {
13052	s.OperationPreferences = v
13053	return s
13054}
13055
13056// SetStackIds sets the StackIds field's value.
13057func (s *ImportStacksToStackSetInput) SetStackIds(v []*string) *ImportStacksToStackSetInput {
13058	s.StackIds = v
13059	return s
13060}
13061
13062// SetStackSetName sets the StackSetName field's value.
13063func (s *ImportStacksToStackSetInput) SetStackSetName(v string) *ImportStacksToStackSetInput {
13064	s.StackSetName = &v
13065	return s
13066}
13067
13068type ImportStacksToStackSetOutput struct {
13069	_ struct{} `type:"structure"`
13070
13071	// The unique identifier for the stack set operation.
13072	OperationId *string `min:"1" type:"string"`
13073}
13074
13075// String returns the string representation.
13076//
13077// API parameter values that are decorated as "sensitive" in the API will not
13078// be included in the string output. The member name will be present, but the
13079// value will be replaced with "sensitive".
13080func (s ImportStacksToStackSetOutput) String() string {
13081	return awsutil.Prettify(s)
13082}
13083
13084// GoString returns the string representation.
13085//
13086// API parameter values that are decorated as "sensitive" in the API will not
13087// be included in the string output. The member name will be present, but the
13088// value will be replaced with "sensitive".
13089func (s ImportStacksToStackSetOutput) GoString() string {
13090	return s.String()
13091}
13092
13093// SetOperationId sets the OperationId field's value.
13094func (s *ImportStacksToStackSetOutput) SetOperationId(v string) *ImportStacksToStackSetOutput {
13095	s.OperationId = &v
13096	return s
13097}
13098
13099// The input for the ListChangeSets action.
13100type ListChangeSetsInput struct {
13101	_ struct{} `type:"structure"`
13102
13103	// A string (provided by the ListChangeSets response output) that identifies
13104	// the next page of change sets that you want to retrieve.
13105	NextToken *string `min:"1" type:"string"`
13106
13107	// The name or the Amazon Resource Name (ARN) of the stack for which you want
13108	// to list change sets.
13109	//
13110	// StackName is a required field
13111	StackName *string `min:"1" type:"string" required:"true"`
13112}
13113
13114// String returns the string representation.
13115//
13116// API parameter values that are decorated as "sensitive" in the API will not
13117// be included in the string output. The member name will be present, but the
13118// value will be replaced with "sensitive".
13119func (s ListChangeSetsInput) String() string {
13120	return awsutil.Prettify(s)
13121}
13122
13123// GoString returns the string representation.
13124//
13125// API parameter values that are decorated as "sensitive" in the API will not
13126// be included in the string output. The member name will be present, but the
13127// value will be replaced with "sensitive".
13128func (s ListChangeSetsInput) GoString() string {
13129	return s.String()
13130}
13131
13132// Validate inspects the fields of the type to determine if they are valid.
13133func (s *ListChangeSetsInput) Validate() error {
13134	invalidParams := request.ErrInvalidParams{Context: "ListChangeSetsInput"}
13135	if s.NextToken != nil && len(*s.NextToken) < 1 {
13136		invalidParams.Add(request.NewErrParamMinLen("NextToken", 1))
13137	}
13138	if s.StackName == nil {
13139		invalidParams.Add(request.NewErrParamRequired("StackName"))
13140	}
13141	if s.StackName != nil && len(*s.StackName) < 1 {
13142		invalidParams.Add(request.NewErrParamMinLen("StackName", 1))
13143	}
13144
13145	if invalidParams.Len() > 0 {
13146		return invalidParams
13147	}
13148	return nil
13149}
13150
13151// SetNextToken sets the NextToken field's value.
13152func (s *ListChangeSetsInput) SetNextToken(v string) *ListChangeSetsInput {
13153	s.NextToken = &v
13154	return s
13155}
13156
13157// SetStackName sets the StackName field's value.
13158func (s *ListChangeSetsInput) SetStackName(v string) *ListChangeSetsInput {
13159	s.StackName = &v
13160	return s
13161}
13162
13163// The output for the ListChangeSets action.
13164type ListChangeSetsOutput struct {
13165	_ struct{} `type:"structure"`
13166
13167	// If the output exceeds 1 MB, a string that identifies the next page of change
13168	// sets. If there is no additional page, this value is null.
13169	NextToken *string `min:"1" type:"string"`
13170
13171	// A list of ChangeSetSummary structures that provides the ID and status of
13172	// each change set for the specified stack.
13173	Summaries []*ChangeSetSummary `type:"list"`
13174}
13175
13176// String returns the string representation.
13177//
13178// API parameter values that are decorated as "sensitive" in the API will not
13179// be included in the string output. The member name will be present, but the
13180// value will be replaced with "sensitive".
13181func (s ListChangeSetsOutput) String() string {
13182	return awsutil.Prettify(s)
13183}
13184
13185// GoString returns the string representation.
13186//
13187// API parameter values that are decorated as "sensitive" in the API will not
13188// be included in the string output. The member name will be present, but the
13189// value will be replaced with "sensitive".
13190func (s ListChangeSetsOutput) GoString() string {
13191	return s.String()
13192}
13193
13194// SetNextToken sets the NextToken field's value.
13195func (s *ListChangeSetsOutput) SetNextToken(v string) *ListChangeSetsOutput {
13196	s.NextToken = &v
13197	return s
13198}
13199
13200// SetSummaries sets the Summaries field's value.
13201func (s *ListChangeSetsOutput) SetSummaries(v []*ChangeSetSummary) *ListChangeSetsOutput {
13202	s.Summaries = v
13203	return s
13204}
13205
13206type ListExportsInput struct {
13207	_ struct{} `type:"structure"`
13208
13209	// A string (provided by the ListExports response output) that identifies the
13210	// next page of exported output values that you asked to retrieve.
13211	NextToken *string `min:"1" type:"string"`
13212}
13213
13214// String returns the string representation.
13215//
13216// API parameter values that are decorated as "sensitive" in the API will not
13217// be included in the string output. The member name will be present, but the
13218// value will be replaced with "sensitive".
13219func (s ListExportsInput) String() string {
13220	return awsutil.Prettify(s)
13221}
13222
13223// GoString returns the string representation.
13224//
13225// API parameter values that are decorated as "sensitive" in the API will not
13226// be included in the string output. The member name will be present, but the
13227// value will be replaced with "sensitive".
13228func (s ListExportsInput) GoString() string {
13229	return s.String()
13230}
13231
13232// Validate inspects the fields of the type to determine if they are valid.
13233func (s *ListExportsInput) Validate() error {
13234	invalidParams := request.ErrInvalidParams{Context: "ListExportsInput"}
13235	if s.NextToken != nil && len(*s.NextToken) < 1 {
13236		invalidParams.Add(request.NewErrParamMinLen("NextToken", 1))
13237	}
13238
13239	if invalidParams.Len() > 0 {
13240		return invalidParams
13241	}
13242	return nil
13243}
13244
13245// SetNextToken sets the NextToken field's value.
13246func (s *ListExportsInput) SetNextToken(v string) *ListExportsInput {
13247	s.NextToken = &v
13248	return s
13249}
13250
13251type ListExportsOutput struct {
13252	_ struct{} `type:"structure"`
13253
13254	// The output for the ListExports action.
13255	Exports []*Export `type:"list"`
13256
13257	// If the output exceeds 100 exported output values, a string that identifies
13258	// the next page of exports. If there is no additional page, this value is null.
13259	NextToken *string `min:"1" type:"string"`
13260}
13261
13262// String returns the string representation.
13263//
13264// API parameter values that are decorated as "sensitive" in the API will not
13265// be included in the string output. The member name will be present, but the
13266// value will be replaced with "sensitive".
13267func (s ListExportsOutput) String() string {
13268	return awsutil.Prettify(s)
13269}
13270
13271// GoString returns the string representation.
13272//
13273// API parameter values that are decorated as "sensitive" in the API will not
13274// be included in the string output. The member name will be present, but the
13275// value will be replaced with "sensitive".
13276func (s ListExportsOutput) GoString() string {
13277	return s.String()
13278}
13279
13280// SetExports sets the Exports field's value.
13281func (s *ListExportsOutput) SetExports(v []*Export) *ListExportsOutput {
13282	s.Exports = v
13283	return s
13284}
13285
13286// SetNextToken sets the NextToken field's value.
13287func (s *ListExportsOutput) SetNextToken(v string) *ListExportsOutput {
13288	s.NextToken = &v
13289	return s
13290}
13291
13292type ListImportsInput struct {
13293	_ struct{} `type:"structure"`
13294
13295	// The name of the exported output value. CloudFormation returns the stack names
13296	// that are importing this value.
13297	//
13298	// ExportName is a required field
13299	ExportName *string `type:"string" required:"true"`
13300
13301	// A string (provided by the ListImports response output) that identifies the
13302	// next page of stacks that are importing the specified exported output value.
13303	NextToken *string `min:"1" type:"string"`
13304}
13305
13306// String returns the string representation.
13307//
13308// API parameter values that are decorated as "sensitive" in the API will not
13309// be included in the string output. The member name will be present, but the
13310// value will be replaced with "sensitive".
13311func (s ListImportsInput) String() string {
13312	return awsutil.Prettify(s)
13313}
13314
13315// GoString returns the string representation.
13316//
13317// API parameter values that are decorated as "sensitive" in the API will not
13318// be included in the string output. The member name will be present, but the
13319// value will be replaced with "sensitive".
13320func (s ListImportsInput) GoString() string {
13321	return s.String()
13322}
13323
13324// Validate inspects the fields of the type to determine if they are valid.
13325func (s *ListImportsInput) Validate() error {
13326	invalidParams := request.ErrInvalidParams{Context: "ListImportsInput"}
13327	if s.ExportName == nil {
13328		invalidParams.Add(request.NewErrParamRequired("ExportName"))
13329	}
13330	if s.NextToken != nil && len(*s.NextToken) < 1 {
13331		invalidParams.Add(request.NewErrParamMinLen("NextToken", 1))
13332	}
13333
13334	if invalidParams.Len() > 0 {
13335		return invalidParams
13336	}
13337	return nil
13338}
13339
13340// SetExportName sets the ExportName field's value.
13341func (s *ListImportsInput) SetExportName(v string) *ListImportsInput {
13342	s.ExportName = &v
13343	return s
13344}
13345
13346// SetNextToken sets the NextToken field's value.
13347func (s *ListImportsInput) SetNextToken(v string) *ListImportsInput {
13348	s.NextToken = &v
13349	return s
13350}
13351
13352type ListImportsOutput struct {
13353	_ struct{} `type:"structure"`
13354
13355	// A list of stack names that are importing the specified exported output value.
13356	Imports []*string `type:"list"`
13357
13358	// A string that identifies the next page of exports. If there is no additional
13359	// page, this value is null.
13360	NextToken *string `min:"1" type:"string"`
13361}
13362
13363// String returns the string representation.
13364//
13365// API parameter values that are decorated as "sensitive" in the API will not
13366// be included in the string output. The member name will be present, but the
13367// value will be replaced with "sensitive".
13368func (s ListImportsOutput) String() string {
13369	return awsutil.Prettify(s)
13370}
13371
13372// GoString returns the string representation.
13373//
13374// API parameter values that are decorated as "sensitive" in the API will not
13375// be included in the string output. The member name will be present, but the
13376// value will be replaced with "sensitive".
13377func (s ListImportsOutput) GoString() string {
13378	return s.String()
13379}
13380
13381// SetImports sets the Imports field's value.
13382func (s *ListImportsOutput) SetImports(v []*string) *ListImportsOutput {
13383	s.Imports = v
13384	return s
13385}
13386
13387// SetNextToken sets the NextToken field's value.
13388func (s *ListImportsOutput) SetNextToken(v string) *ListImportsOutput {
13389	s.NextToken = &v
13390	return s
13391}
13392
13393type ListStackInstancesInput struct {
13394	_ struct{} `type:"structure"`
13395
13396	// [Service-managed permissions] Specifies whether you are acting as an account
13397	// administrator in the organization's management account or as a delegated
13398	// administrator in a member account.
13399	//
13400	// By default, SELF is specified. Use SELF for stack sets with self-managed
13401	// permissions.
13402	//
13403	//    * If you are signed in to the management account, specify SELF.
13404	//
13405	//    * If you are signed in to a delegated administrator account, specify DELEGATED_ADMIN.
13406	//    Your Amazon Web Services account must be registered as a delegated administrator
13407	//    in the management account. For more information, see Register a delegated
13408	//    administrator (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/stacksets-orgs-delegated-admin.html)
13409	//    in the CloudFormation User Guide.
13410	CallAs *string `type:"string" enum:"CallAs"`
13411
13412	// The status that stack instances are filtered by.
13413	Filters []*StackInstanceFilter `type:"list"`
13414
13415	// The maximum number of results to be returned with a single call. If the number
13416	// of available results exceeds this maximum, the response includes a NextToken
13417	// value that you can assign to the NextToken request parameter to get the next
13418	// set of results.
13419	MaxResults *int64 `min:"1" type:"integer"`
13420
13421	// If the previous request didn't return all of the remaining results, the response's
13422	// NextToken parameter value is set to a token. To retrieve the next set of
13423	// results, call ListStackInstances again and assign that token to the request
13424	// object's NextToken parameter. If there are no remaining results, the previous
13425	// response object's NextToken parameter is set to null.
13426	NextToken *string `min:"1" type:"string"`
13427
13428	// The name of the Amazon Web Services account that you want to list stack instances
13429	// for.
13430	StackInstanceAccount *string `type:"string"`
13431
13432	// The name of the Region where you want to list stack instances.
13433	StackInstanceRegion *string `type:"string"`
13434
13435	// The name or unique ID of the stack set that you want to list stack instances
13436	// for.
13437	//
13438	// StackSetName is a required field
13439	StackSetName *string `type:"string" required:"true"`
13440}
13441
13442// String returns the string representation.
13443//
13444// API parameter values that are decorated as "sensitive" in the API will not
13445// be included in the string output. The member name will be present, but the
13446// value will be replaced with "sensitive".
13447func (s ListStackInstancesInput) String() string {
13448	return awsutil.Prettify(s)
13449}
13450
13451// GoString returns the string representation.
13452//
13453// API parameter values that are decorated as "sensitive" in the API will not
13454// be included in the string output. The member name will be present, but the
13455// value will be replaced with "sensitive".
13456func (s ListStackInstancesInput) GoString() string {
13457	return s.String()
13458}
13459
13460// Validate inspects the fields of the type to determine if they are valid.
13461func (s *ListStackInstancesInput) Validate() error {
13462	invalidParams := request.ErrInvalidParams{Context: "ListStackInstancesInput"}
13463	if s.MaxResults != nil && *s.MaxResults < 1 {
13464		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
13465	}
13466	if s.NextToken != nil && len(*s.NextToken) < 1 {
13467		invalidParams.Add(request.NewErrParamMinLen("NextToken", 1))
13468	}
13469	if s.StackSetName == nil {
13470		invalidParams.Add(request.NewErrParamRequired("StackSetName"))
13471	}
13472	if s.Filters != nil {
13473		for i, v := range s.Filters {
13474			if v == nil {
13475				continue
13476			}
13477			if err := v.Validate(); err != nil {
13478				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Filters", i), err.(request.ErrInvalidParams))
13479			}
13480		}
13481	}
13482
13483	if invalidParams.Len() > 0 {
13484		return invalidParams
13485	}
13486	return nil
13487}
13488
13489// SetCallAs sets the CallAs field's value.
13490func (s *ListStackInstancesInput) SetCallAs(v string) *ListStackInstancesInput {
13491	s.CallAs = &v
13492	return s
13493}
13494
13495// SetFilters sets the Filters field's value.
13496func (s *ListStackInstancesInput) SetFilters(v []*StackInstanceFilter) *ListStackInstancesInput {
13497	s.Filters = v
13498	return s
13499}
13500
13501// SetMaxResults sets the MaxResults field's value.
13502func (s *ListStackInstancesInput) SetMaxResults(v int64) *ListStackInstancesInput {
13503	s.MaxResults = &v
13504	return s
13505}
13506
13507// SetNextToken sets the NextToken field's value.
13508func (s *ListStackInstancesInput) SetNextToken(v string) *ListStackInstancesInput {
13509	s.NextToken = &v
13510	return s
13511}
13512
13513// SetStackInstanceAccount sets the StackInstanceAccount field's value.
13514func (s *ListStackInstancesInput) SetStackInstanceAccount(v string) *ListStackInstancesInput {
13515	s.StackInstanceAccount = &v
13516	return s
13517}
13518
13519// SetStackInstanceRegion sets the StackInstanceRegion field's value.
13520func (s *ListStackInstancesInput) SetStackInstanceRegion(v string) *ListStackInstancesInput {
13521	s.StackInstanceRegion = &v
13522	return s
13523}
13524
13525// SetStackSetName sets the StackSetName field's value.
13526func (s *ListStackInstancesInput) SetStackSetName(v string) *ListStackInstancesInput {
13527	s.StackSetName = &v
13528	return s
13529}
13530
13531type ListStackInstancesOutput struct {
13532	_ struct{} `type:"structure"`
13533
13534	// If the request doesn't return all of the remaining results, NextToken is
13535	// set to a token. To retrieve the next set of results, call ListStackInstances
13536	// again and assign that token to the request object's NextToken parameter.
13537	// If the request returns all results, NextToken is set to null.
13538	NextToken *string `min:"1" type:"string"`
13539
13540	// A list of StackInstanceSummary structures that contain information about
13541	// the specified stack instances.
13542	Summaries []*StackInstanceSummary `type:"list"`
13543}
13544
13545// String returns the string representation.
13546//
13547// API parameter values that are decorated as "sensitive" in the API will not
13548// be included in the string output. The member name will be present, but the
13549// value will be replaced with "sensitive".
13550func (s ListStackInstancesOutput) String() string {
13551	return awsutil.Prettify(s)
13552}
13553
13554// GoString returns the string representation.
13555//
13556// API parameter values that are decorated as "sensitive" in the API will not
13557// be included in the string output. The member name will be present, but the
13558// value will be replaced with "sensitive".
13559func (s ListStackInstancesOutput) GoString() string {
13560	return s.String()
13561}
13562
13563// SetNextToken sets the NextToken field's value.
13564func (s *ListStackInstancesOutput) SetNextToken(v string) *ListStackInstancesOutput {
13565	s.NextToken = &v
13566	return s
13567}
13568
13569// SetSummaries sets the Summaries field's value.
13570func (s *ListStackInstancesOutput) SetSummaries(v []*StackInstanceSummary) *ListStackInstancesOutput {
13571	s.Summaries = v
13572	return s
13573}
13574
13575// The input for the ListStackResource action.
13576type ListStackResourcesInput struct {
13577	_ struct{} `type:"structure"`
13578
13579	// A string that identifies the next page of stack resources that you want to
13580	// retrieve.
13581	NextToken *string `min:"1" type:"string"`
13582
13583	// The name or the unique stack ID that is associated with the stack, which
13584	// are not always interchangeable:
13585	//
13586	//    * Running stacks: You can specify either the stack's name or its unique
13587	//    stack ID.
13588	//
13589	//    * Deleted stacks: You must specify the unique stack ID.
13590	//
13591	// Default: There is no default value.
13592	//
13593	// StackName is a required field
13594	StackName *string `type:"string" required:"true"`
13595}
13596
13597// String returns the string representation.
13598//
13599// API parameter values that are decorated as "sensitive" in the API will not
13600// be included in the string output. The member name will be present, but the
13601// value will be replaced with "sensitive".
13602func (s ListStackResourcesInput) String() string {
13603	return awsutil.Prettify(s)
13604}
13605
13606// GoString returns the string representation.
13607//
13608// API parameter values that are decorated as "sensitive" in the API will not
13609// be included in the string output. The member name will be present, but the
13610// value will be replaced with "sensitive".
13611func (s ListStackResourcesInput) GoString() string {
13612	return s.String()
13613}
13614
13615// Validate inspects the fields of the type to determine if they are valid.
13616func (s *ListStackResourcesInput) Validate() error {
13617	invalidParams := request.ErrInvalidParams{Context: "ListStackResourcesInput"}
13618	if s.NextToken != nil && len(*s.NextToken) < 1 {
13619		invalidParams.Add(request.NewErrParamMinLen("NextToken", 1))
13620	}
13621	if s.StackName == nil {
13622		invalidParams.Add(request.NewErrParamRequired("StackName"))
13623	}
13624
13625	if invalidParams.Len() > 0 {
13626		return invalidParams
13627	}
13628	return nil
13629}
13630
13631// SetNextToken sets the NextToken field's value.
13632func (s *ListStackResourcesInput) SetNextToken(v string) *ListStackResourcesInput {
13633	s.NextToken = &v
13634	return s
13635}
13636
13637// SetStackName sets the StackName field's value.
13638func (s *ListStackResourcesInput) SetStackName(v string) *ListStackResourcesInput {
13639	s.StackName = &v
13640	return s
13641}
13642
13643// The output for a ListStackResources action.
13644type ListStackResourcesOutput struct {
13645	_ struct{} `type:"structure"`
13646
13647	// If the output exceeds 1 MB, a string that identifies the next page of stack
13648	// resources. If no additional page exists, this value is null.
13649	NextToken *string `min:"1" type:"string"`
13650
13651	// A list of StackResourceSummary structures.
13652	StackResourceSummaries []*StackResourceSummary `type:"list"`
13653}
13654
13655// String returns the string representation.
13656//
13657// API parameter values that are decorated as "sensitive" in the API will not
13658// be included in the string output. The member name will be present, but the
13659// value will be replaced with "sensitive".
13660func (s ListStackResourcesOutput) String() string {
13661	return awsutil.Prettify(s)
13662}
13663
13664// GoString returns the string representation.
13665//
13666// API parameter values that are decorated as "sensitive" in the API will not
13667// be included in the string output. The member name will be present, but the
13668// value will be replaced with "sensitive".
13669func (s ListStackResourcesOutput) GoString() string {
13670	return s.String()
13671}
13672
13673// SetNextToken sets the NextToken field's value.
13674func (s *ListStackResourcesOutput) SetNextToken(v string) *ListStackResourcesOutput {
13675	s.NextToken = &v
13676	return s
13677}
13678
13679// SetStackResourceSummaries sets the StackResourceSummaries field's value.
13680func (s *ListStackResourcesOutput) SetStackResourceSummaries(v []*StackResourceSummary) *ListStackResourcesOutput {
13681	s.StackResourceSummaries = v
13682	return s
13683}
13684
13685type ListStackSetOperationResultsInput struct {
13686	_ struct{} `type:"structure"`
13687
13688	// [Service-managed permissions] Specifies whether you are acting as an account
13689	// administrator in the organization's management account or as a delegated
13690	// administrator in a member account.
13691	//
13692	// By default, SELF is specified. Use SELF for stack sets with self-managed
13693	// permissions.
13694	//
13695	//    * If you are signed in to the management account, specify SELF.
13696	//
13697	//    * If you are signed in to a delegated administrator account, specify DELEGATED_ADMIN.
13698	//    Your Amazon Web Services account must be registered as a delegated administrator
13699	//    in the management account. For more information, see Register a delegated
13700	//    administrator (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/stacksets-orgs-delegated-admin.html)
13701	//    in the CloudFormation User Guide.
13702	CallAs *string `type:"string" enum:"CallAs"`
13703
13704	// The maximum number of results to be returned with a single call. If the number
13705	// of available results exceeds this maximum, the response includes a NextToken
13706	// value that you can assign to the NextToken request parameter to get the next
13707	// set of results.
13708	MaxResults *int64 `min:"1" type:"integer"`
13709
13710	// If the previous request didn't return all of the remaining results, the response
13711	// object's NextToken parameter value is set to a token. To retrieve the next
13712	// set of results, call ListStackSetOperationResults again and assign that token
13713	// to the request object's NextToken parameter. If there are no remaining results,
13714	// the previous response object's NextToken parameter is set to null.
13715	NextToken *string `min:"1" type:"string"`
13716
13717	// The ID of the stack set operation.
13718	//
13719	// OperationId is a required field
13720	OperationId *string `min:"1" type:"string" required:"true"`
13721
13722	// The name or unique ID of the stack set that you want to get operation results
13723	// for.
13724	//
13725	// StackSetName is a required field
13726	StackSetName *string `type:"string" required:"true"`
13727}
13728
13729// String returns the string representation.
13730//
13731// API parameter values that are decorated as "sensitive" in the API will not
13732// be included in the string output. The member name will be present, but the
13733// value will be replaced with "sensitive".
13734func (s ListStackSetOperationResultsInput) String() string {
13735	return awsutil.Prettify(s)
13736}
13737
13738// GoString returns the string representation.
13739//
13740// API parameter values that are decorated as "sensitive" in the API will not
13741// be included in the string output. The member name will be present, but the
13742// value will be replaced with "sensitive".
13743func (s ListStackSetOperationResultsInput) GoString() string {
13744	return s.String()
13745}
13746
13747// Validate inspects the fields of the type to determine if they are valid.
13748func (s *ListStackSetOperationResultsInput) Validate() error {
13749	invalidParams := request.ErrInvalidParams{Context: "ListStackSetOperationResultsInput"}
13750	if s.MaxResults != nil && *s.MaxResults < 1 {
13751		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
13752	}
13753	if s.NextToken != nil && len(*s.NextToken) < 1 {
13754		invalidParams.Add(request.NewErrParamMinLen("NextToken", 1))
13755	}
13756	if s.OperationId == nil {
13757		invalidParams.Add(request.NewErrParamRequired("OperationId"))
13758	}
13759	if s.OperationId != nil && len(*s.OperationId) < 1 {
13760		invalidParams.Add(request.NewErrParamMinLen("OperationId", 1))
13761	}
13762	if s.StackSetName == nil {
13763		invalidParams.Add(request.NewErrParamRequired("StackSetName"))
13764	}
13765
13766	if invalidParams.Len() > 0 {
13767		return invalidParams
13768	}
13769	return nil
13770}
13771
13772// SetCallAs sets the CallAs field's value.
13773func (s *ListStackSetOperationResultsInput) SetCallAs(v string) *ListStackSetOperationResultsInput {
13774	s.CallAs = &v
13775	return s
13776}
13777
13778// SetMaxResults sets the MaxResults field's value.
13779func (s *ListStackSetOperationResultsInput) SetMaxResults(v int64) *ListStackSetOperationResultsInput {
13780	s.MaxResults = &v
13781	return s
13782}
13783
13784// SetNextToken sets the NextToken field's value.
13785func (s *ListStackSetOperationResultsInput) SetNextToken(v string) *ListStackSetOperationResultsInput {
13786	s.NextToken = &v
13787	return s
13788}
13789
13790// SetOperationId sets the OperationId field's value.
13791func (s *ListStackSetOperationResultsInput) SetOperationId(v string) *ListStackSetOperationResultsInput {
13792	s.OperationId = &v
13793	return s
13794}
13795
13796// SetStackSetName sets the StackSetName field's value.
13797func (s *ListStackSetOperationResultsInput) SetStackSetName(v string) *ListStackSetOperationResultsInput {
13798	s.StackSetName = &v
13799	return s
13800}
13801
13802type ListStackSetOperationResultsOutput struct {
13803	_ struct{} `type:"structure"`
13804
13805	// If the request doesn't return all results, NextToken is set to a token. To
13806	// retrieve the next set of results, call ListOperationResults again and assign
13807	// that token to the request object's NextToken parameter. If there are no remaining
13808	// results, NextToken is set to null.
13809	NextToken *string `min:"1" type:"string"`
13810
13811	// A list of StackSetOperationResultSummary structures that contain information
13812	// about the specified operation results, for accounts and Regions that are
13813	// included in the operation.
13814	Summaries []*StackSetOperationResultSummary `type:"list"`
13815}
13816
13817// String returns the string representation.
13818//
13819// API parameter values that are decorated as "sensitive" in the API will not
13820// be included in the string output. The member name will be present, but the
13821// value will be replaced with "sensitive".
13822func (s ListStackSetOperationResultsOutput) String() string {
13823	return awsutil.Prettify(s)
13824}
13825
13826// GoString returns the string representation.
13827//
13828// API parameter values that are decorated as "sensitive" in the API will not
13829// be included in the string output. The member name will be present, but the
13830// value will be replaced with "sensitive".
13831func (s ListStackSetOperationResultsOutput) GoString() string {
13832	return s.String()
13833}
13834
13835// SetNextToken sets the NextToken field's value.
13836func (s *ListStackSetOperationResultsOutput) SetNextToken(v string) *ListStackSetOperationResultsOutput {
13837	s.NextToken = &v
13838	return s
13839}
13840
13841// SetSummaries sets the Summaries field's value.
13842func (s *ListStackSetOperationResultsOutput) SetSummaries(v []*StackSetOperationResultSummary) *ListStackSetOperationResultsOutput {
13843	s.Summaries = v
13844	return s
13845}
13846
13847type ListStackSetOperationsInput struct {
13848	_ struct{} `type:"structure"`
13849
13850	// [Service-managed permissions] Specifies whether you are acting as an account
13851	// administrator in the organization's management account or as a delegated
13852	// administrator in a member account.
13853	//
13854	// By default, SELF is specified. Use SELF for stack sets with self-managed
13855	// permissions.
13856	//
13857	//    * If you are signed in to the management account, specify SELF.
13858	//
13859	//    * If you are signed in to a delegated administrator account, specify DELEGATED_ADMIN.
13860	//    Your Amazon Web Services account must be registered as a delegated administrator
13861	//    in the management account. For more information, see Register a delegated
13862	//    administrator (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/stacksets-orgs-delegated-admin.html)
13863	//    in the CloudFormation User Guide.
13864	CallAs *string `type:"string" enum:"CallAs"`
13865
13866	// The maximum number of results to be returned with a single call. If the number
13867	// of available results exceeds this maximum, the response includes a NextToken
13868	// value that you can assign to the NextToken request parameter to get the next
13869	// set of results.
13870	MaxResults *int64 `min:"1" type:"integer"`
13871
13872	// If the previous paginated request didn't return all of the remaining results,
13873	// the response object's NextToken parameter value is set to a token. To retrieve
13874	// the next set of results, call ListStackSetOperations again and assign that
13875	// token to the request object's NextToken parameter. If there are no remaining
13876	// results, the previous response object's NextToken parameter is set to null.
13877	NextToken *string `min:"1" type:"string"`
13878
13879	// The name or unique ID of the stack set that you want to get operation summaries
13880	// for.
13881	//
13882	// StackSetName is a required field
13883	StackSetName *string `type:"string" required:"true"`
13884}
13885
13886// String returns the string representation.
13887//
13888// API parameter values that are decorated as "sensitive" in the API will not
13889// be included in the string output. The member name will be present, but the
13890// value will be replaced with "sensitive".
13891func (s ListStackSetOperationsInput) String() string {
13892	return awsutil.Prettify(s)
13893}
13894
13895// GoString returns the string representation.
13896//
13897// API parameter values that are decorated as "sensitive" in the API will not
13898// be included in the string output. The member name will be present, but the
13899// value will be replaced with "sensitive".
13900func (s ListStackSetOperationsInput) GoString() string {
13901	return s.String()
13902}
13903
13904// Validate inspects the fields of the type to determine if they are valid.
13905func (s *ListStackSetOperationsInput) Validate() error {
13906	invalidParams := request.ErrInvalidParams{Context: "ListStackSetOperationsInput"}
13907	if s.MaxResults != nil && *s.MaxResults < 1 {
13908		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
13909	}
13910	if s.NextToken != nil && len(*s.NextToken) < 1 {
13911		invalidParams.Add(request.NewErrParamMinLen("NextToken", 1))
13912	}
13913	if s.StackSetName == nil {
13914		invalidParams.Add(request.NewErrParamRequired("StackSetName"))
13915	}
13916
13917	if invalidParams.Len() > 0 {
13918		return invalidParams
13919	}
13920	return nil
13921}
13922
13923// SetCallAs sets the CallAs field's value.
13924func (s *ListStackSetOperationsInput) SetCallAs(v string) *ListStackSetOperationsInput {
13925	s.CallAs = &v
13926	return s
13927}
13928
13929// SetMaxResults sets the MaxResults field's value.
13930func (s *ListStackSetOperationsInput) SetMaxResults(v int64) *ListStackSetOperationsInput {
13931	s.MaxResults = &v
13932	return s
13933}
13934
13935// SetNextToken sets the NextToken field's value.
13936func (s *ListStackSetOperationsInput) SetNextToken(v string) *ListStackSetOperationsInput {
13937	s.NextToken = &v
13938	return s
13939}
13940
13941// SetStackSetName sets the StackSetName field's value.
13942func (s *ListStackSetOperationsInput) SetStackSetName(v string) *ListStackSetOperationsInput {
13943	s.StackSetName = &v
13944	return s
13945}
13946
13947type ListStackSetOperationsOutput struct {
13948	_ struct{} `type:"structure"`
13949
13950	// If the request doesn't return all results, NextToken is set to a token. To
13951	// retrieve the next set of results, call ListOperationResults again and assign
13952	// that token to the request object's NextToken parameter. If there are no remaining
13953	// results, NextToken is set to null.
13954	NextToken *string `min:"1" type:"string"`
13955
13956	// A list of StackSetOperationSummary structures that contain summary information
13957	// about operations for the specified stack set.
13958	Summaries []*StackSetOperationSummary `type:"list"`
13959}
13960
13961// String returns the string representation.
13962//
13963// API parameter values that are decorated as "sensitive" in the API will not
13964// be included in the string output. The member name will be present, but the
13965// value will be replaced with "sensitive".
13966func (s ListStackSetOperationsOutput) String() string {
13967	return awsutil.Prettify(s)
13968}
13969
13970// GoString returns the string representation.
13971//
13972// API parameter values that are decorated as "sensitive" in the API will not
13973// be included in the string output. The member name will be present, but the
13974// value will be replaced with "sensitive".
13975func (s ListStackSetOperationsOutput) GoString() string {
13976	return s.String()
13977}
13978
13979// SetNextToken sets the NextToken field's value.
13980func (s *ListStackSetOperationsOutput) SetNextToken(v string) *ListStackSetOperationsOutput {
13981	s.NextToken = &v
13982	return s
13983}
13984
13985// SetSummaries sets the Summaries field's value.
13986func (s *ListStackSetOperationsOutput) SetSummaries(v []*StackSetOperationSummary) *ListStackSetOperationsOutput {
13987	s.Summaries = v
13988	return s
13989}
13990
13991type ListStackSetsInput struct {
13992	_ struct{} `type:"structure"`
13993
13994	// [Service-managed permissions] Specifies whether you are acting as an account
13995	// administrator in the management account or as a delegated administrator in
13996	// a member account.
13997	//
13998	// By default, SELF is specified. Use SELF for stack sets with self-managed
13999	// permissions.
14000	//
14001	//    * If you are signed in to the management account, specify SELF.
14002	//
14003	//    * If you are signed in to a delegated administrator account, specify DELEGATED_ADMIN.
14004	//    Your Amazon Web Services account must be registered as a delegated administrator
14005	//    in the management account. For more information, see Register a delegated
14006	//    administrator (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/stacksets-orgs-delegated-admin.html)
14007	//    in the CloudFormation User Guide.
14008	CallAs *string `type:"string" enum:"CallAs"`
14009
14010	// The maximum number of results to be returned with a single call. If the number
14011	// of available results exceeds this maximum, the response includes a NextToken
14012	// value that you can assign to the NextToken request parameter to get the next
14013	// set of results.
14014	MaxResults *int64 `min:"1" type:"integer"`
14015
14016	// If the previous paginated request didn't return all of the remaining results,
14017	// the response object's NextToken parameter value is set to a token. To retrieve
14018	// the next set of results, call ListStackSets again and assign that token to
14019	// the request object's NextToken parameter. If there are no remaining results,
14020	// the previous response object's NextToken parameter is set to null.
14021	NextToken *string `min:"1" type:"string"`
14022
14023	// The status of the stack sets that you want to get summary information about.
14024	Status *string `type:"string" enum:"StackSetStatus"`
14025}
14026
14027// String returns the string representation.
14028//
14029// API parameter values that are decorated as "sensitive" in the API will not
14030// be included in the string output. The member name will be present, but the
14031// value will be replaced with "sensitive".
14032func (s ListStackSetsInput) String() string {
14033	return awsutil.Prettify(s)
14034}
14035
14036// GoString returns the string representation.
14037//
14038// API parameter values that are decorated as "sensitive" in the API will not
14039// be included in the string output. The member name will be present, but the
14040// value will be replaced with "sensitive".
14041func (s ListStackSetsInput) GoString() string {
14042	return s.String()
14043}
14044
14045// Validate inspects the fields of the type to determine if they are valid.
14046func (s *ListStackSetsInput) Validate() error {
14047	invalidParams := request.ErrInvalidParams{Context: "ListStackSetsInput"}
14048	if s.MaxResults != nil && *s.MaxResults < 1 {
14049		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
14050	}
14051	if s.NextToken != nil && len(*s.NextToken) < 1 {
14052		invalidParams.Add(request.NewErrParamMinLen("NextToken", 1))
14053	}
14054
14055	if invalidParams.Len() > 0 {
14056		return invalidParams
14057	}
14058	return nil
14059}
14060
14061// SetCallAs sets the CallAs field's value.
14062func (s *ListStackSetsInput) SetCallAs(v string) *ListStackSetsInput {
14063	s.CallAs = &v
14064	return s
14065}
14066
14067// SetMaxResults sets the MaxResults field's value.
14068func (s *ListStackSetsInput) SetMaxResults(v int64) *ListStackSetsInput {
14069	s.MaxResults = &v
14070	return s
14071}
14072
14073// SetNextToken sets the NextToken field's value.
14074func (s *ListStackSetsInput) SetNextToken(v string) *ListStackSetsInput {
14075	s.NextToken = &v
14076	return s
14077}
14078
14079// SetStatus sets the Status field's value.
14080func (s *ListStackSetsInput) SetStatus(v string) *ListStackSetsInput {
14081	s.Status = &v
14082	return s
14083}
14084
14085type ListStackSetsOutput struct {
14086	_ struct{} `type:"structure"`
14087
14088	// If the request doesn't return all of the remaining results, NextToken is
14089	// set to a token. To retrieve the next set of results, call ListStackInstances
14090	// again and assign that token to the request object's NextToken parameter.
14091	// If the request returns all results, NextToken is set to null.
14092	NextToken *string `min:"1" type:"string"`
14093
14094	// A list of StackSetSummary structures that contain information about the user's
14095	// stack sets.
14096	Summaries []*StackSetSummary `type:"list"`
14097}
14098
14099// String returns the string representation.
14100//
14101// API parameter values that are decorated as "sensitive" in the API will not
14102// be included in the string output. The member name will be present, but the
14103// value will be replaced with "sensitive".
14104func (s ListStackSetsOutput) String() string {
14105	return awsutil.Prettify(s)
14106}
14107
14108// GoString returns the string representation.
14109//
14110// API parameter values that are decorated as "sensitive" in the API will not
14111// be included in the string output. The member name will be present, but the
14112// value will be replaced with "sensitive".
14113func (s ListStackSetsOutput) GoString() string {
14114	return s.String()
14115}
14116
14117// SetNextToken sets the NextToken field's value.
14118func (s *ListStackSetsOutput) SetNextToken(v string) *ListStackSetsOutput {
14119	s.NextToken = &v
14120	return s
14121}
14122
14123// SetSummaries sets the Summaries field's value.
14124func (s *ListStackSetsOutput) SetSummaries(v []*StackSetSummary) *ListStackSetsOutput {
14125	s.Summaries = v
14126	return s
14127}
14128
14129// The input for ListStacks action.
14130type ListStacksInput struct {
14131	_ struct{} `type:"structure"`
14132
14133	// A string that identifies the next page of stacks that you want to retrieve.
14134	NextToken *string `min:"1" type:"string"`
14135
14136	// Stack status to use as a filter. Specify one or more stack status codes to
14137	// list only stacks with the specified status codes. For a complete list of
14138	// stack status codes, see the StackStatus parameter of the Stack data type.
14139	StackStatusFilter []*string `type:"list"`
14140}
14141
14142// String returns the string representation.
14143//
14144// API parameter values that are decorated as "sensitive" in the API will not
14145// be included in the string output. The member name will be present, but the
14146// value will be replaced with "sensitive".
14147func (s ListStacksInput) String() string {
14148	return awsutil.Prettify(s)
14149}
14150
14151// GoString returns the string representation.
14152//
14153// API parameter values that are decorated as "sensitive" in the API will not
14154// be included in the string output. The member name will be present, but the
14155// value will be replaced with "sensitive".
14156func (s ListStacksInput) GoString() string {
14157	return s.String()
14158}
14159
14160// Validate inspects the fields of the type to determine if they are valid.
14161func (s *ListStacksInput) Validate() error {
14162	invalidParams := request.ErrInvalidParams{Context: "ListStacksInput"}
14163	if s.NextToken != nil && len(*s.NextToken) < 1 {
14164		invalidParams.Add(request.NewErrParamMinLen("NextToken", 1))
14165	}
14166
14167	if invalidParams.Len() > 0 {
14168		return invalidParams
14169	}
14170	return nil
14171}
14172
14173// SetNextToken sets the NextToken field's value.
14174func (s *ListStacksInput) SetNextToken(v string) *ListStacksInput {
14175	s.NextToken = &v
14176	return s
14177}
14178
14179// SetStackStatusFilter sets the StackStatusFilter field's value.
14180func (s *ListStacksInput) SetStackStatusFilter(v []*string) *ListStacksInput {
14181	s.StackStatusFilter = v
14182	return s
14183}
14184
14185// The output for ListStacks action.
14186type ListStacksOutput struct {
14187	_ struct{} `type:"structure"`
14188
14189	// If the output exceeds 1 MB in size, a string that identifies the next page
14190	// of stacks. If no additional page exists, this value is null.
14191	NextToken *string `min:"1" type:"string"`
14192
14193	// A list of StackSummary structures containing information about the specified
14194	// stacks.
14195	StackSummaries []*StackSummary `type:"list"`
14196}
14197
14198// String returns the string representation.
14199//
14200// API parameter values that are decorated as "sensitive" in the API will not
14201// be included in the string output. The member name will be present, but the
14202// value will be replaced with "sensitive".
14203func (s ListStacksOutput) String() string {
14204	return awsutil.Prettify(s)
14205}
14206
14207// GoString returns the string representation.
14208//
14209// API parameter values that are decorated as "sensitive" in the API will not
14210// be included in the string output. The member name will be present, but the
14211// value will be replaced with "sensitive".
14212func (s ListStacksOutput) GoString() string {
14213	return s.String()
14214}
14215
14216// SetNextToken sets the NextToken field's value.
14217func (s *ListStacksOutput) SetNextToken(v string) *ListStacksOutput {
14218	s.NextToken = &v
14219	return s
14220}
14221
14222// SetStackSummaries sets the StackSummaries field's value.
14223func (s *ListStacksOutput) SetStackSummaries(v []*StackSummary) *ListStacksOutput {
14224	s.StackSummaries = v
14225	return s
14226}
14227
14228type ListTypeRegistrationsInput struct {
14229	_ struct{} `type:"structure"`
14230
14231	// The maximum number of results to be returned with a single call. If the number
14232	// of available results exceeds this maximum, the response includes a NextToken
14233	// value that you can assign to the NextToken request parameter to get the next
14234	// set of results.
14235	MaxResults *int64 `min:"1" type:"integer"`
14236
14237	// If the previous paginated request didn't return all of the remaining results,
14238	// the response object's NextToken parameter value is set to a token. To retrieve
14239	// the next set of results, call this action again and assign that token to
14240	// the request object's NextToken parameter. If there are no remaining results,
14241	// the previous response object's NextToken parameter is set to null.
14242	NextToken *string `min:"1" type:"string"`
14243
14244	// The current status of the extension registration request.
14245	//
14246	// The default is IN_PROGRESS.
14247	RegistrationStatusFilter *string `type:"string" enum:"RegistrationStatus"`
14248
14249	// The kind of extension.
14250	//
14251	// Conditional: You must specify either TypeName and Type, or Arn.
14252	Type *string `type:"string" enum:"RegistryType"`
14253
14254	// The Amazon Resource Name (ARN) of the extension.
14255	//
14256	// Conditional: You must specify either TypeName and Type, or Arn.
14257	TypeArn *string `type:"string"`
14258
14259	// The name of the extension.
14260	//
14261	// Conditional: You must specify either TypeName and Type, or Arn.
14262	TypeName *string `min:"10" type:"string"`
14263}
14264
14265// String returns the string representation.
14266//
14267// API parameter values that are decorated as "sensitive" in the API will not
14268// be included in the string output. The member name will be present, but the
14269// value will be replaced with "sensitive".
14270func (s ListTypeRegistrationsInput) String() string {
14271	return awsutil.Prettify(s)
14272}
14273
14274// GoString returns the string representation.
14275//
14276// API parameter values that are decorated as "sensitive" in the API will not
14277// be included in the string output. The member name will be present, but the
14278// value will be replaced with "sensitive".
14279func (s ListTypeRegistrationsInput) GoString() string {
14280	return s.String()
14281}
14282
14283// Validate inspects the fields of the type to determine if they are valid.
14284func (s *ListTypeRegistrationsInput) Validate() error {
14285	invalidParams := request.ErrInvalidParams{Context: "ListTypeRegistrationsInput"}
14286	if s.MaxResults != nil && *s.MaxResults < 1 {
14287		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
14288	}
14289	if s.NextToken != nil && len(*s.NextToken) < 1 {
14290		invalidParams.Add(request.NewErrParamMinLen("NextToken", 1))
14291	}
14292	if s.TypeName != nil && len(*s.TypeName) < 10 {
14293		invalidParams.Add(request.NewErrParamMinLen("TypeName", 10))
14294	}
14295
14296	if invalidParams.Len() > 0 {
14297		return invalidParams
14298	}
14299	return nil
14300}
14301
14302// SetMaxResults sets the MaxResults field's value.
14303func (s *ListTypeRegistrationsInput) SetMaxResults(v int64) *ListTypeRegistrationsInput {
14304	s.MaxResults = &v
14305	return s
14306}
14307
14308// SetNextToken sets the NextToken field's value.
14309func (s *ListTypeRegistrationsInput) SetNextToken(v string) *ListTypeRegistrationsInput {
14310	s.NextToken = &v
14311	return s
14312}
14313
14314// SetRegistrationStatusFilter sets the RegistrationStatusFilter field's value.
14315func (s *ListTypeRegistrationsInput) SetRegistrationStatusFilter(v string) *ListTypeRegistrationsInput {
14316	s.RegistrationStatusFilter = &v
14317	return s
14318}
14319
14320// SetType sets the Type field's value.
14321func (s *ListTypeRegistrationsInput) SetType(v string) *ListTypeRegistrationsInput {
14322	s.Type = &v
14323	return s
14324}
14325
14326// SetTypeArn sets the TypeArn field's value.
14327func (s *ListTypeRegistrationsInput) SetTypeArn(v string) *ListTypeRegistrationsInput {
14328	s.TypeArn = &v
14329	return s
14330}
14331
14332// SetTypeName sets the TypeName field's value.
14333func (s *ListTypeRegistrationsInput) SetTypeName(v string) *ListTypeRegistrationsInput {
14334	s.TypeName = &v
14335	return s
14336}
14337
14338type ListTypeRegistrationsOutput struct {
14339	_ struct{} `type:"structure"`
14340
14341	// If the request doesn't return all of the remaining results, NextToken is
14342	// set to a token. To retrieve the next set of results, call this action again
14343	// and assign that token to the request object's NextToken parameter. If the
14344	// request returns all results, NextToken is set to null.
14345	NextToken *string `min:"1" type:"string"`
14346
14347	// A list of extension registration tokens.
14348	//
14349	// Use DescribeTypeRegistration to return detailed information about a type
14350	// registration request.
14351	RegistrationTokenList []*string `type:"list"`
14352}
14353
14354// String returns the string representation.
14355//
14356// API parameter values that are decorated as "sensitive" in the API will not
14357// be included in the string output. The member name will be present, but the
14358// value will be replaced with "sensitive".
14359func (s ListTypeRegistrationsOutput) String() string {
14360	return awsutil.Prettify(s)
14361}
14362
14363// GoString returns the string representation.
14364//
14365// API parameter values that are decorated as "sensitive" in the API will not
14366// be included in the string output. The member name will be present, but the
14367// value will be replaced with "sensitive".
14368func (s ListTypeRegistrationsOutput) GoString() string {
14369	return s.String()
14370}
14371
14372// SetNextToken sets the NextToken field's value.
14373func (s *ListTypeRegistrationsOutput) SetNextToken(v string) *ListTypeRegistrationsOutput {
14374	s.NextToken = &v
14375	return s
14376}
14377
14378// SetRegistrationTokenList sets the RegistrationTokenList field's value.
14379func (s *ListTypeRegistrationsOutput) SetRegistrationTokenList(v []*string) *ListTypeRegistrationsOutput {
14380	s.RegistrationTokenList = v
14381	return s
14382}
14383
14384type ListTypeVersionsInput struct {
14385	_ struct{} `type:"structure"`
14386
14387	// The Amazon Resource Name (ARN) of the extension for which you want version
14388	// summary information.
14389	//
14390	// Conditional: You must specify either TypeName and Type, or Arn.
14391	Arn *string `type:"string"`
14392
14393	// The deprecation status of the extension versions that you want to get summary
14394	// information about.
14395	//
14396	// Valid values include:
14397	//
14398	//    * LIVE: The extension version is registered and can be used in CloudFormation
14399	//    operations, dependent on its provisioning behavior and visibility scope.
14400	//
14401	//    * DEPRECATED: The extension version has been deregistered and can no longer
14402	//    be used in CloudFormation operations.
14403	//
14404	// The default is LIVE.
14405	DeprecatedStatus *string `type:"string" enum:"DeprecatedStatus"`
14406
14407	// The maximum number of results to be returned with a single call. If the number
14408	// of available results exceeds this maximum, the response includes a NextToken
14409	// value that you can assign to the NextToken request parameter to get the next
14410	// set of results.
14411	MaxResults *int64 `min:"1" type:"integer"`
14412
14413	// If the previous paginated request didn't return all of the remaining results,
14414	// the response object's NextToken parameter value is set to a token. To retrieve
14415	// the next set of results, call this action again and assign that token to
14416	// the request object's NextToken parameter. If there are no remaining results,
14417	// the previous response object's NextToken parameter is set to null.
14418	NextToken *string `min:"1" type:"string"`
14419
14420	// The publisher ID of the extension publisher.
14421	//
14422	// Extensions published by Amazon are not assigned a publisher ID.
14423	PublisherId *string `min:"1" type:"string"`
14424
14425	// The kind of the extension.
14426	//
14427	// Conditional: You must specify either TypeName and Type, or Arn.
14428	Type *string `type:"string" enum:"RegistryType"`
14429
14430	// The name of the extension for which you want version summary information.
14431	//
14432	// Conditional: You must specify either TypeName and Type, or Arn.
14433	TypeName *string `min:"10" type:"string"`
14434}
14435
14436// String returns the string representation.
14437//
14438// API parameter values that are decorated as "sensitive" in the API will not
14439// be included in the string output. The member name will be present, but the
14440// value will be replaced with "sensitive".
14441func (s ListTypeVersionsInput) String() string {
14442	return awsutil.Prettify(s)
14443}
14444
14445// GoString returns the string representation.
14446//
14447// API parameter values that are decorated as "sensitive" in the API will not
14448// be included in the string output. The member name will be present, but the
14449// value will be replaced with "sensitive".
14450func (s ListTypeVersionsInput) GoString() string {
14451	return s.String()
14452}
14453
14454// Validate inspects the fields of the type to determine if they are valid.
14455func (s *ListTypeVersionsInput) Validate() error {
14456	invalidParams := request.ErrInvalidParams{Context: "ListTypeVersionsInput"}
14457	if s.MaxResults != nil && *s.MaxResults < 1 {
14458		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
14459	}
14460	if s.NextToken != nil && len(*s.NextToken) < 1 {
14461		invalidParams.Add(request.NewErrParamMinLen("NextToken", 1))
14462	}
14463	if s.PublisherId != nil && len(*s.PublisherId) < 1 {
14464		invalidParams.Add(request.NewErrParamMinLen("PublisherId", 1))
14465	}
14466	if s.TypeName != nil && len(*s.TypeName) < 10 {
14467		invalidParams.Add(request.NewErrParamMinLen("TypeName", 10))
14468	}
14469
14470	if invalidParams.Len() > 0 {
14471		return invalidParams
14472	}
14473	return nil
14474}
14475
14476// SetArn sets the Arn field's value.
14477func (s *ListTypeVersionsInput) SetArn(v string) *ListTypeVersionsInput {
14478	s.Arn = &v
14479	return s
14480}
14481
14482// SetDeprecatedStatus sets the DeprecatedStatus field's value.
14483func (s *ListTypeVersionsInput) SetDeprecatedStatus(v string) *ListTypeVersionsInput {
14484	s.DeprecatedStatus = &v
14485	return s
14486}
14487
14488// SetMaxResults sets the MaxResults field's value.
14489func (s *ListTypeVersionsInput) SetMaxResults(v int64) *ListTypeVersionsInput {
14490	s.MaxResults = &v
14491	return s
14492}
14493
14494// SetNextToken sets the NextToken field's value.
14495func (s *ListTypeVersionsInput) SetNextToken(v string) *ListTypeVersionsInput {
14496	s.NextToken = &v
14497	return s
14498}
14499
14500// SetPublisherId sets the PublisherId field's value.
14501func (s *ListTypeVersionsInput) SetPublisherId(v string) *ListTypeVersionsInput {
14502	s.PublisherId = &v
14503	return s
14504}
14505
14506// SetType sets the Type field's value.
14507func (s *ListTypeVersionsInput) SetType(v string) *ListTypeVersionsInput {
14508	s.Type = &v
14509	return s
14510}
14511
14512// SetTypeName sets the TypeName field's value.
14513func (s *ListTypeVersionsInput) SetTypeName(v string) *ListTypeVersionsInput {
14514	s.TypeName = &v
14515	return s
14516}
14517
14518type ListTypeVersionsOutput struct {
14519	_ struct{} `type:"structure"`
14520
14521	// If the request doesn't return all of the remaining results, NextToken is
14522	// set to a token. To retrieve the next set of results, call this action again
14523	// and assign that token to the request object's NextToken parameter. If the
14524	// request returns all results, NextToken is set to null.
14525	NextToken *string `min:"1" type:"string"`
14526
14527	// A list of TypeVersionSummary structures that contain information about the
14528	// specified extension's versions.
14529	TypeVersionSummaries []*TypeVersionSummary `type:"list"`
14530}
14531
14532// String returns the string representation.
14533//
14534// API parameter values that are decorated as "sensitive" in the API will not
14535// be included in the string output. The member name will be present, but the
14536// value will be replaced with "sensitive".
14537func (s ListTypeVersionsOutput) String() string {
14538	return awsutil.Prettify(s)
14539}
14540
14541// GoString returns the string representation.
14542//
14543// API parameter values that are decorated as "sensitive" in the API will not
14544// be included in the string output. The member name will be present, but the
14545// value will be replaced with "sensitive".
14546func (s ListTypeVersionsOutput) GoString() string {
14547	return s.String()
14548}
14549
14550// SetNextToken sets the NextToken field's value.
14551func (s *ListTypeVersionsOutput) SetNextToken(v string) *ListTypeVersionsOutput {
14552	s.NextToken = &v
14553	return s
14554}
14555
14556// SetTypeVersionSummaries sets the TypeVersionSummaries field's value.
14557func (s *ListTypeVersionsOutput) SetTypeVersionSummaries(v []*TypeVersionSummary) *ListTypeVersionsOutput {
14558	s.TypeVersionSummaries = v
14559	return s
14560}
14561
14562type ListTypesInput struct {
14563	_ struct{} `type:"structure"`
14564
14565	// The deprecation status of the extension that you want to get summary information
14566	// about.
14567	//
14568	// Valid values include:
14569	//
14570	//    * LIVE: The extension is registered for use in CloudFormation operations.
14571	//
14572	//    * DEPRECATED: The extension has been deregistered and can no longer be
14573	//    used in CloudFormation operations.
14574	DeprecatedStatus *string `type:"string" enum:"DeprecatedStatus"`
14575
14576	// Filter criteria to use in determining which extensions to return.
14577	//
14578	// If you specify a filter, CloudFormation ignores any specified Visibility
14579	// value when returning the list of types.
14580	Filters *TypeFilters `type:"structure"`
14581
14582	// The maximum number of results to be returned with a single call. If the number
14583	// of available results exceeds this maximum, the response includes a NextToken
14584	// value that you can assign to the NextToken request parameter to get the next
14585	// set of results.
14586	MaxResults *int64 `min:"1" type:"integer"`
14587
14588	// If the previous paginated request didn't return all of the remaining results,
14589	// the response object's NextToken parameter value is set to a token. To retrieve
14590	// the next set of results, call this action again and assign that token to
14591	// the request object's NextToken parameter. If there are no remaining results,
14592	// the previous response object's NextToken parameter is set to null.
14593	NextToken *string `min:"1" type:"string"`
14594
14595	// For resource types, the provisioning behavior of the resource type. CloudFormation
14596	// determines the provisioning type during registration, based on the types
14597	// of handlers in the schema handler package submitted.
14598	//
14599	// Valid values include:
14600	//
14601	//    * FULLY_MUTABLE: The resource type includes an update handler to process
14602	//    updates to the type during stack update operations.
14603	//
14604	//    * IMMUTABLE: The resource type does not include an update handler, so
14605	//    the type cannot be updated and must instead be replaced during stack update
14606	//    operations.
14607	//
14608	//    * NON_PROVISIONABLE: The resource type does not include create, read,
14609	//    and delete handlers, and therefore cannot actually be provisioned.
14610	//
14611	// The default is FULLY_MUTABLE.
14612	ProvisioningType *string `type:"string" enum:"ProvisioningType"`
14613
14614	// The type of extension.
14615	Type *string `type:"string" enum:"RegistryType"`
14616
14617	// The scope at which the extensions are visible and usable in CloudFormation
14618	// operations.
14619	//
14620	// Valid values include:
14621	//
14622	//    * PRIVATE: Extensions that are visible and usable within this account
14623	//    and region. This includes: Private extensions you have registered in this
14624	//    account and region. Public extensions that you have activated in this
14625	//    account and region.
14626	//
14627	//    * PUBLIC: Extensions that are publicly visible and available to be activated
14628	//    within any Amazon account. This includes extensions from Amazon, as well
14629	//    as third-party publishers.
14630	//
14631	// The default is PRIVATE.
14632	Visibility *string `type:"string" enum:"Visibility"`
14633}
14634
14635// String returns the string representation.
14636//
14637// API parameter values that are decorated as "sensitive" in the API will not
14638// be included in the string output. The member name will be present, but the
14639// value will be replaced with "sensitive".
14640func (s ListTypesInput) String() string {
14641	return awsutil.Prettify(s)
14642}
14643
14644// GoString returns the string representation.
14645//
14646// API parameter values that are decorated as "sensitive" in the API will not
14647// be included in the string output. The member name will be present, but the
14648// value will be replaced with "sensitive".
14649func (s ListTypesInput) GoString() string {
14650	return s.String()
14651}
14652
14653// Validate inspects the fields of the type to determine if they are valid.
14654func (s *ListTypesInput) Validate() error {
14655	invalidParams := request.ErrInvalidParams{Context: "ListTypesInput"}
14656	if s.MaxResults != nil && *s.MaxResults < 1 {
14657		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
14658	}
14659	if s.NextToken != nil && len(*s.NextToken) < 1 {
14660		invalidParams.Add(request.NewErrParamMinLen("NextToken", 1))
14661	}
14662	if s.Filters != nil {
14663		if err := s.Filters.Validate(); err != nil {
14664			invalidParams.AddNested("Filters", err.(request.ErrInvalidParams))
14665		}
14666	}
14667
14668	if invalidParams.Len() > 0 {
14669		return invalidParams
14670	}
14671	return nil
14672}
14673
14674// SetDeprecatedStatus sets the DeprecatedStatus field's value.
14675func (s *ListTypesInput) SetDeprecatedStatus(v string) *ListTypesInput {
14676	s.DeprecatedStatus = &v
14677	return s
14678}
14679
14680// SetFilters sets the Filters field's value.
14681func (s *ListTypesInput) SetFilters(v *TypeFilters) *ListTypesInput {
14682	s.Filters = v
14683	return s
14684}
14685
14686// SetMaxResults sets the MaxResults field's value.
14687func (s *ListTypesInput) SetMaxResults(v int64) *ListTypesInput {
14688	s.MaxResults = &v
14689	return s
14690}
14691
14692// SetNextToken sets the NextToken field's value.
14693func (s *ListTypesInput) SetNextToken(v string) *ListTypesInput {
14694	s.NextToken = &v
14695	return s
14696}
14697
14698// SetProvisioningType sets the ProvisioningType field's value.
14699func (s *ListTypesInput) SetProvisioningType(v string) *ListTypesInput {
14700	s.ProvisioningType = &v
14701	return s
14702}
14703
14704// SetType sets the Type field's value.
14705func (s *ListTypesInput) SetType(v string) *ListTypesInput {
14706	s.Type = &v
14707	return s
14708}
14709
14710// SetVisibility sets the Visibility field's value.
14711func (s *ListTypesInput) SetVisibility(v string) *ListTypesInput {
14712	s.Visibility = &v
14713	return s
14714}
14715
14716type ListTypesOutput struct {
14717	_ struct{} `type:"structure"`
14718
14719	// If the request doesn't return all of the remaining results, NextToken is
14720	// set to a token. To retrieve the next set of results, call this action again
14721	// and assign that token to the request object's NextToken parameter. If the
14722	// request returns all results, NextToken is set to null.
14723	NextToken *string `min:"1" type:"string"`
14724
14725	// A list of TypeSummary structures that contain information about the specified
14726	// extensions.
14727	TypeSummaries []*TypeSummary `type:"list"`
14728}
14729
14730// String returns the string representation.
14731//
14732// API parameter values that are decorated as "sensitive" in the API will not
14733// be included in the string output. The member name will be present, but the
14734// value will be replaced with "sensitive".
14735func (s ListTypesOutput) String() string {
14736	return awsutil.Prettify(s)
14737}
14738
14739// GoString returns the string representation.
14740//
14741// API parameter values that are decorated as "sensitive" in the API will not
14742// be included in the string output. The member name will be present, but the
14743// value will be replaced with "sensitive".
14744func (s ListTypesOutput) GoString() string {
14745	return s.String()
14746}
14747
14748// SetNextToken sets the NextToken field's value.
14749func (s *ListTypesOutput) SetNextToken(v string) *ListTypesOutput {
14750	s.NextToken = &v
14751	return s
14752}
14753
14754// SetTypeSummaries sets the TypeSummaries field's value.
14755func (s *ListTypesOutput) SetTypeSummaries(v []*TypeSummary) *ListTypesOutput {
14756	s.TypeSummaries = v
14757	return s
14758}
14759
14760// Contains logging configuration information for an extension.
14761type LoggingConfig struct {
14762	_ struct{} `type:"structure"`
14763
14764	// The Amazon CloudWatch log group to which CloudFormation sends error logging
14765	// information when invoking the extension's handlers.
14766	//
14767	// LogGroupName is a required field
14768	LogGroupName *string `min:"1" type:"string" required:"true"`
14769
14770	// The ARN of the role that CloudFormation should assume when sending log entries
14771	// to CloudWatch logs.
14772	//
14773	// LogRoleArn is a required field
14774	LogRoleArn *string `min:"1" type:"string" required:"true"`
14775}
14776
14777// String returns the string representation.
14778//
14779// API parameter values that are decorated as "sensitive" in the API will not
14780// be included in the string output. The member name will be present, but the
14781// value will be replaced with "sensitive".
14782func (s LoggingConfig) String() string {
14783	return awsutil.Prettify(s)
14784}
14785
14786// GoString returns the string representation.
14787//
14788// API parameter values that are decorated as "sensitive" in the API will not
14789// be included in the string output. The member name will be present, but the
14790// value will be replaced with "sensitive".
14791func (s LoggingConfig) GoString() string {
14792	return s.String()
14793}
14794
14795// Validate inspects the fields of the type to determine if they are valid.
14796func (s *LoggingConfig) Validate() error {
14797	invalidParams := request.ErrInvalidParams{Context: "LoggingConfig"}
14798	if s.LogGroupName == nil {
14799		invalidParams.Add(request.NewErrParamRequired("LogGroupName"))
14800	}
14801	if s.LogGroupName != nil && len(*s.LogGroupName) < 1 {
14802		invalidParams.Add(request.NewErrParamMinLen("LogGroupName", 1))
14803	}
14804	if s.LogRoleArn == nil {
14805		invalidParams.Add(request.NewErrParamRequired("LogRoleArn"))
14806	}
14807	if s.LogRoleArn != nil && len(*s.LogRoleArn) < 1 {
14808		invalidParams.Add(request.NewErrParamMinLen("LogRoleArn", 1))
14809	}
14810
14811	if invalidParams.Len() > 0 {
14812		return invalidParams
14813	}
14814	return nil
14815}
14816
14817// SetLogGroupName sets the LogGroupName field's value.
14818func (s *LoggingConfig) SetLogGroupName(v string) *LoggingConfig {
14819	s.LogGroupName = &v
14820	return s
14821}
14822
14823// SetLogRoleArn sets the LogRoleArn field's value.
14824func (s *LoggingConfig) SetLogRoleArn(v string) *LoggingConfig {
14825	s.LogRoleArn = &v
14826	return s
14827}
14828
14829// Contains information about the module from which the resource was created,
14830// if the resource was created from a module included in the stack template.
14831//
14832// For more information on modules, see Using modules to encapsulate and reuse
14833// resource configurations (AWSCloudFormation/latest/UserGuide/modules.html)
14834// in the CloudFormation User Guide.
14835type ModuleInfo struct {
14836	_ struct{} `type:"structure"`
14837
14838	// A concantenated list of the logical IDs of the module or modules containing
14839	// the resource. Modules are listed starting with the inner-most nested module,
14840	// and separated by /.
14841	//
14842	// In the following example, the resource was created from a module, moduleA,
14843	// that is nested inside a parent module, moduleB.
14844	//
14845	// moduleA/moduleB
14846	//
14847	// For more information, see Referencing resources in a module (AWSCloudFormation/latest/UserGuide/modules.html#module-ref-resources)
14848	// in the CloudFormation User Guide.
14849	LogicalIdHierarchy *string `type:"string"`
14850
14851	// A concantenated list of the the module type or types containing the resource.
14852	// Module types are listed starting with the inner-most nested module, and separated
14853	// by /.
14854	//
14855	// In the following example, the resource was created from a module of type
14856	// AWS::First::Example::MODULE, that is nested inside a parent module of type
14857	// AWS::Second::Example::MODULE.
14858	//
14859	// AWS::First::Example::MODULE/AWS::Second::Example::MODULE
14860	TypeHierarchy *string `type:"string"`
14861}
14862
14863// String returns the string representation.
14864//
14865// API parameter values that are decorated as "sensitive" in the API will not
14866// be included in the string output. The member name will be present, but the
14867// value will be replaced with "sensitive".
14868func (s ModuleInfo) String() string {
14869	return awsutil.Prettify(s)
14870}
14871
14872// GoString returns the string representation.
14873//
14874// API parameter values that are decorated as "sensitive" in the API will not
14875// be included in the string output. The member name will be present, but the
14876// value will be replaced with "sensitive".
14877func (s ModuleInfo) GoString() string {
14878	return s.String()
14879}
14880
14881// SetLogicalIdHierarchy sets the LogicalIdHierarchy field's value.
14882func (s *ModuleInfo) SetLogicalIdHierarchy(v string) *ModuleInfo {
14883	s.LogicalIdHierarchy = &v
14884	return s
14885}
14886
14887// SetTypeHierarchy sets the TypeHierarchy field's value.
14888func (s *ModuleInfo) SetTypeHierarchy(v string) *ModuleInfo {
14889	s.TypeHierarchy = &v
14890	return s
14891}
14892
14893// The Output data type.
14894type Output struct {
14895	_ struct{} `type:"structure"`
14896
14897	// User defined description associated with the output.
14898	Description *string `min:"1" type:"string"`
14899
14900	// The name of the export associated with the output.
14901	ExportName *string `type:"string"`
14902
14903	// The key associated with the output.
14904	OutputKey *string `type:"string"`
14905
14906	// The value associated with the output.
14907	OutputValue *string `type:"string"`
14908}
14909
14910// String returns the string representation.
14911//
14912// API parameter values that are decorated as "sensitive" in the API will not
14913// be included in the string output. The member name will be present, but the
14914// value will be replaced with "sensitive".
14915func (s Output) String() string {
14916	return awsutil.Prettify(s)
14917}
14918
14919// GoString returns the string representation.
14920//
14921// API parameter values that are decorated as "sensitive" in the API will not
14922// be included in the string output. The member name will be present, but the
14923// value will be replaced with "sensitive".
14924func (s Output) GoString() string {
14925	return s.String()
14926}
14927
14928// SetDescription sets the Description field's value.
14929func (s *Output) SetDescription(v string) *Output {
14930	s.Description = &v
14931	return s
14932}
14933
14934// SetExportName sets the ExportName field's value.
14935func (s *Output) SetExportName(v string) *Output {
14936	s.ExportName = &v
14937	return s
14938}
14939
14940// SetOutputKey sets the OutputKey field's value.
14941func (s *Output) SetOutputKey(v string) *Output {
14942	s.OutputKey = &v
14943	return s
14944}
14945
14946// SetOutputValue sets the OutputValue field's value.
14947func (s *Output) SetOutputValue(v string) *Output {
14948	s.OutputValue = &v
14949	return s
14950}
14951
14952// The Parameter data type.
14953type Parameter struct {
14954	_ struct{} `type:"structure"`
14955
14956	// The key associated with the parameter. If you don't specify a key and value
14957	// for a particular parameter, CloudFormation uses the default value that is
14958	// specified in your template.
14959	ParameterKey *string `type:"string"`
14960
14961	// The input value associated with the parameter.
14962	ParameterValue *string `type:"string"`
14963
14964	// Read-only. The value that corresponds to a Systems Manager parameter key.
14965	// 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)
14966	// in the template.
14967	ResolvedValue *string `type:"string"`
14968
14969	// During a stack update, use the existing parameter value that the stack is
14970	// using for a given parameter key. If you specify true, do not specify a parameter
14971	// value.
14972	UsePreviousValue *bool `type:"boolean"`
14973}
14974
14975// String returns the string representation.
14976//
14977// API parameter values that are decorated as "sensitive" in the API will not
14978// be included in the string output. The member name will be present, but the
14979// value will be replaced with "sensitive".
14980func (s Parameter) String() string {
14981	return awsutil.Prettify(s)
14982}
14983
14984// GoString returns the string representation.
14985//
14986// API parameter values that are decorated as "sensitive" in the API will not
14987// be included in the string output. The member name will be present, but the
14988// value will be replaced with "sensitive".
14989func (s Parameter) GoString() string {
14990	return s.String()
14991}
14992
14993// SetParameterKey sets the ParameterKey field's value.
14994func (s *Parameter) SetParameterKey(v string) *Parameter {
14995	s.ParameterKey = &v
14996	return s
14997}
14998
14999// SetParameterValue sets the ParameterValue field's value.
15000func (s *Parameter) SetParameterValue(v string) *Parameter {
15001	s.ParameterValue = &v
15002	return s
15003}
15004
15005// SetResolvedValue sets the ResolvedValue field's value.
15006func (s *Parameter) SetResolvedValue(v string) *Parameter {
15007	s.ResolvedValue = &v
15008	return s
15009}
15010
15011// SetUsePreviousValue sets the UsePreviousValue field's value.
15012func (s *Parameter) SetUsePreviousValue(v bool) *Parameter {
15013	s.UsePreviousValue = &v
15014	return s
15015}
15016
15017// A set of criteria that CloudFormation uses to validate parameter values.
15018// Although other constraints might be defined in the stack template, CloudFormation
15019// returns only the AllowedValues property.
15020type ParameterConstraints struct {
15021	_ struct{} `type:"structure"`
15022
15023	// A list of values that are permitted for a parameter.
15024	AllowedValues []*string `type:"list"`
15025}
15026
15027// String returns the string representation.
15028//
15029// API parameter values that are decorated as "sensitive" in the API will not
15030// be included in the string output. The member name will be present, but the
15031// value will be replaced with "sensitive".
15032func (s ParameterConstraints) String() string {
15033	return awsutil.Prettify(s)
15034}
15035
15036// GoString returns the string representation.
15037//
15038// API parameter values that are decorated as "sensitive" in the API will not
15039// be included in the string output. The member name will be present, but the
15040// value will be replaced with "sensitive".
15041func (s ParameterConstraints) GoString() string {
15042	return s.String()
15043}
15044
15045// SetAllowedValues sets the AllowedValues field's value.
15046func (s *ParameterConstraints) SetAllowedValues(v []*string) *ParameterConstraints {
15047	s.AllowedValues = v
15048	return s
15049}
15050
15051// The ParameterDeclaration data type.
15052type ParameterDeclaration struct {
15053	_ struct{} `type:"structure"`
15054
15055	// The default value of the parameter.
15056	DefaultValue *string `type:"string"`
15057
15058	// The description that is associate with the parameter.
15059	Description *string `min:"1" type:"string"`
15060
15061	// Flag that indicates whether the parameter value is shown as plain text in
15062	// logs and in the Amazon Web Services Management Console.
15063	NoEcho *bool `type:"boolean"`
15064
15065	// The criteria that CloudFormation uses to validate parameter values.
15066	ParameterConstraints *ParameterConstraints `type:"structure"`
15067
15068	// The name that is associated with the parameter.
15069	ParameterKey *string `type:"string"`
15070
15071	// The type of parameter.
15072	ParameterType *string `type:"string"`
15073}
15074
15075// String returns the string representation.
15076//
15077// API parameter values that are decorated as "sensitive" in the API will not
15078// be included in the string output. The member name will be present, but the
15079// value will be replaced with "sensitive".
15080func (s ParameterDeclaration) String() string {
15081	return awsutil.Prettify(s)
15082}
15083
15084// GoString returns the string representation.
15085//
15086// API parameter values that are decorated as "sensitive" in the API will not
15087// be included in the string output. The member name will be present, but the
15088// value will be replaced with "sensitive".
15089func (s ParameterDeclaration) GoString() string {
15090	return s.String()
15091}
15092
15093// SetDefaultValue sets the DefaultValue field's value.
15094func (s *ParameterDeclaration) SetDefaultValue(v string) *ParameterDeclaration {
15095	s.DefaultValue = &v
15096	return s
15097}
15098
15099// SetDescription sets the Description field's value.
15100func (s *ParameterDeclaration) SetDescription(v string) *ParameterDeclaration {
15101	s.Description = &v
15102	return s
15103}
15104
15105// SetNoEcho sets the NoEcho field's value.
15106func (s *ParameterDeclaration) SetNoEcho(v bool) *ParameterDeclaration {
15107	s.NoEcho = &v
15108	return s
15109}
15110
15111// SetParameterConstraints sets the ParameterConstraints field's value.
15112func (s *ParameterDeclaration) SetParameterConstraints(v *ParameterConstraints) *ParameterDeclaration {
15113	s.ParameterConstraints = v
15114	return s
15115}
15116
15117// SetParameterKey sets the ParameterKey field's value.
15118func (s *ParameterDeclaration) SetParameterKey(v string) *ParameterDeclaration {
15119	s.ParameterKey = &v
15120	return s
15121}
15122
15123// SetParameterType sets the ParameterType field's value.
15124func (s *ParameterDeclaration) SetParameterType(v string) *ParameterDeclaration {
15125	s.ParameterType = &v
15126	return s
15127}
15128
15129// Context information that enables CloudFormation to uniquely identify a resource.
15130// CloudFormation uses context key-value pairs in cases where a resource's logical
15131// and physical IDs are not enough to uniquely identify that resource. Each
15132// context key-value pair specifies a resource that contains the targeted resource.
15133type PhysicalResourceIdContextKeyValuePair struct {
15134	_ struct{} `type:"structure"`
15135
15136	// The resource context key.
15137	//
15138	// Key is a required field
15139	Key *string `type:"string" required:"true"`
15140
15141	// The resource context value.
15142	//
15143	// Value is a required field
15144	Value *string `type:"string" required:"true"`
15145}
15146
15147// String returns the string representation.
15148//
15149// API parameter values that are decorated as "sensitive" in the API will not
15150// be included in the string output. The member name will be present, but the
15151// value will be replaced with "sensitive".
15152func (s PhysicalResourceIdContextKeyValuePair) String() string {
15153	return awsutil.Prettify(s)
15154}
15155
15156// GoString returns the string representation.
15157//
15158// API parameter values that are decorated as "sensitive" in the API will not
15159// be included in the string output. The member name will be present, but the
15160// value will be replaced with "sensitive".
15161func (s PhysicalResourceIdContextKeyValuePair) GoString() string {
15162	return s.String()
15163}
15164
15165// SetKey sets the Key field's value.
15166func (s *PhysicalResourceIdContextKeyValuePair) SetKey(v string) *PhysicalResourceIdContextKeyValuePair {
15167	s.Key = &v
15168	return s
15169}
15170
15171// SetValue sets the Value field's value.
15172func (s *PhysicalResourceIdContextKeyValuePair) SetValue(v string) *PhysicalResourceIdContextKeyValuePair {
15173	s.Value = &v
15174	return s
15175}
15176
15177// Information about a resource property whose actual value differs from its
15178// expected value, as defined in the stack template and any values specified
15179// as template parameters. These will be present only for resources whose StackResourceDriftStatus
15180// is MODIFIED. For more information, see Detecting Unregulated Configuration
15181// Changes to Stacks and Resources (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-stack-drift.html).
15182type PropertyDifference struct {
15183	_ struct{} `type:"structure"`
15184
15185	// The actual property value of the resource property.
15186	//
15187	// ActualValue is a required field
15188	ActualValue *string `type:"string" required:"true"`
15189
15190	// The type of property difference.
15191	//
15192	//    * ADD: A value has been added to a resource property that is an array
15193	//    or list data type.
15194	//
15195	//    * REMOVE: The property has been removed from the current resource configuration.
15196	//
15197	//    * NOT_EQUAL: The current property value differs from its expected value
15198	//    (as defined in the stack template and any values specified as template
15199	//    parameters).
15200	//
15201	// DifferenceType is a required field
15202	DifferenceType *string `type:"string" required:"true" enum:"DifferenceType"`
15203
15204	// The expected property value of the resource property, as defined in the stack
15205	// template and any values specified as template parameters.
15206	//
15207	// ExpectedValue is a required field
15208	ExpectedValue *string `type:"string" required:"true"`
15209
15210	// The fully-qualified path to the resource property.
15211	//
15212	// PropertyPath is a required field
15213	PropertyPath *string `type:"string" required:"true"`
15214}
15215
15216// String returns the string representation.
15217//
15218// API parameter values that are decorated as "sensitive" in the API will not
15219// be included in the string output. The member name will be present, but the
15220// value will be replaced with "sensitive".
15221func (s PropertyDifference) String() string {
15222	return awsutil.Prettify(s)
15223}
15224
15225// GoString returns the string representation.
15226//
15227// API parameter values that are decorated as "sensitive" in the API will not
15228// be included in the string output. The member name will be present, but the
15229// value will be replaced with "sensitive".
15230func (s PropertyDifference) GoString() string {
15231	return s.String()
15232}
15233
15234// SetActualValue sets the ActualValue field's value.
15235func (s *PropertyDifference) SetActualValue(v string) *PropertyDifference {
15236	s.ActualValue = &v
15237	return s
15238}
15239
15240// SetDifferenceType sets the DifferenceType field's value.
15241func (s *PropertyDifference) SetDifferenceType(v string) *PropertyDifference {
15242	s.DifferenceType = &v
15243	return s
15244}
15245
15246// SetExpectedValue sets the ExpectedValue field's value.
15247func (s *PropertyDifference) SetExpectedValue(v string) *PropertyDifference {
15248	s.ExpectedValue = &v
15249	return s
15250}
15251
15252// SetPropertyPath sets the PropertyPath field's value.
15253func (s *PropertyDifference) SetPropertyPath(v string) *PropertyDifference {
15254	s.PropertyPath = &v
15255	return s
15256}
15257
15258type PublishTypeInput struct {
15259	_ struct{} `type:"structure"`
15260
15261	// The Amazon Resource Number (ARN) of the extension.
15262	//
15263	// Conditional: You must specify Arn, or TypeName and Type.
15264	Arn *string `type:"string"`
15265
15266	// The version number to assign to this version of the extension.
15267	//
15268	// Use the following format, and adhere to semantic versioning when assigning
15269	// a version number to your extension:
15270	//
15271	// MAJOR.MINOR.PATCH
15272	//
15273	// For more information, see Semantic Versioning 2.0.0 (https://semver.org/).
15274	//
15275	// If you do not specify a version number, CloudFormation increments the version
15276	// number by one minor version release.
15277	//
15278	// The first time you publish a type, CloudFormation sets the version number
15279	// to 1.0.0, regardless of the value you specify.
15280	PublicVersionNumber *string `min:"5" type:"string"`
15281
15282	// The type of the extension.
15283	//
15284	// Conditional: You must specify Arn, or TypeName and Type.
15285	Type *string `type:"string" enum:"ThirdPartyType"`
15286
15287	// The name of the extension.
15288	//
15289	// Conditional: You must specify Arn, or TypeName and Type.
15290	TypeName *string `min:"10" type:"string"`
15291}
15292
15293// String returns the string representation.
15294//
15295// API parameter values that are decorated as "sensitive" in the API will not
15296// be included in the string output. The member name will be present, but the
15297// value will be replaced with "sensitive".
15298func (s PublishTypeInput) String() string {
15299	return awsutil.Prettify(s)
15300}
15301
15302// GoString returns the string representation.
15303//
15304// API parameter values that are decorated as "sensitive" in the API will not
15305// be included in the string output. The member name will be present, but the
15306// value will be replaced with "sensitive".
15307func (s PublishTypeInput) GoString() string {
15308	return s.String()
15309}
15310
15311// Validate inspects the fields of the type to determine if they are valid.
15312func (s *PublishTypeInput) Validate() error {
15313	invalidParams := request.ErrInvalidParams{Context: "PublishTypeInput"}
15314	if s.PublicVersionNumber != nil && len(*s.PublicVersionNumber) < 5 {
15315		invalidParams.Add(request.NewErrParamMinLen("PublicVersionNumber", 5))
15316	}
15317	if s.TypeName != nil && len(*s.TypeName) < 10 {
15318		invalidParams.Add(request.NewErrParamMinLen("TypeName", 10))
15319	}
15320
15321	if invalidParams.Len() > 0 {
15322		return invalidParams
15323	}
15324	return nil
15325}
15326
15327// SetArn sets the Arn field's value.
15328func (s *PublishTypeInput) SetArn(v string) *PublishTypeInput {
15329	s.Arn = &v
15330	return s
15331}
15332
15333// SetPublicVersionNumber sets the PublicVersionNumber field's value.
15334func (s *PublishTypeInput) SetPublicVersionNumber(v string) *PublishTypeInput {
15335	s.PublicVersionNumber = &v
15336	return s
15337}
15338
15339// SetType sets the Type field's value.
15340func (s *PublishTypeInput) SetType(v string) *PublishTypeInput {
15341	s.Type = &v
15342	return s
15343}
15344
15345// SetTypeName sets the TypeName field's value.
15346func (s *PublishTypeInput) SetTypeName(v string) *PublishTypeInput {
15347	s.TypeName = &v
15348	return s
15349}
15350
15351type PublishTypeOutput struct {
15352	_ struct{} `type:"structure"`
15353
15354	// The Amazon Resource Number (ARN) assigned to the public extension upon publication.
15355	PublicTypeArn *string `type:"string"`
15356}
15357
15358// String returns the string representation.
15359//
15360// API parameter values that are decorated as "sensitive" in the API will not
15361// be included in the string output. The member name will be present, but the
15362// value will be replaced with "sensitive".
15363func (s PublishTypeOutput) String() string {
15364	return awsutil.Prettify(s)
15365}
15366
15367// GoString returns the string representation.
15368//
15369// API parameter values that are decorated as "sensitive" in the API will not
15370// be included in the string output. The member name will be present, but the
15371// value will be replaced with "sensitive".
15372func (s PublishTypeOutput) GoString() string {
15373	return s.String()
15374}
15375
15376// SetPublicTypeArn sets the PublicTypeArn field's value.
15377func (s *PublishTypeOutput) SetPublicTypeArn(v string) *PublishTypeOutput {
15378	s.PublicTypeArn = &v
15379	return s
15380}
15381
15382type RecordHandlerProgressInput struct {
15383	_ struct{} `type:"structure"`
15384
15385	// Reserved for use by the CloudFormation CLI (https://docs.aws.amazon.com/cloudformation-cli/latest/userguide/what-is-cloudformation-cli.html).
15386	//
15387	// BearerToken is a required field
15388	BearerToken *string `min:"1" type:"string" required:"true"`
15389
15390	// Reserved for use by the CloudFormation CLI (https://docs.aws.amazon.com/cloudformation-cli/latest/userguide/what-is-cloudformation-cli.html).
15391	ClientRequestToken *string `min:"1" type:"string"`
15392
15393	// Reserved for use by the CloudFormation CLI (https://docs.aws.amazon.com/cloudformation-cli/latest/userguide/what-is-cloudformation-cli.html).
15394	CurrentOperationStatus *string `type:"string" enum:"OperationStatus"`
15395
15396	// Reserved for use by the CloudFormation CLI (https://docs.aws.amazon.com/cloudformation-cli/latest/userguide/what-is-cloudformation-cli.html).
15397	ErrorCode *string `type:"string" enum:"HandlerErrorCode"`
15398
15399	// Reserved for use by the CloudFormation CLI (https://docs.aws.amazon.com/cloudformation-cli/latest/userguide/what-is-cloudformation-cli.html).
15400	//
15401	// OperationStatus is a required field
15402	OperationStatus *string `type:"string" required:"true" enum:"OperationStatus"`
15403
15404	// Reserved for use by the CloudFormation CLI (https://docs.aws.amazon.com/cloudformation-cli/latest/userguide/what-is-cloudformation-cli.html).
15405	ResourceModel *string `min:"1" type:"string"`
15406
15407	// Reserved for use by the CloudFormation CLI (https://docs.aws.amazon.com/cloudformation-cli/latest/userguide/what-is-cloudformation-cli.html).
15408	StatusMessage *string `type:"string"`
15409}
15410
15411// String returns the string representation.
15412//
15413// API parameter values that are decorated as "sensitive" in the API will not
15414// be included in the string output. The member name will be present, but the
15415// value will be replaced with "sensitive".
15416func (s RecordHandlerProgressInput) String() string {
15417	return awsutil.Prettify(s)
15418}
15419
15420// GoString returns the string representation.
15421//
15422// API parameter values that are decorated as "sensitive" in the API will not
15423// be included in the string output. The member name will be present, but the
15424// value will be replaced with "sensitive".
15425func (s RecordHandlerProgressInput) GoString() string {
15426	return s.String()
15427}
15428
15429// Validate inspects the fields of the type to determine if they are valid.
15430func (s *RecordHandlerProgressInput) Validate() error {
15431	invalidParams := request.ErrInvalidParams{Context: "RecordHandlerProgressInput"}
15432	if s.BearerToken == nil {
15433		invalidParams.Add(request.NewErrParamRequired("BearerToken"))
15434	}
15435	if s.BearerToken != nil && len(*s.BearerToken) < 1 {
15436		invalidParams.Add(request.NewErrParamMinLen("BearerToken", 1))
15437	}
15438	if s.ClientRequestToken != nil && len(*s.ClientRequestToken) < 1 {
15439		invalidParams.Add(request.NewErrParamMinLen("ClientRequestToken", 1))
15440	}
15441	if s.OperationStatus == nil {
15442		invalidParams.Add(request.NewErrParamRequired("OperationStatus"))
15443	}
15444	if s.ResourceModel != nil && len(*s.ResourceModel) < 1 {
15445		invalidParams.Add(request.NewErrParamMinLen("ResourceModel", 1))
15446	}
15447
15448	if invalidParams.Len() > 0 {
15449		return invalidParams
15450	}
15451	return nil
15452}
15453
15454// SetBearerToken sets the BearerToken field's value.
15455func (s *RecordHandlerProgressInput) SetBearerToken(v string) *RecordHandlerProgressInput {
15456	s.BearerToken = &v
15457	return s
15458}
15459
15460// SetClientRequestToken sets the ClientRequestToken field's value.
15461func (s *RecordHandlerProgressInput) SetClientRequestToken(v string) *RecordHandlerProgressInput {
15462	s.ClientRequestToken = &v
15463	return s
15464}
15465
15466// SetCurrentOperationStatus sets the CurrentOperationStatus field's value.
15467func (s *RecordHandlerProgressInput) SetCurrentOperationStatus(v string) *RecordHandlerProgressInput {
15468	s.CurrentOperationStatus = &v
15469	return s
15470}
15471
15472// SetErrorCode sets the ErrorCode field's value.
15473func (s *RecordHandlerProgressInput) SetErrorCode(v string) *RecordHandlerProgressInput {
15474	s.ErrorCode = &v
15475	return s
15476}
15477
15478// SetOperationStatus sets the OperationStatus field's value.
15479func (s *RecordHandlerProgressInput) SetOperationStatus(v string) *RecordHandlerProgressInput {
15480	s.OperationStatus = &v
15481	return s
15482}
15483
15484// SetResourceModel sets the ResourceModel field's value.
15485func (s *RecordHandlerProgressInput) SetResourceModel(v string) *RecordHandlerProgressInput {
15486	s.ResourceModel = &v
15487	return s
15488}
15489
15490// SetStatusMessage sets the StatusMessage field's value.
15491func (s *RecordHandlerProgressInput) SetStatusMessage(v string) *RecordHandlerProgressInput {
15492	s.StatusMessage = &v
15493	return s
15494}
15495
15496type RecordHandlerProgressOutput struct {
15497	_ struct{} `type:"structure"`
15498}
15499
15500// String returns the string representation.
15501//
15502// API parameter values that are decorated as "sensitive" in the API will not
15503// be included in the string output. The member name will be present, but the
15504// value will be replaced with "sensitive".
15505func (s RecordHandlerProgressOutput) String() string {
15506	return awsutil.Prettify(s)
15507}
15508
15509// GoString returns the string representation.
15510//
15511// API parameter values that are decorated as "sensitive" in the API will not
15512// be included in the string output. The member name will be present, but the
15513// value will be replaced with "sensitive".
15514func (s RecordHandlerProgressOutput) GoString() string {
15515	return s.String()
15516}
15517
15518type RegisterPublisherInput struct {
15519	_ struct{} `type:"structure"`
15520
15521	// Whether you accept the Terms and Conditions (https://cloudformation-registry-documents.s3.amazonaws.com/Terms_and_Conditions_for_AWS_CloudFormation_Registry_Publishers.pdf)
15522	// for publishing extensions in the CloudFormation registry. You must accept
15523	// the terms and conditions in order to register to publish public extensions
15524	// to the CloudFormation registry.
15525	//
15526	// The default is false.
15527	AcceptTermsAndConditions *bool `type:"boolean"`
15528
15529	// If you are using a Bitbucket or GitHub account for identity verification,
15530	// the Amazon Resource Name (ARN) for your connection to that account.
15531	//
15532	// For more information, see Registering your account to publish CloudFormation
15533	// extensions (https://docs.aws.amazon.com/cloudformation-cli/latest/userguide/publish-extension.html#publish-extension-prereqs)
15534	// in the CloudFormation CLI User Guide.
15535	ConnectionArn *string `min:"1" type:"string"`
15536}
15537
15538// String returns the string representation.
15539//
15540// API parameter values that are decorated as "sensitive" in the API will not
15541// be included in the string output. The member name will be present, but the
15542// value will be replaced with "sensitive".
15543func (s RegisterPublisherInput) String() string {
15544	return awsutil.Prettify(s)
15545}
15546
15547// GoString returns the string representation.
15548//
15549// API parameter values that are decorated as "sensitive" in the API will not
15550// be included in the string output. The member name will be present, but the
15551// value will be replaced with "sensitive".
15552func (s RegisterPublisherInput) GoString() string {
15553	return s.String()
15554}
15555
15556// Validate inspects the fields of the type to determine if they are valid.
15557func (s *RegisterPublisherInput) Validate() error {
15558	invalidParams := request.ErrInvalidParams{Context: "RegisterPublisherInput"}
15559	if s.ConnectionArn != nil && len(*s.ConnectionArn) < 1 {
15560		invalidParams.Add(request.NewErrParamMinLen("ConnectionArn", 1))
15561	}
15562
15563	if invalidParams.Len() > 0 {
15564		return invalidParams
15565	}
15566	return nil
15567}
15568
15569// SetAcceptTermsAndConditions sets the AcceptTermsAndConditions field's value.
15570func (s *RegisterPublisherInput) SetAcceptTermsAndConditions(v bool) *RegisterPublisherInput {
15571	s.AcceptTermsAndConditions = &v
15572	return s
15573}
15574
15575// SetConnectionArn sets the ConnectionArn field's value.
15576func (s *RegisterPublisherInput) SetConnectionArn(v string) *RegisterPublisherInput {
15577	s.ConnectionArn = &v
15578	return s
15579}
15580
15581type RegisterPublisherOutput struct {
15582	_ struct{} `type:"structure"`
15583
15584	// The ID assigned this account by CloudFormation for publishing extensions.
15585	PublisherId *string `min:"1" type:"string"`
15586}
15587
15588// String returns the string representation.
15589//
15590// API parameter values that are decorated as "sensitive" in the API will not
15591// be included in the string output. The member name will be present, but the
15592// value will be replaced with "sensitive".
15593func (s RegisterPublisherOutput) String() string {
15594	return awsutil.Prettify(s)
15595}
15596
15597// GoString returns the string representation.
15598//
15599// API parameter values that are decorated as "sensitive" in the API will not
15600// be included in the string output. The member name will be present, but the
15601// value will be replaced with "sensitive".
15602func (s RegisterPublisherOutput) GoString() string {
15603	return s.String()
15604}
15605
15606// SetPublisherId sets the PublisherId field's value.
15607func (s *RegisterPublisherOutput) SetPublisherId(v string) *RegisterPublisherOutput {
15608	s.PublisherId = &v
15609	return s
15610}
15611
15612type RegisterTypeInput struct {
15613	_ struct{} `type:"structure"`
15614
15615	// A unique identifier that acts as an idempotency key for this registration
15616	// request. Specifying a client request token prevents CloudFormation from generating
15617	// more than one version of an extension from the same registeration request,
15618	// even if the request is submitted multiple times.
15619	ClientRequestToken *string `min:"1" type:"string"`
15620
15621	// The Amazon Resource Name (ARN) of the IAM role for CloudFormation to assume
15622	// when invoking the extension.
15623	//
15624	// For CloudFormation to assume the specified execution role, the role must
15625	// contain a trust relationship with the CloudFormation service principle (resources.cloudformation.amazonaws.com).
15626	// For more information on adding trust relationships, see Modifying a role
15627	// trust policy (IAM/latest/UserGuide/roles-managingrole-editing-console.html#roles-managingrole_edit-trust-policy)
15628	// in the Identity and Access Management User Guide.
15629	//
15630	// If your extension calls Amazon Web Services APIs in any of its handlers,
15631	// you must create an IAM execution role (https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles.html)
15632	// that includes the necessary permissions to call those Amazon Web Services
15633	// APIs, and provision that execution role in your account. When CloudFormation
15634	// needs to invoke the resource type handler, CloudFormation assumes this execution
15635	// role to create a temporary session token, which it then passes to the resource
15636	// type handler, thereby supplying your resource type with the appropriate credentials.
15637	ExecutionRoleArn *string `min:"1" type:"string"`
15638
15639	// Specifies logging configuration information for an extension.
15640	LoggingConfig *LoggingConfig `type:"structure"`
15641
15642	// A url to the S3 bucket containing the extension project package that contains
15643	// the neccessary files for the extension you want to register.
15644	//
15645	// For information on generating a schema handler package for the extension
15646	// you want to register, see submit (https://docs.aws.amazon.com/cloudformation-cli/latest/userguide/resource-type-cli-submit.html)
15647	// in the CloudFormation CLI User Guide.
15648	//
15649	// The user registering the extension must be able to access the package in
15650	// the S3 bucket. That is, the user needs to have GetObject (https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetObject.html)
15651	// permissions for the schema handler package. For more information, see Actions,
15652	// Resources, and Condition Keys for Amazon S3 (https://docs.aws.amazon.com/IAM/latest/UserGuide/list_amazons3.html)
15653	// in the Identity and Access Management User Guide.
15654	//
15655	// SchemaHandlerPackage is a required field
15656	SchemaHandlerPackage *string `min:"1" type:"string" required:"true"`
15657
15658	// The kind of extension.
15659	Type *string `type:"string" enum:"RegistryType"`
15660
15661	// The name of the extension being registered.
15662	//
15663	// We recommend that extension names adhere to the following patterns:
15664	//
15665	//    * For resource types, company_or_organization::service::type.
15666	//
15667	//    * For modules, company_or_organization::service::type::MODULE.
15668	//
15669	// The following organization namespaces are reserved and cannot be used in
15670	// your extension names:
15671	//
15672	//    * Alexa
15673	//
15674	//    * AMZN
15675	//
15676	//    * Amazon
15677	//
15678	//    * AWS
15679	//
15680	//    * Custom
15681	//
15682	//    * Dev
15683	//
15684	// TypeName is a required field
15685	TypeName *string `min:"10" type:"string" required:"true"`
15686}
15687
15688// String returns the string representation.
15689//
15690// API parameter values that are decorated as "sensitive" in the API will not
15691// be included in the string output. The member name will be present, but the
15692// value will be replaced with "sensitive".
15693func (s RegisterTypeInput) String() string {
15694	return awsutil.Prettify(s)
15695}
15696
15697// GoString returns the string representation.
15698//
15699// API parameter values that are decorated as "sensitive" in the API will not
15700// be included in the string output. The member name will be present, but the
15701// value will be replaced with "sensitive".
15702func (s RegisterTypeInput) GoString() string {
15703	return s.String()
15704}
15705
15706// Validate inspects the fields of the type to determine if they are valid.
15707func (s *RegisterTypeInput) Validate() error {
15708	invalidParams := request.ErrInvalidParams{Context: "RegisterTypeInput"}
15709	if s.ClientRequestToken != nil && len(*s.ClientRequestToken) < 1 {
15710		invalidParams.Add(request.NewErrParamMinLen("ClientRequestToken", 1))
15711	}
15712	if s.ExecutionRoleArn != nil && len(*s.ExecutionRoleArn) < 1 {
15713		invalidParams.Add(request.NewErrParamMinLen("ExecutionRoleArn", 1))
15714	}
15715	if s.SchemaHandlerPackage == nil {
15716		invalidParams.Add(request.NewErrParamRequired("SchemaHandlerPackage"))
15717	}
15718	if s.SchemaHandlerPackage != nil && len(*s.SchemaHandlerPackage) < 1 {
15719		invalidParams.Add(request.NewErrParamMinLen("SchemaHandlerPackage", 1))
15720	}
15721	if s.TypeName == nil {
15722		invalidParams.Add(request.NewErrParamRequired("TypeName"))
15723	}
15724	if s.TypeName != nil && len(*s.TypeName) < 10 {
15725		invalidParams.Add(request.NewErrParamMinLen("TypeName", 10))
15726	}
15727	if s.LoggingConfig != nil {
15728		if err := s.LoggingConfig.Validate(); err != nil {
15729			invalidParams.AddNested("LoggingConfig", err.(request.ErrInvalidParams))
15730		}
15731	}
15732
15733	if invalidParams.Len() > 0 {
15734		return invalidParams
15735	}
15736	return nil
15737}
15738
15739// SetClientRequestToken sets the ClientRequestToken field's value.
15740func (s *RegisterTypeInput) SetClientRequestToken(v string) *RegisterTypeInput {
15741	s.ClientRequestToken = &v
15742	return s
15743}
15744
15745// SetExecutionRoleArn sets the ExecutionRoleArn field's value.
15746func (s *RegisterTypeInput) SetExecutionRoleArn(v string) *RegisterTypeInput {
15747	s.ExecutionRoleArn = &v
15748	return s
15749}
15750
15751// SetLoggingConfig sets the LoggingConfig field's value.
15752func (s *RegisterTypeInput) SetLoggingConfig(v *LoggingConfig) *RegisterTypeInput {
15753	s.LoggingConfig = v
15754	return s
15755}
15756
15757// SetSchemaHandlerPackage sets the SchemaHandlerPackage field's value.
15758func (s *RegisterTypeInput) SetSchemaHandlerPackage(v string) *RegisterTypeInput {
15759	s.SchemaHandlerPackage = &v
15760	return s
15761}
15762
15763// SetType sets the Type field's value.
15764func (s *RegisterTypeInput) SetType(v string) *RegisterTypeInput {
15765	s.Type = &v
15766	return s
15767}
15768
15769// SetTypeName sets the TypeName field's value.
15770func (s *RegisterTypeInput) SetTypeName(v string) *RegisterTypeInput {
15771	s.TypeName = &v
15772	return s
15773}
15774
15775type RegisterTypeOutput struct {
15776	_ struct{} `type:"structure"`
15777
15778	// The identifier for this registration request.
15779	//
15780	// Use this registration token when calling DescribeTypeRegistration , which
15781	// returns information about the status and IDs of the extension registration.
15782	RegistrationToken *string `min:"1" type:"string"`
15783}
15784
15785// String returns the string representation.
15786//
15787// API parameter values that are decorated as "sensitive" in the API will not
15788// be included in the string output. The member name will be present, but the
15789// value will be replaced with "sensitive".
15790func (s RegisterTypeOutput) String() string {
15791	return awsutil.Prettify(s)
15792}
15793
15794// GoString returns the string representation.
15795//
15796// API parameter values that are decorated as "sensitive" in the API will not
15797// be included in the string output. The member name will be present, but the
15798// value will be replaced with "sensitive".
15799func (s RegisterTypeOutput) GoString() string {
15800	return s.String()
15801}
15802
15803// SetRegistrationToken sets the RegistrationToken field's value.
15804func (s *RegisterTypeOutput) SetRegistrationToken(v string) *RegisterTypeOutput {
15805	s.RegistrationToken = &v
15806	return s
15807}
15808
15809// For extensions that are modules, a public third-party extension that must
15810// be activated in your account in order for the module itself to be activated.
15811//
15812// For more information, see Activating public modules for use in your account
15813// (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/modules.html#module-enabling)
15814// in the CloudFormation User Guide.
15815type RequiredActivatedType struct {
15816	_ struct{} `type:"structure"`
15817
15818	// The type name of the public extension.
15819	//
15820	// If you specified a TypeNameAlias when enabling the extension in this account
15821	// and region, CloudFormation treats that alias as the extension's type name
15822	// within the account and region, not the type name of the public extension.
15823	// 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)
15824	// in the CloudFormation User Guide.
15825	OriginalTypeName *string `min:"10" type:"string"`
15826
15827	// The publisher ID of the extension publisher.
15828	PublisherId *string `min:"1" type:"string"`
15829
15830	// A list of the major versions of the extension type that the macro supports.
15831	SupportedMajorVersions []*int64 `type:"list"`
15832
15833	// An alias assigned to the public extension, in this account and region. If
15834	// you specify an alias for the extension, CloudFormation treats the alias as
15835	// the extension type name within this account and region. You must use the
15836	// alias to refer to the extension in your templates, API calls, and CloudFormation
15837	// console.
15838	TypeNameAlias *string `min:"10" type:"string"`
15839}
15840
15841// String returns the string representation.
15842//
15843// API parameter values that are decorated as "sensitive" in the API will not
15844// be included in the string output. The member name will be present, but the
15845// value will be replaced with "sensitive".
15846func (s RequiredActivatedType) String() string {
15847	return awsutil.Prettify(s)
15848}
15849
15850// GoString returns the string representation.
15851//
15852// API parameter values that are decorated as "sensitive" in the API will not
15853// be included in the string output. The member name will be present, but the
15854// value will be replaced with "sensitive".
15855func (s RequiredActivatedType) GoString() string {
15856	return s.String()
15857}
15858
15859// SetOriginalTypeName sets the OriginalTypeName field's value.
15860func (s *RequiredActivatedType) SetOriginalTypeName(v string) *RequiredActivatedType {
15861	s.OriginalTypeName = &v
15862	return s
15863}
15864
15865// SetPublisherId sets the PublisherId field's value.
15866func (s *RequiredActivatedType) SetPublisherId(v string) *RequiredActivatedType {
15867	s.PublisherId = &v
15868	return s
15869}
15870
15871// SetSupportedMajorVersions sets the SupportedMajorVersions field's value.
15872func (s *RequiredActivatedType) SetSupportedMajorVersions(v []*int64) *RequiredActivatedType {
15873	s.SupportedMajorVersions = v
15874	return s
15875}
15876
15877// SetTypeNameAlias sets the TypeNameAlias field's value.
15878func (s *RequiredActivatedType) SetTypeNameAlias(v string) *RequiredActivatedType {
15879	s.TypeNameAlias = &v
15880	return s
15881}
15882
15883// The ResourceChange structure describes the resource and the action that CloudFormation
15884// will perform on it if you execute this change set.
15885type ResourceChange struct {
15886	_ struct{} `type:"structure"`
15887
15888	// The action that CloudFormation takes on the resource, such as Add (adds a
15889	// new resource), Modify (changes a resource), Remove (deletes a resource),
15890	// Import (imports a resource), or Dynamic (exact action for the resource cannot
15891	// be determined).
15892	Action *string `type:"string" enum:"ChangeAction"`
15893
15894	// The change set ID of the nested change set.
15895	ChangeSetId *string `min:"1" type:"string"`
15896
15897	// For the Modify action, a list of ResourceChangeDetail structures that describes
15898	// the changes that CloudFormation will make to the resource.
15899	Details []*ResourceChangeDetail `type:"list"`
15900
15901	// The resource's logical ID, which is defined in the stack's template.
15902	LogicalResourceId *string `type:"string"`
15903
15904	// Contains information about the module from which the resource was created,
15905	// if the resource was created from a module included in the stack template.
15906	ModuleInfo *ModuleInfo `type:"structure"`
15907
15908	// The resource's physical ID (resource name). Resources that you are adding
15909	// don't have physical IDs because they haven't been created.
15910	PhysicalResourceId *string `type:"string"`
15911
15912	// For the Modify action, indicates whether CloudFormation will replace the
15913	// resource by creating a new one and deleting the old one. This value depends
15914	// on the value of the RequiresRecreation property in the ResourceTargetDefinition
15915	// structure. For example, if the RequiresRecreation field is Always and the
15916	// Evaluation field is Static, Replacement is True. If the RequiresRecreation
15917	// field is Always and the Evaluation field is Dynamic, Replacement is Conditionally.
15918	//
15919	// If you have multiple changes with different RequiresRecreation values, the
15920	// Replacement value depends on the change with the most impact. A RequiresRecreation
15921	// value of Always has the most impact, followed by Conditionally, and then
15922	// Never.
15923	Replacement *string `type:"string" enum:"Replacement"`
15924
15925	// The type of CloudFormation resource, such as AWS::S3::Bucket.
15926	ResourceType *string `min:"1" type:"string"`
15927
15928	// For the Modify action, indicates which resource attribute is triggering this
15929	// update, such as a change in the resource attribute's Metadata, Properties,
15930	// or Tags.
15931	Scope []*string `type:"list"`
15932}
15933
15934// String returns the string representation.
15935//
15936// API parameter values that are decorated as "sensitive" in the API will not
15937// be included in the string output. The member name will be present, but the
15938// value will be replaced with "sensitive".
15939func (s ResourceChange) String() string {
15940	return awsutil.Prettify(s)
15941}
15942
15943// GoString returns the string representation.
15944//
15945// API parameter values that are decorated as "sensitive" in the API will not
15946// be included in the string output. The member name will be present, but the
15947// value will be replaced with "sensitive".
15948func (s ResourceChange) GoString() string {
15949	return s.String()
15950}
15951
15952// SetAction sets the Action field's value.
15953func (s *ResourceChange) SetAction(v string) *ResourceChange {
15954	s.Action = &v
15955	return s
15956}
15957
15958// SetChangeSetId sets the ChangeSetId field's value.
15959func (s *ResourceChange) SetChangeSetId(v string) *ResourceChange {
15960	s.ChangeSetId = &v
15961	return s
15962}
15963
15964// SetDetails sets the Details field's value.
15965func (s *ResourceChange) SetDetails(v []*ResourceChangeDetail) *ResourceChange {
15966	s.Details = v
15967	return s
15968}
15969
15970// SetLogicalResourceId sets the LogicalResourceId field's value.
15971func (s *ResourceChange) SetLogicalResourceId(v string) *ResourceChange {
15972	s.LogicalResourceId = &v
15973	return s
15974}
15975
15976// SetModuleInfo sets the ModuleInfo field's value.
15977func (s *ResourceChange) SetModuleInfo(v *ModuleInfo) *ResourceChange {
15978	s.ModuleInfo = v
15979	return s
15980}
15981
15982// SetPhysicalResourceId sets the PhysicalResourceId field's value.
15983func (s *ResourceChange) SetPhysicalResourceId(v string) *ResourceChange {
15984	s.PhysicalResourceId = &v
15985	return s
15986}
15987
15988// SetReplacement sets the Replacement field's value.
15989func (s *ResourceChange) SetReplacement(v string) *ResourceChange {
15990	s.Replacement = &v
15991	return s
15992}
15993
15994// SetResourceType sets the ResourceType field's value.
15995func (s *ResourceChange) SetResourceType(v string) *ResourceChange {
15996	s.ResourceType = &v
15997	return s
15998}
15999
16000// SetScope sets the Scope field's value.
16001func (s *ResourceChange) SetScope(v []*string) *ResourceChange {
16002	s.Scope = v
16003	return s
16004}
16005
16006// For a resource with Modify as the action, the ResourceChange structure describes
16007// the changes CloudFormation will make to that resource.
16008type ResourceChangeDetail struct {
16009	_ struct{} `type:"structure"`
16010
16011	// The identity of the entity that triggered this change. This entity is a member
16012	// of the group that is specified by the ChangeSource field. For example, if
16013	// you modified the value of the KeyPairName parameter, the CausingEntity is
16014	// the name of the parameter (KeyPairName).
16015	//
16016	// If the ChangeSource value is DirectModification, no value is given for CausingEntity.
16017	CausingEntity *string `type:"string"`
16018
16019	// The group to which the CausingEntity value belongs. There are five entity
16020	// groups:
16021	//
16022	//    * ResourceReference entities are Ref intrinsic functions that refer to
16023	//    resources in the template, such as { "Ref" : "MyEC2InstanceResource" }.
16024	//
16025	//    * ParameterReference entities are Ref intrinsic functions that get template
16026	//    parameter values, such as { "Ref" : "MyPasswordParameter" }.
16027	//
16028	//    * ResourceAttribute entities are Fn::GetAtt intrinsic functions that get
16029	//    resource attribute values, such as { "Fn::GetAtt" : [ "MyEC2InstanceResource",
16030	//    "PublicDnsName" ] }.
16031	//
16032	//    * DirectModification entities are changes that are made directly to the
16033	//    template.
16034	//
16035	//    * Automatic entities are AWS::CloudFormation::Stack resource types, which
16036	//    are also known as nested stacks. If you made no changes to the AWS::CloudFormation::Stack
16037	//    resource, CloudFormation sets the ChangeSource to Automatic because the
16038	//    nested stack's template might have changed. Changes to a nested stack's
16039	//    template aren't visible to CloudFormation until you run an update on the
16040	//    parent stack.
16041	ChangeSource *string `type:"string" enum:"ChangeSource"`
16042
16043	// Indicates whether CloudFormation can determine the target value, and whether
16044	// the target value will change before you execute a change set.
16045	//
16046	// For Static evaluations, CloudFormation can determine that the target value
16047	// will change, and its value. For example, if you directly modify the InstanceType
16048	// property of an EC2 instance, CloudFormation knows that this property value
16049	// will change, and its value, so this is a Static evaluation.
16050	//
16051	// For Dynamic evaluations, cannot determine the target value because it depends
16052	// on the result of an intrinsic function, such as a Ref or Fn::GetAtt intrinsic
16053	// function, when the stack is updated. For example, if your template includes
16054	// a reference to a resource that is conditionally recreated, the value of the
16055	// reference (the physical ID of the resource) might change, depending on if
16056	// the resource is recreated. If the resource is recreated, it will have a new
16057	// physical ID, so all references to that resource will also be updated.
16058	Evaluation *string `type:"string" enum:"EvaluationType"`
16059
16060	// A ResourceTargetDefinition structure that describes the field that CloudFormation
16061	// will change and whether the resource will be recreated.
16062	Target *ResourceTargetDefinition `type:"structure"`
16063}
16064
16065// String returns the string representation.
16066//
16067// API parameter values that are decorated as "sensitive" in the API will not
16068// be included in the string output. The member name will be present, but the
16069// value will be replaced with "sensitive".
16070func (s ResourceChangeDetail) String() string {
16071	return awsutil.Prettify(s)
16072}
16073
16074// GoString returns the string representation.
16075//
16076// API parameter values that are decorated as "sensitive" in the API will not
16077// be included in the string output. The member name will be present, but the
16078// value will be replaced with "sensitive".
16079func (s ResourceChangeDetail) GoString() string {
16080	return s.String()
16081}
16082
16083// SetCausingEntity sets the CausingEntity field's value.
16084func (s *ResourceChangeDetail) SetCausingEntity(v string) *ResourceChangeDetail {
16085	s.CausingEntity = &v
16086	return s
16087}
16088
16089// SetChangeSource sets the ChangeSource field's value.
16090func (s *ResourceChangeDetail) SetChangeSource(v string) *ResourceChangeDetail {
16091	s.ChangeSource = &v
16092	return s
16093}
16094
16095// SetEvaluation sets the Evaluation field's value.
16096func (s *ResourceChangeDetail) SetEvaluation(v string) *ResourceChangeDetail {
16097	s.Evaluation = &v
16098	return s
16099}
16100
16101// SetTarget sets the Target field's value.
16102func (s *ResourceChangeDetail) SetTarget(v *ResourceTargetDefinition) *ResourceChangeDetail {
16103	s.Target = v
16104	return s
16105}
16106
16107// Describes the target resources of a specific type in your import template
16108// (for example, all AWS::S3::Bucket resources) and the properties you can provide
16109// during the import to identify resources of that type.
16110type ResourceIdentifierSummary struct {
16111	_ struct{} `type:"structure"`
16112
16113	// The logical IDs of the target resources of the specified ResourceType, as
16114	// defined in the import template.
16115	LogicalResourceIds []*string `min:"1" type:"list"`
16116
16117	// The resource properties you can provide during the import to identify your
16118	// target resources. For example, BucketName is a possible identifier property
16119	// for AWS::S3::Bucket resources.
16120	ResourceIdentifiers []*string `type:"list"`
16121
16122	// The template resource type of the target resources, such as AWS::S3::Bucket.
16123	ResourceType *string `min:"1" type:"string"`
16124}
16125
16126// String returns the string representation.
16127//
16128// API parameter values that are decorated as "sensitive" in the API will not
16129// be included in the string output. The member name will be present, but the
16130// value will be replaced with "sensitive".
16131func (s ResourceIdentifierSummary) String() string {
16132	return awsutil.Prettify(s)
16133}
16134
16135// GoString returns the string representation.
16136//
16137// API parameter values that are decorated as "sensitive" in the API will not
16138// be included in the string output. The member name will be present, but the
16139// value will be replaced with "sensitive".
16140func (s ResourceIdentifierSummary) GoString() string {
16141	return s.String()
16142}
16143
16144// SetLogicalResourceIds sets the LogicalResourceIds field's value.
16145func (s *ResourceIdentifierSummary) SetLogicalResourceIds(v []*string) *ResourceIdentifierSummary {
16146	s.LogicalResourceIds = v
16147	return s
16148}
16149
16150// SetResourceIdentifiers sets the ResourceIdentifiers field's value.
16151func (s *ResourceIdentifierSummary) SetResourceIdentifiers(v []*string) *ResourceIdentifierSummary {
16152	s.ResourceIdentifiers = v
16153	return s
16154}
16155
16156// SetResourceType sets the ResourceType field's value.
16157func (s *ResourceIdentifierSummary) SetResourceType(v string) *ResourceIdentifierSummary {
16158	s.ResourceType = &v
16159	return s
16160}
16161
16162// The field that CloudFormation will change, such as the name of a resource's
16163// property, and whether the resource will be recreated.
16164type ResourceTargetDefinition struct {
16165	_ struct{} `type:"structure"`
16166
16167	// Indicates which resource attribute is triggering this update, such as a change
16168	// in the resource attribute's Metadata, Properties, or Tags.
16169	Attribute *string `type:"string" enum:"ResourceAttribute"`
16170
16171	// If the Attribute value is Properties, the name of the property. For all other
16172	// attributes, the value is null.
16173	Name *string `type:"string"`
16174
16175	// If the Attribute value is Properties, indicates whether a change to this
16176	// property causes the resource to be recreated. The value can be Never, Always,
16177	// or Conditionally. To determine the conditions for a Conditionally recreation,
16178	// see the update behavior for that property (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-template-resource-type-ref.html)
16179	// in the CloudFormation User Guide.
16180	RequiresRecreation *string `type:"string" enum:"RequiresRecreation"`
16181}
16182
16183// String returns the string representation.
16184//
16185// API parameter values that are decorated as "sensitive" in the API will not
16186// be included in the string output. The member name will be present, but the
16187// value will be replaced with "sensitive".
16188func (s ResourceTargetDefinition) String() string {
16189	return awsutil.Prettify(s)
16190}
16191
16192// GoString returns the string representation.
16193//
16194// API parameter values that are decorated as "sensitive" in the API will not
16195// be included in the string output. The member name will be present, but the
16196// value will be replaced with "sensitive".
16197func (s ResourceTargetDefinition) GoString() string {
16198	return s.String()
16199}
16200
16201// SetAttribute sets the Attribute field's value.
16202func (s *ResourceTargetDefinition) SetAttribute(v string) *ResourceTargetDefinition {
16203	s.Attribute = &v
16204	return s
16205}
16206
16207// SetName sets the Name field's value.
16208func (s *ResourceTargetDefinition) SetName(v string) *ResourceTargetDefinition {
16209	s.Name = &v
16210	return s
16211}
16212
16213// SetRequiresRecreation sets the RequiresRecreation field's value.
16214func (s *ResourceTargetDefinition) SetRequiresRecreation(v string) *ResourceTargetDefinition {
16215	s.RequiresRecreation = &v
16216	return s
16217}
16218
16219// Describes the target resource of an import operation.
16220type ResourceToImport struct {
16221	_ struct{} `type:"structure"`
16222
16223	// The logical ID of the target resource as specified in the template.
16224	//
16225	// LogicalResourceId is a required field
16226	LogicalResourceId *string `type:"string" required:"true"`
16227
16228	// A key-value pair that identifies the target resource. The key is an identifier
16229	// property (for example, BucketName for AWS::S3::Bucket resources) and the
16230	// value is the actual property value (for example, MyS3Bucket).
16231	//
16232	// ResourceIdentifier is a required field
16233	ResourceIdentifier map[string]*string `min:"1" type:"map" required:"true"`
16234
16235	// The type of resource to import into your stack, such as AWS::S3::Bucket.
16236	// For a list of supported resource types, see Resources that support import
16237	// operations (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/resource-import-supported-resources.html)
16238	// in the CloudFormation User Guide.
16239	//
16240	// ResourceType is a required field
16241	ResourceType *string `min:"1" type:"string" required:"true"`
16242}
16243
16244// String returns the string representation.
16245//
16246// API parameter values that are decorated as "sensitive" in the API will not
16247// be included in the string output. The member name will be present, but the
16248// value will be replaced with "sensitive".
16249func (s ResourceToImport) String() string {
16250	return awsutil.Prettify(s)
16251}
16252
16253// GoString returns the string representation.
16254//
16255// API parameter values that are decorated as "sensitive" in the API will not
16256// be included in the string output. The member name will be present, but the
16257// value will be replaced with "sensitive".
16258func (s ResourceToImport) GoString() string {
16259	return s.String()
16260}
16261
16262// Validate inspects the fields of the type to determine if they are valid.
16263func (s *ResourceToImport) Validate() error {
16264	invalidParams := request.ErrInvalidParams{Context: "ResourceToImport"}
16265	if s.LogicalResourceId == nil {
16266		invalidParams.Add(request.NewErrParamRequired("LogicalResourceId"))
16267	}
16268	if s.ResourceIdentifier == nil {
16269		invalidParams.Add(request.NewErrParamRequired("ResourceIdentifier"))
16270	}
16271	if s.ResourceIdentifier != nil && len(s.ResourceIdentifier) < 1 {
16272		invalidParams.Add(request.NewErrParamMinLen("ResourceIdentifier", 1))
16273	}
16274	if s.ResourceType == nil {
16275		invalidParams.Add(request.NewErrParamRequired("ResourceType"))
16276	}
16277	if s.ResourceType != nil && len(*s.ResourceType) < 1 {
16278		invalidParams.Add(request.NewErrParamMinLen("ResourceType", 1))
16279	}
16280
16281	if invalidParams.Len() > 0 {
16282		return invalidParams
16283	}
16284	return nil
16285}
16286
16287// SetLogicalResourceId sets the LogicalResourceId field's value.
16288func (s *ResourceToImport) SetLogicalResourceId(v string) *ResourceToImport {
16289	s.LogicalResourceId = &v
16290	return s
16291}
16292
16293// SetResourceIdentifier sets the ResourceIdentifier field's value.
16294func (s *ResourceToImport) SetResourceIdentifier(v map[string]*string) *ResourceToImport {
16295	s.ResourceIdentifier = v
16296	return s
16297}
16298
16299// SetResourceType sets the ResourceType field's value.
16300func (s *ResourceToImport) SetResourceType(v string) *ResourceToImport {
16301	s.ResourceType = &v
16302	return s
16303}
16304
16305// Structure containing the rollback triggers for CloudFormation to monitor
16306// during stack creation and updating operations, and for the specified monitoring
16307// period afterwards.
16308//
16309// Rollback triggers enable you to have CloudFormation monitor the state of
16310// your application during stack creation and updating, and to roll back that
16311// operation if the application breaches the threshold of any of the alarms
16312// you've specified. For more information, see Monitor and Roll Back Stack Operations
16313// (http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-rollback-triggers.html).
16314type RollbackConfiguration struct {
16315	_ struct{} `type:"structure"`
16316
16317	// The amount of time, in minutes, during which CloudFormation should monitor
16318	// all the rollback triggers after the stack creation or update operation deploys
16319	// all necessary resources.
16320	//
16321	// The default is 0 minutes.
16322	//
16323	// If you specify a monitoring period but do not specify any rollback triggers,
16324	// CloudFormation still waits the specified period of time before cleaning up
16325	// old resources after update operations. You can use this monitoring period
16326	// to perform any manual stack validation desired, and manually cancel the stack
16327	// creation or update (using CancelUpdateStack (https://docs.aws.amazon.com/AWSCloudFormation/latest/APIReference/API_CancelUpdateStack.html),
16328	// for example) as necessary.
16329	//
16330	// If you specify 0 for this parameter, CloudFormation still monitors the specified
16331	// rollback triggers during stack creation and update operations. Then, for
16332	// update operations, it begins disposing of old resources immediately once
16333	// the operation completes.
16334	MonitoringTimeInMinutes *int64 `type:"integer"`
16335
16336	// The triggers to monitor during stack creation or update actions.
16337	//
16338	// By default, CloudFormation saves the rollback triggers specified for a stack
16339	// and applies them to any subsequent update operations for the stack, unless
16340	// you specify otherwise. If you do specify rollback triggers for this parameter,
16341	// those triggers replace any list of triggers previously specified for the
16342	// stack. This means:
16343	//
16344	//    * To use the rollback triggers previously specified for this stack, if
16345	//    any, don't specify this parameter.
16346	//
16347	//    * To specify new or updated rollback triggers, you must specify all the
16348	//    triggers that you want used for this stack, even triggers you've specifed
16349	//    before (for example, when creating the stack or during a previous stack
16350	//    update). Any triggers that you don't include in the updated list of triggers
16351	//    are no longer applied to the stack.
16352	//
16353	//    * To remove all currently specified triggers, specify an empty list for
16354	//    this parameter.
16355	//
16356	// If a specified trigger is missing, the entire stack operation fails and is
16357	// rolled back.
16358	RollbackTriggers []*RollbackTrigger `type:"list"`
16359}
16360
16361// String returns the string representation.
16362//
16363// API parameter values that are decorated as "sensitive" in the API will not
16364// be included in the string output. The member name will be present, but the
16365// value will be replaced with "sensitive".
16366func (s RollbackConfiguration) String() string {
16367	return awsutil.Prettify(s)
16368}
16369
16370// GoString returns the string representation.
16371//
16372// API parameter values that are decorated as "sensitive" in the API will not
16373// be included in the string output. The member name will be present, but the
16374// value will be replaced with "sensitive".
16375func (s RollbackConfiguration) GoString() string {
16376	return s.String()
16377}
16378
16379// Validate inspects the fields of the type to determine if they are valid.
16380func (s *RollbackConfiguration) Validate() error {
16381	invalidParams := request.ErrInvalidParams{Context: "RollbackConfiguration"}
16382	if s.RollbackTriggers != nil {
16383		for i, v := range s.RollbackTriggers {
16384			if v == nil {
16385				continue
16386			}
16387			if err := v.Validate(); err != nil {
16388				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "RollbackTriggers", i), err.(request.ErrInvalidParams))
16389			}
16390		}
16391	}
16392
16393	if invalidParams.Len() > 0 {
16394		return invalidParams
16395	}
16396	return nil
16397}
16398
16399// SetMonitoringTimeInMinutes sets the MonitoringTimeInMinutes field's value.
16400func (s *RollbackConfiguration) SetMonitoringTimeInMinutes(v int64) *RollbackConfiguration {
16401	s.MonitoringTimeInMinutes = &v
16402	return s
16403}
16404
16405// SetRollbackTriggers sets the RollbackTriggers field's value.
16406func (s *RollbackConfiguration) SetRollbackTriggers(v []*RollbackTrigger) *RollbackConfiguration {
16407	s.RollbackTriggers = v
16408	return s
16409}
16410
16411type RollbackStackInput struct {
16412	_ struct{} `type:"structure"`
16413
16414	// A unique identifier for this RollbackStack request.
16415	ClientRequestToken *string `min:"1" type:"string"`
16416
16417	// The Amazon Resource Name (ARN) of an Identity and Access Management role
16418	// that CloudFormation assumes to rollback the stack.
16419	RoleARN *string `min:"20" type:"string"`
16420
16421	// The name that is associated with the stack.
16422	//
16423	// StackName is a required field
16424	StackName *string `min:"1" type:"string" required:"true"`
16425}
16426
16427// String returns the string representation.
16428//
16429// API parameter values that are decorated as "sensitive" in the API will not
16430// be included in the string output. The member name will be present, but the
16431// value will be replaced with "sensitive".
16432func (s RollbackStackInput) String() string {
16433	return awsutil.Prettify(s)
16434}
16435
16436// GoString returns the string representation.
16437//
16438// API parameter values that are decorated as "sensitive" in the API will not
16439// be included in the string output. The member name will be present, but the
16440// value will be replaced with "sensitive".
16441func (s RollbackStackInput) GoString() string {
16442	return s.String()
16443}
16444
16445// Validate inspects the fields of the type to determine if they are valid.
16446func (s *RollbackStackInput) Validate() error {
16447	invalidParams := request.ErrInvalidParams{Context: "RollbackStackInput"}
16448	if s.ClientRequestToken != nil && len(*s.ClientRequestToken) < 1 {
16449		invalidParams.Add(request.NewErrParamMinLen("ClientRequestToken", 1))
16450	}
16451	if s.RoleARN != nil && len(*s.RoleARN) < 20 {
16452		invalidParams.Add(request.NewErrParamMinLen("RoleARN", 20))
16453	}
16454	if s.StackName == nil {
16455		invalidParams.Add(request.NewErrParamRequired("StackName"))
16456	}
16457	if s.StackName != nil && len(*s.StackName) < 1 {
16458		invalidParams.Add(request.NewErrParamMinLen("StackName", 1))
16459	}
16460
16461	if invalidParams.Len() > 0 {
16462		return invalidParams
16463	}
16464	return nil
16465}
16466
16467// SetClientRequestToken sets the ClientRequestToken field's value.
16468func (s *RollbackStackInput) SetClientRequestToken(v string) *RollbackStackInput {
16469	s.ClientRequestToken = &v
16470	return s
16471}
16472
16473// SetRoleARN sets the RoleARN field's value.
16474func (s *RollbackStackInput) SetRoleARN(v string) *RollbackStackInput {
16475	s.RoleARN = &v
16476	return s
16477}
16478
16479// SetStackName sets the StackName field's value.
16480func (s *RollbackStackInput) SetStackName(v string) *RollbackStackInput {
16481	s.StackName = &v
16482	return s
16483}
16484
16485type RollbackStackOutput struct {
16486	_ struct{} `type:"structure"`
16487
16488	// Unique identifier of the stack.
16489	StackId *string `type:"string"`
16490}
16491
16492// String returns the string representation.
16493//
16494// API parameter values that are decorated as "sensitive" in the API will not
16495// be included in the string output. The member name will be present, but the
16496// value will be replaced with "sensitive".
16497func (s RollbackStackOutput) String() string {
16498	return awsutil.Prettify(s)
16499}
16500
16501// GoString returns the string representation.
16502//
16503// API parameter values that are decorated as "sensitive" in the API will not
16504// be included in the string output. The member name will be present, but the
16505// value will be replaced with "sensitive".
16506func (s RollbackStackOutput) GoString() string {
16507	return s.String()
16508}
16509
16510// SetStackId sets the StackId field's value.
16511func (s *RollbackStackOutput) SetStackId(v string) *RollbackStackOutput {
16512	s.StackId = &v
16513	return s
16514}
16515
16516// A rollback trigger CloudFormation monitors during creation and updating of
16517// stacks. If any of the alarms you specify goes to ALARM state during the stack
16518// operation or within the specified monitoring period afterwards, CloudFormation
16519// rolls back the entire stack operation.
16520type RollbackTrigger struct {
16521	_ struct{} `type:"structure"`
16522
16523	// The Amazon Resource Name (ARN) of the rollback trigger.
16524	//
16525	// If a specified trigger is missing, the entire stack operation fails and is
16526	// rolled back.
16527	//
16528	// Arn is a required field
16529	Arn *string `type:"string" required:"true"`
16530
16531	// The resource type of the rollback trigger. Currently, AWS::CloudWatch::Alarm
16532	// (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cw-alarm.html)
16533	// is the only supported resource type.
16534	//
16535	// Type is a required field
16536	Type *string `type:"string" required:"true"`
16537}
16538
16539// String returns the string representation.
16540//
16541// API parameter values that are decorated as "sensitive" in the API will not
16542// be included in the string output. The member name will be present, but the
16543// value will be replaced with "sensitive".
16544func (s RollbackTrigger) String() string {
16545	return awsutil.Prettify(s)
16546}
16547
16548// GoString returns the string representation.
16549//
16550// API parameter values that are decorated as "sensitive" in the API will not
16551// be included in the string output. The member name will be present, but the
16552// value will be replaced with "sensitive".
16553func (s RollbackTrigger) GoString() string {
16554	return s.String()
16555}
16556
16557// Validate inspects the fields of the type to determine if they are valid.
16558func (s *RollbackTrigger) Validate() error {
16559	invalidParams := request.ErrInvalidParams{Context: "RollbackTrigger"}
16560	if s.Arn == nil {
16561		invalidParams.Add(request.NewErrParamRequired("Arn"))
16562	}
16563	if s.Type == nil {
16564		invalidParams.Add(request.NewErrParamRequired("Type"))
16565	}
16566
16567	if invalidParams.Len() > 0 {
16568		return invalidParams
16569	}
16570	return nil
16571}
16572
16573// SetArn sets the Arn field's value.
16574func (s *RollbackTrigger) SetArn(v string) *RollbackTrigger {
16575	s.Arn = &v
16576	return s
16577}
16578
16579// SetType sets the Type field's value.
16580func (s *RollbackTrigger) SetType(v string) *RollbackTrigger {
16581	s.Type = &v
16582	return s
16583}
16584
16585// The input for the SetStackPolicy action.
16586type SetStackPolicyInput struct {
16587	_ struct{} `type:"structure"`
16588
16589	// The name or unique stack ID that you want to associate a policy with.
16590	//
16591	// StackName is a required field
16592	StackName *string `type:"string" required:"true"`
16593
16594	// Structure containing the stack policy body. For more information, go to Prevent
16595	// Updates to Stack Resources (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/protect-stack-resources.html)
16596	// in the CloudFormation User Guide. You can specify either the StackPolicyBody
16597	// or the StackPolicyURL parameter, but not both.
16598	StackPolicyBody *string `min:"1" type:"string"`
16599
16600	// Location of a file containing the stack policy. The URL must point to a policy
16601	// (maximum size: 16 KB) located in an S3 bucket in the same Region as the stack.
16602	// You can specify either the StackPolicyBody or the StackPolicyURL parameter,
16603	// but not both.
16604	StackPolicyURL *string `min:"1" type:"string"`
16605}
16606
16607// String returns the string representation.
16608//
16609// API parameter values that are decorated as "sensitive" in the API will not
16610// be included in the string output. The member name will be present, but the
16611// value will be replaced with "sensitive".
16612func (s SetStackPolicyInput) String() string {
16613	return awsutil.Prettify(s)
16614}
16615
16616// GoString returns the string representation.
16617//
16618// API parameter values that are decorated as "sensitive" in the API will not
16619// be included in the string output. The member name will be present, but the
16620// value will be replaced with "sensitive".
16621func (s SetStackPolicyInput) GoString() string {
16622	return s.String()
16623}
16624
16625// Validate inspects the fields of the type to determine if they are valid.
16626func (s *SetStackPolicyInput) Validate() error {
16627	invalidParams := request.ErrInvalidParams{Context: "SetStackPolicyInput"}
16628	if s.StackName == nil {
16629		invalidParams.Add(request.NewErrParamRequired("StackName"))
16630	}
16631	if s.StackPolicyBody != nil && len(*s.StackPolicyBody) < 1 {
16632		invalidParams.Add(request.NewErrParamMinLen("StackPolicyBody", 1))
16633	}
16634	if s.StackPolicyURL != nil && len(*s.StackPolicyURL) < 1 {
16635		invalidParams.Add(request.NewErrParamMinLen("StackPolicyURL", 1))
16636	}
16637
16638	if invalidParams.Len() > 0 {
16639		return invalidParams
16640	}
16641	return nil
16642}
16643
16644// SetStackName sets the StackName field's value.
16645func (s *SetStackPolicyInput) SetStackName(v string) *SetStackPolicyInput {
16646	s.StackName = &v
16647	return s
16648}
16649
16650// SetStackPolicyBody sets the StackPolicyBody field's value.
16651func (s *SetStackPolicyInput) SetStackPolicyBody(v string) *SetStackPolicyInput {
16652	s.StackPolicyBody = &v
16653	return s
16654}
16655
16656// SetStackPolicyURL sets the StackPolicyURL field's value.
16657func (s *SetStackPolicyInput) SetStackPolicyURL(v string) *SetStackPolicyInput {
16658	s.StackPolicyURL = &v
16659	return s
16660}
16661
16662type SetStackPolicyOutput struct {
16663	_ struct{} `type:"structure"`
16664}
16665
16666// String returns the string representation.
16667//
16668// API parameter values that are decorated as "sensitive" in the API will not
16669// be included in the string output. The member name will be present, but the
16670// value will be replaced with "sensitive".
16671func (s SetStackPolicyOutput) String() string {
16672	return awsutil.Prettify(s)
16673}
16674
16675// GoString returns the string representation.
16676//
16677// API parameter values that are decorated as "sensitive" in the API will not
16678// be included in the string output. The member name will be present, but the
16679// value will be replaced with "sensitive".
16680func (s SetStackPolicyOutput) GoString() string {
16681	return s.String()
16682}
16683
16684type SetTypeConfigurationInput struct {
16685	_ struct{} `type:"structure"`
16686
16687	// The configuration data for the extension, in this account and region.
16688	//
16689	// The configuration data must be formatted as JSON, and validate against the
16690	// schema returned in the ConfigurationSchema response element of API_DescribeType
16691	// (AWSCloudFormation/latest/APIReference/API_DescribeType.html). For more information,
16692	// 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)
16693	// in the CloudFormation CLI User Guide.
16694	//
16695	// Configuration is a required field
16696	Configuration *string `min:"1" type:"string" required:"true"`
16697
16698	// An alias by which to refer to this extension configuration data.
16699	//
16700	// Conditional: Specifying a configuration alias is required when setting a
16701	// configuration for a resource type extension.
16702	ConfigurationAlias *string `min:"1" type:"string"`
16703
16704	// The type of extension.
16705	//
16706	// Conditional: You must specify ConfigurationArn, or Type and TypeName.
16707	Type *string `type:"string" enum:"ThirdPartyType"`
16708
16709	// The Amazon Resource Name (ARN) for the extension, in this account and region.
16710	//
16711	// For public extensions, this will be the ARN assigned when you activate the
16712	// type (https://docs.aws.amazon.com/AWSCloudFormation/latest/APIReference/API_ActivateType.html)
16713	// in this account and region. For private extensions, this will be the ARN
16714	// assigned when you register the type (https://docs.aws.amazon.com/AWSCloudFormation/latest/APIReference/API_RegisterType.html)
16715	// in this account and region.
16716	//
16717	// Do not include the extension versions suffix at the end of the ARN. You can
16718	// set the configuration for an extension, but not for a specific extension
16719	// version.
16720	TypeArn *string `type:"string"`
16721
16722	// The name of the extension.
16723	//
16724	// Conditional: You must specify ConfigurationArn, or Type and TypeName.
16725	TypeName *string `min:"10" type:"string"`
16726}
16727
16728// String returns the string representation.
16729//
16730// API parameter values that are decorated as "sensitive" in the API will not
16731// be included in the string output. The member name will be present, but the
16732// value will be replaced with "sensitive".
16733func (s SetTypeConfigurationInput) String() string {
16734	return awsutil.Prettify(s)
16735}
16736
16737// GoString returns the string representation.
16738//
16739// API parameter values that are decorated as "sensitive" in the API will not
16740// be included in the string output. The member name will be present, but the
16741// value will be replaced with "sensitive".
16742func (s SetTypeConfigurationInput) GoString() string {
16743	return s.String()
16744}
16745
16746// Validate inspects the fields of the type to determine if they are valid.
16747func (s *SetTypeConfigurationInput) Validate() error {
16748	invalidParams := request.ErrInvalidParams{Context: "SetTypeConfigurationInput"}
16749	if s.Configuration == nil {
16750		invalidParams.Add(request.NewErrParamRequired("Configuration"))
16751	}
16752	if s.Configuration != nil && len(*s.Configuration) < 1 {
16753		invalidParams.Add(request.NewErrParamMinLen("Configuration", 1))
16754	}
16755	if s.ConfigurationAlias != nil && len(*s.ConfigurationAlias) < 1 {
16756		invalidParams.Add(request.NewErrParamMinLen("ConfigurationAlias", 1))
16757	}
16758	if s.TypeName != nil && len(*s.TypeName) < 10 {
16759		invalidParams.Add(request.NewErrParamMinLen("TypeName", 10))
16760	}
16761
16762	if invalidParams.Len() > 0 {
16763		return invalidParams
16764	}
16765	return nil
16766}
16767
16768// SetConfiguration sets the Configuration field's value.
16769func (s *SetTypeConfigurationInput) SetConfiguration(v string) *SetTypeConfigurationInput {
16770	s.Configuration = &v
16771	return s
16772}
16773
16774// SetConfigurationAlias sets the ConfigurationAlias field's value.
16775func (s *SetTypeConfigurationInput) SetConfigurationAlias(v string) *SetTypeConfigurationInput {
16776	s.ConfigurationAlias = &v
16777	return s
16778}
16779
16780// SetType sets the Type field's value.
16781func (s *SetTypeConfigurationInput) SetType(v string) *SetTypeConfigurationInput {
16782	s.Type = &v
16783	return s
16784}
16785
16786// SetTypeArn sets the TypeArn field's value.
16787func (s *SetTypeConfigurationInput) SetTypeArn(v string) *SetTypeConfigurationInput {
16788	s.TypeArn = &v
16789	return s
16790}
16791
16792// SetTypeName sets the TypeName field's value.
16793func (s *SetTypeConfigurationInput) SetTypeName(v string) *SetTypeConfigurationInput {
16794	s.TypeName = &v
16795	return s
16796}
16797
16798type SetTypeConfigurationOutput struct {
16799	_ struct{} `type:"structure"`
16800
16801	// The Amazon Resource Name (ARN) for the configuration data, in this account
16802	// and region.
16803	//
16804	// Conditional: You must specify ConfigurationArn, or Type and TypeName.
16805	ConfigurationArn *string `type:"string"`
16806}
16807
16808// String returns the string representation.
16809//
16810// API parameter values that are decorated as "sensitive" in the API will not
16811// be included in the string output. The member name will be present, but the
16812// value will be replaced with "sensitive".
16813func (s SetTypeConfigurationOutput) String() string {
16814	return awsutil.Prettify(s)
16815}
16816
16817// GoString returns the string representation.
16818//
16819// API parameter values that are decorated as "sensitive" in the API will not
16820// be included in the string output. The member name will be present, but the
16821// value will be replaced with "sensitive".
16822func (s SetTypeConfigurationOutput) GoString() string {
16823	return s.String()
16824}
16825
16826// SetConfigurationArn sets the ConfigurationArn field's value.
16827func (s *SetTypeConfigurationOutput) SetConfigurationArn(v string) *SetTypeConfigurationOutput {
16828	s.ConfigurationArn = &v
16829	return s
16830}
16831
16832type SetTypeDefaultVersionInput struct {
16833	_ struct{} `type:"structure"`
16834
16835	// The Amazon Resource Name (ARN) of the extension for which you want version
16836	// summary information.
16837	//
16838	// Conditional: You must specify either TypeName and Type, or Arn.
16839	Arn *string `type:"string"`
16840
16841	// The kind of extension.
16842	//
16843	// Conditional: You must specify either TypeName and Type, or Arn.
16844	Type *string `type:"string" enum:"RegistryType"`
16845
16846	// The name of the extension.
16847	//
16848	// Conditional: You must specify either TypeName and Type, or Arn.
16849	TypeName *string `min:"10" type:"string"`
16850
16851	// The ID of a specific version of the extension. The version ID is the value
16852	// at the end of the Amazon Resource Name (ARN) assigned to the extension version
16853	// when it is registered.
16854	VersionId *string `min:"1" type:"string"`
16855}
16856
16857// String returns the string representation.
16858//
16859// API parameter values that are decorated as "sensitive" in the API will not
16860// be included in the string output. The member name will be present, but the
16861// value will be replaced with "sensitive".
16862func (s SetTypeDefaultVersionInput) String() string {
16863	return awsutil.Prettify(s)
16864}
16865
16866// GoString returns the string representation.
16867//
16868// API parameter values that are decorated as "sensitive" in the API will not
16869// be included in the string output. The member name will be present, but the
16870// value will be replaced with "sensitive".
16871func (s SetTypeDefaultVersionInput) GoString() string {
16872	return s.String()
16873}
16874
16875// Validate inspects the fields of the type to determine if they are valid.
16876func (s *SetTypeDefaultVersionInput) Validate() error {
16877	invalidParams := request.ErrInvalidParams{Context: "SetTypeDefaultVersionInput"}
16878	if s.TypeName != nil && len(*s.TypeName) < 10 {
16879		invalidParams.Add(request.NewErrParamMinLen("TypeName", 10))
16880	}
16881	if s.VersionId != nil && len(*s.VersionId) < 1 {
16882		invalidParams.Add(request.NewErrParamMinLen("VersionId", 1))
16883	}
16884
16885	if invalidParams.Len() > 0 {
16886		return invalidParams
16887	}
16888	return nil
16889}
16890
16891// SetArn sets the Arn field's value.
16892func (s *SetTypeDefaultVersionInput) SetArn(v string) *SetTypeDefaultVersionInput {
16893	s.Arn = &v
16894	return s
16895}
16896
16897// SetType sets the Type field's value.
16898func (s *SetTypeDefaultVersionInput) SetType(v string) *SetTypeDefaultVersionInput {
16899	s.Type = &v
16900	return s
16901}
16902
16903// SetTypeName sets the TypeName field's value.
16904func (s *SetTypeDefaultVersionInput) SetTypeName(v string) *SetTypeDefaultVersionInput {
16905	s.TypeName = &v
16906	return s
16907}
16908
16909// SetVersionId sets the VersionId field's value.
16910func (s *SetTypeDefaultVersionInput) SetVersionId(v string) *SetTypeDefaultVersionInput {
16911	s.VersionId = &v
16912	return s
16913}
16914
16915type SetTypeDefaultVersionOutput struct {
16916	_ struct{} `type:"structure"`
16917}
16918
16919// String returns the string representation.
16920//
16921// API parameter values that are decorated as "sensitive" in the API will not
16922// be included in the string output. The member name will be present, but the
16923// value will be replaced with "sensitive".
16924func (s SetTypeDefaultVersionOutput) String() string {
16925	return awsutil.Prettify(s)
16926}
16927
16928// GoString returns the string representation.
16929//
16930// API parameter values that are decorated as "sensitive" in the API will not
16931// be included in the string output. The member name will be present, but the
16932// value will be replaced with "sensitive".
16933func (s SetTypeDefaultVersionOutput) GoString() string {
16934	return s.String()
16935}
16936
16937// The input for the SignalResource action.
16938type SignalResourceInput struct {
16939	_ struct{} `type:"structure"`
16940
16941	// The logical ID of the resource that you want to signal. The logical ID is
16942	// the name of the resource that given in the template.
16943	//
16944	// LogicalResourceId is a required field
16945	LogicalResourceId *string `type:"string" required:"true"`
16946
16947	// The stack name or unique stack ID that includes the resource that you want
16948	// to signal.
16949	//
16950	// StackName is a required field
16951	StackName *string `min:"1" type:"string" required:"true"`
16952
16953	// The status of the signal, which is either success or failure. A failure signal
16954	// causes CloudFormation to immediately fail the stack creation or update.
16955	//
16956	// Status is a required field
16957	Status *string `type:"string" required:"true" enum:"ResourceSignalStatus"`
16958
16959	// A unique ID of the signal. When you signal Amazon EC2 instances or Auto Scaling
16960	// groups, specify the instance ID that you are signaling as the unique ID.
16961	// If you send multiple signals to a single resource (such as signaling a wait
16962	// condition), each signal requires a different unique ID.
16963	//
16964	// UniqueId is a required field
16965	UniqueId *string `min:"1" type:"string" required:"true"`
16966}
16967
16968// String returns the string representation.
16969//
16970// API parameter values that are decorated as "sensitive" in the API will not
16971// be included in the string output. The member name will be present, but the
16972// value will be replaced with "sensitive".
16973func (s SignalResourceInput) String() string {
16974	return awsutil.Prettify(s)
16975}
16976
16977// GoString returns the string representation.
16978//
16979// API parameter values that are decorated as "sensitive" in the API will not
16980// be included in the string output. The member name will be present, but the
16981// value will be replaced with "sensitive".
16982func (s SignalResourceInput) GoString() string {
16983	return s.String()
16984}
16985
16986// Validate inspects the fields of the type to determine if they are valid.
16987func (s *SignalResourceInput) Validate() error {
16988	invalidParams := request.ErrInvalidParams{Context: "SignalResourceInput"}
16989	if s.LogicalResourceId == nil {
16990		invalidParams.Add(request.NewErrParamRequired("LogicalResourceId"))
16991	}
16992	if s.StackName == nil {
16993		invalidParams.Add(request.NewErrParamRequired("StackName"))
16994	}
16995	if s.StackName != nil && len(*s.StackName) < 1 {
16996		invalidParams.Add(request.NewErrParamMinLen("StackName", 1))
16997	}
16998	if s.Status == nil {
16999		invalidParams.Add(request.NewErrParamRequired("Status"))
17000	}
17001	if s.UniqueId == nil {
17002		invalidParams.Add(request.NewErrParamRequired("UniqueId"))
17003	}
17004	if s.UniqueId != nil && len(*s.UniqueId) < 1 {
17005		invalidParams.Add(request.NewErrParamMinLen("UniqueId", 1))
17006	}
17007
17008	if invalidParams.Len() > 0 {
17009		return invalidParams
17010	}
17011	return nil
17012}
17013
17014// SetLogicalResourceId sets the LogicalResourceId field's value.
17015func (s *SignalResourceInput) SetLogicalResourceId(v string) *SignalResourceInput {
17016	s.LogicalResourceId = &v
17017	return s
17018}
17019
17020// SetStackName sets the StackName field's value.
17021func (s *SignalResourceInput) SetStackName(v string) *SignalResourceInput {
17022	s.StackName = &v
17023	return s
17024}
17025
17026// SetStatus sets the Status field's value.
17027func (s *SignalResourceInput) SetStatus(v string) *SignalResourceInput {
17028	s.Status = &v
17029	return s
17030}
17031
17032// SetUniqueId sets the UniqueId field's value.
17033func (s *SignalResourceInput) SetUniqueId(v string) *SignalResourceInput {
17034	s.UniqueId = &v
17035	return s
17036}
17037
17038type SignalResourceOutput struct {
17039	_ struct{} `type:"structure"`
17040}
17041
17042// String returns the string representation.
17043//
17044// API parameter values that are decorated as "sensitive" in the API will not
17045// be included in the string output. The member name will be present, but the
17046// value will be replaced with "sensitive".
17047func (s SignalResourceOutput) String() string {
17048	return awsutil.Prettify(s)
17049}
17050
17051// GoString returns the string representation.
17052//
17053// API parameter values that are decorated as "sensitive" in the API will not
17054// be included in the string output. The member name will be present, but the
17055// value will be replaced with "sensitive".
17056func (s SignalResourceOutput) GoString() string {
17057	return s.String()
17058}
17059
17060// The Stack data type.
17061type Stack struct {
17062	_ struct{} `type:"structure"`
17063
17064	// The capabilities allowed in the stack.
17065	Capabilities []*string `type:"list"`
17066
17067	// The unique ID of the change set.
17068	ChangeSetId *string `min:"1" type:"string"`
17069
17070	// The time at which the stack was created.
17071	//
17072	// CreationTime is a required field
17073	CreationTime *time.Time `type:"timestamp" required:"true"`
17074
17075	// The time the stack was deleted.
17076	DeletionTime *time.Time `type:"timestamp"`
17077
17078	// A user-defined description associated with the stack.
17079	Description *string `min:"1" type:"string"`
17080
17081	// Boolean to enable or disable rollback on stack creation failures:
17082	//
17083	//    * true: disable rollback
17084	//
17085	//    * false: enable rollback
17086	DisableRollback *bool `type:"boolean"`
17087
17088	// Information on whether a stack's actual configuration differs, or has drifted,
17089	// from it's expected configuration, as defined in the stack template and any
17090	// values specified as template parameters. For more information, see Detecting
17091	// Unregulated Configuration Changes to Stacks and Resources (http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-stack-drift.html).
17092	DriftInformation *StackDriftInformation `type:"structure"`
17093
17094	// Whether termination protection is enabled for the stack.
17095	//
17096	// For nested stacks (http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-nested-stacks.html),
17097	// termination protection is set on the root stack and cannot be changed directly
17098	// on the nested stack. For more information, see Protecting a Stack From Being
17099	// Deleted (http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-protect-stacks.html)
17100	// in the CloudFormation User Guide.
17101	EnableTerminationProtection *bool `type:"boolean"`
17102
17103	// The time the stack was last updated. This field will only be returned if
17104	// the stack has been updated at least once.
17105	LastUpdatedTime *time.Time `type:"timestamp"`
17106
17107	// SNS topic ARNs to which stack related events are published.
17108	NotificationARNs []*string `type:"list"`
17109
17110	// A list of output structures.
17111	Outputs []*Output `type:"list"`
17112
17113	// A list of Parameter structures.
17114	Parameters []*Parameter `type:"list"`
17115
17116	// For nested stacks--stacks created as resources for another stack--the stack
17117	// ID of the direct parent of this stack. For the first level of nested stacks,
17118	// the root stack is also the parent stack.
17119	//
17120	// For more information, see Working with Nested Stacks (http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-nested-stacks.html)
17121	// in the CloudFormation User Guide.
17122	ParentId *string `type:"string"`
17123
17124	// The Amazon Resource Name (ARN) of an Identity and Access Management (IAM)
17125	// role that is associated with the stack. During a stack operation, CloudFormation
17126	// uses this role's credentials to make calls on your behalf.
17127	RoleARN *string `min:"20" type:"string"`
17128
17129	// The rollback triggers for CloudFormation to monitor during stack creation
17130	// and updating operations, and for the specified monitoring period afterwards.
17131	RollbackConfiguration *RollbackConfiguration `type:"structure"`
17132
17133	// For nested stacks--stacks created as resources for another stack--the stack
17134	// ID of the top-level stack to which the nested stack ultimately belongs.
17135	//
17136	// For more information, see Working with Nested Stacks (http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-nested-stacks.html)
17137	// in the CloudFormation User Guide.
17138	RootId *string `type:"string"`
17139
17140	// Unique identifier of the stack.
17141	StackId *string `type:"string"`
17142
17143	// The name associated with the stack.
17144	//
17145	// StackName is a required field
17146	StackName *string `type:"string" required:"true"`
17147
17148	// Current status of the stack.
17149	//
17150	// StackStatus is a required field
17151	StackStatus *string `type:"string" required:"true" enum:"StackStatus"`
17152
17153	// Success/failure message associated with the stack status.
17154	StackStatusReason *string `type:"string"`
17155
17156	// A list of Tags that specify information about the stack.
17157	Tags []*Tag `type:"list"`
17158
17159	// The amount of time within which stack creation should complete.
17160	TimeoutInMinutes *int64 `min:"1" type:"integer"`
17161}
17162
17163// String returns the string representation.
17164//
17165// API parameter values that are decorated as "sensitive" in the API will not
17166// be included in the string output. The member name will be present, but the
17167// value will be replaced with "sensitive".
17168func (s Stack) String() string {
17169	return awsutil.Prettify(s)
17170}
17171
17172// GoString returns the string representation.
17173//
17174// API parameter values that are decorated as "sensitive" in the API will not
17175// be included in the string output. The member name will be present, but the
17176// value will be replaced with "sensitive".
17177func (s Stack) GoString() string {
17178	return s.String()
17179}
17180
17181// SetCapabilities sets the Capabilities field's value.
17182func (s *Stack) SetCapabilities(v []*string) *Stack {
17183	s.Capabilities = v
17184	return s
17185}
17186
17187// SetChangeSetId sets the ChangeSetId field's value.
17188func (s *Stack) SetChangeSetId(v string) *Stack {
17189	s.ChangeSetId = &v
17190	return s
17191}
17192
17193// SetCreationTime sets the CreationTime field's value.
17194func (s *Stack) SetCreationTime(v time.Time) *Stack {
17195	s.CreationTime = &v
17196	return s
17197}
17198
17199// SetDeletionTime sets the DeletionTime field's value.
17200func (s *Stack) SetDeletionTime(v time.Time) *Stack {
17201	s.DeletionTime = &v
17202	return s
17203}
17204
17205// SetDescription sets the Description field's value.
17206func (s *Stack) SetDescription(v string) *Stack {
17207	s.Description = &v
17208	return s
17209}
17210
17211// SetDisableRollback sets the DisableRollback field's value.
17212func (s *Stack) SetDisableRollback(v bool) *Stack {
17213	s.DisableRollback = &v
17214	return s
17215}
17216
17217// SetDriftInformation sets the DriftInformation field's value.
17218func (s *Stack) SetDriftInformation(v *StackDriftInformation) *Stack {
17219	s.DriftInformation = v
17220	return s
17221}
17222
17223// SetEnableTerminationProtection sets the EnableTerminationProtection field's value.
17224func (s *Stack) SetEnableTerminationProtection(v bool) *Stack {
17225	s.EnableTerminationProtection = &v
17226	return s
17227}
17228
17229// SetLastUpdatedTime sets the LastUpdatedTime field's value.
17230func (s *Stack) SetLastUpdatedTime(v time.Time) *Stack {
17231	s.LastUpdatedTime = &v
17232	return s
17233}
17234
17235// SetNotificationARNs sets the NotificationARNs field's value.
17236func (s *Stack) SetNotificationARNs(v []*string) *Stack {
17237	s.NotificationARNs = v
17238	return s
17239}
17240
17241// SetOutputs sets the Outputs field's value.
17242func (s *Stack) SetOutputs(v []*Output) *Stack {
17243	s.Outputs = v
17244	return s
17245}
17246
17247// SetParameters sets the Parameters field's value.
17248func (s *Stack) SetParameters(v []*Parameter) *Stack {
17249	s.Parameters = v
17250	return s
17251}
17252
17253// SetParentId sets the ParentId field's value.
17254func (s *Stack) SetParentId(v string) *Stack {
17255	s.ParentId = &v
17256	return s
17257}
17258
17259// SetRoleARN sets the RoleARN field's value.
17260func (s *Stack) SetRoleARN(v string) *Stack {
17261	s.RoleARN = &v
17262	return s
17263}
17264
17265// SetRollbackConfiguration sets the RollbackConfiguration field's value.
17266func (s *Stack) SetRollbackConfiguration(v *RollbackConfiguration) *Stack {
17267	s.RollbackConfiguration = v
17268	return s
17269}
17270
17271// SetRootId sets the RootId field's value.
17272func (s *Stack) SetRootId(v string) *Stack {
17273	s.RootId = &v
17274	return s
17275}
17276
17277// SetStackId sets the StackId field's value.
17278func (s *Stack) SetStackId(v string) *Stack {
17279	s.StackId = &v
17280	return s
17281}
17282
17283// SetStackName sets the StackName field's value.
17284func (s *Stack) SetStackName(v string) *Stack {
17285	s.StackName = &v
17286	return s
17287}
17288
17289// SetStackStatus sets the StackStatus field's value.
17290func (s *Stack) SetStackStatus(v string) *Stack {
17291	s.StackStatus = &v
17292	return s
17293}
17294
17295// SetStackStatusReason sets the StackStatusReason field's value.
17296func (s *Stack) SetStackStatusReason(v string) *Stack {
17297	s.StackStatusReason = &v
17298	return s
17299}
17300
17301// SetTags sets the Tags field's value.
17302func (s *Stack) SetTags(v []*Tag) *Stack {
17303	s.Tags = v
17304	return s
17305}
17306
17307// SetTimeoutInMinutes sets the TimeoutInMinutes field's value.
17308func (s *Stack) SetTimeoutInMinutes(v int64) *Stack {
17309	s.TimeoutInMinutes = &v
17310	return s
17311}
17312
17313// Contains information about whether the stack's actual configuration differs,
17314// or has drifted, from its expected configuration, as defined in the stack
17315// template and any values specified as template parameters. A stack is considered
17316// to have drifted if one or more of its resources have drifted.
17317type StackDriftInformation struct {
17318	_ struct{} `type:"structure"`
17319
17320	// Most recent time when a drift detection operation was initiated on the stack,
17321	// or any of its individual resources that support drift detection.
17322	LastCheckTimestamp *time.Time `type:"timestamp"`
17323
17324	// Status of the stack's actual configuration compared to its expected template
17325	// configuration.
17326	//
17327	//    * DRIFTED: The stack differs from its expected template configuration.
17328	//    A stack is considered to have drifted if one or more of its resources
17329	//    have drifted.
17330	//
17331	//    * NOT_CHECKED: CloudFormation has not checked if the stack differs from
17332	//    its expected template configuration.
17333	//
17334	//    * IN_SYNC: The stack's actual configuration matches its expected template
17335	//    configuration.
17336	//
17337	//    * UNKNOWN: This value is reserved for future use.
17338	//
17339	// StackDriftStatus is a required field
17340	StackDriftStatus *string `type:"string" required:"true" enum:"StackDriftStatus"`
17341}
17342
17343// String returns the string representation.
17344//
17345// API parameter values that are decorated as "sensitive" in the API will not
17346// be included in the string output. The member name will be present, but the
17347// value will be replaced with "sensitive".
17348func (s StackDriftInformation) String() string {
17349	return awsutil.Prettify(s)
17350}
17351
17352// GoString returns the string representation.
17353//
17354// API parameter values that are decorated as "sensitive" in the API will not
17355// be included in the string output. The member name will be present, but the
17356// value will be replaced with "sensitive".
17357func (s StackDriftInformation) GoString() string {
17358	return s.String()
17359}
17360
17361// SetLastCheckTimestamp sets the LastCheckTimestamp field's value.
17362func (s *StackDriftInformation) SetLastCheckTimestamp(v time.Time) *StackDriftInformation {
17363	s.LastCheckTimestamp = &v
17364	return s
17365}
17366
17367// SetStackDriftStatus sets the StackDriftStatus field's value.
17368func (s *StackDriftInformation) SetStackDriftStatus(v string) *StackDriftInformation {
17369	s.StackDriftStatus = &v
17370	return s
17371}
17372
17373// Contains information about whether the stack's actual configuration differs,
17374// or has drifted, from its expected configuration, as defined in the stack
17375// template and any values specified as template parameters. A stack is considered
17376// to have drifted if one or more of its resources have drifted.
17377type StackDriftInformationSummary struct {
17378	_ struct{} `type:"structure"`
17379
17380	// Most recent time when a drift detection operation was initiated on the stack,
17381	// or any of its individual resources that support drift detection.
17382	LastCheckTimestamp *time.Time `type:"timestamp"`
17383
17384	// Status of the stack's actual configuration compared to its expected template
17385	// configuration.
17386	//
17387	//    * DRIFTED: The stack differs from its expected template configuration.
17388	//    A stack is considered to have drifted if one or more of its resources
17389	//    have drifted.
17390	//
17391	//    * NOT_CHECKED: CloudFormation has not checked if the stack differs from
17392	//    its expected template configuration.
17393	//
17394	//    * IN_SYNC: The stack's actual configuration matches its expected template
17395	//    configuration.
17396	//
17397	//    * UNKNOWN: This value is reserved for future use.
17398	//
17399	// StackDriftStatus is a required field
17400	StackDriftStatus *string `type:"string" required:"true" enum:"StackDriftStatus"`
17401}
17402
17403// String returns the string representation.
17404//
17405// API parameter values that are decorated as "sensitive" in the API will not
17406// be included in the string output. The member name will be present, but the
17407// value will be replaced with "sensitive".
17408func (s StackDriftInformationSummary) String() string {
17409	return awsutil.Prettify(s)
17410}
17411
17412// GoString returns the string representation.
17413//
17414// API parameter values that are decorated as "sensitive" in the API will not
17415// be included in the string output. The member name will be present, but the
17416// value will be replaced with "sensitive".
17417func (s StackDriftInformationSummary) GoString() string {
17418	return s.String()
17419}
17420
17421// SetLastCheckTimestamp sets the LastCheckTimestamp field's value.
17422func (s *StackDriftInformationSummary) SetLastCheckTimestamp(v time.Time) *StackDriftInformationSummary {
17423	s.LastCheckTimestamp = &v
17424	return s
17425}
17426
17427// SetStackDriftStatus sets the StackDriftStatus field's value.
17428func (s *StackDriftInformationSummary) SetStackDriftStatus(v string) *StackDriftInformationSummary {
17429	s.StackDriftStatus = &v
17430	return s
17431}
17432
17433// The StackEvent data type.
17434type StackEvent struct {
17435	_ struct{} `type:"structure"`
17436
17437	// The token passed to the operation that generated this event.
17438	//
17439	// All events triggered by a given stack operation are assigned the same client
17440	// request token, which you can use to track operations. For example, if you
17441	// execute a CreateStack operation with the token token1, then all the StackEvents
17442	// generated by that operation will have ClientRequestToken set as token1.
17443	//
17444	// In the console, stack operations display the client request token on the
17445	// Events tab. Stack operations that are initiated from the console use the
17446	// token format Console-StackOperation-ID, which helps you easily identify the
17447	// stack operation . For example, if you create a stack using the console, each
17448	// stack event would be assigned the same token in the following format: Console-CreateStack-7f59c3cf-00d2-40c7-b2ff-e75db0987002.
17449	ClientRequestToken *string `min:"1" type:"string"`
17450
17451	// The unique ID of this event.
17452	//
17453	// EventId is a required field
17454	EventId *string `type:"string" required:"true"`
17455
17456	// The logical name of the resource specified in the template.
17457	LogicalResourceId *string `type:"string"`
17458
17459	// The name or unique identifier associated with the physical instance of the
17460	// resource.
17461	PhysicalResourceId *string `type:"string"`
17462
17463	// BLOB of the properties used to create the resource.
17464	ResourceProperties *string `type:"string"`
17465
17466	// Current status of the resource.
17467	ResourceStatus *string `type:"string" enum:"ResourceStatus"`
17468
17469	// Success/failure message associated with the resource.
17470	ResourceStatusReason *string `type:"string"`
17471
17472	// Type of resource. (For more information, go to Amazon Web Services Resource
17473	// Types Reference (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-template-resource-type-ref.html)
17474	// in the CloudFormation User Guide.)
17475	ResourceType *string `min:"1" type:"string"`
17476
17477	// The unique ID name of the instance of the stack.
17478	//
17479	// StackId is a required field
17480	StackId *string `type:"string" required:"true"`
17481
17482	// The name associated with a stack.
17483	//
17484	// StackName is a required field
17485	StackName *string `type:"string" required:"true"`
17486
17487	// Time the status was updated.
17488	//
17489	// Timestamp is a required field
17490	Timestamp *time.Time `type:"timestamp" required:"true"`
17491}
17492
17493// String returns the string representation.
17494//
17495// API parameter values that are decorated as "sensitive" in the API will not
17496// be included in the string output. The member name will be present, but the
17497// value will be replaced with "sensitive".
17498func (s StackEvent) String() string {
17499	return awsutil.Prettify(s)
17500}
17501
17502// GoString returns the string representation.
17503//
17504// API parameter values that are decorated as "sensitive" in the API will not
17505// be included in the string output. The member name will be present, but the
17506// value will be replaced with "sensitive".
17507func (s StackEvent) GoString() string {
17508	return s.String()
17509}
17510
17511// SetClientRequestToken sets the ClientRequestToken field's value.
17512func (s *StackEvent) SetClientRequestToken(v string) *StackEvent {
17513	s.ClientRequestToken = &v
17514	return s
17515}
17516
17517// SetEventId sets the EventId field's value.
17518func (s *StackEvent) SetEventId(v string) *StackEvent {
17519	s.EventId = &v
17520	return s
17521}
17522
17523// SetLogicalResourceId sets the LogicalResourceId field's value.
17524func (s *StackEvent) SetLogicalResourceId(v string) *StackEvent {
17525	s.LogicalResourceId = &v
17526	return s
17527}
17528
17529// SetPhysicalResourceId sets the PhysicalResourceId field's value.
17530func (s *StackEvent) SetPhysicalResourceId(v string) *StackEvent {
17531	s.PhysicalResourceId = &v
17532	return s
17533}
17534
17535// SetResourceProperties sets the ResourceProperties field's value.
17536func (s *StackEvent) SetResourceProperties(v string) *StackEvent {
17537	s.ResourceProperties = &v
17538	return s
17539}
17540
17541// SetResourceStatus sets the ResourceStatus field's value.
17542func (s *StackEvent) SetResourceStatus(v string) *StackEvent {
17543	s.ResourceStatus = &v
17544	return s
17545}
17546
17547// SetResourceStatusReason sets the ResourceStatusReason field's value.
17548func (s *StackEvent) SetResourceStatusReason(v string) *StackEvent {
17549	s.ResourceStatusReason = &v
17550	return s
17551}
17552
17553// SetResourceType sets the ResourceType field's value.
17554func (s *StackEvent) SetResourceType(v string) *StackEvent {
17555	s.ResourceType = &v
17556	return s
17557}
17558
17559// SetStackId sets the StackId field's value.
17560func (s *StackEvent) SetStackId(v string) *StackEvent {
17561	s.StackId = &v
17562	return s
17563}
17564
17565// SetStackName sets the StackName field's value.
17566func (s *StackEvent) SetStackName(v string) *StackEvent {
17567	s.StackName = &v
17568	return s
17569}
17570
17571// SetTimestamp sets the Timestamp field's value.
17572func (s *StackEvent) SetTimestamp(v time.Time) *StackEvent {
17573	s.Timestamp = &v
17574	return s
17575}
17576
17577// An CloudFormation stack, in a specific account and Region, that's part of
17578// a stack set operation. A stack instance is a reference to an attempted or
17579// actual stack in a given account within a given Region. A stack instance can
17580// exist without a stack—for example, if the stack couldn't be created for
17581// some reason. A stack instance is associated with only one stack set. Each
17582// stack instance contains the ID of its associated stack set, as well as the
17583// ID of the actual stack and the stack status.
17584type StackInstance struct {
17585	_ struct{} `type:"structure"`
17586
17587	// [Self-managed permissions] The name of the Amazon Web Services account that
17588	// the stack instance is associated with.
17589	Account *string `type:"string"`
17590
17591	// Status of the stack instance's actual configuration compared to the expected
17592	// template and parameter configuration of the stack set to which it belongs.
17593	//
17594	//    * DRIFTED: The stack differs from the expected template and parameter
17595	//    configuration of the stack set to which it belongs. A stack instance is
17596	//    considered to have drifted if one or more of the resources in the associated
17597	//    stack have drifted.
17598	//
17599	//    * NOT_CHECKED: CloudFormation has not checked if the stack instance differs
17600	//    from its expected stack set configuration.
17601	//
17602	//    * IN_SYNC: The stack instance's actual configuration matches its expected
17603	//    stack set configuration.
17604	//
17605	//    * UNKNOWN: This value is reserved for future use.
17606	DriftStatus *string `type:"string" enum:"StackDriftStatus"`
17607
17608	// Most recent time when CloudFormation performed a drift detection operation
17609	// on the stack instance. This value will be NULL for any stack instance on
17610	// which drift detection has not yet been performed.
17611	LastDriftCheckTimestamp *time.Time `type:"timestamp"`
17612
17613	// [Service-managed permissions] The organization root ID or organizational
17614	// unit (OU) IDs that you specified for DeploymentTargets (https://docs.aws.amazon.com/AWSCloudFormation/latest/APIReference/API_DeploymentTargets.html).
17615	OrganizationalUnitId *string `type:"string"`
17616
17617	// A list of parameters from the stack set template whose values have been overridden
17618	// in this stack instance.
17619	ParameterOverrides []*Parameter `type:"list"`
17620
17621	// The name of the Amazon Web Services Region that the stack instance is associated
17622	// with.
17623	Region *string `type:"string"`
17624
17625	// The ID of the stack instance.
17626	StackId *string `type:"string"`
17627
17628	// The detailed status of the stack instance.
17629	StackInstanceStatus *StackInstanceComprehensiveStatus `type:"structure"`
17630
17631	// The name or unique ID of the stack set that the stack instance is associated
17632	// with.
17633	StackSetId *string `type:"string"`
17634
17635	// The status of the stack instance, in terms of its synchronization with its
17636	// associated stack set.
17637	//
17638	//    * INOPERABLE: A DeleteStackInstances operation has failed and left the
17639	//    stack in an unstable state. Stacks in this state are excluded from further
17640	//    UpdateStackSet operations. You might need to perform a DeleteStackInstances
17641	//    operation, with RetainStacks set to true, to delete the stack instance,
17642	//    and then delete the stack manually.
17643	//
17644	//    * OUTDATED: The stack isn't currently up to date with the stack set because:
17645	//    The associated stack failed during a CreateStackSet or UpdateStackSet
17646	//    operation. The stack was part of a CreateStackSet or UpdateStackSet operation
17647	//    that failed or was stopped before the stack was created or updated.
17648	//
17649	//    * CURRENT: The stack is currently up to date with the stack set.
17650	Status *string `type:"string" enum:"StackInstanceStatus"`
17651
17652	// The explanation for the specific status code that is assigned to this stack
17653	// instance.
17654	StatusReason *string `type:"string"`
17655}
17656
17657// String returns the string representation.
17658//
17659// API parameter values that are decorated as "sensitive" in the API will not
17660// be included in the string output. The member name will be present, but the
17661// value will be replaced with "sensitive".
17662func (s StackInstance) String() string {
17663	return awsutil.Prettify(s)
17664}
17665
17666// GoString returns the string representation.
17667//
17668// API parameter values that are decorated as "sensitive" in the API will not
17669// be included in the string output. The member name will be present, but the
17670// value will be replaced with "sensitive".
17671func (s StackInstance) GoString() string {
17672	return s.String()
17673}
17674
17675// SetAccount sets the Account field's value.
17676func (s *StackInstance) SetAccount(v string) *StackInstance {
17677	s.Account = &v
17678	return s
17679}
17680
17681// SetDriftStatus sets the DriftStatus field's value.
17682func (s *StackInstance) SetDriftStatus(v string) *StackInstance {
17683	s.DriftStatus = &v
17684	return s
17685}
17686
17687// SetLastDriftCheckTimestamp sets the LastDriftCheckTimestamp field's value.
17688func (s *StackInstance) SetLastDriftCheckTimestamp(v time.Time) *StackInstance {
17689	s.LastDriftCheckTimestamp = &v
17690	return s
17691}
17692
17693// SetOrganizationalUnitId sets the OrganizationalUnitId field's value.
17694func (s *StackInstance) SetOrganizationalUnitId(v string) *StackInstance {
17695	s.OrganizationalUnitId = &v
17696	return s
17697}
17698
17699// SetParameterOverrides sets the ParameterOverrides field's value.
17700func (s *StackInstance) SetParameterOverrides(v []*Parameter) *StackInstance {
17701	s.ParameterOverrides = v
17702	return s
17703}
17704
17705// SetRegion sets the Region field's value.
17706func (s *StackInstance) SetRegion(v string) *StackInstance {
17707	s.Region = &v
17708	return s
17709}
17710
17711// SetStackId sets the StackId field's value.
17712func (s *StackInstance) SetStackId(v string) *StackInstance {
17713	s.StackId = &v
17714	return s
17715}
17716
17717// SetStackInstanceStatus sets the StackInstanceStatus field's value.
17718func (s *StackInstance) SetStackInstanceStatus(v *StackInstanceComprehensiveStatus) *StackInstance {
17719	s.StackInstanceStatus = v
17720	return s
17721}
17722
17723// SetStackSetId sets the StackSetId field's value.
17724func (s *StackInstance) SetStackSetId(v string) *StackInstance {
17725	s.StackSetId = &v
17726	return s
17727}
17728
17729// SetStatus sets the Status field's value.
17730func (s *StackInstance) SetStatus(v string) *StackInstance {
17731	s.Status = &v
17732	return s
17733}
17734
17735// SetStatusReason sets the StatusReason field's value.
17736func (s *StackInstance) SetStatusReason(v string) *StackInstance {
17737	s.StatusReason = &v
17738	return s
17739}
17740
17741// The detailed status of the stack instance.
17742type StackInstanceComprehensiveStatus struct {
17743	_ struct{} `type:"structure"`
17744
17745	//    * CANCELLED: The operation in the specified account and Region has been
17746	//    cancelled. This is either because a user has stopped the stack set operation,
17747	//    or because the failure tolerance of the stack set operation has been exceeded.
17748	//
17749	//    * FAILED: The operation in the specified account and Region failed. If
17750	//    the stack set operation fails in enough accounts within a Region, the
17751	//    failure tolerance for the stack set operation as a whole might be exceeded.
17752	//
17753	//    * INOPERABLE: A DeleteStackInstances operation has failed and left the
17754	//    stack in an unstable state. Stacks in this state are excluded from further
17755	//    UpdateStackSet operations. You might need to perform a DeleteStackInstances
17756	//    operation, with RetainStacks set to true, to delete the stack instance,
17757	//    and then delete the stack manually.
17758	//
17759	//    * PENDING: The operation in the specified account and Region has yet to
17760	//    start.
17761	//
17762	//    * RUNNING: The operation in the specified account and Region is currently
17763	//    in progress.
17764	//
17765	//    * SUCCEEDED: The operation in the specified account and Region completed
17766	//    successfully.
17767	DetailedStatus *string `type:"string" enum:"StackInstanceDetailedStatus"`
17768}
17769
17770// String returns the string representation.
17771//
17772// API parameter values that are decorated as "sensitive" in the API will not
17773// be included in the string output. The member name will be present, but the
17774// value will be replaced with "sensitive".
17775func (s StackInstanceComprehensiveStatus) String() string {
17776	return awsutil.Prettify(s)
17777}
17778
17779// GoString returns the string representation.
17780//
17781// API parameter values that are decorated as "sensitive" in the API will not
17782// be included in the string output. The member name will be present, but the
17783// value will be replaced with "sensitive".
17784func (s StackInstanceComprehensiveStatus) GoString() string {
17785	return s.String()
17786}
17787
17788// SetDetailedStatus sets the DetailedStatus field's value.
17789func (s *StackInstanceComprehensiveStatus) SetDetailedStatus(v string) *StackInstanceComprehensiveStatus {
17790	s.DetailedStatus = &v
17791	return s
17792}
17793
17794// The status that stack instances are filtered by.
17795type StackInstanceFilter struct {
17796	_ struct{} `type:"structure"`
17797
17798	// The type of filter to apply.
17799	Name *string `type:"string" enum:"StackInstanceFilterName"`
17800
17801	// The status to filter by.
17802	Values *string `min:"6" type:"string"`
17803}
17804
17805// String returns the string representation.
17806//
17807// API parameter values that are decorated as "sensitive" in the API will not
17808// be included in the string output. The member name will be present, but the
17809// value will be replaced with "sensitive".
17810func (s StackInstanceFilter) String() string {
17811	return awsutil.Prettify(s)
17812}
17813
17814// GoString returns the string representation.
17815//
17816// API parameter values that are decorated as "sensitive" in the API will not
17817// be included in the string output. The member name will be present, but the
17818// value will be replaced with "sensitive".
17819func (s StackInstanceFilter) GoString() string {
17820	return s.String()
17821}
17822
17823// Validate inspects the fields of the type to determine if they are valid.
17824func (s *StackInstanceFilter) Validate() error {
17825	invalidParams := request.ErrInvalidParams{Context: "StackInstanceFilter"}
17826	if s.Values != nil && len(*s.Values) < 6 {
17827		invalidParams.Add(request.NewErrParamMinLen("Values", 6))
17828	}
17829
17830	if invalidParams.Len() > 0 {
17831		return invalidParams
17832	}
17833	return nil
17834}
17835
17836// SetName sets the Name field's value.
17837func (s *StackInstanceFilter) SetName(v string) *StackInstanceFilter {
17838	s.Name = &v
17839	return s
17840}
17841
17842// SetValues sets the Values field's value.
17843func (s *StackInstanceFilter) SetValues(v string) *StackInstanceFilter {
17844	s.Values = &v
17845	return s
17846}
17847
17848// The structure that contains summary information about a stack instance.
17849type StackInstanceSummary struct {
17850	_ struct{} `type:"structure"`
17851
17852	// [Self-managed permissions] The name of the Amazon Web Services account that
17853	// the stack instance is associated with.
17854	Account *string `type:"string"`
17855
17856	// Status of the stack instance's actual configuration compared to the expected
17857	// template and parameter configuration of the stack set to which it belongs.
17858	//
17859	//    * DRIFTED: The stack differs from the expected template and parameter
17860	//    configuration of the stack set to which it belongs. A stack instance is
17861	//    considered to have drifted if one or more of the resources in the associated
17862	//    stack have drifted.
17863	//
17864	//    * NOT_CHECKED: CloudFormation has not checked if the stack instance differs
17865	//    from its expected stack set configuration.
17866	//
17867	//    * IN_SYNC: The stack instance's actual configuration matches its expected
17868	//    stack set configuration.
17869	//
17870	//    * UNKNOWN: This value is reserved for future use.
17871	DriftStatus *string `type:"string" enum:"StackDriftStatus"`
17872
17873	// Most recent time when CloudFormation performed a drift detection operation
17874	// on the stack instance. This value will be NULL for any stack instance on
17875	// which drift detection has not yet been performed.
17876	LastDriftCheckTimestamp *time.Time `type:"timestamp"`
17877
17878	// [Service-managed permissions] The organization root ID or organizational
17879	// unit (OU) IDs that you specified for DeploymentTargets (https://docs.aws.amazon.com/AWSCloudFormation/latest/APIReference/API_DeploymentTargets.html).
17880	OrganizationalUnitId *string `type:"string"`
17881
17882	// The name of the Amazon Web Services Region that the stack instance is associated
17883	// with.
17884	Region *string `type:"string"`
17885
17886	// The ID of the stack instance.
17887	StackId *string `type:"string"`
17888
17889	// The detailed status of the stack instance.
17890	StackInstanceStatus *StackInstanceComprehensiveStatus `type:"structure"`
17891
17892	// The name or unique ID of the stack set that the stack instance is associated
17893	// with.
17894	StackSetId *string `type:"string"`
17895
17896	// The status of the stack instance, in terms of its synchronization with its
17897	// associated stack set.
17898	//
17899	//    * INOPERABLE: A DeleteStackInstances operation has failed and left the
17900	//    stack in an unstable state. Stacks in this state are excluded from further
17901	//    UpdateStackSet operations. You might need to perform a DeleteStackInstances
17902	//    operation, with RetainStacks set to true, to delete the stack instance,
17903	//    and then delete the stack manually.
17904	//
17905	//    * OUTDATED: The stack isn't currently up to date with the stack set because:
17906	//    The associated stack failed during a CreateStackSet or UpdateStackSet
17907	//    operation. The stack was part of a CreateStackSet or UpdateStackSet operation
17908	//    that failed or was stopped before the stack was created or updated.
17909	//
17910	//    * CURRENT: The stack is currently up to date with the stack set.
17911	Status *string `type:"string" enum:"StackInstanceStatus"`
17912
17913	// The explanation for the specific status code assigned to this stack instance.
17914	StatusReason *string `type:"string"`
17915}
17916
17917// String returns the string representation.
17918//
17919// API parameter values that are decorated as "sensitive" in the API will not
17920// be included in the string output. The member name will be present, but the
17921// value will be replaced with "sensitive".
17922func (s StackInstanceSummary) String() string {
17923	return awsutil.Prettify(s)
17924}
17925
17926// GoString returns the string representation.
17927//
17928// API parameter values that are decorated as "sensitive" in the API will not
17929// be included in the string output. The member name will be present, but the
17930// value will be replaced with "sensitive".
17931func (s StackInstanceSummary) GoString() string {
17932	return s.String()
17933}
17934
17935// SetAccount sets the Account field's value.
17936func (s *StackInstanceSummary) SetAccount(v string) *StackInstanceSummary {
17937	s.Account = &v
17938	return s
17939}
17940
17941// SetDriftStatus sets the DriftStatus field's value.
17942func (s *StackInstanceSummary) SetDriftStatus(v string) *StackInstanceSummary {
17943	s.DriftStatus = &v
17944	return s
17945}
17946
17947// SetLastDriftCheckTimestamp sets the LastDriftCheckTimestamp field's value.
17948func (s *StackInstanceSummary) SetLastDriftCheckTimestamp(v time.Time) *StackInstanceSummary {
17949	s.LastDriftCheckTimestamp = &v
17950	return s
17951}
17952
17953// SetOrganizationalUnitId sets the OrganizationalUnitId field's value.
17954func (s *StackInstanceSummary) SetOrganizationalUnitId(v string) *StackInstanceSummary {
17955	s.OrganizationalUnitId = &v
17956	return s
17957}
17958
17959// SetRegion sets the Region field's value.
17960func (s *StackInstanceSummary) SetRegion(v string) *StackInstanceSummary {
17961	s.Region = &v
17962	return s
17963}
17964
17965// SetStackId sets the StackId field's value.
17966func (s *StackInstanceSummary) SetStackId(v string) *StackInstanceSummary {
17967	s.StackId = &v
17968	return s
17969}
17970
17971// SetStackInstanceStatus sets the StackInstanceStatus field's value.
17972func (s *StackInstanceSummary) SetStackInstanceStatus(v *StackInstanceComprehensiveStatus) *StackInstanceSummary {
17973	s.StackInstanceStatus = v
17974	return s
17975}
17976
17977// SetStackSetId sets the StackSetId field's value.
17978func (s *StackInstanceSummary) SetStackSetId(v string) *StackInstanceSummary {
17979	s.StackSetId = &v
17980	return s
17981}
17982
17983// SetStatus sets the Status field's value.
17984func (s *StackInstanceSummary) SetStatus(v string) *StackInstanceSummary {
17985	s.Status = &v
17986	return s
17987}
17988
17989// SetStatusReason sets the StatusReason field's value.
17990func (s *StackInstanceSummary) SetStatusReason(v string) *StackInstanceSummary {
17991	s.StatusReason = &v
17992	return s
17993}
17994
17995// The StackResource data type.
17996type StackResource struct {
17997	_ struct{} `type:"structure"`
17998
17999	// User defined description associated with the resource.
18000	Description *string `min:"1" type:"string"`
18001
18002	// Information about whether the resource's actual configuration differs, or
18003	// has drifted, from its expected configuration, as defined in the stack template
18004	// and any values specified as template parameters. For more information, see
18005	// Detecting Unregulated Configuration Changes to Stacks and Resources (http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-stack-drift.html).
18006	DriftInformation *StackResourceDriftInformation `type:"structure"`
18007
18008	// The logical name of the resource specified in the template.
18009	//
18010	// LogicalResourceId is a required field
18011	LogicalResourceId *string `type:"string" required:"true"`
18012
18013	// Contains information about the module from which the resource was created,
18014	// if the resource was created from a module included in the stack template.
18015	ModuleInfo *ModuleInfo `type:"structure"`
18016
18017	// The name or unique identifier that corresponds to a physical instance ID
18018	// of a resource supported by CloudFormation.
18019	PhysicalResourceId *string `type:"string"`
18020
18021	// Current status of the resource.
18022	//
18023	// ResourceStatus is a required field
18024	ResourceStatus *string `type:"string" required:"true" enum:"ResourceStatus"`
18025
18026	// Success/failure message associated with the resource.
18027	ResourceStatusReason *string `type:"string"`
18028
18029	// Type of resource. (For more information, go to Amazon Web Services Resource
18030	// Types Reference (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-template-resource-type-ref.html)
18031	// in the CloudFormation User Guide.)
18032	//
18033	// ResourceType is a required field
18034	ResourceType *string `min:"1" type:"string" required:"true"`
18035
18036	// Unique identifier of the stack.
18037	StackId *string `type:"string"`
18038
18039	// The name associated with the stack.
18040	StackName *string `type:"string"`
18041
18042	// Time the status was updated.
18043	//
18044	// Timestamp is a required field
18045	Timestamp *time.Time `type:"timestamp" required:"true"`
18046}
18047
18048// String returns the string representation.
18049//
18050// API parameter values that are decorated as "sensitive" in the API will not
18051// be included in the string output. The member name will be present, but the
18052// value will be replaced with "sensitive".
18053func (s StackResource) String() string {
18054	return awsutil.Prettify(s)
18055}
18056
18057// GoString returns the string representation.
18058//
18059// API parameter values that are decorated as "sensitive" in the API will not
18060// be included in the string output. The member name will be present, but the
18061// value will be replaced with "sensitive".
18062func (s StackResource) GoString() string {
18063	return s.String()
18064}
18065
18066// SetDescription sets the Description field's value.
18067func (s *StackResource) SetDescription(v string) *StackResource {
18068	s.Description = &v
18069	return s
18070}
18071
18072// SetDriftInformation sets the DriftInformation field's value.
18073func (s *StackResource) SetDriftInformation(v *StackResourceDriftInformation) *StackResource {
18074	s.DriftInformation = v
18075	return s
18076}
18077
18078// SetLogicalResourceId sets the LogicalResourceId field's value.
18079func (s *StackResource) SetLogicalResourceId(v string) *StackResource {
18080	s.LogicalResourceId = &v
18081	return s
18082}
18083
18084// SetModuleInfo sets the ModuleInfo field's value.
18085func (s *StackResource) SetModuleInfo(v *ModuleInfo) *StackResource {
18086	s.ModuleInfo = v
18087	return s
18088}
18089
18090// SetPhysicalResourceId sets the PhysicalResourceId field's value.
18091func (s *StackResource) SetPhysicalResourceId(v string) *StackResource {
18092	s.PhysicalResourceId = &v
18093	return s
18094}
18095
18096// SetResourceStatus sets the ResourceStatus field's value.
18097func (s *StackResource) SetResourceStatus(v string) *StackResource {
18098	s.ResourceStatus = &v
18099	return s
18100}
18101
18102// SetResourceStatusReason sets the ResourceStatusReason field's value.
18103func (s *StackResource) SetResourceStatusReason(v string) *StackResource {
18104	s.ResourceStatusReason = &v
18105	return s
18106}
18107
18108// SetResourceType sets the ResourceType field's value.
18109func (s *StackResource) SetResourceType(v string) *StackResource {
18110	s.ResourceType = &v
18111	return s
18112}
18113
18114// SetStackId sets the StackId field's value.
18115func (s *StackResource) SetStackId(v string) *StackResource {
18116	s.StackId = &v
18117	return s
18118}
18119
18120// SetStackName sets the StackName field's value.
18121func (s *StackResource) SetStackName(v string) *StackResource {
18122	s.StackName = &v
18123	return s
18124}
18125
18126// SetTimestamp sets the Timestamp field's value.
18127func (s *StackResource) SetTimestamp(v time.Time) *StackResource {
18128	s.Timestamp = &v
18129	return s
18130}
18131
18132// Contains detailed information about the specified stack resource.
18133type StackResourceDetail struct {
18134	_ struct{} `type:"structure"`
18135
18136	// User defined description associated with the resource.
18137	Description *string `min:"1" type:"string"`
18138
18139	// Information about whether the resource's actual configuration differs, or
18140	// has drifted, from its expected configuration, as defined in the stack template
18141	// and any values specified as template parameters. For more information, see
18142	// Detecting Unregulated Configuration Changes to Stacks and Resources (http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-stack-drift.html).
18143	DriftInformation *StackResourceDriftInformation `type:"structure"`
18144
18145	// Time the status was updated.
18146	//
18147	// LastUpdatedTimestamp is a required field
18148	LastUpdatedTimestamp *time.Time `type:"timestamp" required:"true"`
18149
18150	// The logical name of the resource specified in the template.
18151	//
18152	// LogicalResourceId is a required field
18153	LogicalResourceId *string `type:"string" required:"true"`
18154
18155	// The content of the Metadata attribute declared for the resource. For more
18156	// information, see Metadata Attribute (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-metadata.html)
18157	// in the CloudFormation User Guide.
18158	Metadata *string `type:"string"`
18159
18160	// Contains information about the module from which the resource was created,
18161	// if the resource was created from a module included in the stack template.
18162	ModuleInfo *ModuleInfo `type:"structure"`
18163
18164	// The name or unique identifier that corresponds to a physical instance ID
18165	// of a resource supported by CloudFormation.
18166	PhysicalResourceId *string `type:"string"`
18167
18168	// Current status of the resource.
18169	//
18170	// ResourceStatus is a required field
18171	ResourceStatus *string `type:"string" required:"true" enum:"ResourceStatus"`
18172
18173	// Success/failure message associated with the resource.
18174	ResourceStatusReason *string `type:"string"`
18175
18176	// Type of resource. ((For more information, go to Amazon Web Services Resource
18177	// Types Reference (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-template-resource-type-ref.html)
18178	// in the CloudFormation User Guide.)
18179	//
18180	// ResourceType is a required field
18181	ResourceType *string `min:"1" type:"string" required:"true"`
18182
18183	// Unique identifier of the stack.
18184	StackId *string `type:"string"`
18185
18186	// The name associated with the stack.
18187	StackName *string `type:"string"`
18188}
18189
18190// String returns the string representation.
18191//
18192// API parameter values that are decorated as "sensitive" in the API will not
18193// be included in the string output. The member name will be present, but the
18194// value will be replaced with "sensitive".
18195func (s StackResourceDetail) String() string {
18196	return awsutil.Prettify(s)
18197}
18198
18199// GoString returns the string representation.
18200//
18201// API parameter values that are decorated as "sensitive" in the API will not
18202// be included in the string output. The member name will be present, but the
18203// value will be replaced with "sensitive".
18204func (s StackResourceDetail) GoString() string {
18205	return s.String()
18206}
18207
18208// SetDescription sets the Description field's value.
18209func (s *StackResourceDetail) SetDescription(v string) *StackResourceDetail {
18210	s.Description = &v
18211	return s
18212}
18213
18214// SetDriftInformation sets the DriftInformation field's value.
18215func (s *StackResourceDetail) SetDriftInformation(v *StackResourceDriftInformation) *StackResourceDetail {
18216	s.DriftInformation = v
18217	return s
18218}
18219
18220// SetLastUpdatedTimestamp sets the LastUpdatedTimestamp field's value.
18221func (s *StackResourceDetail) SetLastUpdatedTimestamp(v time.Time) *StackResourceDetail {
18222	s.LastUpdatedTimestamp = &v
18223	return s
18224}
18225
18226// SetLogicalResourceId sets the LogicalResourceId field's value.
18227func (s *StackResourceDetail) SetLogicalResourceId(v string) *StackResourceDetail {
18228	s.LogicalResourceId = &v
18229	return s
18230}
18231
18232// SetMetadata sets the Metadata field's value.
18233func (s *StackResourceDetail) SetMetadata(v string) *StackResourceDetail {
18234	s.Metadata = &v
18235	return s
18236}
18237
18238// SetModuleInfo sets the ModuleInfo field's value.
18239func (s *StackResourceDetail) SetModuleInfo(v *ModuleInfo) *StackResourceDetail {
18240	s.ModuleInfo = v
18241	return s
18242}
18243
18244// SetPhysicalResourceId sets the PhysicalResourceId field's value.
18245func (s *StackResourceDetail) SetPhysicalResourceId(v string) *StackResourceDetail {
18246	s.PhysicalResourceId = &v
18247	return s
18248}
18249
18250// SetResourceStatus sets the ResourceStatus field's value.
18251func (s *StackResourceDetail) SetResourceStatus(v string) *StackResourceDetail {
18252	s.ResourceStatus = &v
18253	return s
18254}
18255
18256// SetResourceStatusReason sets the ResourceStatusReason field's value.
18257func (s *StackResourceDetail) SetResourceStatusReason(v string) *StackResourceDetail {
18258	s.ResourceStatusReason = &v
18259	return s
18260}
18261
18262// SetResourceType sets the ResourceType field's value.
18263func (s *StackResourceDetail) SetResourceType(v string) *StackResourceDetail {
18264	s.ResourceType = &v
18265	return s
18266}
18267
18268// SetStackId sets the StackId field's value.
18269func (s *StackResourceDetail) SetStackId(v string) *StackResourceDetail {
18270	s.StackId = &v
18271	return s
18272}
18273
18274// SetStackName sets the StackName field's value.
18275func (s *StackResourceDetail) SetStackName(v string) *StackResourceDetail {
18276	s.StackName = &v
18277	return s
18278}
18279
18280// Contains the drift information for a resource that has been checked for drift.
18281// This includes actual and expected property values for resources in which
18282// CloudFormation has detected drift. Only resource properties explicitly defined
18283// in the stack template are checked for drift. For more information, see Detecting
18284// Unregulated Configuration Changes to Stacks and Resources (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-stack-drift.html).
18285//
18286// Resources that do not currently support drift detection cannot be checked.
18287// For a list of resources that support drift detection, see Resources that
18288// Support Drift Detection (http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-stack-drift-resource-list.html).
18289//
18290// Use DetectStackResourceDrift to detect drift on individual resources, or
18291// DetectStackDrift to detect drift on all resources in a given stack that support
18292// drift detection.
18293type StackResourceDrift struct {
18294	_ struct{} `type:"structure"`
18295
18296	// A JSON structure containing the actual property values of the stack resource.
18297	//
18298	// For resources whose StackResourceDriftStatus is DELETED, this structure will
18299	// not be present.
18300	ActualProperties *string `type:"string"`
18301
18302	// A JSON structure containing the expected property values of the stack resource,
18303	// as defined in the stack template and any values specified as template parameters.
18304	//
18305	// For resources whose StackResourceDriftStatus is DELETED, this structure will
18306	// not be present.
18307	ExpectedProperties *string `type:"string"`
18308
18309	// The logical name of the resource specified in the template.
18310	//
18311	// LogicalResourceId is a required field
18312	LogicalResourceId *string `type:"string" required:"true"`
18313
18314	// Contains information about the module from which the resource was created,
18315	// if the resource was created from a module included in the stack template.
18316	ModuleInfo *ModuleInfo `type:"structure"`
18317
18318	// The name or unique identifier that corresponds to a physical instance ID
18319	// of a resource supported by CloudFormation.
18320	PhysicalResourceId *string `type:"string"`
18321
18322	// Context information that enables CloudFormation to uniquely identify a resource.
18323	// CloudFormation uses context key-value pairs in cases where a resource's logical
18324	// and physical IDs are not enough to uniquely identify that resource. Each
18325	// context key-value pair specifies a unique resource that contains the targeted
18326	// resource.
18327	PhysicalResourceIdContext []*PhysicalResourceIdContextKeyValuePair `type:"list"`
18328
18329	// A collection of the resource properties whose actual values differ from their
18330	// expected values. These will be present only for resources whose StackResourceDriftStatus
18331	// is MODIFIED.
18332	PropertyDifferences []*PropertyDifference `type:"list"`
18333
18334	// The type of the resource.
18335	//
18336	// ResourceType is a required field
18337	ResourceType *string `min:"1" type:"string" required:"true"`
18338
18339	// The ID of the stack.
18340	//
18341	// StackId is a required field
18342	StackId *string `type:"string" required:"true"`
18343
18344	// Status of the resource's actual configuration compared to its expected configuration
18345	//
18346	//    * DELETED: The resource differs from its expected template configuration
18347	//    because the resource has been deleted.
18348	//
18349	//    * MODIFIED: One or more resource properties differ from their expected
18350	//    values (as defined in the stack template and any values specified as template
18351	//    parameters).
18352	//
18353	//    * IN_SYNC: The resources's actual configuration matches its expected template
18354	//    configuration.
18355	//
18356	//    * NOT_CHECKED: CloudFormation does not currently return this value.
18357	//
18358	// StackResourceDriftStatus is a required field
18359	StackResourceDriftStatus *string `type:"string" required:"true" enum:"StackResourceDriftStatus"`
18360
18361	// Time at which CloudFormation performed drift detection on the stack resource.
18362	//
18363	// Timestamp is a required field
18364	Timestamp *time.Time `type:"timestamp" required:"true"`
18365}
18366
18367// String returns the string representation.
18368//
18369// API parameter values that are decorated as "sensitive" in the API will not
18370// be included in the string output. The member name will be present, but the
18371// value will be replaced with "sensitive".
18372func (s StackResourceDrift) String() string {
18373	return awsutil.Prettify(s)
18374}
18375
18376// GoString returns the string representation.
18377//
18378// API parameter values that are decorated as "sensitive" in the API will not
18379// be included in the string output. The member name will be present, but the
18380// value will be replaced with "sensitive".
18381func (s StackResourceDrift) GoString() string {
18382	return s.String()
18383}
18384
18385// SetActualProperties sets the ActualProperties field's value.
18386func (s *StackResourceDrift) SetActualProperties(v string) *StackResourceDrift {
18387	s.ActualProperties = &v
18388	return s
18389}
18390
18391// SetExpectedProperties sets the ExpectedProperties field's value.
18392func (s *StackResourceDrift) SetExpectedProperties(v string) *StackResourceDrift {
18393	s.ExpectedProperties = &v
18394	return s
18395}
18396
18397// SetLogicalResourceId sets the LogicalResourceId field's value.
18398func (s *StackResourceDrift) SetLogicalResourceId(v string) *StackResourceDrift {
18399	s.LogicalResourceId = &v
18400	return s
18401}
18402
18403// SetModuleInfo sets the ModuleInfo field's value.
18404func (s *StackResourceDrift) SetModuleInfo(v *ModuleInfo) *StackResourceDrift {
18405	s.ModuleInfo = v
18406	return s
18407}
18408
18409// SetPhysicalResourceId sets the PhysicalResourceId field's value.
18410func (s *StackResourceDrift) SetPhysicalResourceId(v string) *StackResourceDrift {
18411	s.PhysicalResourceId = &v
18412	return s
18413}
18414
18415// SetPhysicalResourceIdContext sets the PhysicalResourceIdContext field's value.
18416func (s *StackResourceDrift) SetPhysicalResourceIdContext(v []*PhysicalResourceIdContextKeyValuePair) *StackResourceDrift {
18417	s.PhysicalResourceIdContext = v
18418	return s
18419}
18420
18421// SetPropertyDifferences sets the PropertyDifferences field's value.
18422func (s *StackResourceDrift) SetPropertyDifferences(v []*PropertyDifference) *StackResourceDrift {
18423	s.PropertyDifferences = v
18424	return s
18425}
18426
18427// SetResourceType sets the ResourceType field's value.
18428func (s *StackResourceDrift) SetResourceType(v string) *StackResourceDrift {
18429	s.ResourceType = &v
18430	return s
18431}
18432
18433// SetStackId sets the StackId field's value.
18434func (s *StackResourceDrift) SetStackId(v string) *StackResourceDrift {
18435	s.StackId = &v
18436	return s
18437}
18438
18439// SetStackResourceDriftStatus sets the StackResourceDriftStatus field's value.
18440func (s *StackResourceDrift) SetStackResourceDriftStatus(v string) *StackResourceDrift {
18441	s.StackResourceDriftStatus = &v
18442	return s
18443}
18444
18445// SetTimestamp sets the Timestamp field's value.
18446func (s *StackResourceDrift) SetTimestamp(v time.Time) *StackResourceDrift {
18447	s.Timestamp = &v
18448	return s
18449}
18450
18451// Contains information about whether the resource's actual configuration differs,
18452// or has drifted, from its expected configuration.
18453type StackResourceDriftInformation struct {
18454	_ struct{} `type:"structure"`
18455
18456	// When CloudFormation last checked if the resource had drifted from its expected
18457	// configuration.
18458	LastCheckTimestamp *time.Time `type:"timestamp"`
18459
18460	// Status of the resource's actual configuration compared to its expected configuration
18461	//
18462	//    * DELETED: The resource differs from its expected configuration in that
18463	//    it has been deleted.
18464	//
18465	//    * MODIFIED: The resource differs from its expected configuration.
18466	//
18467	//    * NOT_CHECKED: CloudFormation has not checked if the resource differs
18468	//    from its expected configuration. Any resources that do not currently support
18469	//    drift detection have a status of NOT_CHECKED. For more information, see
18470	//    Resources that Support Drift Detection (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-stack-drift-resource-list.html).
18471	//
18472	//    * IN_SYNC: The resources's actual configuration matches its expected configuration.
18473	//
18474	// StackResourceDriftStatus is a required field
18475	StackResourceDriftStatus *string `type:"string" required:"true" enum:"StackResourceDriftStatus"`
18476}
18477
18478// String returns the string representation.
18479//
18480// API parameter values that are decorated as "sensitive" in the API will not
18481// be included in the string output. The member name will be present, but the
18482// value will be replaced with "sensitive".
18483func (s StackResourceDriftInformation) String() string {
18484	return awsutil.Prettify(s)
18485}
18486
18487// GoString returns the string representation.
18488//
18489// API parameter values that are decorated as "sensitive" in the API will not
18490// be included in the string output. The member name will be present, but the
18491// value will be replaced with "sensitive".
18492func (s StackResourceDriftInformation) GoString() string {
18493	return s.String()
18494}
18495
18496// SetLastCheckTimestamp sets the LastCheckTimestamp field's value.
18497func (s *StackResourceDriftInformation) SetLastCheckTimestamp(v time.Time) *StackResourceDriftInformation {
18498	s.LastCheckTimestamp = &v
18499	return s
18500}
18501
18502// SetStackResourceDriftStatus sets the StackResourceDriftStatus field's value.
18503func (s *StackResourceDriftInformation) SetStackResourceDriftStatus(v string) *StackResourceDriftInformation {
18504	s.StackResourceDriftStatus = &v
18505	return s
18506}
18507
18508// Summarizes information about whether the resource's actual configuration
18509// differs, or has drifted, from its expected configuration.
18510type StackResourceDriftInformationSummary struct {
18511	_ struct{} `type:"structure"`
18512
18513	// When CloudFormation last checked if the resource had drifted from its expected
18514	// configuration.
18515	LastCheckTimestamp *time.Time `type:"timestamp"`
18516
18517	// Status of the resource's actual configuration compared to its expected configuration
18518	//
18519	//    * DELETED: The resource differs from its expected configuration in that
18520	//    it has been deleted.
18521	//
18522	//    * MODIFIED: The resource differs from its expected configuration.
18523	//
18524	//    * NOT_CHECKED: CloudFormation has not checked if the resource differs
18525	//    from its expected configuration. Any resources that do not currently support
18526	//    drift detection have a status of NOT_CHECKED. For more information, see
18527	//    Resources that Support Drift Detection (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-stack-drift-resource-list.html).
18528	//    If you performed an ContinueUpdateRollback operation on a stack, any resources
18529	//    included in ResourcesToSkip will also have a status of NOT_CHECKED. For
18530	//    more information on skipping resources during rollback operations, see
18531	//    Continue Rolling Back an Update (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-continueupdaterollback.html)
18532	//    in the CloudFormation User Guide.
18533	//
18534	//    * IN_SYNC: The resources's actual configuration matches its expected configuration.
18535	//
18536	// StackResourceDriftStatus is a required field
18537	StackResourceDriftStatus *string `type:"string" required:"true" enum:"StackResourceDriftStatus"`
18538}
18539
18540// String returns the string representation.
18541//
18542// API parameter values that are decorated as "sensitive" in the API will not
18543// be included in the string output. The member name will be present, but the
18544// value will be replaced with "sensitive".
18545func (s StackResourceDriftInformationSummary) String() string {
18546	return awsutil.Prettify(s)
18547}
18548
18549// GoString returns the string representation.
18550//
18551// API parameter values that are decorated as "sensitive" in the API will not
18552// be included in the string output. The member name will be present, but the
18553// value will be replaced with "sensitive".
18554func (s StackResourceDriftInformationSummary) GoString() string {
18555	return s.String()
18556}
18557
18558// SetLastCheckTimestamp sets the LastCheckTimestamp field's value.
18559func (s *StackResourceDriftInformationSummary) SetLastCheckTimestamp(v time.Time) *StackResourceDriftInformationSummary {
18560	s.LastCheckTimestamp = &v
18561	return s
18562}
18563
18564// SetStackResourceDriftStatus sets the StackResourceDriftStatus field's value.
18565func (s *StackResourceDriftInformationSummary) SetStackResourceDriftStatus(v string) *StackResourceDriftInformationSummary {
18566	s.StackResourceDriftStatus = &v
18567	return s
18568}
18569
18570// Contains high-level information about the specified stack resource.
18571type StackResourceSummary struct {
18572	_ struct{} `type:"structure"`
18573
18574	// Information about whether the resource's actual configuration differs, or
18575	// has drifted, from its expected configuration, as defined in the stack template
18576	// and any values specified as template parameters. For more information, see
18577	// Detecting Unregulated Configuration Changes to Stacks and Resources (http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-stack-drift.html).
18578	DriftInformation *StackResourceDriftInformationSummary `type:"structure"`
18579
18580	// Time the status was updated.
18581	//
18582	// LastUpdatedTimestamp is a required field
18583	LastUpdatedTimestamp *time.Time `type:"timestamp" required:"true"`
18584
18585	// The logical name of the resource specified in the template.
18586	//
18587	// LogicalResourceId is a required field
18588	LogicalResourceId *string `type:"string" required:"true"`
18589
18590	// Contains information about the module from which the resource was created,
18591	// if the resource was created from a module included in the stack template.
18592	ModuleInfo *ModuleInfo `type:"structure"`
18593
18594	// The name or unique identifier that corresponds to a physical instance ID
18595	// of the resource.
18596	PhysicalResourceId *string `type:"string"`
18597
18598	// Current status of the resource.
18599	//
18600	// ResourceStatus is a required field
18601	ResourceStatus *string `type:"string" required:"true" enum:"ResourceStatus"`
18602
18603	// Success/failure message associated with the resource.
18604	ResourceStatusReason *string `type:"string"`
18605
18606	// Type of resource. (For more information, go to Amazon Web Services Resource
18607	// Types Reference (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-template-resource-type-ref.html)
18608	// in the CloudFormation User Guide.)
18609	//
18610	// ResourceType is a required field
18611	ResourceType *string `min:"1" type:"string" required:"true"`
18612}
18613
18614// String returns the string representation.
18615//
18616// API parameter values that are decorated as "sensitive" in the API will not
18617// be included in the string output. The member name will be present, but the
18618// value will be replaced with "sensitive".
18619func (s StackResourceSummary) String() string {
18620	return awsutil.Prettify(s)
18621}
18622
18623// GoString returns the string representation.
18624//
18625// API parameter values that are decorated as "sensitive" in the API will not
18626// be included in the string output. The member name will be present, but the
18627// value will be replaced with "sensitive".
18628func (s StackResourceSummary) GoString() string {
18629	return s.String()
18630}
18631
18632// SetDriftInformation sets the DriftInformation field's value.
18633func (s *StackResourceSummary) SetDriftInformation(v *StackResourceDriftInformationSummary) *StackResourceSummary {
18634	s.DriftInformation = v
18635	return s
18636}
18637
18638// SetLastUpdatedTimestamp sets the LastUpdatedTimestamp field's value.
18639func (s *StackResourceSummary) SetLastUpdatedTimestamp(v time.Time) *StackResourceSummary {
18640	s.LastUpdatedTimestamp = &v
18641	return s
18642}
18643
18644// SetLogicalResourceId sets the LogicalResourceId field's value.
18645func (s *StackResourceSummary) SetLogicalResourceId(v string) *StackResourceSummary {
18646	s.LogicalResourceId = &v
18647	return s
18648}
18649
18650// SetModuleInfo sets the ModuleInfo field's value.
18651func (s *StackResourceSummary) SetModuleInfo(v *ModuleInfo) *StackResourceSummary {
18652	s.ModuleInfo = v
18653	return s
18654}
18655
18656// SetPhysicalResourceId sets the PhysicalResourceId field's value.
18657func (s *StackResourceSummary) SetPhysicalResourceId(v string) *StackResourceSummary {
18658	s.PhysicalResourceId = &v
18659	return s
18660}
18661
18662// SetResourceStatus sets the ResourceStatus field's value.
18663func (s *StackResourceSummary) SetResourceStatus(v string) *StackResourceSummary {
18664	s.ResourceStatus = &v
18665	return s
18666}
18667
18668// SetResourceStatusReason sets the ResourceStatusReason field's value.
18669func (s *StackResourceSummary) SetResourceStatusReason(v string) *StackResourceSummary {
18670	s.ResourceStatusReason = &v
18671	return s
18672}
18673
18674// SetResourceType sets the ResourceType field's value.
18675func (s *StackResourceSummary) SetResourceType(v string) *StackResourceSummary {
18676	s.ResourceType = &v
18677	return s
18678}
18679
18680// A structure that contains information about a stack set. A stack set enables
18681// you to provision stacks into Amazon Web Services accounts and across Regions
18682// by using a single CloudFormation template. In the stack set, you specify
18683// the template to use, as well as any parameters and capabilities that the
18684// template requires.
18685type StackSet struct {
18686	_ struct{} `type:"structure"`
18687
18688	// The Amazon Resource Number (ARN) of the IAM role used to create or update
18689	// the stack set.
18690	//
18691	// Use customized administrator roles to control which users or groups can manage
18692	// specific stack sets within the same administrator account. For more information,
18693	// see Prerequisites: Granting Permissions for Stack Set Operations (http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/stacksets-prereqs.html)
18694	// in the CloudFormation User Guide.
18695	AdministrationRoleARN *string `min:"20" type:"string"`
18696
18697	// [Service-managed permissions] Describes whether StackSets automatically deploys
18698	// to Organizations accounts that are added to a target organization or organizational
18699	// unit (OU).
18700	AutoDeployment *AutoDeployment `type:"structure"`
18701
18702	// The capabilities that are allowed in the stack set. Some stack set templates
18703	// might include resources that can affect permissions in your Amazon Web Services
18704	// account—for example, by creating new Identity and Access Management (IAM)
18705	// users. For more information, see Acknowledging IAM Resources in CloudFormation
18706	// Templates. (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-iam-template.html#capabilities)
18707	Capabilities []*string `type:"list"`
18708
18709	// A description of the stack set that you specify when the stack set is created
18710	// or updated.
18711	Description *string `min:"1" type:"string"`
18712
18713	// The name of the IAM execution role used to create or update the stack set.
18714	//
18715	// Use customized execution roles to control which stack resources users and
18716	// groups can include in their stack sets.
18717	ExecutionRoleName *string `min:"1" type:"string"`
18718
18719	// [Service-managed permissions] The organization root ID or organizational
18720	// unit (OU) IDs that you specified for DeploymentTargets (https://docs.aws.amazon.com/AWSCloudFormation/latest/APIReference/API_DeploymentTargets.html).
18721	OrganizationalUnitIds []*string `type:"list"`
18722
18723	// A list of input parameters for a stack set.
18724	Parameters []*Parameter `type:"list"`
18725
18726	// Describes how the IAM roles required for stack set operations are created.
18727	//
18728	//    * With self-managed permissions, you must create the administrator and
18729	//    execution roles required to deploy to target accounts. For more information,
18730	//    see Grant Self-Managed Stack Set Permissions (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/stacksets-prereqs-self-managed.html).
18731	//
18732	//    * With service-managed permissions, StackSets automatically creates the
18733	//    IAM roles required to deploy to accounts managed by Organizations. For
18734	//    more information, see Grant Service-Managed Stack Set Permissions (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/stacksets-prereqs-service-managed.html).
18735	PermissionModel *string `type:"string" enum:"PermissionModels"`
18736
18737	// The Amazon Resource Number (ARN) of the stack set.
18738	StackSetARN *string `type:"string"`
18739
18740	// Detailed information about the drift status of the stack set.
18741	//
18742	// For stack sets, contains information about the last completed drift operation
18743	// performed on the stack set. Information about drift operations currently
18744	// in progress is not included.
18745	StackSetDriftDetectionDetails *StackSetDriftDetectionDetails `type:"structure"`
18746
18747	// The ID of the stack set.
18748	StackSetId *string `type:"string"`
18749
18750	// The name that's associated with the stack set.
18751	StackSetName *string `type:"string"`
18752
18753	// The status of the stack set.
18754	Status *string `type:"string" enum:"StackSetStatus"`
18755
18756	// A list of tags that specify information about the stack set. A maximum number
18757	// of 50 tags can be specified.
18758	Tags []*Tag `type:"list"`
18759
18760	// The structure that contains the body of the template that was used to create
18761	// or update the stack set.
18762	TemplateBody *string `min:"1" type:"string"`
18763}
18764
18765// String returns the string representation.
18766//
18767// API parameter values that are decorated as "sensitive" in the API will not
18768// be included in the string output. The member name will be present, but the
18769// value will be replaced with "sensitive".
18770func (s StackSet) String() string {
18771	return awsutil.Prettify(s)
18772}
18773
18774// GoString returns the string representation.
18775//
18776// API parameter values that are decorated as "sensitive" in the API will not
18777// be included in the string output. The member name will be present, but the
18778// value will be replaced with "sensitive".
18779func (s StackSet) GoString() string {
18780	return s.String()
18781}
18782
18783// SetAdministrationRoleARN sets the AdministrationRoleARN field's value.
18784func (s *StackSet) SetAdministrationRoleARN(v string) *StackSet {
18785	s.AdministrationRoleARN = &v
18786	return s
18787}
18788
18789// SetAutoDeployment sets the AutoDeployment field's value.
18790func (s *StackSet) SetAutoDeployment(v *AutoDeployment) *StackSet {
18791	s.AutoDeployment = v
18792	return s
18793}
18794
18795// SetCapabilities sets the Capabilities field's value.
18796func (s *StackSet) SetCapabilities(v []*string) *StackSet {
18797	s.Capabilities = v
18798	return s
18799}
18800
18801// SetDescription sets the Description field's value.
18802func (s *StackSet) SetDescription(v string) *StackSet {
18803	s.Description = &v
18804	return s
18805}
18806
18807// SetExecutionRoleName sets the ExecutionRoleName field's value.
18808func (s *StackSet) SetExecutionRoleName(v string) *StackSet {
18809	s.ExecutionRoleName = &v
18810	return s
18811}
18812
18813// SetOrganizationalUnitIds sets the OrganizationalUnitIds field's value.
18814func (s *StackSet) SetOrganizationalUnitIds(v []*string) *StackSet {
18815	s.OrganizationalUnitIds = v
18816	return s
18817}
18818
18819// SetParameters sets the Parameters field's value.
18820func (s *StackSet) SetParameters(v []*Parameter) *StackSet {
18821	s.Parameters = v
18822	return s
18823}
18824
18825// SetPermissionModel sets the PermissionModel field's value.
18826func (s *StackSet) SetPermissionModel(v string) *StackSet {
18827	s.PermissionModel = &v
18828	return s
18829}
18830
18831// SetStackSetARN sets the StackSetARN field's value.
18832func (s *StackSet) SetStackSetARN(v string) *StackSet {
18833	s.StackSetARN = &v
18834	return s
18835}
18836
18837// SetStackSetDriftDetectionDetails sets the StackSetDriftDetectionDetails field's value.
18838func (s *StackSet) SetStackSetDriftDetectionDetails(v *StackSetDriftDetectionDetails) *StackSet {
18839	s.StackSetDriftDetectionDetails = v
18840	return s
18841}
18842
18843// SetStackSetId sets the StackSetId field's value.
18844func (s *StackSet) SetStackSetId(v string) *StackSet {
18845	s.StackSetId = &v
18846	return s
18847}
18848
18849// SetStackSetName sets the StackSetName field's value.
18850func (s *StackSet) SetStackSetName(v string) *StackSet {
18851	s.StackSetName = &v
18852	return s
18853}
18854
18855// SetStatus sets the Status field's value.
18856func (s *StackSet) SetStatus(v string) *StackSet {
18857	s.Status = &v
18858	return s
18859}
18860
18861// SetTags sets the Tags field's value.
18862func (s *StackSet) SetTags(v []*Tag) *StackSet {
18863	s.Tags = v
18864	return s
18865}
18866
18867// SetTemplateBody sets the TemplateBody field's value.
18868func (s *StackSet) SetTemplateBody(v string) *StackSet {
18869	s.TemplateBody = &v
18870	return s
18871}
18872
18873// Detailed information about the drift status of the stack set.
18874//
18875// For stack sets, contains information about the last completed drift operation
18876// performed on the stack set. Information about drift operations in-progress
18877// is not included.
18878//
18879// For stack set operations, includes information about drift operations currently
18880// being performed on the stack set.
18881//
18882// For more information, see Detecting Unmanaged Changes in Stack Sets (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/stacksets-drift.html)
18883// in the CloudFormation User Guide.
18884type StackSetDriftDetectionDetails struct {
18885	_ struct{} `type:"structure"`
18886
18887	// The status of the stack set drift detection operation.
18888	//
18889	//    * COMPLETED: The drift detection operation completed without failing on
18890	//    any stack instances.
18891	//
18892	//    * FAILED: The drift detection operation exceeded the specified failure
18893	//    tolerance.
18894	//
18895	//    * PARTIAL_SUCCESS: The drift detection operation completed without exceeding
18896	//    the failure tolerance for the operation.
18897	//
18898	//    * IN_PROGRESS: The drift detection operation is currently being performed.
18899	//
18900	//    * STOPPED: The user has cancelled the drift detection operation.
18901	DriftDetectionStatus *string `type:"string" enum:"StackSetDriftDetectionStatus"`
18902
18903	// Status of the stack set's actual configuration compared to its expected template
18904	// and parameter configuration. A stack set is considered to have drifted if
18905	// one or more of its stack instances have drifted from their expected template
18906	// and parameter configuration.
18907	//
18908	//    * DRIFTED: One or more of the stack instances belonging to the stack set
18909	//    stack differs from the expected template and parameter configuration.
18910	//    A stack instance is considered to have drifted if one or more of the resources
18911	//    in the associated stack have drifted.
18912	//
18913	//    * NOT_CHECKED: CloudFormation has not checked the stack set for drift.
18914	//
18915	//    * IN_SYNC: All of the stack instances belonging to the stack set stack
18916	//    match from the expected template and parameter configuration.
18917	DriftStatus *string `type:"string" enum:"StackSetDriftStatus"`
18918
18919	// The number of stack instances that have drifted from the expected template
18920	// and parameter configuration of the stack set. A stack instance is considered
18921	// to have drifted if one or more of the resources in the associated stack do
18922	// not match their expected configuration.
18923	DriftedStackInstancesCount *int64 `type:"integer"`
18924
18925	// The number of stack instances for which the drift detection operation failed.
18926	FailedStackInstancesCount *int64 `type:"integer"`
18927
18928	// The number of stack instances that are currently being checked for drift.
18929	InProgressStackInstancesCount *int64 `type:"integer"`
18930
18931	// The number of stack instances which match the expected template and parameter
18932	// configuration of the stack set.
18933	InSyncStackInstancesCount *int64 `type:"integer"`
18934
18935	// Most recent time when CloudFormation performed a drift detection operation
18936	// on the stack set. This value will be NULL for any stack set on which drift
18937	// detection has not yet been performed.
18938	LastDriftCheckTimestamp *time.Time `type:"timestamp"`
18939
18940	// The total number of stack instances belonging to this stack set.
18941	//
18942	// The total number of stack instances is equal to the total of:
18943	//
18944	//    * Stack instances that match the stack set configuration.
18945	//
18946	//    * Stack instances that have drifted from the stack set configuration.
18947	//
18948	//    * Stack instances where the drift detection operation has failed.
18949	//
18950	//    * Stack instances currently being checked for drift.
18951	TotalStackInstancesCount *int64 `type:"integer"`
18952}
18953
18954// String returns the string representation.
18955//
18956// API parameter values that are decorated as "sensitive" in the API will not
18957// be included in the string output. The member name will be present, but the
18958// value will be replaced with "sensitive".
18959func (s StackSetDriftDetectionDetails) String() string {
18960	return awsutil.Prettify(s)
18961}
18962
18963// GoString returns the string representation.
18964//
18965// API parameter values that are decorated as "sensitive" in the API will not
18966// be included in the string output. The member name will be present, but the
18967// value will be replaced with "sensitive".
18968func (s StackSetDriftDetectionDetails) GoString() string {
18969	return s.String()
18970}
18971
18972// SetDriftDetectionStatus sets the DriftDetectionStatus field's value.
18973func (s *StackSetDriftDetectionDetails) SetDriftDetectionStatus(v string) *StackSetDriftDetectionDetails {
18974	s.DriftDetectionStatus = &v
18975	return s
18976}
18977
18978// SetDriftStatus sets the DriftStatus field's value.
18979func (s *StackSetDriftDetectionDetails) SetDriftStatus(v string) *StackSetDriftDetectionDetails {
18980	s.DriftStatus = &v
18981	return s
18982}
18983
18984// SetDriftedStackInstancesCount sets the DriftedStackInstancesCount field's value.
18985func (s *StackSetDriftDetectionDetails) SetDriftedStackInstancesCount(v int64) *StackSetDriftDetectionDetails {
18986	s.DriftedStackInstancesCount = &v
18987	return s
18988}
18989
18990// SetFailedStackInstancesCount sets the FailedStackInstancesCount field's value.
18991func (s *StackSetDriftDetectionDetails) SetFailedStackInstancesCount(v int64) *StackSetDriftDetectionDetails {
18992	s.FailedStackInstancesCount = &v
18993	return s
18994}
18995
18996// SetInProgressStackInstancesCount sets the InProgressStackInstancesCount field's value.
18997func (s *StackSetDriftDetectionDetails) SetInProgressStackInstancesCount(v int64) *StackSetDriftDetectionDetails {
18998	s.InProgressStackInstancesCount = &v
18999	return s
19000}
19001
19002// SetInSyncStackInstancesCount sets the InSyncStackInstancesCount field's value.
19003func (s *StackSetDriftDetectionDetails) SetInSyncStackInstancesCount(v int64) *StackSetDriftDetectionDetails {
19004	s.InSyncStackInstancesCount = &v
19005	return s
19006}
19007
19008// SetLastDriftCheckTimestamp sets the LastDriftCheckTimestamp field's value.
19009func (s *StackSetDriftDetectionDetails) SetLastDriftCheckTimestamp(v time.Time) *StackSetDriftDetectionDetails {
19010	s.LastDriftCheckTimestamp = &v
19011	return s
19012}
19013
19014// SetTotalStackInstancesCount sets the TotalStackInstancesCount field's value.
19015func (s *StackSetDriftDetectionDetails) SetTotalStackInstancesCount(v int64) *StackSetDriftDetectionDetails {
19016	s.TotalStackInstancesCount = &v
19017	return s
19018}
19019
19020// The structure that contains information about a stack set operation.
19021type StackSetOperation struct {
19022	_ struct{} `type:"structure"`
19023
19024	// The type of stack set operation: CREATE, UPDATE, or DELETE. Create and delete
19025	// operations affect only the specified stack set instances that are associated
19026	// with the specified stack set. Update operations affect both the stack set
19027	// itself, as well as all associated stack set instances.
19028	Action *string `type:"string" enum:"StackSetOperationAction"`
19029
19030	// The Amazon Resource Number (ARN) of the IAM role used to perform this stack
19031	// set operation.
19032	//
19033	// Use customized administrator roles to control which users or groups can manage
19034	// specific stack sets within the same administrator account. For more information,
19035	// see Define Permissions for Multiple Administrators (http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/stacksets-prereqs.html)
19036	// in the CloudFormation User Guide.
19037	AdministrationRoleARN *string `min:"20" type:"string"`
19038
19039	// The time at which the operation was initiated. Note that the creation times
19040	// for the stack set operation might differ from the creation time of the individual
19041	// stacks themselves. This is because CloudFormation needs to perform preparatory
19042	// work for the operation, such as dispatching the work to the requested Regions,
19043	// before actually creating the first stacks.
19044	CreationTimestamp *time.Time `type:"timestamp"`
19045
19046	// [Service-managed permissions] The Organizations accounts affected by the
19047	// stack operation.
19048	DeploymentTargets *DeploymentTargets `type:"structure"`
19049
19050	// The time at which the stack set operation ended, across all accounts and
19051	// Regions specified. Note that this doesn't necessarily mean that the stack
19052	// set operation was successful, or even attempted, in each account or Region.
19053	EndTimestamp *time.Time `type:"timestamp"`
19054
19055	// The name of the IAM execution role used to create or update the stack set.
19056	//
19057	// Use customized execution roles to control which stack resources users and
19058	// groups can include in their stack sets.
19059	ExecutionRoleName *string `min:"1" type:"string"`
19060
19061	// The unique ID of a stack set operation.
19062	OperationId *string `min:"1" type:"string"`
19063
19064	// The preferences for how CloudFormation performs this stack set operation.
19065	OperationPreferences *StackSetOperationPreferences `type:"structure"`
19066
19067	// For stack set operations of action type DELETE, specifies whether to remove
19068	// the stack instances from the specified stack set, but doesn't delete the
19069	// stacks. You can't reassociate a retained stack, or add an existing, saved
19070	// stack to a new stack set.
19071	RetainStacks *bool `type:"boolean"`
19072
19073	// Detailed information about the drift status of the stack set. This includes
19074	// information about drift operations currently being performed on the stack
19075	// set.
19076	//
19077	// this information will only be present for stack set operations whose Action
19078	// type is DETECT_DRIFT.
19079	//
19080	// For more information, see Detecting Unmanaged Changes in Stack Sets (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/stacksets-drift.html)
19081	// in the CloudFormation User Guide.
19082	StackSetDriftDetectionDetails *StackSetDriftDetectionDetails `type:"structure"`
19083
19084	// The ID of the stack set.
19085	StackSetId *string `type:"string"`
19086
19087	// The status of the operation.
19088	//
19089	//    * FAILED: The operation exceeded the specified failure tolerance. The
19090	//    failure tolerance value that you've set for an operation is applied for
19091	//    each Region during stack create and update operations. If the number of
19092	//    failed stacks within a Region exceeds the failure tolerance, the status
19093	//    of the operation in the Region is set to FAILED. This in turn sets the
19094	//    status of the operation as a whole to FAILED, and CloudFormation cancels
19095	//    the operation in any remaining Regions.
19096	//
19097	//    * QUEUED: [Service-managed permissions] For automatic deployments that
19098	//    require a sequence of operations, the operation is queued to be performed.
19099	//    For more information, see the stack set operation status codes (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/stacksets-concepts.html#stackset-status-codes)
19100	//    in the CloudFormation User Guide.
19101	//
19102	//    * RUNNING: The operation is currently being performed.
19103	//
19104	//    * STOPPED: The user has cancelled the operation.
19105	//
19106	//    * STOPPING: The operation is in the process of stopping, at user request.
19107	//
19108	//    * SUCCEEDED: The operation completed creating or updating all the specified
19109	//    stacks without exceeding the failure tolerance for the operation.
19110	Status *string `type:"string" enum:"StackSetOperationStatus"`
19111}
19112
19113// String returns the string representation.
19114//
19115// API parameter values that are decorated as "sensitive" in the API will not
19116// be included in the string output. The member name will be present, but the
19117// value will be replaced with "sensitive".
19118func (s StackSetOperation) String() string {
19119	return awsutil.Prettify(s)
19120}
19121
19122// GoString returns the string representation.
19123//
19124// API parameter values that are decorated as "sensitive" in the API will not
19125// be included in the string output. The member name will be present, but the
19126// value will be replaced with "sensitive".
19127func (s StackSetOperation) GoString() string {
19128	return s.String()
19129}
19130
19131// SetAction sets the Action field's value.
19132func (s *StackSetOperation) SetAction(v string) *StackSetOperation {
19133	s.Action = &v
19134	return s
19135}
19136
19137// SetAdministrationRoleARN sets the AdministrationRoleARN field's value.
19138func (s *StackSetOperation) SetAdministrationRoleARN(v string) *StackSetOperation {
19139	s.AdministrationRoleARN = &v
19140	return s
19141}
19142
19143// SetCreationTimestamp sets the CreationTimestamp field's value.
19144func (s *StackSetOperation) SetCreationTimestamp(v time.Time) *StackSetOperation {
19145	s.CreationTimestamp = &v
19146	return s
19147}
19148
19149// SetDeploymentTargets sets the DeploymentTargets field's value.
19150func (s *StackSetOperation) SetDeploymentTargets(v *DeploymentTargets) *StackSetOperation {
19151	s.DeploymentTargets = v
19152	return s
19153}
19154
19155// SetEndTimestamp sets the EndTimestamp field's value.
19156func (s *StackSetOperation) SetEndTimestamp(v time.Time) *StackSetOperation {
19157	s.EndTimestamp = &v
19158	return s
19159}
19160
19161// SetExecutionRoleName sets the ExecutionRoleName field's value.
19162func (s *StackSetOperation) SetExecutionRoleName(v string) *StackSetOperation {
19163	s.ExecutionRoleName = &v
19164	return s
19165}
19166
19167// SetOperationId sets the OperationId field's value.
19168func (s *StackSetOperation) SetOperationId(v string) *StackSetOperation {
19169	s.OperationId = &v
19170	return s
19171}
19172
19173// SetOperationPreferences sets the OperationPreferences field's value.
19174func (s *StackSetOperation) SetOperationPreferences(v *StackSetOperationPreferences) *StackSetOperation {
19175	s.OperationPreferences = v
19176	return s
19177}
19178
19179// SetRetainStacks sets the RetainStacks field's value.
19180func (s *StackSetOperation) SetRetainStacks(v bool) *StackSetOperation {
19181	s.RetainStacks = &v
19182	return s
19183}
19184
19185// SetStackSetDriftDetectionDetails sets the StackSetDriftDetectionDetails field's value.
19186func (s *StackSetOperation) SetStackSetDriftDetectionDetails(v *StackSetDriftDetectionDetails) *StackSetOperation {
19187	s.StackSetDriftDetectionDetails = v
19188	return s
19189}
19190
19191// SetStackSetId sets the StackSetId field's value.
19192func (s *StackSetOperation) SetStackSetId(v string) *StackSetOperation {
19193	s.StackSetId = &v
19194	return s
19195}
19196
19197// SetStatus sets the Status field's value.
19198func (s *StackSetOperation) SetStatus(v string) *StackSetOperation {
19199	s.Status = &v
19200	return s
19201}
19202
19203// The user-specified preferences for how CloudFormation performs a stack set
19204// operation.
19205//
19206// For more information on maximum concurrent accounts and failure tolerance,
19207// see Stack set operation options (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/stacksets-concepts.html#stackset-ops-options).
19208type StackSetOperationPreferences struct {
19209	_ struct{} `type:"structure"`
19210
19211	// The number of accounts, per Region, for which this operation can fail before
19212	// CloudFormation stops the operation in that Region. If the operation is stopped
19213	// in a Region, CloudFormation doesn't attempt the operation in any subsequent
19214	// Regions.
19215	//
19216	// Conditional: You must specify either FailureToleranceCount or FailureTolerancePercentage
19217	// (but not both).
19218	//
19219	// By default, 0 is specified.
19220	FailureToleranceCount *int64 `type:"integer"`
19221
19222	// The percentage of accounts, per Region, for which this stack operation can
19223	// fail before CloudFormation stops the operation in that Region. If the operation
19224	// is stopped in a Region, CloudFormation doesn't attempt the operation in any
19225	// subsequent Regions.
19226	//
19227	// When calculating the number of accounts based on the specified percentage,
19228	// CloudFormation rounds down to the next whole number.
19229	//
19230	// Conditional: You must specify either FailureToleranceCount or FailureTolerancePercentage,
19231	// but not both.
19232	//
19233	// By default, 0 is specified.
19234	FailureTolerancePercentage *int64 `type:"integer"`
19235
19236	// The maximum number of accounts in which to perform this operation at one
19237	// time. This is dependent on the value of FailureToleranceCount. MaxConcurrentCount
19238	// is at most one more than the FailureToleranceCount.
19239	//
19240	// Note that this setting lets you specify the maximum for operations. For large
19241	// deployments, under certain circumstances the actual number of accounts acted
19242	// upon concurrently may be lower due to service throttling.
19243	//
19244	// Conditional: You must specify either MaxConcurrentCount or MaxConcurrentPercentage,
19245	// but not both.
19246	//
19247	// By default, 1 is specified.
19248	MaxConcurrentCount *int64 `min:"1" type:"integer"`
19249
19250	// The maximum percentage of accounts in which to perform this operation at
19251	// one time.
19252	//
19253	// When calculating the number of accounts based on the specified percentage,
19254	// CloudFormation rounds down to the next whole number. This is true except
19255	// in cases where rounding down would result is zero. In this case, CloudFormation
19256	// sets the number as one instead.
19257	//
19258	// Note that this setting lets you specify the maximum for operations. For large
19259	// deployments, under certain circumstances the actual number of accounts acted
19260	// upon concurrently may be lower due to service throttling.
19261	//
19262	// Conditional: You must specify either MaxConcurrentCount or MaxConcurrentPercentage,
19263	// but not both.
19264	//
19265	// By default, 1 is specified.
19266	MaxConcurrentPercentage *int64 `min:"1" type:"integer"`
19267
19268	// The concurrency type of deploying StackSets operations in Regions, could
19269	// be in parallel or one Region at a time.
19270	RegionConcurrencyType *string `type:"string" enum:"RegionConcurrencyType"`
19271
19272	// The order of the Regions in where you want to perform the stack operation.
19273	RegionOrder []*string `type:"list"`
19274}
19275
19276// String returns the string representation.
19277//
19278// API parameter values that are decorated as "sensitive" in the API will not
19279// be included in the string output. The member name will be present, but the
19280// value will be replaced with "sensitive".
19281func (s StackSetOperationPreferences) String() string {
19282	return awsutil.Prettify(s)
19283}
19284
19285// GoString returns the string representation.
19286//
19287// API parameter values that are decorated as "sensitive" in the API will not
19288// be included in the string output. The member name will be present, but the
19289// value will be replaced with "sensitive".
19290func (s StackSetOperationPreferences) GoString() string {
19291	return s.String()
19292}
19293
19294// Validate inspects the fields of the type to determine if they are valid.
19295func (s *StackSetOperationPreferences) Validate() error {
19296	invalidParams := request.ErrInvalidParams{Context: "StackSetOperationPreferences"}
19297	if s.MaxConcurrentCount != nil && *s.MaxConcurrentCount < 1 {
19298		invalidParams.Add(request.NewErrParamMinValue("MaxConcurrentCount", 1))
19299	}
19300	if s.MaxConcurrentPercentage != nil && *s.MaxConcurrentPercentage < 1 {
19301		invalidParams.Add(request.NewErrParamMinValue("MaxConcurrentPercentage", 1))
19302	}
19303
19304	if invalidParams.Len() > 0 {
19305		return invalidParams
19306	}
19307	return nil
19308}
19309
19310// SetFailureToleranceCount sets the FailureToleranceCount field's value.
19311func (s *StackSetOperationPreferences) SetFailureToleranceCount(v int64) *StackSetOperationPreferences {
19312	s.FailureToleranceCount = &v
19313	return s
19314}
19315
19316// SetFailureTolerancePercentage sets the FailureTolerancePercentage field's value.
19317func (s *StackSetOperationPreferences) SetFailureTolerancePercentage(v int64) *StackSetOperationPreferences {
19318	s.FailureTolerancePercentage = &v
19319	return s
19320}
19321
19322// SetMaxConcurrentCount sets the MaxConcurrentCount field's value.
19323func (s *StackSetOperationPreferences) SetMaxConcurrentCount(v int64) *StackSetOperationPreferences {
19324	s.MaxConcurrentCount = &v
19325	return s
19326}
19327
19328// SetMaxConcurrentPercentage sets the MaxConcurrentPercentage field's value.
19329func (s *StackSetOperationPreferences) SetMaxConcurrentPercentage(v int64) *StackSetOperationPreferences {
19330	s.MaxConcurrentPercentage = &v
19331	return s
19332}
19333
19334// SetRegionConcurrencyType sets the RegionConcurrencyType field's value.
19335func (s *StackSetOperationPreferences) SetRegionConcurrencyType(v string) *StackSetOperationPreferences {
19336	s.RegionConcurrencyType = &v
19337	return s
19338}
19339
19340// SetRegionOrder sets the RegionOrder field's value.
19341func (s *StackSetOperationPreferences) SetRegionOrder(v []*string) *StackSetOperationPreferences {
19342	s.RegionOrder = v
19343	return s
19344}
19345
19346// The structure that contains information about a specified operation's results
19347// for a given account in a given Region.
19348type StackSetOperationResultSummary struct {
19349	_ struct{} `type:"structure"`
19350
19351	// [Self-managed permissions] The name of the Amazon Web Services account for
19352	// this operation result.
19353	Account *string `type:"string"`
19354
19355	// The results of the account gate function CloudFormation invokes, if present,
19356	// before proceeding with stack set operations in an account
19357	AccountGateResult *AccountGateResult `type:"structure"`
19358
19359	// [Service-managed permissions] The organization root ID or organizational
19360	// unit (OU) IDs that you specified for DeploymentTargets (https://docs.aws.amazon.com/AWSCloudFormation/latest/APIReference/API_DeploymentTargets.html).
19361	OrganizationalUnitId *string `type:"string"`
19362
19363	// The name of the Amazon Web Services Region for this operation result.
19364	Region *string `type:"string"`
19365
19366	// The result status of the stack set operation for the given account in the
19367	// given Region.
19368	//
19369	//    * CANCELLED: The operation in the specified account and Region has been
19370	//    cancelled. This is either because a user has stopped the stack set operation,
19371	//    or because the failure tolerance of the stack set operation has been exceeded.
19372	//
19373	//    * FAILED: The operation in the specified account and Region failed. If
19374	//    the stack set operation fails in enough accounts within a Region, the
19375	//    failure tolerance for the stack set operation as a whole might be exceeded.
19376	//
19377	//    * RUNNING: The operation in the specified account and Region is currently
19378	//    in progress.
19379	//
19380	//    * PENDING: The operation in the specified account and Region has yet to
19381	//    start.
19382	//
19383	//    * SUCCEEDED: The operation in the specified account and Region completed
19384	//    successfully.
19385	Status *string `type:"string" enum:"StackSetOperationResultStatus"`
19386
19387	// The reason for the assigned result status.
19388	StatusReason *string `type:"string"`
19389}
19390
19391// String returns the string representation.
19392//
19393// API parameter values that are decorated as "sensitive" in the API will not
19394// be included in the string output. The member name will be present, but the
19395// value will be replaced with "sensitive".
19396func (s StackSetOperationResultSummary) String() string {
19397	return awsutil.Prettify(s)
19398}
19399
19400// GoString returns the string representation.
19401//
19402// API parameter values that are decorated as "sensitive" in the API will not
19403// be included in the string output. The member name will be present, but the
19404// value will be replaced with "sensitive".
19405func (s StackSetOperationResultSummary) GoString() string {
19406	return s.String()
19407}
19408
19409// SetAccount sets the Account field's value.
19410func (s *StackSetOperationResultSummary) SetAccount(v string) *StackSetOperationResultSummary {
19411	s.Account = &v
19412	return s
19413}
19414
19415// SetAccountGateResult sets the AccountGateResult field's value.
19416func (s *StackSetOperationResultSummary) SetAccountGateResult(v *AccountGateResult) *StackSetOperationResultSummary {
19417	s.AccountGateResult = v
19418	return s
19419}
19420
19421// SetOrganizationalUnitId sets the OrganizationalUnitId field's value.
19422func (s *StackSetOperationResultSummary) SetOrganizationalUnitId(v string) *StackSetOperationResultSummary {
19423	s.OrganizationalUnitId = &v
19424	return s
19425}
19426
19427// SetRegion sets the Region field's value.
19428func (s *StackSetOperationResultSummary) SetRegion(v string) *StackSetOperationResultSummary {
19429	s.Region = &v
19430	return s
19431}
19432
19433// SetStatus sets the Status field's value.
19434func (s *StackSetOperationResultSummary) SetStatus(v string) *StackSetOperationResultSummary {
19435	s.Status = &v
19436	return s
19437}
19438
19439// SetStatusReason sets the StatusReason field's value.
19440func (s *StackSetOperationResultSummary) SetStatusReason(v string) *StackSetOperationResultSummary {
19441	s.StatusReason = &v
19442	return s
19443}
19444
19445// The structures that contain summary information about the specified operation.
19446type StackSetOperationSummary struct {
19447	_ struct{} `type:"structure"`
19448
19449	// The type of operation: CREATE, UPDATE, or DELETE. Create and delete operations
19450	// affect only the specified stack instances that are associated with the specified
19451	// stack set. Update operations affect both the stack set itself as well as
19452	// all associated stack set instances.
19453	Action *string `type:"string" enum:"StackSetOperationAction"`
19454
19455	// The time at which the operation was initiated. Note that the creation times
19456	// for the stack set operation might differ from the creation time of the individual
19457	// stacks themselves. This is because CloudFormation needs to perform preparatory
19458	// work for the operation, such as dispatching the work to the requested Regions,
19459	// before actually creating the first stacks.
19460	CreationTimestamp *time.Time `type:"timestamp"`
19461
19462	// The time at which the stack set operation ended, across all accounts and
19463	// Regions specified. Note that this doesn't necessarily mean that the stack
19464	// set operation was successful, or even attempted, in each account or Region.
19465	EndTimestamp *time.Time `type:"timestamp"`
19466
19467	// The unique ID of the stack set operation.
19468	OperationId *string `min:"1" type:"string"`
19469
19470	// The overall status of the operation.
19471	//
19472	//    * FAILED: The operation exceeded the specified failure tolerance. The
19473	//    failure tolerance value that you've set for an operation is applied for
19474	//    each Region during stack create and update operations. If the number of
19475	//    failed stacks within a Region exceeds the failure tolerance, the status
19476	//    of the operation in the Region is set to FAILED. This in turn sets the
19477	//    status of the operation as a whole to FAILED, and CloudFormation cancels
19478	//    the operation in any remaining Regions.
19479	//
19480	//    * QUEUED: [Service-managed permissions] For automatic deployments that
19481	//    require a sequence of operations, the operation is queued to be performed.
19482	//    For more information, see the stack set operation status codes (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/stacksets-concepts.html#stackset-status-codes)
19483	//    in the CloudFormation User Guide.
19484	//
19485	//    * RUNNING: The operation is currently being performed.
19486	//
19487	//    * STOPPED: The user has cancelled the operation.
19488	//
19489	//    * STOPPING: The operation is in the process of stopping, at user request.
19490	//
19491	//    * SUCCEEDED: The operation completed creating or updating all the specified
19492	//    stacks without exceeding the failure tolerance for the operation.
19493	Status *string `type:"string" enum:"StackSetOperationStatus"`
19494}
19495
19496// String returns the string representation.
19497//
19498// API parameter values that are decorated as "sensitive" in the API will not
19499// be included in the string output. The member name will be present, but the
19500// value will be replaced with "sensitive".
19501func (s StackSetOperationSummary) String() string {
19502	return awsutil.Prettify(s)
19503}
19504
19505// GoString returns the string representation.
19506//
19507// API parameter values that are decorated as "sensitive" in the API will not
19508// be included in the string output. The member name will be present, but the
19509// value will be replaced with "sensitive".
19510func (s StackSetOperationSummary) GoString() string {
19511	return s.String()
19512}
19513
19514// SetAction sets the Action field's value.
19515func (s *StackSetOperationSummary) SetAction(v string) *StackSetOperationSummary {
19516	s.Action = &v
19517	return s
19518}
19519
19520// SetCreationTimestamp sets the CreationTimestamp field's value.
19521func (s *StackSetOperationSummary) SetCreationTimestamp(v time.Time) *StackSetOperationSummary {
19522	s.CreationTimestamp = &v
19523	return s
19524}
19525
19526// SetEndTimestamp sets the EndTimestamp field's value.
19527func (s *StackSetOperationSummary) SetEndTimestamp(v time.Time) *StackSetOperationSummary {
19528	s.EndTimestamp = &v
19529	return s
19530}
19531
19532// SetOperationId sets the OperationId field's value.
19533func (s *StackSetOperationSummary) SetOperationId(v string) *StackSetOperationSummary {
19534	s.OperationId = &v
19535	return s
19536}
19537
19538// SetStatus sets the Status field's value.
19539func (s *StackSetOperationSummary) SetStatus(v string) *StackSetOperationSummary {
19540	s.Status = &v
19541	return s
19542}
19543
19544// The structures that contain summary information about the specified stack
19545// set.
19546type StackSetSummary struct {
19547	_ struct{} `type:"structure"`
19548
19549	// [Service-managed permissions] Describes whether StackSets automatically deploys
19550	// to Organizations accounts that are added to a target organizational unit
19551	// (OU).
19552	AutoDeployment *AutoDeployment `type:"structure"`
19553
19554	// A description of the stack set that you specify when the stack set is created
19555	// or updated.
19556	Description *string `min:"1" type:"string"`
19557
19558	// Status of the stack set's actual configuration compared to its expected template
19559	// and parameter configuration. A stack set is considered to have drifted if
19560	// one or more of its stack instances have drifted from their expected template
19561	// and parameter configuration.
19562	//
19563	//    * DRIFTED: One or more of the stack instances belonging to the stack set
19564	//    stack differs from the expected template and parameter configuration.
19565	//    A stack instance is considered to have drifted if one or more of the resources
19566	//    in the associated stack have drifted.
19567	//
19568	//    * NOT_CHECKED: CloudFormation has not checked the stack set for drift.
19569	//
19570	//    * IN_SYNC: All of the stack instances belonging to the stack set stack
19571	//    match from the expected template and parameter configuration.
19572	//
19573	//    * UNKNOWN: This value is reserved for future use.
19574	DriftStatus *string `type:"string" enum:"StackDriftStatus"`
19575
19576	// Most recent time when CloudFormation performed a drift detection operation
19577	// on the stack set. This value will be NULL for any stack set on which drift
19578	// detection has not yet been performed.
19579	LastDriftCheckTimestamp *time.Time `type:"timestamp"`
19580
19581	// Describes how the IAM roles required for stack set operations are created.
19582	//
19583	//    * With self-managed permissions, you must create the administrator and
19584	//    execution roles required to deploy to target accounts. For more information,
19585	//    see Grant Self-Managed Stack Set Permissions (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/stacksets-prereqs-self-managed.html).
19586	//
19587	//    * With service-managed permissions, StackSets automatically creates the
19588	//    IAM roles required to deploy to accounts managed by Organizations. For
19589	//    more information, see Grant Service-Managed Stack Set Permissions (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/stacksets-prereqs-service-managed.html).
19590	PermissionModel *string `type:"string" enum:"PermissionModels"`
19591
19592	// The ID of the stack set.
19593	StackSetId *string `type:"string"`
19594
19595	// The name of the stack set.
19596	StackSetName *string `type:"string"`
19597
19598	// The status of the stack set.
19599	Status *string `type:"string" enum:"StackSetStatus"`
19600}
19601
19602// String returns the string representation.
19603//
19604// API parameter values that are decorated as "sensitive" in the API will not
19605// be included in the string output. The member name will be present, but the
19606// value will be replaced with "sensitive".
19607func (s StackSetSummary) String() string {
19608	return awsutil.Prettify(s)
19609}
19610
19611// GoString returns the string representation.
19612//
19613// API parameter values that are decorated as "sensitive" in the API will not
19614// be included in the string output. The member name will be present, but the
19615// value will be replaced with "sensitive".
19616func (s StackSetSummary) GoString() string {
19617	return s.String()
19618}
19619
19620// SetAutoDeployment sets the AutoDeployment field's value.
19621func (s *StackSetSummary) SetAutoDeployment(v *AutoDeployment) *StackSetSummary {
19622	s.AutoDeployment = v
19623	return s
19624}
19625
19626// SetDescription sets the Description field's value.
19627func (s *StackSetSummary) SetDescription(v string) *StackSetSummary {
19628	s.Description = &v
19629	return s
19630}
19631
19632// SetDriftStatus sets the DriftStatus field's value.
19633func (s *StackSetSummary) SetDriftStatus(v string) *StackSetSummary {
19634	s.DriftStatus = &v
19635	return s
19636}
19637
19638// SetLastDriftCheckTimestamp sets the LastDriftCheckTimestamp field's value.
19639func (s *StackSetSummary) SetLastDriftCheckTimestamp(v time.Time) *StackSetSummary {
19640	s.LastDriftCheckTimestamp = &v
19641	return s
19642}
19643
19644// SetPermissionModel sets the PermissionModel field's value.
19645func (s *StackSetSummary) SetPermissionModel(v string) *StackSetSummary {
19646	s.PermissionModel = &v
19647	return s
19648}
19649
19650// SetStackSetId sets the StackSetId field's value.
19651func (s *StackSetSummary) SetStackSetId(v string) *StackSetSummary {
19652	s.StackSetId = &v
19653	return s
19654}
19655
19656// SetStackSetName sets the StackSetName field's value.
19657func (s *StackSetSummary) SetStackSetName(v string) *StackSetSummary {
19658	s.StackSetName = &v
19659	return s
19660}
19661
19662// SetStatus sets the Status field's value.
19663func (s *StackSetSummary) SetStatus(v string) *StackSetSummary {
19664	s.Status = &v
19665	return s
19666}
19667
19668// The StackSummary Data Type
19669type StackSummary struct {
19670	_ struct{} `type:"structure"`
19671
19672	// The time the stack was created.
19673	//
19674	// CreationTime is a required field
19675	CreationTime *time.Time `type:"timestamp" required:"true"`
19676
19677	// The time the stack was deleted.
19678	DeletionTime *time.Time `type:"timestamp"`
19679
19680	// Summarizes information on whether a stack's actual configuration differs,
19681	// or has drifted, from it's expected configuration, as defined in the stack
19682	// template and any values specified as template parameters. For more information,
19683	// see Detecting Unregulated Configuration Changes to Stacks and Resources (http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-stack-drift.html).
19684	DriftInformation *StackDriftInformationSummary `type:"structure"`
19685
19686	// The time the stack was last updated. This field will only be returned if
19687	// the stack has been updated at least once.
19688	LastUpdatedTime *time.Time `type:"timestamp"`
19689
19690	// For nested stacks--stacks created as resources for another stack--the stack
19691	// ID of the direct parent of this stack. For the first level of nested stacks,
19692	// the root stack is also the parent stack.
19693	//
19694	// For more information, see Working with Nested Stacks (http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-nested-stacks.html)
19695	// in the CloudFormation User Guide.
19696	ParentId *string `type:"string"`
19697
19698	// For nested stacks--stacks created as resources for another stack--the stack
19699	// ID of the top-level stack to which the nested stack ultimately belongs.
19700	//
19701	// For more information, see Working with Nested Stacks (http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-nested-stacks.html)
19702	// in the CloudFormation User Guide.
19703	RootId *string `type:"string"`
19704
19705	// Unique stack identifier.
19706	StackId *string `type:"string"`
19707
19708	// The name associated with the stack.
19709	//
19710	// StackName is a required field
19711	StackName *string `type:"string" required:"true"`
19712
19713	// The current status of the stack.
19714	//
19715	// StackStatus is a required field
19716	StackStatus *string `type:"string" required:"true" enum:"StackStatus"`
19717
19718	// Success/Failure message associated with the stack status.
19719	StackStatusReason *string `type:"string"`
19720
19721	// The template description of the template used to create the stack.
19722	TemplateDescription *string `type:"string"`
19723}
19724
19725// String returns the string representation.
19726//
19727// API parameter values that are decorated as "sensitive" in the API will not
19728// be included in the string output. The member name will be present, but the
19729// value will be replaced with "sensitive".
19730func (s StackSummary) String() string {
19731	return awsutil.Prettify(s)
19732}
19733
19734// GoString returns the string representation.
19735//
19736// API parameter values that are decorated as "sensitive" in the API will not
19737// be included in the string output. The member name will be present, but the
19738// value will be replaced with "sensitive".
19739func (s StackSummary) GoString() string {
19740	return s.String()
19741}
19742
19743// SetCreationTime sets the CreationTime field's value.
19744func (s *StackSummary) SetCreationTime(v time.Time) *StackSummary {
19745	s.CreationTime = &v
19746	return s
19747}
19748
19749// SetDeletionTime sets the DeletionTime field's value.
19750func (s *StackSummary) SetDeletionTime(v time.Time) *StackSummary {
19751	s.DeletionTime = &v
19752	return s
19753}
19754
19755// SetDriftInformation sets the DriftInformation field's value.
19756func (s *StackSummary) SetDriftInformation(v *StackDriftInformationSummary) *StackSummary {
19757	s.DriftInformation = v
19758	return s
19759}
19760
19761// SetLastUpdatedTime sets the LastUpdatedTime field's value.
19762func (s *StackSummary) SetLastUpdatedTime(v time.Time) *StackSummary {
19763	s.LastUpdatedTime = &v
19764	return s
19765}
19766
19767// SetParentId sets the ParentId field's value.
19768func (s *StackSummary) SetParentId(v string) *StackSummary {
19769	s.ParentId = &v
19770	return s
19771}
19772
19773// SetRootId sets the RootId field's value.
19774func (s *StackSummary) SetRootId(v string) *StackSummary {
19775	s.RootId = &v
19776	return s
19777}
19778
19779// SetStackId sets the StackId field's value.
19780func (s *StackSummary) SetStackId(v string) *StackSummary {
19781	s.StackId = &v
19782	return s
19783}
19784
19785// SetStackName sets the StackName field's value.
19786func (s *StackSummary) SetStackName(v string) *StackSummary {
19787	s.StackName = &v
19788	return s
19789}
19790
19791// SetStackStatus sets the StackStatus field's value.
19792func (s *StackSummary) SetStackStatus(v string) *StackSummary {
19793	s.StackStatus = &v
19794	return s
19795}
19796
19797// SetStackStatusReason sets the StackStatusReason field's value.
19798func (s *StackSummary) SetStackStatusReason(v string) *StackSummary {
19799	s.StackStatusReason = &v
19800	return s
19801}
19802
19803// SetTemplateDescription sets the TemplateDescription field's value.
19804func (s *StackSummary) SetTemplateDescription(v string) *StackSummary {
19805	s.TemplateDescription = &v
19806	return s
19807}
19808
19809type StopStackSetOperationInput struct {
19810	_ struct{} `type:"structure"`
19811
19812	// [Service-managed permissions] Specifies whether you are acting as an account
19813	// administrator in the organization's management account or as a delegated
19814	// administrator in a member account.
19815	//
19816	// By default, SELF is specified. Use SELF for stack sets with self-managed
19817	// permissions.
19818	//
19819	//    * If you are signed in to the management account, specify SELF.
19820	//
19821	//    * If you are signed in to a delegated administrator account, specify DELEGATED_ADMIN.
19822	//    Your Amazon Web Services account must be registered as a delegated administrator
19823	//    in the management account. For more information, see Register a delegated
19824	//    administrator (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/stacksets-orgs-delegated-admin.html)
19825	//    in the CloudFormation User Guide.
19826	CallAs *string `type:"string" enum:"CallAs"`
19827
19828	// The ID of the stack operation.
19829	//
19830	// OperationId is a required field
19831	OperationId *string `min:"1" type:"string" required:"true"`
19832
19833	// The name or unique ID of the stack set that you want to stop the operation
19834	// for.
19835	//
19836	// StackSetName is a required field
19837	StackSetName *string `type:"string" required:"true"`
19838}
19839
19840// String returns the string representation.
19841//
19842// API parameter values that are decorated as "sensitive" in the API will not
19843// be included in the string output. The member name will be present, but the
19844// value will be replaced with "sensitive".
19845func (s StopStackSetOperationInput) String() string {
19846	return awsutil.Prettify(s)
19847}
19848
19849// GoString returns the string representation.
19850//
19851// API parameter values that are decorated as "sensitive" in the API will not
19852// be included in the string output. The member name will be present, but the
19853// value will be replaced with "sensitive".
19854func (s StopStackSetOperationInput) GoString() string {
19855	return s.String()
19856}
19857
19858// Validate inspects the fields of the type to determine if they are valid.
19859func (s *StopStackSetOperationInput) Validate() error {
19860	invalidParams := request.ErrInvalidParams{Context: "StopStackSetOperationInput"}
19861	if s.OperationId == nil {
19862		invalidParams.Add(request.NewErrParamRequired("OperationId"))
19863	}
19864	if s.OperationId != nil && len(*s.OperationId) < 1 {
19865		invalidParams.Add(request.NewErrParamMinLen("OperationId", 1))
19866	}
19867	if s.StackSetName == nil {
19868		invalidParams.Add(request.NewErrParamRequired("StackSetName"))
19869	}
19870
19871	if invalidParams.Len() > 0 {
19872		return invalidParams
19873	}
19874	return nil
19875}
19876
19877// SetCallAs sets the CallAs field's value.
19878func (s *StopStackSetOperationInput) SetCallAs(v string) *StopStackSetOperationInput {
19879	s.CallAs = &v
19880	return s
19881}
19882
19883// SetOperationId sets the OperationId field's value.
19884func (s *StopStackSetOperationInput) SetOperationId(v string) *StopStackSetOperationInput {
19885	s.OperationId = &v
19886	return s
19887}
19888
19889// SetStackSetName sets the StackSetName field's value.
19890func (s *StopStackSetOperationInput) SetStackSetName(v string) *StopStackSetOperationInput {
19891	s.StackSetName = &v
19892	return s
19893}
19894
19895type StopStackSetOperationOutput struct {
19896	_ struct{} `type:"structure"`
19897}
19898
19899// String returns the string representation.
19900//
19901// API parameter values that are decorated as "sensitive" in the API will not
19902// be included in the string output. The member name will be present, but the
19903// value will be replaced with "sensitive".
19904func (s StopStackSetOperationOutput) String() string {
19905	return awsutil.Prettify(s)
19906}
19907
19908// GoString returns the string representation.
19909//
19910// API parameter values that are decorated as "sensitive" in the API will not
19911// be included in the string output. The member name will be present, but the
19912// value will be replaced with "sensitive".
19913func (s StopStackSetOperationOutput) GoString() string {
19914	return s.String()
19915}
19916
19917// The Tag type enables you to specify a key-value pair that can be used to
19918// store information about an CloudFormation stack.
19919type Tag struct {
19920	_ struct{} `type:"structure"`
19921
19922	// Required. A string used to identify this tag. You can specify a maximum of
19923	// 128 characters for a tag key. Tags owned by Amazon Web Services (Amazon Web
19924	// Services) have the reserved prefix: aws:.
19925	//
19926	// Key is a required field
19927	Key *string `min:"1" type:"string" required:"true"`
19928
19929	// Required. A string containing the value for this tag. You can specify a maximum
19930	// of 256 characters for a tag value.
19931	//
19932	// Value is a required field
19933	Value *string `min:"1" type:"string" required:"true"`
19934}
19935
19936// String returns the string representation.
19937//
19938// API parameter values that are decorated as "sensitive" in the API will not
19939// be included in the string output. The member name will be present, but the
19940// value will be replaced with "sensitive".
19941func (s Tag) String() string {
19942	return awsutil.Prettify(s)
19943}
19944
19945// GoString returns the string representation.
19946//
19947// API parameter values that are decorated as "sensitive" in the API will not
19948// be included in the string output. The member name will be present, but the
19949// value will be replaced with "sensitive".
19950func (s Tag) GoString() string {
19951	return s.String()
19952}
19953
19954// Validate inspects the fields of the type to determine if they are valid.
19955func (s *Tag) Validate() error {
19956	invalidParams := request.ErrInvalidParams{Context: "Tag"}
19957	if s.Key == nil {
19958		invalidParams.Add(request.NewErrParamRequired("Key"))
19959	}
19960	if s.Key != nil && len(*s.Key) < 1 {
19961		invalidParams.Add(request.NewErrParamMinLen("Key", 1))
19962	}
19963	if s.Value == nil {
19964		invalidParams.Add(request.NewErrParamRequired("Value"))
19965	}
19966	if s.Value != nil && len(*s.Value) < 1 {
19967		invalidParams.Add(request.NewErrParamMinLen("Value", 1))
19968	}
19969
19970	if invalidParams.Len() > 0 {
19971		return invalidParams
19972	}
19973	return nil
19974}
19975
19976// SetKey sets the Key field's value.
19977func (s *Tag) SetKey(v string) *Tag {
19978	s.Key = &v
19979	return s
19980}
19981
19982// SetValue sets the Value field's value.
19983func (s *Tag) SetValue(v string) *Tag {
19984	s.Value = &v
19985	return s
19986}
19987
19988// The TemplateParameter data type.
19989type TemplateParameter struct {
19990	_ struct{} `type:"structure"`
19991
19992	// The default value associated with the parameter.
19993	DefaultValue *string `type:"string"`
19994
19995	// User defined description associated with the parameter.
19996	Description *string `min:"1" type:"string"`
19997
19998	// Flag indicating whether the parameter should be displayed as plain text in
19999	// logs and UIs.
20000	NoEcho *bool `type:"boolean"`
20001
20002	// The name associated with the parameter.
20003	ParameterKey *string `type:"string"`
20004}
20005
20006// String returns the string representation.
20007//
20008// API parameter values that are decorated as "sensitive" in the API will not
20009// be included in the string output. The member name will be present, but the
20010// value will be replaced with "sensitive".
20011func (s TemplateParameter) String() string {
20012	return awsutil.Prettify(s)
20013}
20014
20015// GoString returns the string representation.
20016//
20017// API parameter values that are decorated as "sensitive" in the API will not
20018// be included in the string output. The member name will be present, but the
20019// value will be replaced with "sensitive".
20020func (s TemplateParameter) GoString() string {
20021	return s.String()
20022}
20023
20024// SetDefaultValue sets the DefaultValue field's value.
20025func (s *TemplateParameter) SetDefaultValue(v string) *TemplateParameter {
20026	s.DefaultValue = &v
20027	return s
20028}
20029
20030// SetDescription sets the Description field's value.
20031func (s *TemplateParameter) SetDescription(v string) *TemplateParameter {
20032	s.Description = &v
20033	return s
20034}
20035
20036// SetNoEcho sets the NoEcho field's value.
20037func (s *TemplateParameter) SetNoEcho(v bool) *TemplateParameter {
20038	s.NoEcho = &v
20039	return s
20040}
20041
20042// SetParameterKey sets the ParameterKey field's value.
20043func (s *TemplateParameter) SetParameterKey(v string) *TemplateParameter {
20044	s.ParameterKey = &v
20045	return s
20046}
20047
20048type TestTypeInput struct {
20049	_ struct{} `type:"structure"`
20050
20051	// The Amazon Resource Number (ARN) of the extension.
20052	//
20053	// Conditional: You must specify Arn, or TypeName and Type.
20054	Arn *string `type:"string"`
20055
20056	// The S3 bucket to which CloudFormation delivers the contract test execution
20057	// logs.
20058	//
20059	// CloudFormation delivers the logs by the time contract testing has completed
20060	// and the extension has been assigned a test type status of PASSED or FAILED.
20061	//
20062	// The user calling TestType must be able to access items in the specified S3
20063	// bucket. Specifically, the user needs the following permissions:
20064	//
20065	//    * GetObject
20066	//
20067	//    * PutObject
20068	//
20069	// For more information, see Actions, Resources, and Condition Keys for Amazon
20070	// S3 (https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazons3.html)
20071	// in the Amazon Web Services Identity and Access Management User Guide.
20072	LogDeliveryBucket *string `min:"3" type:"string"`
20073
20074	// The type of the extension to test.
20075	//
20076	// Conditional: You must specify Arn, or TypeName and Type.
20077	Type *string `type:"string" enum:"ThirdPartyType"`
20078
20079	// The name of the extension to test.
20080	//
20081	// Conditional: You must specify Arn, or TypeName and Type.
20082	TypeName *string `min:"10" type:"string"`
20083
20084	// The version of the extension to test.
20085	//
20086	// You can specify the version id with either Arn, or with TypeName and Type.
20087	//
20088	// If you do not specify a version, CloudFormation uses the default version
20089	// of the extension in this account and region for testing.
20090	VersionId *string `min:"1" type:"string"`
20091}
20092
20093// String returns the string representation.
20094//
20095// API parameter values that are decorated as "sensitive" in the API will not
20096// be included in the string output. The member name will be present, but the
20097// value will be replaced with "sensitive".
20098func (s TestTypeInput) String() string {
20099	return awsutil.Prettify(s)
20100}
20101
20102// GoString returns the string representation.
20103//
20104// API parameter values that are decorated as "sensitive" in the API will not
20105// be included in the string output. The member name will be present, but the
20106// value will be replaced with "sensitive".
20107func (s TestTypeInput) GoString() string {
20108	return s.String()
20109}
20110
20111// Validate inspects the fields of the type to determine if they are valid.
20112func (s *TestTypeInput) Validate() error {
20113	invalidParams := request.ErrInvalidParams{Context: "TestTypeInput"}
20114	if s.LogDeliveryBucket != nil && len(*s.LogDeliveryBucket) < 3 {
20115		invalidParams.Add(request.NewErrParamMinLen("LogDeliveryBucket", 3))
20116	}
20117	if s.TypeName != nil && len(*s.TypeName) < 10 {
20118		invalidParams.Add(request.NewErrParamMinLen("TypeName", 10))
20119	}
20120	if s.VersionId != nil && len(*s.VersionId) < 1 {
20121		invalidParams.Add(request.NewErrParamMinLen("VersionId", 1))
20122	}
20123
20124	if invalidParams.Len() > 0 {
20125		return invalidParams
20126	}
20127	return nil
20128}
20129
20130// SetArn sets the Arn field's value.
20131func (s *TestTypeInput) SetArn(v string) *TestTypeInput {
20132	s.Arn = &v
20133	return s
20134}
20135
20136// SetLogDeliveryBucket sets the LogDeliveryBucket field's value.
20137func (s *TestTypeInput) SetLogDeliveryBucket(v string) *TestTypeInput {
20138	s.LogDeliveryBucket = &v
20139	return s
20140}
20141
20142// SetType sets the Type field's value.
20143func (s *TestTypeInput) SetType(v string) *TestTypeInput {
20144	s.Type = &v
20145	return s
20146}
20147
20148// SetTypeName sets the TypeName field's value.
20149func (s *TestTypeInput) SetTypeName(v string) *TestTypeInput {
20150	s.TypeName = &v
20151	return s
20152}
20153
20154// SetVersionId sets the VersionId field's value.
20155func (s *TestTypeInput) SetVersionId(v string) *TestTypeInput {
20156	s.VersionId = &v
20157	return s
20158}
20159
20160type TestTypeOutput struct {
20161	_ struct{} `type:"structure"`
20162
20163	// The Amazon Resource Number (ARN) of the extension.
20164	TypeVersionArn *string `type:"string"`
20165}
20166
20167// String returns the string representation.
20168//
20169// API parameter values that are decorated as "sensitive" in the API will not
20170// be included in the string output. The member name will be present, but the
20171// value will be replaced with "sensitive".
20172func (s TestTypeOutput) String() string {
20173	return awsutil.Prettify(s)
20174}
20175
20176// GoString returns the string representation.
20177//
20178// API parameter values that are decorated as "sensitive" in the API will not
20179// be included in the string output. The member name will be present, but the
20180// value will be replaced with "sensitive".
20181func (s TestTypeOutput) GoString() string {
20182	return s.String()
20183}
20184
20185// SetTypeVersionArn sets the TypeVersionArn field's value.
20186func (s *TestTypeOutput) SetTypeVersionArn(v string) *TestTypeOutput {
20187	s.TypeVersionArn = &v
20188	return s
20189}
20190
20191// Detailed information concerning the specification of a CloudFormation extension
20192// in a given account and region.
20193//
20194// For more information, see Configuring extensions at the account level (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/registry-register.html#registry-set-configuration)
20195// in the CloudFormation User Guide.
20196type TypeConfigurationDetails struct {
20197	_ struct{} `type:"structure"`
20198
20199	// The alias specified for this configuration, if one was specified when the
20200	// configuration was set.
20201	Alias *string `min:"1" type:"string"`
20202
20203	// The Amazon Resource Name (ARN) for the configuration data, in this account
20204	// and region.
20205	Arn *string `type:"string"`
20206
20207	// A JSON string specifying the configuration data for the extension, in this
20208	// account and region.
20209	//
20210	// If a configuration has not been set for a specified extension, CloudFormation
20211	// returns {}.
20212	Configuration *string `min:"1" type:"string"`
20213
20214	// Whether or not this configuration data is the default configuration for the
20215	// extension.
20216	IsDefaultConfiguration *bool `type:"boolean"`
20217
20218	// When the configuration data was last updated for this extension.
20219	//
20220	// If a configuration has not been set for a specified extension, CloudFormation
20221	// returns null.
20222	LastUpdated *time.Time `type:"timestamp"`
20223
20224	// The Amazon Resource Name (ARN) for the extension, in this account and region.
20225	//
20226	// For public extensions, this will be the ARN assigned when you activate the
20227	// type (https://docs.aws.amazon.com/AWSCloudFormation/latest/APIReference/API_ActivateType.html)
20228	// in this account and region. For private extensions, this will be the ARN
20229	// assigned when you register the type (https://docs.aws.amazon.com/AWSCloudFormation/latest/APIReference/API_RegisterType.html)
20230	// in this account and region.
20231	TypeArn *string `type:"string"`
20232
20233	// The name of the extension.
20234	TypeName *string `min:"10" type:"string"`
20235}
20236
20237// String returns the string representation.
20238//
20239// API parameter values that are decorated as "sensitive" in the API will not
20240// be included in the string output. The member name will be present, but the
20241// value will be replaced with "sensitive".
20242func (s TypeConfigurationDetails) String() string {
20243	return awsutil.Prettify(s)
20244}
20245
20246// GoString returns the string representation.
20247//
20248// API parameter values that are decorated as "sensitive" in the API will not
20249// be included in the string output. The member name will be present, but the
20250// value will be replaced with "sensitive".
20251func (s TypeConfigurationDetails) GoString() string {
20252	return s.String()
20253}
20254
20255// SetAlias sets the Alias field's value.
20256func (s *TypeConfigurationDetails) SetAlias(v string) *TypeConfigurationDetails {
20257	s.Alias = &v
20258	return s
20259}
20260
20261// SetArn sets the Arn field's value.
20262func (s *TypeConfigurationDetails) SetArn(v string) *TypeConfigurationDetails {
20263	s.Arn = &v
20264	return s
20265}
20266
20267// SetConfiguration sets the Configuration field's value.
20268func (s *TypeConfigurationDetails) SetConfiguration(v string) *TypeConfigurationDetails {
20269	s.Configuration = &v
20270	return s
20271}
20272
20273// SetIsDefaultConfiguration sets the IsDefaultConfiguration field's value.
20274func (s *TypeConfigurationDetails) SetIsDefaultConfiguration(v bool) *TypeConfigurationDetails {
20275	s.IsDefaultConfiguration = &v
20276	return s
20277}
20278
20279// SetLastUpdated sets the LastUpdated field's value.
20280func (s *TypeConfigurationDetails) SetLastUpdated(v time.Time) *TypeConfigurationDetails {
20281	s.LastUpdated = &v
20282	return s
20283}
20284
20285// SetTypeArn sets the TypeArn field's value.
20286func (s *TypeConfigurationDetails) SetTypeArn(v string) *TypeConfigurationDetails {
20287	s.TypeArn = &v
20288	return s
20289}
20290
20291// SetTypeName sets the TypeName field's value.
20292func (s *TypeConfigurationDetails) SetTypeName(v string) *TypeConfigurationDetails {
20293	s.TypeName = &v
20294	return s
20295}
20296
20297// Identifying information for the configuration of a CloudFormation extension.
20298type TypeConfigurationIdentifier struct {
20299	_ struct{} `type:"structure"`
20300
20301	// The type of extension.
20302	Type *string `type:"string" enum:"ThirdPartyType"`
20303
20304	// The Amazon Resource Name (ARN) for the extension, in this account and region.
20305	//
20306	// For public extensions, this will be the ARN assigned when you activate the
20307	// type (https://docs.aws.amazon.com/AWSCloudFormation/latest/APIReference/API_ActivateType.html)
20308	// in this account and region. For private extensions, this will be the ARN
20309	// assigned when you register the type (https://docs.aws.amazon.com/AWSCloudFormation/latest/APIReference/API_RegisterType.html)
20310	// in this account and region.
20311	TypeArn *string `type:"string"`
20312
20313	// The alias specified for this configuration, if one was specified when the
20314	// configuration was set.
20315	TypeConfigurationAlias *string `min:"1" type:"string"`
20316
20317	// The Amazon Resource Name (ARN) for the configuration, in this account and
20318	// region.
20319	TypeConfigurationArn *string `type:"string"`
20320
20321	// The name of the extension type to which this configuration applies.
20322	TypeName *string `min:"10" type:"string"`
20323}
20324
20325// String returns the string representation.
20326//
20327// API parameter values that are decorated as "sensitive" in the API will not
20328// be included in the string output. The member name will be present, but the
20329// value will be replaced with "sensitive".
20330func (s TypeConfigurationIdentifier) String() string {
20331	return awsutil.Prettify(s)
20332}
20333
20334// GoString returns the string representation.
20335//
20336// API parameter values that are decorated as "sensitive" in the API will not
20337// be included in the string output. The member name will be present, but the
20338// value will be replaced with "sensitive".
20339func (s TypeConfigurationIdentifier) GoString() string {
20340	return s.String()
20341}
20342
20343// Validate inspects the fields of the type to determine if they are valid.
20344func (s *TypeConfigurationIdentifier) Validate() error {
20345	invalidParams := request.ErrInvalidParams{Context: "TypeConfigurationIdentifier"}
20346	if s.TypeConfigurationAlias != nil && len(*s.TypeConfigurationAlias) < 1 {
20347		invalidParams.Add(request.NewErrParamMinLen("TypeConfigurationAlias", 1))
20348	}
20349	if s.TypeName != nil && len(*s.TypeName) < 10 {
20350		invalidParams.Add(request.NewErrParamMinLen("TypeName", 10))
20351	}
20352
20353	if invalidParams.Len() > 0 {
20354		return invalidParams
20355	}
20356	return nil
20357}
20358
20359// SetType sets the Type field's value.
20360func (s *TypeConfigurationIdentifier) SetType(v string) *TypeConfigurationIdentifier {
20361	s.Type = &v
20362	return s
20363}
20364
20365// SetTypeArn sets the TypeArn field's value.
20366func (s *TypeConfigurationIdentifier) SetTypeArn(v string) *TypeConfigurationIdentifier {
20367	s.TypeArn = &v
20368	return s
20369}
20370
20371// SetTypeConfigurationAlias sets the TypeConfigurationAlias field's value.
20372func (s *TypeConfigurationIdentifier) SetTypeConfigurationAlias(v string) *TypeConfigurationIdentifier {
20373	s.TypeConfigurationAlias = &v
20374	return s
20375}
20376
20377// SetTypeConfigurationArn sets the TypeConfigurationArn field's value.
20378func (s *TypeConfigurationIdentifier) SetTypeConfigurationArn(v string) *TypeConfigurationIdentifier {
20379	s.TypeConfigurationArn = &v
20380	return s
20381}
20382
20383// SetTypeName sets the TypeName field's value.
20384func (s *TypeConfigurationIdentifier) SetTypeName(v string) *TypeConfigurationIdentifier {
20385	s.TypeName = &v
20386	return s
20387}
20388
20389// Filter criteria to use in determining which extensions to return.
20390type TypeFilters struct {
20391	_ struct{} `type:"structure"`
20392
20393	// The category of extensions to return.
20394	//
20395	//    * REGISTERED: Private extensions that have been registered for this account
20396	//    and region.
20397	//
20398	//    * ACTIVATED: Public extensions that have been activated for this account
20399	//    and region.
20400	//
20401	//    * THIRD-PARTY: Extensions available for use from publishers other than
20402	//    Amazon. This includes: Private extensions registered in the account. Public
20403	//    extensions from publishers other than Amazon, whether activated or not.
20404	//
20405	//    * AWS-TYPES: Extensions available for use from Amazon.
20406	Category *string `type:"string" enum:"Category"`
20407
20408	// The id of the publisher of the extension.
20409	//
20410	// Extensions published by Amazon are not assigned a publisher ID. Use the AWS-TYPES
20411	// category to specify a list of types published by Amazon.
20412	PublisherId *string `min:"1" type:"string"`
20413
20414	// A prefix to use as a filter for results.
20415	TypeNamePrefix *string `min:"1" type:"string"`
20416}
20417
20418// String returns the string representation.
20419//
20420// API parameter values that are decorated as "sensitive" in the API will not
20421// be included in the string output. The member name will be present, but the
20422// value will be replaced with "sensitive".
20423func (s TypeFilters) String() string {
20424	return awsutil.Prettify(s)
20425}
20426
20427// GoString returns the string representation.
20428//
20429// API parameter values that are decorated as "sensitive" in the API will not
20430// be included in the string output. The member name will be present, but the
20431// value will be replaced with "sensitive".
20432func (s TypeFilters) GoString() string {
20433	return s.String()
20434}
20435
20436// Validate inspects the fields of the type to determine if they are valid.
20437func (s *TypeFilters) Validate() error {
20438	invalidParams := request.ErrInvalidParams{Context: "TypeFilters"}
20439	if s.PublisherId != nil && len(*s.PublisherId) < 1 {
20440		invalidParams.Add(request.NewErrParamMinLen("PublisherId", 1))
20441	}
20442	if s.TypeNamePrefix != nil && len(*s.TypeNamePrefix) < 1 {
20443		invalidParams.Add(request.NewErrParamMinLen("TypeNamePrefix", 1))
20444	}
20445
20446	if invalidParams.Len() > 0 {
20447		return invalidParams
20448	}
20449	return nil
20450}
20451
20452// SetCategory sets the Category field's value.
20453func (s *TypeFilters) SetCategory(v string) *TypeFilters {
20454	s.Category = &v
20455	return s
20456}
20457
20458// SetPublisherId sets the PublisherId field's value.
20459func (s *TypeFilters) SetPublisherId(v string) *TypeFilters {
20460	s.PublisherId = &v
20461	return s
20462}
20463
20464// SetTypeNamePrefix sets the TypeNamePrefix field's value.
20465func (s *TypeFilters) SetTypeNamePrefix(v string) *TypeFilters {
20466	s.TypeNamePrefix = &v
20467	return s
20468}
20469
20470// Contains summary information about the specified CloudFormation extension.
20471type TypeSummary struct {
20472	_ struct{} `type:"structure"`
20473
20474	// The ID of the default version of the extension. The default version is used
20475	// when the extension version is not specified.
20476	//
20477	// This applies only to private extensions you have registered in your account.
20478	// For public extensions, both those provided by Amazon and published by third
20479	// parties, CloudFormation returns null. For more information, see RegisterType
20480	// (https://docs.aws.amazon.com/AWSCloudFormation/latest/APIReference/API_RegisterType.html).
20481	//
20482	// To set the default version of an extension, use SetTypeDefaultVersion .
20483	DefaultVersionId *string `min:"1" type:"string"`
20484
20485	// The description of the extension.
20486	Description *string `min:"1" type:"string"`
20487
20488	// Whether or not the extension is activated for this account and region.
20489	//
20490	// This applies only to third-party public extensions. Extensions published
20491	// by Amazon are activated by default.
20492	IsActivated *bool `type:"boolean"`
20493
20494	// When the specified extension version was registered. This applies only to:
20495	//
20496	//    * Private extensions you have registered in your account. For more information,
20497	//    see RegisterType (https://docs.aws.amazon.com/AWSCloudFormation/latest/APIReference/API_RegisterType.html).
20498	//
20499	//    * Public extensions you have activated in your account with auto-update
20500	//    specified. For more information, see ActivateType (https://docs.aws.amazon.com/AWSCloudFormation/latest/APIReference/API_ActivateType.html).
20501	//
20502	// For all other extension types, CloudFormation returns null.
20503	LastUpdated *time.Time `type:"timestamp"`
20504
20505	// For public extensions that have been activated for this account and region,
20506	// the latest version of the public extension that is available. For any extensions
20507	// other than activated third-arty extensions, CloudFormation returns null.
20508	//
20509	// How you specified AutoUpdate when enabling the extension affects whether
20510	// CloudFormation automatically updates the extention in this account and region
20511	// when a new version is released. For more information, see Setting CloudFormation
20512	// to automatically use new versions of extensions (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/registry-public.html#registry-public-enable-auto)
20513	// in the CloudFormation User Guide.
20514	LatestPublicVersion *string `min:"5" type:"string"`
20515
20516	// For public extensions that have been activated for this account and region,
20517	// the type name of the public extension.
20518	//
20519	// If you specified a TypeNameAlias when enabling the extension in this account
20520	// and region, CloudFormation treats that alias as the extension's type name
20521	// within the account and region, not the type name of the public extension.
20522	// 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)
20523	// in the CloudFormation User Guide.
20524	OriginalTypeName *string `min:"10" type:"string"`
20525
20526	// For public extensions that have been activated for this account and region,
20527	// the version of the public extension to be used for CloudFormation operations
20528	// in this account and region.
20529	//
20530	// How you specified AutoUpdate when enabling the extension affects whether
20531	// CloudFormation automatically updates the extention in this account and region
20532	// when a new version is released. For more information, see Setting CloudFormation
20533	// to automatically use new versions of extensions (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/registry-public.html#registry-public-enable-auto)
20534	// in the CloudFormation User Guide.
20535	PublicVersionNumber *string `min:"5" type:"string"`
20536
20537	// The ID of the extension publisher, if the extension is published by a third
20538	// party. Extensions published by Amazon do not return a publisher ID.
20539	PublisherId *string `min:"1" type:"string"`
20540
20541	// The service used to verify the publisher identity.
20542	//
20543	// For more information, see Registering your account to publish CloudFormation
20544	// extensions (https://docs.aws.amazon.com/cloudformation-cli/latest/userguide/publish-extension.html)
20545	// in the CFN-CLI User Guide for Extension Development.
20546	PublisherIdentity *string `type:"string" enum:"IdentityProvider"`
20547
20548	// The publisher name, as defined in the public profile for that publisher in
20549	// the service used to verify the publisher identity.
20550	PublisherName *string `min:"1" type:"string"`
20551
20552	// The kind of extension.
20553	Type *string `type:"string" enum:"RegistryType"`
20554
20555	// The Amazon Resource Name (ARN) of the extension.
20556	TypeArn *string `type:"string"`
20557
20558	// The name of the extension.
20559	//
20560	// If you specified a TypeNameAlias when you activate this extension (https://docs.aws.amazon.com/AWSCloudFormation/latest/APIReference/API_ActivateType.html)
20561	// in your account and region, CloudFormation considers that alias as the type
20562	// name.
20563	TypeName *string `min:"10" type:"string"`
20564}
20565
20566// String returns the string representation.
20567//
20568// API parameter values that are decorated as "sensitive" in the API will not
20569// be included in the string output. The member name will be present, but the
20570// value will be replaced with "sensitive".
20571func (s TypeSummary) String() string {
20572	return awsutil.Prettify(s)
20573}
20574
20575// GoString returns the string representation.
20576//
20577// API parameter values that are decorated as "sensitive" in the API will not
20578// be included in the string output. The member name will be present, but the
20579// value will be replaced with "sensitive".
20580func (s TypeSummary) GoString() string {
20581	return s.String()
20582}
20583
20584// SetDefaultVersionId sets the DefaultVersionId field's value.
20585func (s *TypeSummary) SetDefaultVersionId(v string) *TypeSummary {
20586	s.DefaultVersionId = &v
20587	return s
20588}
20589
20590// SetDescription sets the Description field's value.
20591func (s *TypeSummary) SetDescription(v string) *TypeSummary {
20592	s.Description = &v
20593	return s
20594}
20595
20596// SetIsActivated sets the IsActivated field's value.
20597func (s *TypeSummary) SetIsActivated(v bool) *TypeSummary {
20598	s.IsActivated = &v
20599	return s
20600}
20601
20602// SetLastUpdated sets the LastUpdated field's value.
20603func (s *TypeSummary) SetLastUpdated(v time.Time) *TypeSummary {
20604	s.LastUpdated = &v
20605	return s
20606}
20607
20608// SetLatestPublicVersion sets the LatestPublicVersion field's value.
20609func (s *TypeSummary) SetLatestPublicVersion(v string) *TypeSummary {
20610	s.LatestPublicVersion = &v
20611	return s
20612}
20613
20614// SetOriginalTypeName sets the OriginalTypeName field's value.
20615func (s *TypeSummary) SetOriginalTypeName(v string) *TypeSummary {
20616	s.OriginalTypeName = &v
20617	return s
20618}
20619
20620// SetPublicVersionNumber sets the PublicVersionNumber field's value.
20621func (s *TypeSummary) SetPublicVersionNumber(v string) *TypeSummary {
20622	s.PublicVersionNumber = &v
20623	return s
20624}
20625
20626// SetPublisherId sets the PublisherId field's value.
20627func (s *TypeSummary) SetPublisherId(v string) *TypeSummary {
20628	s.PublisherId = &v
20629	return s
20630}
20631
20632// SetPublisherIdentity sets the PublisherIdentity field's value.
20633func (s *TypeSummary) SetPublisherIdentity(v string) *TypeSummary {
20634	s.PublisherIdentity = &v
20635	return s
20636}
20637
20638// SetPublisherName sets the PublisherName field's value.
20639func (s *TypeSummary) SetPublisherName(v string) *TypeSummary {
20640	s.PublisherName = &v
20641	return s
20642}
20643
20644// SetType sets the Type field's value.
20645func (s *TypeSummary) SetType(v string) *TypeSummary {
20646	s.Type = &v
20647	return s
20648}
20649
20650// SetTypeArn sets the TypeArn field's value.
20651func (s *TypeSummary) SetTypeArn(v string) *TypeSummary {
20652	s.TypeArn = &v
20653	return s
20654}
20655
20656// SetTypeName sets the TypeName field's value.
20657func (s *TypeSummary) SetTypeName(v string) *TypeSummary {
20658	s.TypeName = &v
20659	return s
20660}
20661
20662// Contains summary information about a specific version of a CloudFormation
20663// extension.
20664type TypeVersionSummary struct {
20665	_ struct{} `type:"structure"`
20666
20667	// The Amazon Resource Name (ARN) of the extension version.
20668	Arn *string `type:"string"`
20669
20670	// The description of the extension version.
20671	Description *string `min:"1" type:"string"`
20672
20673	// Whether the specified extension version is set as the default version.
20674	//
20675	// This applies only to private extensions you have registered in your account,
20676	// and extensions published by Amazon. For public third-party extensions, whether
20677	// or not they are activated in your account, CloudFormation returns null.
20678	IsDefaultVersion *bool `type:"boolean"`
20679
20680	// For public extensions that have been activated for this account and region,
20681	// the version of the public extension to be used for CloudFormation operations
20682	// in this account and region. For any extensions other than activated third-arty
20683	// extensions, CloudFormation returns null.
20684	//
20685	// How you specified AutoUpdate when enabling the extension affects whether
20686	// CloudFormation automatically updates the extention in this account and region
20687	// when a new version is released. For more information, see Setting CloudFormation
20688	// to automatically use new versions of extensions (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/registry-public.html#registry-public-enable-auto)
20689	// in the CloudFormation User Guide.
20690	PublicVersionNumber *string `min:"5" type:"string"`
20691
20692	// When the version was registered.
20693	TimeCreated *time.Time `type:"timestamp"`
20694
20695	// The kind of extension.
20696	Type *string `type:"string" enum:"RegistryType"`
20697
20698	// The name of the extension.
20699	TypeName *string `min:"10" type:"string"`
20700
20701	// The ID of a specific version of the extension. The version ID is the value
20702	// at the end of the Amazon Resource Name (ARN) assigned to the extension version
20703	// when it is registered.
20704	VersionId *string `min:"1" type:"string"`
20705}
20706
20707// String returns the string representation.
20708//
20709// API parameter values that are decorated as "sensitive" in the API will not
20710// be included in the string output. The member name will be present, but the
20711// value will be replaced with "sensitive".
20712func (s TypeVersionSummary) String() string {
20713	return awsutil.Prettify(s)
20714}
20715
20716// GoString returns the string representation.
20717//
20718// API parameter values that are decorated as "sensitive" in the API will not
20719// be included in the string output. The member name will be present, but the
20720// value will be replaced with "sensitive".
20721func (s TypeVersionSummary) GoString() string {
20722	return s.String()
20723}
20724
20725// SetArn sets the Arn field's value.
20726func (s *TypeVersionSummary) SetArn(v string) *TypeVersionSummary {
20727	s.Arn = &v
20728	return s
20729}
20730
20731// SetDescription sets the Description field's value.
20732func (s *TypeVersionSummary) SetDescription(v string) *TypeVersionSummary {
20733	s.Description = &v
20734	return s
20735}
20736
20737// SetIsDefaultVersion sets the IsDefaultVersion field's value.
20738func (s *TypeVersionSummary) SetIsDefaultVersion(v bool) *TypeVersionSummary {
20739	s.IsDefaultVersion = &v
20740	return s
20741}
20742
20743// SetPublicVersionNumber sets the PublicVersionNumber field's value.
20744func (s *TypeVersionSummary) SetPublicVersionNumber(v string) *TypeVersionSummary {
20745	s.PublicVersionNumber = &v
20746	return s
20747}
20748
20749// SetTimeCreated sets the TimeCreated field's value.
20750func (s *TypeVersionSummary) SetTimeCreated(v time.Time) *TypeVersionSummary {
20751	s.TimeCreated = &v
20752	return s
20753}
20754
20755// SetType sets the Type field's value.
20756func (s *TypeVersionSummary) SetType(v string) *TypeVersionSummary {
20757	s.Type = &v
20758	return s
20759}
20760
20761// SetTypeName sets the TypeName field's value.
20762func (s *TypeVersionSummary) SetTypeName(v string) *TypeVersionSummary {
20763	s.TypeName = &v
20764	return s
20765}
20766
20767// SetVersionId sets the VersionId field's value.
20768func (s *TypeVersionSummary) SetVersionId(v string) *TypeVersionSummary {
20769	s.VersionId = &v
20770	return s
20771}
20772
20773// The input for an UpdateStack action.
20774type UpdateStackInput struct {
20775	_ struct{} `type:"structure"`
20776
20777	// In some cases, you must explicitly acknowledge that your stack template contains
20778	// certain capabilities in order for CloudFormation to update the stack.
20779	//
20780	//    * CAPABILITY_IAM and CAPABILITY_NAMED_IAM Some stack templates might include
20781	//    resources that can affect permissions in your Amazon Web Services account;
20782	//    for example, by creating new Identity and Access Management (IAM) users.
20783	//    For those stacks, you must explicitly acknowledge this by specifying one
20784	//    of these capabilities. The following IAM resources require you to specify
20785	//    either the CAPABILITY_IAM or CAPABILITY_NAMED_IAM capability. If you have
20786	//    IAM resources, you can specify either capability. If you have IAM resources
20787	//    with custom names, you must specify CAPABILITY_NAMED_IAM. If you don't
20788	//    specify either of these capabilities, CloudFormation returns an InsufficientCapabilities
20789	//    error. If your stack template contains these resources, we recommend that
20790	//    you review all permissions associated with them and edit their permissions
20791	//    if necessary. AWS::IAM::AccessKey (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iam-accesskey.html)
20792	//    AWS::IAM::Group (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iam-group.html)
20793	//    AWS::IAM::InstanceProfile (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iam-instanceprofile.html)
20794	//    AWS::IAM::Policy (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iam-policy.html)
20795	//    AWS::IAM::Role (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iam-role.html)
20796	//    AWS::IAM::User (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iam-user.html)
20797	//    AWS::IAM::UserToGroupAddition (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iam-addusertogroup.html)
20798	//    For more information, see Acknowledging IAM Resources in CloudFormation
20799	//    Templates (http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-iam-template.html#capabilities).
20800	//
20801	//    * CAPABILITY_AUTO_EXPAND Some template contain macros. Macros perform
20802	//    custom processing on templates; this can include simple actions like find-and-replace
20803	//    operations, all the way to extensive transformations of entire templates.
20804	//    Because of this, users typically create a change set from the processed
20805	//    template, so that they can review the changes resulting from the macros
20806	//    before actually updating the stack. If your stack template contains one
20807	//    or more macros, and you choose to update a stack directly from the processed
20808	//    template, without first reviewing the resulting changes in a change set,
20809	//    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)
20810	//    and AWS::Serverless (http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/transform-aws-serverless.html)
20811	//    transforms, which are macros hosted by CloudFormation. If you want to
20812	//    update a stack from a stack template that contains macros and nested stacks,
20813	//    you must update the stack directly from the template using this capability.
20814	//    You should only update stacks directly from a stack template that contains
20815	//    macros if you know what processing the macro performs. Each macro relies
20816	//    on an underlying Lambda service function for processing stack templates.
20817	//    Be aware that the Lambda function owner can update the function operation
20818	//    without CloudFormation being notified. For more information, see Using
20819	//    CloudFormation Macros to Perform Custom Processing on Templates (http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/template-macros.html).
20820	Capabilities []*string `type:"list"`
20821
20822	// A unique identifier for this UpdateStack request. Specify this token if you
20823	// plan to retry requests so that CloudFormation knows that you're not attempting
20824	// to update a stack with the same name. You might retry UpdateStack requests
20825	// to ensure that CloudFormation successfully received them.
20826	//
20827	// All events triggered by a given stack operation are assigned the same client
20828	// request token, which you can use to track operations. For example, if you
20829	// execute a CreateStack operation with the token token1, then all the StackEvents
20830	// generated by that operation will have ClientRequestToken set as token1.
20831	//
20832	// In the console, stack operations display the client request token on the
20833	// Events tab. Stack operations that are initiated from the console use the
20834	// token format Console-StackOperation-ID, which helps you easily identify the
20835	// stack operation . For example, if you create a stack using the console, each
20836	// stack event would be assigned the same token in the following format: Console-CreateStack-7f59c3cf-00d2-40c7-b2ff-e75db0987002.
20837	ClientRequestToken *string `min:"1" type:"string"`
20838
20839	// Preserve the state of previously provisioned resources when an operation
20840	// fails.
20841	//
20842	// Default: False
20843	DisableRollback *bool `type:"boolean"`
20844
20845	// Amazon Simple Notification Service topic Amazon Resource Names (ARNs) that
20846	// CloudFormation associates with the stack. Specify an empty list to remove
20847	// all notification topics.
20848	NotificationARNs []*string `type:"list"`
20849
20850	// A list of Parameter structures that specify input parameters for the stack.
20851	// For more information, see the Parameter (https://docs.aws.amazon.com/AWSCloudFormation/latest/APIReference/API_Parameter.html)
20852	// data type.
20853	Parameters []*Parameter `type:"list"`
20854
20855	// The template resource types that you have permissions to work with for this
20856	// update stack action, such as AWS::EC2::Instance, AWS::EC2::*, or Custom::MyCustomInstance.
20857	//
20858	// If the list of resource types doesn't include a resource that you're updating,
20859	// the stack update fails. By default, CloudFormation grants permissions to
20860	// all resource types. Identity and Access Management (IAM) uses this parameter
20861	// for CloudFormation-specific condition keys in IAM policies. For more information,
20862	// see Controlling Access with Identity and Access Management (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-iam-template.html).
20863	ResourceTypes []*string `type:"list"`
20864
20865	// The Amazon Resource Name (ARN) of an Identity and Access Management (IAM)
20866	// role that CloudFormation assumes to update the stack. CloudFormation uses
20867	// the role's credentials to make calls on your behalf. CloudFormation always
20868	// uses this role for all future operations on the stack. As long as users have
20869	// permission to operate on the stack, CloudFormation uses this role even if
20870	// the users don't have permission to pass it. Ensure that the role grants least
20871	// privilege.
20872	//
20873	// If you don't specify a value, CloudFormation uses the role that was previously
20874	// associated with the stack. If no role is available, CloudFormation uses a
20875	// temporary session that is generated from your user credentials.
20876	RoleARN *string `min:"20" type:"string"`
20877
20878	// The rollback triggers for CloudFormation to monitor during stack creation
20879	// and updating operations, and for the specified monitoring period afterwards.
20880	RollbackConfiguration *RollbackConfiguration `type:"structure"`
20881
20882	// The name or unique stack ID of the stack to update.
20883	//
20884	// StackName is a required field
20885	StackName *string `type:"string" required:"true"`
20886
20887	// Structure containing a new stack policy body. You can specify either the
20888	// StackPolicyBody or the StackPolicyURL parameter, but not both.
20889	//
20890	// You might update the stack policy, for example, in order to protect a new
20891	// resource that you created during a stack update. If you do not specify a
20892	// stack policy, the current policy that is associated with the stack is unchanged.
20893	StackPolicyBody *string `min:"1" type:"string"`
20894
20895	// Structure containing the temporary overriding stack policy body. You can
20896	// specify either the StackPolicyDuringUpdateBody or the StackPolicyDuringUpdateURL
20897	// parameter, but not both.
20898	//
20899	// If you want to update protected resources, specify a temporary overriding
20900	// stack policy during this update. If you do not specify a stack policy, the
20901	// current policy that is associated with the stack will be used.
20902	StackPolicyDuringUpdateBody *string `min:"1" type:"string"`
20903
20904	// Location of a file containing the temporary overriding stack policy. The
20905	// URL must point to a policy (max size: 16KB) located in an S3 bucket in the
20906	// same Region as the stack. You can specify either the StackPolicyDuringUpdateBody
20907	// or the StackPolicyDuringUpdateURL parameter, but not both.
20908	//
20909	// If you want to update protected resources, specify a temporary overriding
20910	// stack policy during this update. If you do not specify a stack policy, the
20911	// current policy that is associated with the stack will be used.
20912	StackPolicyDuringUpdateURL *string `min:"1" type:"string"`
20913
20914	// Location of a file containing the updated stack policy. The URL must point
20915	// to a policy (max size: 16KB) located in an S3 bucket in the same Region as
20916	// the stack. You can specify either the StackPolicyBody or the StackPolicyURL
20917	// parameter, but not both.
20918	//
20919	// You might update the stack policy, for example, in order to protect a new
20920	// resource that you created during a stack update. If you do not specify a
20921	// stack policy, the current policy that is associated with the stack is unchanged.
20922	StackPolicyURL *string `min:"1" type:"string"`
20923
20924	// Key-value pairs to associate with this stack. CloudFormation also propagates
20925	// these tags to supported resources in the stack. You can specify a maximum
20926	// number of 50 tags.
20927	//
20928	// If you don't specify this parameter, CloudFormation doesn't modify the stack's
20929	// tags. If you specify an empty value, CloudFormation removes all associated
20930	// tags.
20931	Tags []*Tag `type:"list"`
20932
20933	// Structure containing the template body with a minimum length of 1 byte and
20934	// a maximum length of 51,200 bytes. (For more information, go to Template Anatomy
20935	// (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/template-anatomy.html)
20936	// in the CloudFormation User Guide.)
20937	//
20938	// Conditional: You must specify only one of the following parameters: TemplateBody,
20939	// TemplateURL, or set the UsePreviousTemplate to true.
20940	TemplateBody *string `min:"1" type:"string"`
20941
20942	// Location of file containing the template body. The URL must point to a template
20943	// that is located in an Amazon S3 bucket or a Systems Manager document. For
20944	// more information, go to Template Anatomy (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/template-anatomy.html)
20945	// in the CloudFormation User Guide.
20946	//
20947	// Conditional: You must specify only one of the following parameters: TemplateBody,
20948	// TemplateURL, or set the UsePreviousTemplate to true.
20949	TemplateURL *string `min:"1" type:"string"`
20950
20951	// Reuse the existing template that is associated with the stack that you are
20952	// updating.
20953	//
20954	// Conditional: You must specify only one of the following parameters: TemplateBody,
20955	// TemplateURL, or set the UsePreviousTemplate to true.
20956	UsePreviousTemplate *bool `type:"boolean"`
20957}
20958
20959// String returns the string representation.
20960//
20961// API parameter values that are decorated as "sensitive" in the API will not
20962// be included in the string output. The member name will be present, but the
20963// value will be replaced with "sensitive".
20964func (s UpdateStackInput) String() string {
20965	return awsutil.Prettify(s)
20966}
20967
20968// GoString returns the string representation.
20969//
20970// API parameter values that are decorated as "sensitive" in the API will not
20971// be included in the string output. The member name will be present, but the
20972// value will be replaced with "sensitive".
20973func (s UpdateStackInput) GoString() string {
20974	return s.String()
20975}
20976
20977// Validate inspects the fields of the type to determine if they are valid.
20978func (s *UpdateStackInput) Validate() error {
20979	invalidParams := request.ErrInvalidParams{Context: "UpdateStackInput"}
20980	if s.ClientRequestToken != nil && len(*s.ClientRequestToken) < 1 {
20981		invalidParams.Add(request.NewErrParamMinLen("ClientRequestToken", 1))
20982	}
20983	if s.RoleARN != nil && len(*s.RoleARN) < 20 {
20984		invalidParams.Add(request.NewErrParamMinLen("RoleARN", 20))
20985	}
20986	if s.StackName == nil {
20987		invalidParams.Add(request.NewErrParamRequired("StackName"))
20988	}
20989	if s.StackPolicyBody != nil && len(*s.StackPolicyBody) < 1 {
20990		invalidParams.Add(request.NewErrParamMinLen("StackPolicyBody", 1))
20991	}
20992	if s.StackPolicyDuringUpdateBody != nil && len(*s.StackPolicyDuringUpdateBody) < 1 {
20993		invalidParams.Add(request.NewErrParamMinLen("StackPolicyDuringUpdateBody", 1))
20994	}
20995	if s.StackPolicyDuringUpdateURL != nil && len(*s.StackPolicyDuringUpdateURL) < 1 {
20996		invalidParams.Add(request.NewErrParamMinLen("StackPolicyDuringUpdateURL", 1))
20997	}
20998	if s.StackPolicyURL != nil && len(*s.StackPolicyURL) < 1 {
20999		invalidParams.Add(request.NewErrParamMinLen("StackPolicyURL", 1))
21000	}
21001	if s.TemplateBody != nil && len(*s.TemplateBody) < 1 {
21002		invalidParams.Add(request.NewErrParamMinLen("TemplateBody", 1))
21003	}
21004	if s.TemplateURL != nil && len(*s.TemplateURL) < 1 {
21005		invalidParams.Add(request.NewErrParamMinLen("TemplateURL", 1))
21006	}
21007	if s.RollbackConfiguration != nil {
21008		if err := s.RollbackConfiguration.Validate(); err != nil {
21009			invalidParams.AddNested("RollbackConfiguration", err.(request.ErrInvalidParams))
21010		}
21011	}
21012	if s.Tags != nil {
21013		for i, v := range s.Tags {
21014			if v == nil {
21015				continue
21016			}
21017			if err := v.Validate(); err != nil {
21018				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Tags", i), err.(request.ErrInvalidParams))
21019			}
21020		}
21021	}
21022
21023	if invalidParams.Len() > 0 {
21024		return invalidParams
21025	}
21026	return nil
21027}
21028
21029// SetCapabilities sets the Capabilities field's value.
21030func (s *UpdateStackInput) SetCapabilities(v []*string) *UpdateStackInput {
21031	s.Capabilities = v
21032	return s
21033}
21034
21035// SetClientRequestToken sets the ClientRequestToken field's value.
21036func (s *UpdateStackInput) SetClientRequestToken(v string) *UpdateStackInput {
21037	s.ClientRequestToken = &v
21038	return s
21039}
21040
21041// SetDisableRollback sets the DisableRollback field's value.
21042func (s *UpdateStackInput) SetDisableRollback(v bool) *UpdateStackInput {
21043	s.DisableRollback = &v
21044	return s
21045}
21046
21047// SetNotificationARNs sets the NotificationARNs field's value.
21048func (s *UpdateStackInput) SetNotificationARNs(v []*string) *UpdateStackInput {
21049	s.NotificationARNs = v
21050	return s
21051}
21052
21053// SetParameters sets the Parameters field's value.
21054func (s *UpdateStackInput) SetParameters(v []*Parameter) *UpdateStackInput {
21055	s.Parameters = v
21056	return s
21057}
21058
21059// SetResourceTypes sets the ResourceTypes field's value.
21060func (s *UpdateStackInput) SetResourceTypes(v []*string) *UpdateStackInput {
21061	s.ResourceTypes = v
21062	return s
21063}
21064
21065// SetRoleARN sets the RoleARN field's value.
21066func (s *UpdateStackInput) SetRoleARN(v string) *UpdateStackInput {
21067	s.RoleARN = &v
21068	return s
21069}
21070
21071// SetRollbackConfiguration sets the RollbackConfiguration field's value.
21072func (s *UpdateStackInput) SetRollbackConfiguration(v *RollbackConfiguration) *UpdateStackInput {
21073	s.RollbackConfiguration = v
21074	return s
21075}
21076
21077// SetStackName sets the StackName field's value.
21078func (s *UpdateStackInput) SetStackName(v string) *UpdateStackInput {
21079	s.StackName = &v
21080	return s
21081}
21082
21083// SetStackPolicyBody sets the StackPolicyBody field's value.
21084func (s *UpdateStackInput) SetStackPolicyBody(v string) *UpdateStackInput {
21085	s.StackPolicyBody = &v
21086	return s
21087}
21088
21089// SetStackPolicyDuringUpdateBody sets the StackPolicyDuringUpdateBody field's value.
21090func (s *UpdateStackInput) SetStackPolicyDuringUpdateBody(v string) *UpdateStackInput {
21091	s.StackPolicyDuringUpdateBody = &v
21092	return s
21093}
21094
21095// SetStackPolicyDuringUpdateURL sets the StackPolicyDuringUpdateURL field's value.
21096func (s *UpdateStackInput) SetStackPolicyDuringUpdateURL(v string) *UpdateStackInput {
21097	s.StackPolicyDuringUpdateURL = &v
21098	return s
21099}
21100
21101// SetStackPolicyURL sets the StackPolicyURL field's value.
21102func (s *UpdateStackInput) SetStackPolicyURL(v string) *UpdateStackInput {
21103	s.StackPolicyURL = &v
21104	return s
21105}
21106
21107// SetTags sets the Tags field's value.
21108func (s *UpdateStackInput) SetTags(v []*Tag) *UpdateStackInput {
21109	s.Tags = v
21110	return s
21111}
21112
21113// SetTemplateBody sets the TemplateBody field's value.
21114func (s *UpdateStackInput) SetTemplateBody(v string) *UpdateStackInput {
21115	s.TemplateBody = &v
21116	return s
21117}
21118
21119// SetTemplateURL sets the TemplateURL field's value.
21120func (s *UpdateStackInput) SetTemplateURL(v string) *UpdateStackInput {
21121	s.TemplateURL = &v
21122	return s
21123}
21124
21125// SetUsePreviousTemplate sets the UsePreviousTemplate field's value.
21126func (s *UpdateStackInput) SetUsePreviousTemplate(v bool) *UpdateStackInput {
21127	s.UsePreviousTemplate = &v
21128	return s
21129}
21130
21131type UpdateStackInstancesInput struct {
21132	_ struct{} `type:"structure"`
21133
21134	// [Self-managed permissions] The names of one or more Amazon Web Services accounts
21135	// for which you want to update parameter values for stack instances. The overridden
21136	// parameter values will be applied to all stack instances in the specified
21137	// accounts and Regions.
21138	//
21139	// You can specify Accounts or DeploymentTargets, but not both.
21140	Accounts []*string `type:"list"`
21141
21142	// [Service-managed permissions] Specifies whether you are acting as an account
21143	// administrator in the organization's management account or as a delegated
21144	// administrator in a member account.
21145	//
21146	// By default, SELF is specified. Use SELF for stack sets with self-managed
21147	// permissions.
21148	//
21149	//    * If you are signed in to the management account, specify SELF.
21150	//
21151	//    * If you are signed in to a delegated administrator account, specify DELEGATED_ADMIN.
21152	//    Your Amazon Web Services account must be registered as a delegated administrator
21153	//    in the management account. For more information, see Register a delegated
21154	//    administrator (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/stacksets-orgs-delegated-admin.html)
21155	//    in the CloudFormation User Guide.
21156	CallAs *string `type:"string" enum:"CallAs"`
21157
21158	// [Service-managed permissions] The Organizations accounts for which you want
21159	// to update parameter values for stack instances. If your update targets OUs,
21160	// the overridden parameter values only apply to the accounts that are currently
21161	// in the target OUs and their child OUs. Accounts added to the target OUs and
21162	// their child OUs in the future won't use the overridden values.
21163	//
21164	// You can specify Accounts or DeploymentTargets, but not both.
21165	DeploymentTargets *DeploymentTargets `type:"structure"`
21166
21167	// The unique identifier for this stack set operation.
21168	//
21169	// The operation ID also functions as an idempotency token, to ensure that CloudFormation
21170	// performs the stack set operation only once, even if you retry the request
21171	// multiple times. You might retry stack set operation requests to ensure that
21172	// CloudFormation successfully received them.
21173	//
21174	// If you don't specify an operation ID, the SDK generates one automatically.
21175	OperationId *string `min:"1" type:"string" idempotencyToken:"true"`
21176
21177	// Preferences for how CloudFormation performs this stack set operation.
21178	OperationPreferences *StackSetOperationPreferences `type:"structure"`
21179
21180	// A list of input parameters whose values you want to update for the specified
21181	// stack instances.
21182	//
21183	// Any overridden parameter values will be applied to all stack instances in
21184	// the specified accounts and Regions. When specifying parameters and their
21185	// values, be aware of how CloudFormation sets parameter values during stack
21186	// instance update operations:
21187	//
21188	//    * To override the current value for a parameter, include the parameter
21189	//    and specify its value.
21190	//
21191	//    * To leave an overridden parameter set to its present value, include the
21192	//    parameter and specify UsePreviousValue as true. (You cannot specify both
21193	//    a value and set UsePreviousValue to true.)
21194	//
21195	//    * To set an overridden parameter back to the value specified in the stack
21196	//    set, specify a parameter list but do not include the parameter in the
21197	//    list.
21198	//
21199	//    * To leave all parameters set to their present values, do not specify
21200	//    this property at all.
21201	//
21202	// During stack set updates, any parameter values overridden for a stack instance
21203	// are not updated, but retain their overridden value.
21204	//
21205	// You can only override the parameter values that are specified in the stack
21206	// set; to add or delete a parameter itself, use UpdateStackSet to update the
21207	// stack set template. If you add a parameter to a template, before you can
21208	// override the parameter value specified in the stack set you must first use
21209	// UpdateStackSet (https://docs.aws.amazon.com/AWSCloudFormation/latest/APIReference/API_UpdateStackSet.html)
21210	// to update all stack instances with the updated template and parameter value
21211	// specified in the stack set. Once a stack instance has been updated with the
21212	// new parameter, you can then override the parameter value using UpdateStackInstances.
21213	ParameterOverrides []*Parameter `type:"list"`
21214
21215	// The names of one or more Regions in which you want to update parameter values
21216	// for stack instances. The overridden parameter values will be applied to all
21217	// stack instances in the specified accounts and Regions.
21218	//
21219	// Regions is a required field
21220	Regions []*string `type:"list" required:"true"`
21221
21222	// The name or unique ID of the stack set associated with the stack instances.
21223	//
21224	// StackSetName is a required field
21225	StackSetName *string `type:"string" required:"true"`
21226}
21227
21228// String returns the string representation.
21229//
21230// API parameter values that are decorated as "sensitive" in the API will not
21231// be included in the string output. The member name will be present, but the
21232// value will be replaced with "sensitive".
21233func (s UpdateStackInstancesInput) String() string {
21234	return awsutil.Prettify(s)
21235}
21236
21237// GoString returns the string representation.
21238//
21239// API parameter values that are decorated as "sensitive" in the API will not
21240// be included in the string output. The member name will be present, but the
21241// value will be replaced with "sensitive".
21242func (s UpdateStackInstancesInput) GoString() string {
21243	return s.String()
21244}
21245
21246// Validate inspects the fields of the type to determine if they are valid.
21247func (s *UpdateStackInstancesInput) Validate() error {
21248	invalidParams := request.ErrInvalidParams{Context: "UpdateStackInstancesInput"}
21249	if s.OperationId != nil && len(*s.OperationId) < 1 {
21250		invalidParams.Add(request.NewErrParamMinLen("OperationId", 1))
21251	}
21252	if s.Regions == nil {
21253		invalidParams.Add(request.NewErrParamRequired("Regions"))
21254	}
21255	if s.StackSetName == nil {
21256		invalidParams.Add(request.NewErrParamRequired("StackSetName"))
21257	}
21258	if s.DeploymentTargets != nil {
21259		if err := s.DeploymentTargets.Validate(); err != nil {
21260			invalidParams.AddNested("DeploymentTargets", err.(request.ErrInvalidParams))
21261		}
21262	}
21263	if s.OperationPreferences != nil {
21264		if err := s.OperationPreferences.Validate(); err != nil {
21265			invalidParams.AddNested("OperationPreferences", err.(request.ErrInvalidParams))
21266		}
21267	}
21268
21269	if invalidParams.Len() > 0 {
21270		return invalidParams
21271	}
21272	return nil
21273}
21274
21275// SetAccounts sets the Accounts field's value.
21276func (s *UpdateStackInstancesInput) SetAccounts(v []*string) *UpdateStackInstancesInput {
21277	s.Accounts = v
21278	return s
21279}
21280
21281// SetCallAs sets the CallAs field's value.
21282func (s *UpdateStackInstancesInput) SetCallAs(v string) *UpdateStackInstancesInput {
21283	s.CallAs = &v
21284	return s
21285}
21286
21287// SetDeploymentTargets sets the DeploymentTargets field's value.
21288func (s *UpdateStackInstancesInput) SetDeploymentTargets(v *DeploymentTargets) *UpdateStackInstancesInput {
21289	s.DeploymentTargets = v
21290	return s
21291}
21292
21293// SetOperationId sets the OperationId field's value.
21294func (s *UpdateStackInstancesInput) SetOperationId(v string) *UpdateStackInstancesInput {
21295	s.OperationId = &v
21296	return s
21297}
21298
21299// SetOperationPreferences sets the OperationPreferences field's value.
21300func (s *UpdateStackInstancesInput) SetOperationPreferences(v *StackSetOperationPreferences) *UpdateStackInstancesInput {
21301	s.OperationPreferences = v
21302	return s
21303}
21304
21305// SetParameterOverrides sets the ParameterOverrides field's value.
21306func (s *UpdateStackInstancesInput) SetParameterOverrides(v []*Parameter) *UpdateStackInstancesInput {
21307	s.ParameterOverrides = v
21308	return s
21309}
21310
21311// SetRegions sets the Regions field's value.
21312func (s *UpdateStackInstancesInput) SetRegions(v []*string) *UpdateStackInstancesInput {
21313	s.Regions = v
21314	return s
21315}
21316
21317// SetStackSetName sets the StackSetName field's value.
21318func (s *UpdateStackInstancesInput) SetStackSetName(v string) *UpdateStackInstancesInput {
21319	s.StackSetName = &v
21320	return s
21321}
21322
21323type UpdateStackInstancesOutput struct {
21324	_ struct{} `type:"structure"`
21325
21326	// The unique identifier for this stack set operation.
21327	OperationId *string `min:"1" type:"string"`
21328}
21329
21330// String returns the string representation.
21331//
21332// API parameter values that are decorated as "sensitive" in the API will not
21333// be included in the string output. The member name will be present, but the
21334// value will be replaced with "sensitive".
21335func (s UpdateStackInstancesOutput) String() string {
21336	return awsutil.Prettify(s)
21337}
21338
21339// GoString returns the string representation.
21340//
21341// API parameter values that are decorated as "sensitive" in the API will not
21342// be included in the string output. The member name will be present, but the
21343// value will be replaced with "sensitive".
21344func (s UpdateStackInstancesOutput) GoString() string {
21345	return s.String()
21346}
21347
21348// SetOperationId sets the OperationId field's value.
21349func (s *UpdateStackInstancesOutput) SetOperationId(v string) *UpdateStackInstancesOutput {
21350	s.OperationId = &v
21351	return s
21352}
21353
21354// The output for an UpdateStack action.
21355type UpdateStackOutput struct {
21356	_ struct{} `type:"structure"`
21357
21358	// Unique identifier of the stack.
21359	StackId *string `type:"string"`
21360}
21361
21362// String returns the string representation.
21363//
21364// API parameter values that are decorated as "sensitive" in the API will not
21365// be included in the string output. The member name will be present, but the
21366// value will be replaced with "sensitive".
21367func (s UpdateStackOutput) String() string {
21368	return awsutil.Prettify(s)
21369}
21370
21371// GoString returns the string representation.
21372//
21373// API parameter values that are decorated as "sensitive" in the API will not
21374// be included in the string output. The member name will be present, but the
21375// value will be replaced with "sensitive".
21376func (s UpdateStackOutput) GoString() string {
21377	return s.String()
21378}
21379
21380// SetStackId sets the StackId field's value.
21381func (s *UpdateStackOutput) SetStackId(v string) *UpdateStackOutput {
21382	s.StackId = &v
21383	return s
21384}
21385
21386type UpdateStackSetInput struct {
21387	_ struct{} `type:"structure"`
21388
21389	// [Self-managed permissions] The accounts in which to update associated stack
21390	// instances. If you specify accounts, you must also specify the Regions in
21391	// which to update stack set instances.
21392	//
21393	// To update all the stack instances associated with this stack set, do not
21394	// specify the Accounts or Regions properties.
21395	//
21396	// If the stack set update includes changes to the template (that is, if the
21397	// TemplateBody or TemplateURL properties are specified), or the Parameters
21398	// property, CloudFormation marks all stack instances with a status of OUTDATED
21399	// prior to updating the stack instances in the specified accounts and Regions.
21400	// If the stack set update does not include changes to the template or parameters,
21401	// CloudFormation updates the stack instances in the specified accounts and
21402	// Regions, while leaving all other stack instances with their existing stack
21403	// instance status.
21404	Accounts []*string `type:"list"`
21405
21406	// The Amazon Resource Number (ARN) of the IAM role to use to update this stack
21407	// set.
21408	//
21409	// Specify an IAM role only if you are using customized administrator roles
21410	// to control which users or groups can manage specific stack sets within the
21411	// same administrator account. For more information, see Granting Permissions
21412	// for Stack Set Operations (http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/stacksets-prereqs.html)
21413	// in the CloudFormation User Guide.
21414	//
21415	// If you specified a customized administrator role when you created the stack
21416	// set, you must specify a customized administrator role, even if it is the
21417	// same customized administrator role used with this stack set previously.
21418	AdministrationRoleARN *string `min:"20" type:"string"`
21419
21420	// [Service-managed permissions] Describes whether StackSets automatically deploys
21421	// to Organizations accounts that are added to a target organization or organizational
21422	// unit (OU).
21423	//
21424	// If you specify AutoDeployment, do not specify DeploymentTargets or Regions.
21425	AutoDeployment *AutoDeployment `type:"structure"`
21426
21427	// [Service-managed permissions] Specifies whether you are acting as an account
21428	// administrator in the organization's management account or as a delegated
21429	// administrator in a member account.
21430	//
21431	// By default, SELF is specified. Use SELF for stack sets with self-managed
21432	// permissions.
21433	//
21434	//    * If you are signed in to the management account, specify SELF.
21435	//
21436	//    * If you are signed in to a delegated administrator account, specify DELEGATED_ADMIN.
21437	//    Your Amazon Web Services account must be registered as a delegated administrator
21438	//    in the management account. For more information, see Register a delegated
21439	//    administrator (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/stacksets-orgs-delegated-admin.html)
21440	//    in the CloudFormation User Guide.
21441	CallAs *string `type:"string" enum:"CallAs"`
21442
21443	// In some cases, you must explicitly acknowledge that your stack template contains
21444	// certain capabilities in order for CloudFormation to update the stack set
21445	// and its associated stack instances.
21446	//
21447	//    * CAPABILITY_IAM and CAPABILITY_NAMED_IAM Some stack templates might include
21448	//    resources that can affect permissions in your Amazon Web Services account;
21449	//    for example, by creating new Identity and Access Management (IAM) users.
21450	//    For those stacks sets, you must explicitly acknowledge this by specifying
21451	//    one of these capabilities. The following IAM resources require you to
21452	//    specify either the CAPABILITY_IAM or CAPABILITY_NAMED_IAM capability.
21453	//    If you have IAM resources, you can specify either capability. If you have
21454	//    IAM resources with custom names, you must specify CAPABILITY_NAMED_IAM.
21455	//    If you don't specify either of these capabilities, CloudFormation returns
21456	//    an InsufficientCapabilities error. If your stack template contains these
21457	//    resources, we recommend that you review all permissions associated with
21458	//    them and edit their permissions if necessary. AWS::IAM::AccessKey (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iam-accesskey.html)
21459	//    AWS::IAM::Group (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iam-group.html)
21460	//    AWS::IAM::InstanceProfile (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iam-instanceprofile.html)
21461	//    AWS::IAM::Policy (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iam-policy.html)
21462	//    AWS::IAM::Role (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iam-role.html)
21463	//    AWS::IAM::User (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iam-user.html)
21464	//    AWS::IAM::UserToGroupAddition (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iam-addusertogroup.html)
21465	//    For more information, see Acknowledging IAM Resources in CloudFormation
21466	//    Templates (http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-iam-template.html#capabilities).
21467	//
21468	//    * CAPABILITY_AUTO_EXPAND Some templates reference macros. If your stack
21469	//    set template references one or more macros, you must update the stack
21470	//    set directly from the processed template, without first reviewing the
21471	//    resulting changes in a change set. To update the stack set directly, you
21472	//    must acknowledge this capability. For more information, see Using CloudFormation
21473	//    Macros to Perform Custom Processing on Templates (http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/template-macros.html).
21474	//    Stack sets with service-managed permissions do not currently support the
21475	//    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)
21476	//    and AWS::Serverless (http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/transform-aws-serverless.html)
21477	//    transforms, which are macros hosted by CloudFormation.) Even if you specify
21478	//    this capability for a stack set with service-managed permissions, if you
21479	//    reference a macro in your template the stack set operation will fail.
21480	Capabilities []*string `type:"list"`
21481
21482	// [Service-managed permissions] The Organizations accounts in which to update
21483	// associated stack instances.
21484	//
21485	// To update all the stack instances associated with this stack set, do not
21486	// specify DeploymentTargets or Regions.
21487	//
21488	// If the stack set update includes changes to the template (that is, if TemplateBody
21489	// or TemplateURL is specified), or the Parameters, CloudFormation marks all
21490	// stack instances with a status of OUTDATED prior to updating the stack instances
21491	// in the specified accounts and Regions. If the stack set update does not include
21492	// changes to the template or parameters, CloudFormation updates the stack instances
21493	// in the specified accounts and Regions, while leaving all other stack instances
21494	// with their existing stack instance status.
21495	DeploymentTargets *DeploymentTargets `type:"structure"`
21496
21497	// A brief description of updates that you are making.
21498	Description *string `min:"1" type:"string"`
21499
21500	// The name of the IAM execution role to use to update the stack set. If you
21501	// do not specify an execution role, CloudFormation uses the AWSCloudFormationStackSetExecutionRole
21502	// role for the stack set operation.
21503	//
21504	// Specify an IAM role only if you are using customized execution roles to control
21505	// which stack resources users and groups can include in their stack sets.
21506	//
21507	// If you specify a customized execution role, CloudFormation uses that role
21508	// to update the stack. If you do not specify a customized execution role, CloudFormation
21509	// performs the update using the role previously associated with the stack set,
21510	// so long as you have permissions to perform operations on the stack set.
21511	ExecutionRoleName *string `min:"1" type:"string"`
21512
21513	// The unique ID for this stack set operation.
21514	//
21515	// The operation ID also functions as an idempotency token, to ensure that CloudFormation
21516	// performs the stack set operation only once, even if you retry the request
21517	// multiple times. You might retry stack set operation requests to ensure that
21518	// CloudFormation successfully received them.
21519	//
21520	// If you don't specify an operation ID, CloudFormation generates one automatically.
21521	//
21522	// Repeating this stack set operation with a new operation ID retries all stack
21523	// instances whose status is OUTDATED.
21524	OperationId *string `min:"1" type:"string" idempotencyToken:"true"`
21525
21526	// Preferences for how CloudFormation performs this stack set operation.
21527	OperationPreferences *StackSetOperationPreferences `type:"structure"`
21528
21529	// A list of input parameters for the stack set template.
21530	Parameters []*Parameter `type:"list"`
21531
21532	// Describes how the IAM roles required for stack set operations are created.
21533	// You cannot modify PermissionModel if there are stack instances associated
21534	// with your stack set.
21535	//
21536	//    * With self-managed permissions, you must create the administrator and
21537	//    execution roles required to deploy to target accounts. For more information,
21538	//    see Grant Self-Managed Stack Set Permissions (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/stacksets-prereqs-self-managed.html).
21539	//
21540	//    * With service-managed permissions, StackSets automatically creates the
21541	//    IAM roles required to deploy to accounts managed by Organizations. For
21542	//    more information, see Grant Service-Managed Stack Set Permissions (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/stacksets-prereqs-service-managed.html).
21543	PermissionModel *string `type:"string" enum:"PermissionModels"`
21544
21545	// The Regions in which to update associated stack instances. If you specify
21546	// Regions, you must also specify accounts in which to update stack set instances.
21547	//
21548	// To update all the stack instances associated with this stack set, do not
21549	// specify the Accounts or Regions properties.
21550	//
21551	// If the stack set update includes changes to the template (that is, if the
21552	// TemplateBody or TemplateURL properties are specified), or the Parameters
21553	// property, CloudFormation marks all stack instances with a status of OUTDATED
21554	// prior to updating the stack instances in the specified accounts and Regions.
21555	// If the stack set update does not include changes to the template or parameters,
21556	// CloudFormation updates the stack instances in the specified accounts and
21557	// Regions, while leaving all other stack instances with their existing stack
21558	// instance status.
21559	Regions []*string `type:"list"`
21560
21561	// The name or unique ID of the stack set that you want to update.
21562	//
21563	// StackSetName is a required field
21564	StackSetName *string `type:"string" required:"true"`
21565
21566	// The key-value pairs to associate with this stack set and the stacks created
21567	// from it. CloudFormation also propagates these tags to supported resources
21568	// that are created in the stacks. You can specify a maximum number of 50 tags.
21569	//
21570	// If you specify tags for this parameter, those tags replace any list of tags
21571	// that are currently associated with this stack set. This means:
21572	//
21573	//    * If you don't specify this parameter, CloudFormation doesn't modify the
21574	//    stack's tags.
21575	//
21576	//    * If you specify any tags using this parameter, you must specify all the
21577	//    tags that you want associated with this stack set, even tags you've specifed
21578	//    before (for example, when creating the stack set or during a previous
21579	//    update of the stack set.). Any tags that you don't include in the updated
21580	//    list of tags are removed from the stack set, and therefore from the stacks
21581	//    and resources as well.
21582	//
21583	//    * If you specify an empty value, CloudFormation removes all currently
21584	//    associated tags.
21585	//
21586	// If you specify new tags as part of an UpdateStackSet action, CloudFormation
21587	// checks to see if you have the required IAM permission to tag resources. If
21588	// you omit tags that are currently associated with the stack set from the list
21589	// of tags you specify, CloudFormation assumes that you want to remove those
21590	// tags from the stack set, and checks to see if you have permission to untag
21591	// resources. If you don't have the necessary permission(s), the entire UpdateStackSet
21592	// action fails with an access denied error, and the stack set is not updated.
21593	Tags []*Tag `type:"list"`
21594
21595	// The structure that contains the template body, with a minimum length of 1
21596	// byte and a maximum length of 51,200 bytes. For more information, see Template
21597	// Anatomy (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/template-anatomy.html)
21598	// in the CloudFormation User Guide.
21599	//
21600	// Conditional: You must specify only one of the following parameters: TemplateBody
21601	// or TemplateURL—or set UsePreviousTemplate to true.
21602	TemplateBody *string `min:"1" type:"string"`
21603
21604	// The location of the file that contains the template body. The URL must point
21605	// to a template (maximum size: 460,800 bytes) that is located in an Amazon
21606	// S3 bucket or a Systems Manager document. For more information, see Template
21607	// Anatomy (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/template-anatomy.html)
21608	// in the CloudFormation User Guide.
21609	//
21610	// Conditional: You must specify only one of the following parameters: TemplateBody
21611	// or TemplateURL—or set UsePreviousTemplate to true.
21612	TemplateURL *string `min:"1" type:"string"`
21613
21614	// Use the existing template that's associated with the stack set that you're
21615	// updating.
21616	//
21617	// Conditional: You must specify only one of the following parameters: TemplateBody
21618	// or TemplateURL—or set UsePreviousTemplate to true.
21619	UsePreviousTemplate *bool `type:"boolean"`
21620}
21621
21622// String returns the string representation.
21623//
21624// API parameter values that are decorated as "sensitive" in the API will not
21625// be included in the string output. The member name will be present, but the
21626// value will be replaced with "sensitive".
21627func (s UpdateStackSetInput) String() string {
21628	return awsutil.Prettify(s)
21629}
21630
21631// GoString returns the string representation.
21632//
21633// API parameter values that are decorated as "sensitive" in the API will not
21634// be included in the string output. The member name will be present, but the
21635// value will be replaced with "sensitive".
21636func (s UpdateStackSetInput) GoString() string {
21637	return s.String()
21638}
21639
21640// Validate inspects the fields of the type to determine if they are valid.
21641func (s *UpdateStackSetInput) Validate() error {
21642	invalidParams := request.ErrInvalidParams{Context: "UpdateStackSetInput"}
21643	if s.AdministrationRoleARN != nil && len(*s.AdministrationRoleARN) < 20 {
21644		invalidParams.Add(request.NewErrParamMinLen("AdministrationRoleARN", 20))
21645	}
21646	if s.Description != nil && len(*s.Description) < 1 {
21647		invalidParams.Add(request.NewErrParamMinLen("Description", 1))
21648	}
21649	if s.ExecutionRoleName != nil && len(*s.ExecutionRoleName) < 1 {
21650		invalidParams.Add(request.NewErrParamMinLen("ExecutionRoleName", 1))
21651	}
21652	if s.OperationId != nil && len(*s.OperationId) < 1 {
21653		invalidParams.Add(request.NewErrParamMinLen("OperationId", 1))
21654	}
21655	if s.StackSetName == nil {
21656		invalidParams.Add(request.NewErrParamRequired("StackSetName"))
21657	}
21658	if s.TemplateBody != nil && len(*s.TemplateBody) < 1 {
21659		invalidParams.Add(request.NewErrParamMinLen("TemplateBody", 1))
21660	}
21661	if s.TemplateURL != nil && len(*s.TemplateURL) < 1 {
21662		invalidParams.Add(request.NewErrParamMinLen("TemplateURL", 1))
21663	}
21664	if s.DeploymentTargets != nil {
21665		if err := s.DeploymentTargets.Validate(); err != nil {
21666			invalidParams.AddNested("DeploymentTargets", err.(request.ErrInvalidParams))
21667		}
21668	}
21669	if s.OperationPreferences != nil {
21670		if err := s.OperationPreferences.Validate(); err != nil {
21671			invalidParams.AddNested("OperationPreferences", err.(request.ErrInvalidParams))
21672		}
21673	}
21674	if s.Tags != nil {
21675		for i, v := range s.Tags {
21676			if v == nil {
21677				continue
21678			}
21679			if err := v.Validate(); err != nil {
21680				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Tags", i), err.(request.ErrInvalidParams))
21681			}
21682		}
21683	}
21684
21685	if invalidParams.Len() > 0 {
21686		return invalidParams
21687	}
21688	return nil
21689}
21690
21691// SetAccounts sets the Accounts field's value.
21692func (s *UpdateStackSetInput) SetAccounts(v []*string) *UpdateStackSetInput {
21693	s.Accounts = v
21694	return s
21695}
21696
21697// SetAdministrationRoleARN sets the AdministrationRoleARN field's value.
21698func (s *UpdateStackSetInput) SetAdministrationRoleARN(v string) *UpdateStackSetInput {
21699	s.AdministrationRoleARN = &v
21700	return s
21701}
21702
21703// SetAutoDeployment sets the AutoDeployment field's value.
21704func (s *UpdateStackSetInput) SetAutoDeployment(v *AutoDeployment) *UpdateStackSetInput {
21705	s.AutoDeployment = v
21706	return s
21707}
21708
21709// SetCallAs sets the CallAs field's value.
21710func (s *UpdateStackSetInput) SetCallAs(v string) *UpdateStackSetInput {
21711	s.CallAs = &v
21712	return s
21713}
21714
21715// SetCapabilities sets the Capabilities field's value.
21716func (s *UpdateStackSetInput) SetCapabilities(v []*string) *UpdateStackSetInput {
21717	s.Capabilities = v
21718	return s
21719}
21720
21721// SetDeploymentTargets sets the DeploymentTargets field's value.
21722func (s *UpdateStackSetInput) SetDeploymentTargets(v *DeploymentTargets) *UpdateStackSetInput {
21723	s.DeploymentTargets = v
21724	return s
21725}
21726
21727// SetDescription sets the Description field's value.
21728func (s *UpdateStackSetInput) SetDescription(v string) *UpdateStackSetInput {
21729	s.Description = &v
21730	return s
21731}
21732
21733// SetExecutionRoleName sets the ExecutionRoleName field's value.
21734func (s *UpdateStackSetInput) SetExecutionRoleName(v string) *UpdateStackSetInput {
21735	s.ExecutionRoleName = &v
21736	return s
21737}
21738
21739// SetOperationId sets the OperationId field's value.
21740func (s *UpdateStackSetInput) SetOperationId(v string) *UpdateStackSetInput {
21741	s.OperationId = &v
21742	return s
21743}
21744
21745// SetOperationPreferences sets the OperationPreferences field's value.
21746func (s *UpdateStackSetInput) SetOperationPreferences(v *StackSetOperationPreferences) *UpdateStackSetInput {
21747	s.OperationPreferences = v
21748	return s
21749}
21750
21751// SetParameters sets the Parameters field's value.
21752func (s *UpdateStackSetInput) SetParameters(v []*Parameter) *UpdateStackSetInput {
21753	s.Parameters = v
21754	return s
21755}
21756
21757// SetPermissionModel sets the PermissionModel field's value.
21758func (s *UpdateStackSetInput) SetPermissionModel(v string) *UpdateStackSetInput {
21759	s.PermissionModel = &v
21760	return s
21761}
21762
21763// SetRegions sets the Regions field's value.
21764func (s *UpdateStackSetInput) SetRegions(v []*string) *UpdateStackSetInput {
21765	s.Regions = v
21766	return s
21767}
21768
21769// SetStackSetName sets the StackSetName field's value.
21770func (s *UpdateStackSetInput) SetStackSetName(v string) *UpdateStackSetInput {
21771	s.StackSetName = &v
21772	return s
21773}
21774
21775// SetTags sets the Tags field's value.
21776func (s *UpdateStackSetInput) SetTags(v []*Tag) *UpdateStackSetInput {
21777	s.Tags = v
21778	return s
21779}
21780
21781// SetTemplateBody sets the TemplateBody field's value.
21782func (s *UpdateStackSetInput) SetTemplateBody(v string) *UpdateStackSetInput {
21783	s.TemplateBody = &v
21784	return s
21785}
21786
21787// SetTemplateURL sets the TemplateURL field's value.
21788func (s *UpdateStackSetInput) SetTemplateURL(v string) *UpdateStackSetInput {
21789	s.TemplateURL = &v
21790	return s
21791}
21792
21793// SetUsePreviousTemplate sets the UsePreviousTemplate field's value.
21794func (s *UpdateStackSetInput) SetUsePreviousTemplate(v bool) *UpdateStackSetInput {
21795	s.UsePreviousTemplate = &v
21796	return s
21797}
21798
21799type UpdateStackSetOutput struct {
21800	_ struct{} `type:"structure"`
21801
21802	// The unique ID for this stack set operation.
21803	OperationId *string `min:"1" type:"string"`
21804}
21805
21806// String returns the string representation.
21807//
21808// API parameter values that are decorated as "sensitive" in the API will not
21809// be included in the string output. The member name will be present, but the
21810// value will be replaced with "sensitive".
21811func (s UpdateStackSetOutput) String() string {
21812	return awsutil.Prettify(s)
21813}
21814
21815// GoString returns the string representation.
21816//
21817// API parameter values that are decorated as "sensitive" in the API will not
21818// be included in the string output. The member name will be present, but the
21819// value will be replaced with "sensitive".
21820func (s UpdateStackSetOutput) GoString() string {
21821	return s.String()
21822}
21823
21824// SetOperationId sets the OperationId field's value.
21825func (s *UpdateStackSetOutput) SetOperationId(v string) *UpdateStackSetOutput {
21826	s.OperationId = &v
21827	return s
21828}
21829
21830type UpdateTerminationProtectionInput struct {
21831	_ struct{} `type:"structure"`
21832
21833	// Whether to enable termination protection on the specified stack.
21834	//
21835	// EnableTerminationProtection is a required field
21836	EnableTerminationProtection *bool `type:"boolean" required:"true"`
21837
21838	// The name or unique ID of the stack for which you want to set termination
21839	// protection.
21840	//
21841	// StackName is a required field
21842	StackName *string `min:"1" type:"string" required:"true"`
21843}
21844
21845// String returns the string representation.
21846//
21847// API parameter values that are decorated as "sensitive" in the API will not
21848// be included in the string output. The member name will be present, but the
21849// value will be replaced with "sensitive".
21850func (s UpdateTerminationProtectionInput) String() string {
21851	return awsutil.Prettify(s)
21852}
21853
21854// GoString returns the string representation.
21855//
21856// API parameter values that are decorated as "sensitive" in the API will not
21857// be included in the string output. The member name will be present, but the
21858// value will be replaced with "sensitive".
21859func (s UpdateTerminationProtectionInput) GoString() string {
21860	return s.String()
21861}
21862
21863// Validate inspects the fields of the type to determine if they are valid.
21864func (s *UpdateTerminationProtectionInput) Validate() error {
21865	invalidParams := request.ErrInvalidParams{Context: "UpdateTerminationProtectionInput"}
21866	if s.EnableTerminationProtection == nil {
21867		invalidParams.Add(request.NewErrParamRequired("EnableTerminationProtection"))
21868	}
21869	if s.StackName == nil {
21870		invalidParams.Add(request.NewErrParamRequired("StackName"))
21871	}
21872	if s.StackName != nil && len(*s.StackName) < 1 {
21873		invalidParams.Add(request.NewErrParamMinLen("StackName", 1))
21874	}
21875
21876	if invalidParams.Len() > 0 {
21877		return invalidParams
21878	}
21879	return nil
21880}
21881
21882// SetEnableTerminationProtection sets the EnableTerminationProtection field's value.
21883func (s *UpdateTerminationProtectionInput) SetEnableTerminationProtection(v bool) *UpdateTerminationProtectionInput {
21884	s.EnableTerminationProtection = &v
21885	return s
21886}
21887
21888// SetStackName sets the StackName field's value.
21889func (s *UpdateTerminationProtectionInput) SetStackName(v string) *UpdateTerminationProtectionInput {
21890	s.StackName = &v
21891	return s
21892}
21893
21894type UpdateTerminationProtectionOutput struct {
21895	_ struct{} `type:"structure"`
21896
21897	// The unique ID of the stack.
21898	StackId *string `type:"string"`
21899}
21900
21901// String returns the string representation.
21902//
21903// API parameter values that are decorated as "sensitive" in the API will not
21904// be included in the string output. The member name will be present, but the
21905// value will be replaced with "sensitive".
21906func (s UpdateTerminationProtectionOutput) String() string {
21907	return awsutil.Prettify(s)
21908}
21909
21910// GoString returns the string representation.
21911//
21912// API parameter values that are decorated as "sensitive" in the API will not
21913// be included in the string output. The member name will be present, but the
21914// value will be replaced with "sensitive".
21915func (s UpdateTerminationProtectionOutput) GoString() string {
21916	return s.String()
21917}
21918
21919// SetStackId sets the StackId field's value.
21920func (s *UpdateTerminationProtectionOutput) SetStackId(v string) *UpdateTerminationProtectionOutput {
21921	s.StackId = &v
21922	return s
21923}
21924
21925// The input for ValidateTemplate action.
21926type ValidateTemplateInput struct {
21927	_ struct{} `type:"structure"`
21928
21929	// Structure containing the template body with a minimum length of 1 byte and
21930	// a maximum length of 51,200 bytes. For more information, go to Template Anatomy
21931	// (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/template-anatomy.html)
21932	// in the CloudFormation User Guide.
21933	//
21934	// Conditional: You must pass TemplateURL or TemplateBody. If both are passed,
21935	// only TemplateBody is used.
21936	TemplateBody *string `min:"1" type:"string"`
21937
21938	// Location of file containing the template body. The URL must point to a template
21939	// (max size: 460,800 bytes) that is located in an Amazon S3 bucket or a Systems
21940	// Manager document. For more information, go to Template Anatomy (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/template-anatomy.html)
21941	// in the CloudFormation User Guide.
21942	//
21943	// Conditional: You must pass TemplateURL or TemplateBody. If both are passed,
21944	// only TemplateBody is used.
21945	TemplateURL *string `min:"1" type:"string"`
21946}
21947
21948// String returns the string representation.
21949//
21950// API parameter values that are decorated as "sensitive" in the API will not
21951// be included in the string output. The member name will be present, but the
21952// value will be replaced with "sensitive".
21953func (s ValidateTemplateInput) String() string {
21954	return awsutil.Prettify(s)
21955}
21956
21957// GoString returns the string representation.
21958//
21959// API parameter values that are decorated as "sensitive" in the API will not
21960// be included in the string output. The member name will be present, but the
21961// value will be replaced with "sensitive".
21962func (s ValidateTemplateInput) GoString() string {
21963	return s.String()
21964}
21965
21966// Validate inspects the fields of the type to determine if they are valid.
21967func (s *ValidateTemplateInput) Validate() error {
21968	invalidParams := request.ErrInvalidParams{Context: "ValidateTemplateInput"}
21969	if s.TemplateBody != nil && len(*s.TemplateBody) < 1 {
21970		invalidParams.Add(request.NewErrParamMinLen("TemplateBody", 1))
21971	}
21972	if s.TemplateURL != nil && len(*s.TemplateURL) < 1 {
21973		invalidParams.Add(request.NewErrParamMinLen("TemplateURL", 1))
21974	}
21975
21976	if invalidParams.Len() > 0 {
21977		return invalidParams
21978	}
21979	return nil
21980}
21981
21982// SetTemplateBody sets the TemplateBody field's value.
21983func (s *ValidateTemplateInput) SetTemplateBody(v string) *ValidateTemplateInput {
21984	s.TemplateBody = &v
21985	return s
21986}
21987
21988// SetTemplateURL sets the TemplateURL field's value.
21989func (s *ValidateTemplateInput) SetTemplateURL(v string) *ValidateTemplateInput {
21990	s.TemplateURL = &v
21991	return s
21992}
21993
21994// The output for ValidateTemplate action.
21995type ValidateTemplateOutput struct {
21996	_ struct{} `type:"structure"`
21997
21998	// The capabilities found within the template. If your template contains IAM
21999	// resources, you must specify the CAPABILITY_IAM or CAPABILITY_NAMED_IAM value
22000	// for this parameter when you use the CreateStack or UpdateStack actions with
22001	// your template; otherwise, those actions return an InsufficientCapabilities
22002	// error.
22003	//
22004	// For more information, see Acknowledging IAM Resources in CloudFormation Templates
22005	// (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-iam-template.html#capabilities).
22006	Capabilities []*string `type:"list"`
22007
22008	// The list of resources that generated the values in the Capabilities response
22009	// element.
22010	CapabilitiesReason *string `type:"string"`
22011
22012	// A list of the transforms that are declared in the template.
22013	DeclaredTransforms []*string `type:"list"`
22014
22015	// The description found within the template.
22016	Description *string `min:"1" type:"string"`
22017
22018	// A list of TemplateParameter structures.
22019	Parameters []*TemplateParameter `type:"list"`
22020}
22021
22022// String returns the string representation.
22023//
22024// API parameter values that are decorated as "sensitive" in the API will not
22025// be included in the string output. The member name will be present, but the
22026// value will be replaced with "sensitive".
22027func (s ValidateTemplateOutput) String() string {
22028	return awsutil.Prettify(s)
22029}
22030
22031// GoString returns the string representation.
22032//
22033// API parameter values that are decorated as "sensitive" in the API will not
22034// be included in the string output. The member name will be present, but the
22035// value will be replaced with "sensitive".
22036func (s ValidateTemplateOutput) GoString() string {
22037	return s.String()
22038}
22039
22040// SetCapabilities sets the Capabilities field's value.
22041func (s *ValidateTemplateOutput) SetCapabilities(v []*string) *ValidateTemplateOutput {
22042	s.Capabilities = v
22043	return s
22044}
22045
22046// SetCapabilitiesReason sets the CapabilitiesReason field's value.
22047func (s *ValidateTemplateOutput) SetCapabilitiesReason(v string) *ValidateTemplateOutput {
22048	s.CapabilitiesReason = &v
22049	return s
22050}
22051
22052// SetDeclaredTransforms sets the DeclaredTransforms field's value.
22053func (s *ValidateTemplateOutput) SetDeclaredTransforms(v []*string) *ValidateTemplateOutput {
22054	s.DeclaredTransforms = v
22055	return s
22056}
22057
22058// SetDescription sets the Description field's value.
22059func (s *ValidateTemplateOutput) SetDescription(v string) *ValidateTemplateOutput {
22060	s.Description = &v
22061	return s
22062}
22063
22064// SetParameters sets the Parameters field's value.
22065func (s *ValidateTemplateOutput) SetParameters(v []*TemplateParameter) *ValidateTemplateOutput {
22066	s.Parameters = v
22067	return s
22068}
22069
22070const (
22071	// AccountGateStatusSucceeded is a AccountGateStatus enum value
22072	AccountGateStatusSucceeded = "SUCCEEDED"
22073
22074	// AccountGateStatusFailed is a AccountGateStatus enum value
22075	AccountGateStatusFailed = "FAILED"
22076
22077	// AccountGateStatusSkipped is a AccountGateStatus enum value
22078	AccountGateStatusSkipped = "SKIPPED"
22079)
22080
22081// AccountGateStatus_Values returns all elements of the AccountGateStatus enum
22082func AccountGateStatus_Values() []string {
22083	return []string{
22084		AccountGateStatusSucceeded,
22085		AccountGateStatusFailed,
22086		AccountGateStatusSkipped,
22087	}
22088}
22089
22090const (
22091	// CallAsSelf is a CallAs enum value
22092	CallAsSelf = "SELF"
22093
22094	// CallAsDelegatedAdmin is a CallAs enum value
22095	CallAsDelegatedAdmin = "DELEGATED_ADMIN"
22096)
22097
22098// CallAs_Values returns all elements of the CallAs enum
22099func CallAs_Values() []string {
22100	return []string{
22101		CallAsSelf,
22102		CallAsDelegatedAdmin,
22103	}
22104}
22105
22106const (
22107	// CapabilityCapabilityIam is a Capability enum value
22108	CapabilityCapabilityIam = "CAPABILITY_IAM"
22109
22110	// CapabilityCapabilityNamedIam is a Capability enum value
22111	CapabilityCapabilityNamedIam = "CAPABILITY_NAMED_IAM"
22112
22113	// CapabilityCapabilityAutoExpand is a Capability enum value
22114	CapabilityCapabilityAutoExpand = "CAPABILITY_AUTO_EXPAND"
22115)
22116
22117// Capability_Values returns all elements of the Capability enum
22118func Capability_Values() []string {
22119	return []string{
22120		CapabilityCapabilityIam,
22121		CapabilityCapabilityNamedIam,
22122		CapabilityCapabilityAutoExpand,
22123	}
22124}
22125
22126const (
22127	// CategoryRegistered is a Category enum value
22128	CategoryRegistered = "REGISTERED"
22129
22130	// CategoryActivated is a Category enum value
22131	CategoryActivated = "ACTIVATED"
22132
22133	// CategoryThirdParty is a Category enum value
22134	CategoryThirdParty = "THIRD_PARTY"
22135
22136	// CategoryAwsTypes is a Category enum value
22137	CategoryAwsTypes = "AWS_TYPES"
22138)
22139
22140// Category_Values returns all elements of the Category enum
22141func Category_Values() []string {
22142	return []string{
22143		CategoryRegistered,
22144		CategoryActivated,
22145		CategoryThirdParty,
22146		CategoryAwsTypes,
22147	}
22148}
22149
22150const (
22151	// ChangeActionAdd is a ChangeAction enum value
22152	ChangeActionAdd = "Add"
22153
22154	// ChangeActionModify is a ChangeAction enum value
22155	ChangeActionModify = "Modify"
22156
22157	// ChangeActionRemove is a ChangeAction enum value
22158	ChangeActionRemove = "Remove"
22159
22160	// ChangeActionImport is a ChangeAction enum value
22161	ChangeActionImport = "Import"
22162
22163	// ChangeActionDynamic is a ChangeAction enum value
22164	ChangeActionDynamic = "Dynamic"
22165)
22166
22167// ChangeAction_Values returns all elements of the ChangeAction enum
22168func ChangeAction_Values() []string {
22169	return []string{
22170		ChangeActionAdd,
22171		ChangeActionModify,
22172		ChangeActionRemove,
22173		ChangeActionImport,
22174		ChangeActionDynamic,
22175	}
22176}
22177
22178const (
22179	// ChangeSetStatusCreatePending is a ChangeSetStatus enum value
22180	ChangeSetStatusCreatePending = "CREATE_PENDING"
22181
22182	// ChangeSetStatusCreateInProgress is a ChangeSetStatus enum value
22183	ChangeSetStatusCreateInProgress = "CREATE_IN_PROGRESS"
22184
22185	// ChangeSetStatusCreateComplete is a ChangeSetStatus enum value
22186	ChangeSetStatusCreateComplete = "CREATE_COMPLETE"
22187
22188	// ChangeSetStatusDeletePending is a ChangeSetStatus enum value
22189	ChangeSetStatusDeletePending = "DELETE_PENDING"
22190
22191	// ChangeSetStatusDeleteInProgress is a ChangeSetStatus enum value
22192	ChangeSetStatusDeleteInProgress = "DELETE_IN_PROGRESS"
22193
22194	// ChangeSetStatusDeleteComplete is a ChangeSetStatus enum value
22195	ChangeSetStatusDeleteComplete = "DELETE_COMPLETE"
22196
22197	// ChangeSetStatusDeleteFailed is a ChangeSetStatus enum value
22198	ChangeSetStatusDeleteFailed = "DELETE_FAILED"
22199
22200	// ChangeSetStatusFailed is a ChangeSetStatus enum value
22201	ChangeSetStatusFailed = "FAILED"
22202)
22203
22204// ChangeSetStatus_Values returns all elements of the ChangeSetStatus enum
22205func ChangeSetStatus_Values() []string {
22206	return []string{
22207		ChangeSetStatusCreatePending,
22208		ChangeSetStatusCreateInProgress,
22209		ChangeSetStatusCreateComplete,
22210		ChangeSetStatusDeletePending,
22211		ChangeSetStatusDeleteInProgress,
22212		ChangeSetStatusDeleteComplete,
22213		ChangeSetStatusDeleteFailed,
22214		ChangeSetStatusFailed,
22215	}
22216}
22217
22218const (
22219	// ChangeSetTypeCreate is a ChangeSetType enum value
22220	ChangeSetTypeCreate = "CREATE"
22221
22222	// ChangeSetTypeUpdate is a ChangeSetType enum value
22223	ChangeSetTypeUpdate = "UPDATE"
22224
22225	// ChangeSetTypeImport is a ChangeSetType enum value
22226	ChangeSetTypeImport = "IMPORT"
22227)
22228
22229// ChangeSetType_Values returns all elements of the ChangeSetType enum
22230func ChangeSetType_Values() []string {
22231	return []string{
22232		ChangeSetTypeCreate,
22233		ChangeSetTypeUpdate,
22234		ChangeSetTypeImport,
22235	}
22236}
22237
22238const (
22239	// ChangeSourceResourceReference is a ChangeSource enum value
22240	ChangeSourceResourceReference = "ResourceReference"
22241
22242	// ChangeSourceParameterReference is a ChangeSource enum value
22243	ChangeSourceParameterReference = "ParameterReference"
22244
22245	// ChangeSourceResourceAttribute is a ChangeSource enum value
22246	ChangeSourceResourceAttribute = "ResourceAttribute"
22247
22248	// ChangeSourceDirectModification is a ChangeSource enum value
22249	ChangeSourceDirectModification = "DirectModification"
22250
22251	// ChangeSourceAutomatic is a ChangeSource enum value
22252	ChangeSourceAutomatic = "Automatic"
22253)
22254
22255// ChangeSource_Values returns all elements of the ChangeSource enum
22256func ChangeSource_Values() []string {
22257	return []string{
22258		ChangeSourceResourceReference,
22259		ChangeSourceParameterReference,
22260		ChangeSourceResourceAttribute,
22261		ChangeSourceDirectModification,
22262		ChangeSourceAutomatic,
22263	}
22264}
22265
22266const (
22267	// ChangeTypeResource is a ChangeType enum value
22268	ChangeTypeResource = "Resource"
22269)
22270
22271// ChangeType_Values returns all elements of the ChangeType enum
22272func ChangeType_Values() []string {
22273	return []string{
22274		ChangeTypeResource,
22275	}
22276}
22277
22278const (
22279	// DeprecatedStatusLive is a DeprecatedStatus enum value
22280	DeprecatedStatusLive = "LIVE"
22281
22282	// DeprecatedStatusDeprecated is a DeprecatedStatus enum value
22283	DeprecatedStatusDeprecated = "DEPRECATED"
22284)
22285
22286// DeprecatedStatus_Values returns all elements of the DeprecatedStatus enum
22287func DeprecatedStatus_Values() []string {
22288	return []string{
22289		DeprecatedStatusLive,
22290		DeprecatedStatusDeprecated,
22291	}
22292}
22293
22294const (
22295	// DifferenceTypeAdd is a DifferenceType enum value
22296	DifferenceTypeAdd = "ADD"
22297
22298	// DifferenceTypeRemove is a DifferenceType enum value
22299	DifferenceTypeRemove = "REMOVE"
22300
22301	// DifferenceTypeNotEqual is a DifferenceType enum value
22302	DifferenceTypeNotEqual = "NOT_EQUAL"
22303)
22304
22305// DifferenceType_Values returns all elements of the DifferenceType enum
22306func DifferenceType_Values() []string {
22307	return []string{
22308		DifferenceTypeAdd,
22309		DifferenceTypeRemove,
22310		DifferenceTypeNotEqual,
22311	}
22312}
22313
22314const (
22315	// EvaluationTypeStatic is a EvaluationType enum value
22316	EvaluationTypeStatic = "Static"
22317
22318	// EvaluationTypeDynamic is a EvaluationType enum value
22319	EvaluationTypeDynamic = "Dynamic"
22320)
22321
22322// EvaluationType_Values returns all elements of the EvaluationType enum
22323func EvaluationType_Values() []string {
22324	return []string{
22325		EvaluationTypeStatic,
22326		EvaluationTypeDynamic,
22327	}
22328}
22329
22330const (
22331	// ExecutionStatusUnavailable is a ExecutionStatus enum value
22332	ExecutionStatusUnavailable = "UNAVAILABLE"
22333
22334	// ExecutionStatusAvailable is a ExecutionStatus enum value
22335	ExecutionStatusAvailable = "AVAILABLE"
22336
22337	// ExecutionStatusExecuteInProgress is a ExecutionStatus enum value
22338	ExecutionStatusExecuteInProgress = "EXECUTE_IN_PROGRESS"
22339
22340	// ExecutionStatusExecuteComplete is a ExecutionStatus enum value
22341	ExecutionStatusExecuteComplete = "EXECUTE_COMPLETE"
22342
22343	// ExecutionStatusExecuteFailed is a ExecutionStatus enum value
22344	ExecutionStatusExecuteFailed = "EXECUTE_FAILED"
22345
22346	// ExecutionStatusObsolete is a ExecutionStatus enum value
22347	ExecutionStatusObsolete = "OBSOLETE"
22348)
22349
22350// ExecutionStatus_Values returns all elements of the ExecutionStatus enum
22351func ExecutionStatus_Values() []string {
22352	return []string{
22353		ExecutionStatusUnavailable,
22354		ExecutionStatusAvailable,
22355		ExecutionStatusExecuteInProgress,
22356		ExecutionStatusExecuteComplete,
22357		ExecutionStatusExecuteFailed,
22358		ExecutionStatusObsolete,
22359	}
22360}
22361
22362const (
22363	// HandlerErrorCodeNotUpdatable is a HandlerErrorCode enum value
22364	HandlerErrorCodeNotUpdatable = "NotUpdatable"
22365
22366	// HandlerErrorCodeInvalidRequest is a HandlerErrorCode enum value
22367	HandlerErrorCodeInvalidRequest = "InvalidRequest"
22368
22369	// HandlerErrorCodeAccessDenied is a HandlerErrorCode enum value
22370	HandlerErrorCodeAccessDenied = "AccessDenied"
22371
22372	// HandlerErrorCodeInvalidCredentials is a HandlerErrorCode enum value
22373	HandlerErrorCodeInvalidCredentials = "InvalidCredentials"
22374
22375	// HandlerErrorCodeAlreadyExists is a HandlerErrorCode enum value
22376	HandlerErrorCodeAlreadyExists = "AlreadyExists"
22377
22378	// HandlerErrorCodeNotFound is a HandlerErrorCode enum value
22379	HandlerErrorCodeNotFound = "NotFound"
22380
22381	// HandlerErrorCodeResourceConflict is a HandlerErrorCode enum value
22382	HandlerErrorCodeResourceConflict = "ResourceConflict"
22383
22384	// HandlerErrorCodeThrottling is a HandlerErrorCode enum value
22385	HandlerErrorCodeThrottling = "Throttling"
22386
22387	// HandlerErrorCodeServiceLimitExceeded is a HandlerErrorCode enum value
22388	HandlerErrorCodeServiceLimitExceeded = "ServiceLimitExceeded"
22389
22390	// HandlerErrorCodeNotStabilized is a HandlerErrorCode enum value
22391	HandlerErrorCodeNotStabilized = "NotStabilized"
22392
22393	// HandlerErrorCodeGeneralServiceException is a HandlerErrorCode enum value
22394	HandlerErrorCodeGeneralServiceException = "GeneralServiceException"
22395
22396	// HandlerErrorCodeServiceInternalError is a HandlerErrorCode enum value
22397	HandlerErrorCodeServiceInternalError = "ServiceInternalError"
22398
22399	// HandlerErrorCodeNetworkFailure is a HandlerErrorCode enum value
22400	HandlerErrorCodeNetworkFailure = "NetworkFailure"
22401
22402	// HandlerErrorCodeInternalFailure is a HandlerErrorCode enum value
22403	HandlerErrorCodeInternalFailure = "InternalFailure"
22404
22405	// HandlerErrorCodeInvalidTypeConfiguration is a HandlerErrorCode enum value
22406	HandlerErrorCodeInvalidTypeConfiguration = "InvalidTypeConfiguration"
22407)
22408
22409// HandlerErrorCode_Values returns all elements of the HandlerErrorCode enum
22410func HandlerErrorCode_Values() []string {
22411	return []string{
22412		HandlerErrorCodeNotUpdatable,
22413		HandlerErrorCodeInvalidRequest,
22414		HandlerErrorCodeAccessDenied,
22415		HandlerErrorCodeInvalidCredentials,
22416		HandlerErrorCodeAlreadyExists,
22417		HandlerErrorCodeNotFound,
22418		HandlerErrorCodeResourceConflict,
22419		HandlerErrorCodeThrottling,
22420		HandlerErrorCodeServiceLimitExceeded,
22421		HandlerErrorCodeNotStabilized,
22422		HandlerErrorCodeGeneralServiceException,
22423		HandlerErrorCodeServiceInternalError,
22424		HandlerErrorCodeNetworkFailure,
22425		HandlerErrorCodeInternalFailure,
22426		HandlerErrorCodeInvalidTypeConfiguration,
22427	}
22428}
22429
22430const (
22431	// IdentityProviderAwsMarketplace is a IdentityProvider enum value
22432	IdentityProviderAwsMarketplace = "AWS_Marketplace"
22433
22434	// IdentityProviderGitHub is a IdentityProvider enum value
22435	IdentityProviderGitHub = "GitHub"
22436
22437	// IdentityProviderBitbucket is a IdentityProvider enum value
22438	IdentityProviderBitbucket = "Bitbucket"
22439)
22440
22441// IdentityProvider_Values returns all elements of the IdentityProvider enum
22442func IdentityProvider_Values() []string {
22443	return []string{
22444		IdentityProviderAwsMarketplace,
22445		IdentityProviderGitHub,
22446		IdentityProviderBitbucket,
22447	}
22448}
22449
22450const (
22451	// OnFailureDoNothing is a OnFailure enum value
22452	OnFailureDoNothing = "DO_NOTHING"
22453
22454	// OnFailureRollback is a OnFailure enum value
22455	OnFailureRollback = "ROLLBACK"
22456
22457	// OnFailureDelete is a OnFailure enum value
22458	OnFailureDelete = "DELETE"
22459)
22460
22461// OnFailure_Values returns all elements of the OnFailure enum
22462func OnFailure_Values() []string {
22463	return []string{
22464		OnFailureDoNothing,
22465		OnFailureRollback,
22466		OnFailureDelete,
22467	}
22468}
22469
22470const (
22471	// OperationStatusPending is a OperationStatus enum value
22472	OperationStatusPending = "PENDING"
22473
22474	// OperationStatusInProgress is a OperationStatus enum value
22475	OperationStatusInProgress = "IN_PROGRESS"
22476
22477	// OperationStatusSuccess is a OperationStatus enum value
22478	OperationStatusSuccess = "SUCCESS"
22479
22480	// OperationStatusFailed is a OperationStatus enum value
22481	OperationStatusFailed = "FAILED"
22482)
22483
22484// OperationStatus_Values returns all elements of the OperationStatus enum
22485func OperationStatus_Values() []string {
22486	return []string{
22487		OperationStatusPending,
22488		OperationStatusInProgress,
22489		OperationStatusSuccess,
22490		OperationStatusFailed,
22491	}
22492}
22493
22494const (
22495	// PermissionModelsServiceManaged is a PermissionModels enum value
22496	PermissionModelsServiceManaged = "SERVICE_MANAGED"
22497
22498	// PermissionModelsSelfManaged is a PermissionModels enum value
22499	PermissionModelsSelfManaged = "SELF_MANAGED"
22500)
22501
22502// PermissionModels_Values returns all elements of the PermissionModels enum
22503func PermissionModels_Values() []string {
22504	return []string{
22505		PermissionModelsServiceManaged,
22506		PermissionModelsSelfManaged,
22507	}
22508}
22509
22510const (
22511	// ProvisioningTypeNonProvisionable is a ProvisioningType enum value
22512	ProvisioningTypeNonProvisionable = "NON_PROVISIONABLE"
22513
22514	// ProvisioningTypeImmutable is a ProvisioningType enum value
22515	ProvisioningTypeImmutable = "IMMUTABLE"
22516
22517	// ProvisioningTypeFullyMutable is a ProvisioningType enum value
22518	ProvisioningTypeFullyMutable = "FULLY_MUTABLE"
22519)
22520
22521// ProvisioningType_Values returns all elements of the ProvisioningType enum
22522func ProvisioningType_Values() []string {
22523	return []string{
22524		ProvisioningTypeNonProvisionable,
22525		ProvisioningTypeImmutable,
22526		ProvisioningTypeFullyMutable,
22527	}
22528}
22529
22530const (
22531	// PublisherStatusVerified is a PublisherStatus enum value
22532	PublisherStatusVerified = "VERIFIED"
22533
22534	// PublisherStatusUnverified is a PublisherStatus enum value
22535	PublisherStatusUnverified = "UNVERIFIED"
22536)
22537
22538// PublisherStatus_Values returns all elements of the PublisherStatus enum
22539func PublisherStatus_Values() []string {
22540	return []string{
22541		PublisherStatusVerified,
22542		PublisherStatusUnverified,
22543	}
22544}
22545
22546const (
22547	// RegionConcurrencyTypeSequential is a RegionConcurrencyType enum value
22548	RegionConcurrencyTypeSequential = "SEQUENTIAL"
22549
22550	// RegionConcurrencyTypeParallel is a RegionConcurrencyType enum value
22551	RegionConcurrencyTypeParallel = "PARALLEL"
22552)
22553
22554// RegionConcurrencyType_Values returns all elements of the RegionConcurrencyType enum
22555func RegionConcurrencyType_Values() []string {
22556	return []string{
22557		RegionConcurrencyTypeSequential,
22558		RegionConcurrencyTypeParallel,
22559	}
22560}
22561
22562const (
22563	// RegistrationStatusComplete is a RegistrationStatus enum value
22564	RegistrationStatusComplete = "COMPLETE"
22565
22566	// RegistrationStatusInProgress is a RegistrationStatus enum value
22567	RegistrationStatusInProgress = "IN_PROGRESS"
22568
22569	// RegistrationStatusFailed is a RegistrationStatus enum value
22570	RegistrationStatusFailed = "FAILED"
22571)
22572
22573// RegistrationStatus_Values returns all elements of the RegistrationStatus enum
22574func RegistrationStatus_Values() []string {
22575	return []string{
22576		RegistrationStatusComplete,
22577		RegistrationStatusInProgress,
22578		RegistrationStatusFailed,
22579	}
22580}
22581
22582const (
22583	// RegistryTypeResource is a RegistryType enum value
22584	RegistryTypeResource = "RESOURCE"
22585
22586	// RegistryTypeModule is a RegistryType enum value
22587	RegistryTypeModule = "MODULE"
22588)
22589
22590// RegistryType_Values returns all elements of the RegistryType enum
22591func RegistryType_Values() []string {
22592	return []string{
22593		RegistryTypeResource,
22594		RegistryTypeModule,
22595	}
22596}
22597
22598const (
22599	// ReplacementTrue is a Replacement enum value
22600	ReplacementTrue = "True"
22601
22602	// ReplacementFalse is a Replacement enum value
22603	ReplacementFalse = "False"
22604
22605	// ReplacementConditional is a Replacement enum value
22606	ReplacementConditional = "Conditional"
22607)
22608
22609// Replacement_Values returns all elements of the Replacement enum
22610func Replacement_Values() []string {
22611	return []string{
22612		ReplacementTrue,
22613		ReplacementFalse,
22614		ReplacementConditional,
22615	}
22616}
22617
22618const (
22619	// RequiresRecreationNever is a RequiresRecreation enum value
22620	RequiresRecreationNever = "Never"
22621
22622	// RequiresRecreationConditionally is a RequiresRecreation enum value
22623	RequiresRecreationConditionally = "Conditionally"
22624
22625	// RequiresRecreationAlways is a RequiresRecreation enum value
22626	RequiresRecreationAlways = "Always"
22627)
22628
22629// RequiresRecreation_Values returns all elements of the RequiresRecreation enum
22630func RequiresRecreation_Values() []string {
22631	return []string{
22632		RequiresRecreationNever,
22633		RequiresRecreationConditionally,
22634		RequiresRecreationAlways,
22635	}
22636}
22637
22638const (
22639	// ResourceAttributeProperties is a ResourceAttribute enum value
22640	ResourceAttributeProperties = "Properties"
22641
22642	// ResourceAttributeMetadata is a ResourceAttribute enum value
22643	ResourceAttributeMetadata = "Metadata"
22644
22645	// ResourceAttributeCreationPolicy is a ResourceAttribute enum value
22646	ResourceAttributeCreationPolicy = "CreationPolicy"
22647
22648	// ResourceAttributeUpdatePolicy is a ResourceAttribute enum value
22649	ResourceAttributeUpdatePolicy = "UpdatePolicy"
22650
22651	// ResourceAttributeDeletionPolicy is a ResourceAttribute enum value
22652	ResourceAttributeDeletionPolicy = "DeletionPolicy"
22653
22654	// ResourceAttributeTags is a ResourceAttribute enum value
22655	ResourceAttributeTags = "Tags"
22656)
22657
22658// ResourceAttribute_Values returns all elements of the ResourceAttribute enum
22659func ResourceAttribute_Values() []string {
22660	return []string{
22661		ResourceAttributeProperties,
22662		ResourceAttributeMetadata,
22663		ResourceAttributeCreationPolicy,
22664		ResourceAttributeUpdatePolicy,
22665		ResourceAttributeDeletionPolicy,
22666		ResourceAttributeTags,
22667	}
22668}
22669
22670const (
22671	// ResourceSignalStatusSuccess is a ResourceSignalStatus enum value
22672	ResourceSignalStatusSuccess = "SUCCESS"
22673
22674	// ResourceSignalStatusFailure is a ResourceSignalStatus enum value
22675	ResourceSignalStatusFailure = "FAILURE"
22676)
22677
22678// ResourceSignalStatus_Values returns all elements of the ResourceSignalStatus enum
22679func ResourceSignalStatus_Values() []string {
22680	return []string{
22681		ResourceSignalStatusSuccess,
22682		ResourceSignalStatusFailure,
22683	}
22684}
22685
22686const (
22687	// ResourceStatusCreateInProgress is a ResourceStatus enum value
22688	ResourceStatusCreateInProgress = "CREATE_IN_PROGRESS"
22689
22690	// ResourceStatusCreateFailed is a ResourceStatus enum value
22691	ResourceStatusCreateFailed = "CREATE_FAILED"
22692
22693	// ResourceStatusCreateComplete is a ResourceStatus enum value
22694	ResourceStatusCreateComplete = "CREATE_COMPLETE"
22695
22696	// ResourceStatusDeleteInProgress is a ResourceStatus enum value
22697	ResourceStatusDeleteInProgress = "DELETE_IN_PROGRESS"
22698
22699	// ResourceStatusDeleteFailed is a ResourceStatus enum value
22700	ResourceStatusDeleteFailed = "DELETE_FAILED"
22701
22702	// ResourceStatusDeleteComplete is a ResourceStatus enum value
22703	ResourceStatusDeleteComplete = "DELETE_COMPLETE"
22704
22705	// ResourceStatusDeleteSkipped is a ResourceStatus enum value
22706	ResourceStatusDeleteSkipped = "DELETE_SKIPPED"
22707
22708	// ResourceStatusUpdateInProgress is a ResourceStatus enum value
22709	ResourceStatusUpdateInProgress = "UPDATE_IN_PROGRESS"
22710
22711	// ResourceStatusUpdateFailed is a ResourceStatus enum value
22712	ResourceStatusUpdateFailed = "UPDATE_FAILED"
22713
22714	// ResourceStatusUpdateComplete is a ResourceStatus enum value
22715	ResourceStatusUpdateComplete = "UPDATE_COMPLETE"
22716
22717	// ResourceStatusImportFailed is a ResourceStatus enum value
22718	ResourceStatusImportFailed = "IMPORT_FAILED"
22719
22720	// ResourceStatusImportComplete is a ResourceStatus enum value
22721	ResourceStatusImportComplete = "IMPORT_COMPLETE"
22722
22723	// ResourceStatusImportInProgress is a ResourceStatus enum value
22724	ResourceStatusImportInProgress = "IMPORT_IN_PROGRESS"
22725
22726	// ResourceStatusImportRollbackInProgress is a ResourceStatus enum value
22727	ResourceStatusImportRollbackInProgress = "IMPORT_ROLLBACK_IN_PROGRESS"
22728
22729	// ResourceStatusImportRollbackFailed is a ResourceStatus enum value
22730	ResourceStatusImportRollbackFailed = "IMPORT_ROLLBACK_FAILED"
22731
22732	// ResourceStatusImportRollbackComplete is a ResourceStatus enum value
22733	ResourceStatusImportRollbackComplete = "IMPORT_ROLLBACK_COMPLETE"
22734
22735	// ResourceStatusUpdateRollbackInProgress is a ResourceStatus enum value
22736	ResourceStatusUpdateRollbackInProgress = "UPDATE_ROLLBACK_IN_PROGRESS"
22737
22738	// ResourceStatusUpdateRollbackComplete is a ResourceStatus enum value
22739	ResourceStatusUpdateRollbackComplete = "UPDATE_ROLLBACK_COMPLETE"
22740
22741	// ResourceStatusUpdateRollbackFailed is a ResourceStatus enum value
22742	ResourceStatusUpdateRollbackFailed = "UPDATE_ROLLBACK_FAILED"
22743
22744	// ResourceStatusRollbackInProgress is a ResourceStatus enum value
22745	ResourceStatusRollbackInProgress = "ROLLBACK_IN_PROGRESS"
22746
22747	// ResourceStatusRollbackComplete is a ResourceStatus enum value
22748	ResourceStatusRollbackComplete = "ROLLBACK_COMPLETE"
22749
22750	// ResourceStatusRollbackFailed is a ResourceStatus enum value
22751	ResourceStatusRollbackFailed = "ROLLBACK_FAILED"
22752)
22753
22754// ResourceStatus_Values returns all elements of the ResourceStatus enum
22755func ResourceStatus_Values() []string {
22756	return []string{
22757		ResourceStatusCreateInProgress,
22758		ResourceStatusCreateFailed,
22759		ResourceStatusCreateComplete,
22760		ResourceStatusDeleteInProgress,
22761		ResourceStatusDeleteFailed,
22762		ResourceStatusDeleteComplete,
22763		ResourceStatusDeleteSkipped,
22764		ResourceStatusUpdateInProgress,
22765		ResourceStatusUpdateFailed,
22766		ResourceStatusUpdateComplete,
22767		ResourceStatusImportFailed,
22768		ResourceStatusImportComplete,
22769		ResourceStatusImportInProgress,
22770		ResourceStatusImportRollbackInProgress,
22771		ResourceStatusImportRollbackFailed,
22772		ResourceStatusImportRollbackComplete,
22773		ResourceStatusUpdateRollbackInProgress,
22774		ResourceStatusUpdateRollbackComplete,
22775		ResourceStatusUpdateRollbackFailed,
22776		ResourceStatusRollbackInProgress,
22777		ResourceStatusRollbackComplete,
22778		ResourceStatusRollbackFailed,
22779	}
22780}
22781
22782const (
22783	// StackDriftDetectionStatusDetectionInProgress is a StackDriftDetectionStatus enum value
22784	StackDriftDetectionStatusDetectionInProgress = "DETECTION_IN_PROGRESS"
22785
22786	// StackDriftDetectionStatusDetectionFailed is a StackDriftDetectionStatus enum value
22787	StackDriftDetectionStatusDetectionFailed = "DETECTION_FAILED"
22788
22789	// StackDriftDetectionStatusDetectionComplete is a StackDriftDetectionStatus enum value
22790	StackDriftDetectionStatusDetectionComplete = "DETECTION_COMPLETE"
22791)
22792
22793// StackDriftDetectionStatus_Values returns all elements of the StackDriftDetectionStatus enum
22794func StackDriftDetectionStatus_Values() []string {
22795	return []string{
22796		StackDriftDetectionStatusDetectionInProgress,
22797		StackDriftDetectionStatusDetectionFailed,
22798		StackDriftDetectionStatusDetectionComplete,
22799	}
22800}
22801
22802const (
22803	// StackDriftStatusDrifted is a StackDriftStatus enum value
22804	StackDriftStatusDrifted = "DRIFTED"
22805
22806	// StackDriftStatusInSync is a StackDriftStatus enum value
22807	StackDriftStatusInSync = "IN_SYNC"
22808
22809	// StackDriftStatusUnknown is a StackDriftStatus enum value
22810	StackDriftStatusUnknown = "UNKNOWN"
22811
22812	// StackDriftStatusNotChecked is a StackDriftStatus enum value
22813	StackDriftStatusNotChecked = "NOT_CHECKED"
22814)
22815
22816// StackDriftStatus_Values returns all elements of the StackDriftStatus enum
22817func StackDriftStatus_Values() []string {
22818	return []string{
22819		StackDriftStatusDrifted,
22820		StackDriftStatusInSync,
22821		StackDriftStatusUnknown,
22822		StackDriftStatusNotChecked,
22823	}
22824}
22825
22826const (
22827	// StackInstanceDetailedStatusPending is a StackInstanceDetailedStatus enum value
22828	StackInstanceDetailedStatusPending = "PENDING"
22829
22830	// StackInstanceDetailedStatusRunning is a StackInstanceDetailedStatus enum value
22831	StackInstanceDetailedStatusRunning = "RUNNING"
22832
22833	// StackInstanceDetailedStatusSucceeded is a StackInstanceDetailedStatus enum value
22834	StackInstanceDetailedStatusSucceeded = "SUCCEEDED"
22835
22836	// StackInstanceDetailedStatusFailed is a StackInstanceDetailedStatus enum value
22837	StackInstanceDetailedStatusFailed = "FAILED"
22838
22839	// StackInstanceDetailedStatusCancelled is a StackInstanceDetailedStatus enum value
22840	StackInstanceDetailedStatusCancelled = "CANCELLED"
22841
22842	// StackInstanceDetailedStatusInoperable is a StackInstanceDetailedStatus enum value
22843	StackInstanceDetailedStatusInoperable = "INOPERABLE"
22844)
22845
22846// StackInstanceDetailedStatus_Values returns all elements of the StackInstanceDetailedStatus enum
22847func StackInstanceDetailedStatus_Values() []string {
22848	return []string{
22849		StackInstanceDetailedStatusPending,
22850		StackInstanceDetailedStatusRunning,
22851		StackInstanceDetailedStatusSucceeded,
22852		StackInstanceDetailedStatusFailed,
22853		StackInstanceDetailedStatusCancelled,
22854		StackInstanceDetailedStatusInoperable,
22855	}
22856}
22857
22858const (
22859	// StackInstanceFilterNameDetailedStatus is a StackInstanceFilterName enum value
22860	StackInstanceFilterNameDetailedStatus = "DETAILED_STATUS"
22861)
22862
22863// StackInstanceFilterName_Values returns all elements of the StackInstanceFilterName enum
22864func StackInstanceFilterName_Values() []string {
22865	return []string{
22866		StackInstanceFilterNameDetailedStatus,
22867	}
22868}
22869
22870const (
22871	// StackInstanceStatusCurrent is a StackInstanceStatus enum value
22872	StackInstanceStatusCurrent = "CURRENT"
22873
22874	// StackInstanceStatusOutdated is a StackInstanceStatus enum value
22875	StackInstanceStatusOutdated = "OUTDATED"
22876
22877	// StackInstanceStatusInoperable is a StackInstanceStatus enum value
22878	StackInstanceStatusInoperable = "INOPERABLE"
22879)
22880
22881// StackInstanceStatus_Values returns all elements of the StackInstanceStatus enum
22882func StackInstanceStatus_Values() []string {
22883	return []string{
22884		StackInstanceStatusCurrent,
22885		StackInstanceStatusOutdated,
22886		StackInstanceStatusInoperable,
22887	}
22888}
22889
22890const (
22891	// StackResourceDriftStatusInSync is a StackResourceDriftStatus enum value
22892	StackResourceDriftStatusInSync = "IN_SYNC"
22893
22894	// StackResourceDriftStatusModified is a StackResourceDriftStatus enum value
22895	StackResourceDriftStatusModified = "MODIFIED"
22896
22897	// StackResourceDriftStatusDeleted is a StackResourceDriftStatus enum value
22898	StackResourceDriftStatusDeleted = "DELETED"
22899
22900	// StackResourceDriftStatusNotChecked is a StackResourceDriftStatus enum value
22901	StackResourceDriftStatusNotChecked = "NOT_CHECKED"
22902)
22903
22904// StackResourceDriftStatus_Values returns all elements of the StackResourceDriftStatus enum
22905func StackResourceDriftStatus_Values() []string {
22906	return []string{
22907		StackResourceDriftStatusInSync,
22908		StackResourceDriftStatusModified,
22909		StackResourceDriftStatusDeleted,
22910		StackResourceDriftStatusNotChecked,
22911	}
22912}
22913
22914const (
22915	// StackSetDriftDetectionStatusCompleted is a StackSetDriftDetectionStatus enum value
22916	StackSetDriftDetectionStatusCompleted = "COMPLETED"
22917
22918	// StackSetDriftDetectionStatusFailed is a StackSetDriftDetectionStatus enum value
22919	StackSetDriftDetectionStatusFailed = "FAILED"
22920
22921	// StackSetDriftDetectionStatusPartialSuccess is a StackSetDriftDetectionStatus enum value
22922	StackSetDriftDetectionStatusPartialSuccess = "PARTIAL_SUCCESS"
22923
22924	// StackSetDriftDetectionStatusInProgress is a StackSetDriftDetectionStatus enum value
22925	StackSetDriftDetectionStatusInProgress = "IN_PROGRESS"
22926
22927	// StackSetDriftDetectionStatusStopped is a StackSetDriftDetectionStatus enum value
22928	StackSetDriftDetectionStatusStopped = "STOPPED"
22929)
22930
22931// StackSetDriftDetectionStatus_Values returns all elements of the StackSetDriftDetectionStatus enum
22932func StackSetDriftDetectionStatus_Values() []string {
22933	return []string{
22934		StackSetDriftDetectionStatusCompleted,
22935		StackSetDriftDetectionStatusFailed,
22936		StackSetDriftDetectionStatusPartialSuccess,
22937		StackSetDriftDetectionStatusInProgress,
22938		StackSetDriftDetectionStatusStopped,
22939	}
22940}
22941
22942const (
22943	// StackSetDriftStatusDrifted is a StackSetDriftStatus enum value
22944	StackSetDriftStatusDrifted = "DRIFTED"
22945
22946	// StackSetDriftStatusInSync is a StackSetDriftStatus enum value
22947	StackSetDriftStatusInSync = "IN_SYNC"
22948
22949	// StackSetDriftStatusNotChecked is a StackSetDriftStatus enum value
22950	StackSetDriftStatusNotChecked = "NOT_CHECKED"
22951)
22952
22953// StackSetDriftStatus_Values returns all elements of the StackSetDriftStatus enum
22954func StackSetDriftStatus_Values() []string {
22955	return []string{
22956		StackSetDriftStatusDrifted,
22957		StackSetDriftStatusInSync,
22958		StackSetDriftStatusNotChecked,
22959	}
22960}
22961
22962const (
22963	// StackSetOperationActionCreate is a StackSetOperationAction enum value
22964	StackSetOperationActionCreate = "CREATE"
22965
22966	// StackSetOperationActionUpdate is a StackSetOperationAction enum value
22967	StackSetOperationActionUpdate = "UPDATE"
22968
22969	// StackSetOperationActionDelete is a StackSetOperationAction enum value
22970	StackSetOperationActionDelete = "DELETE"
22971
22972	// StackSetOperationActionDetectDrift is a StackSetOperationAction enum value
22973	StackSetOperationActionDetectDrift = "DETECT_DRIFT"
22974)
22975
22976// StackSetOperationAction_Values returns all elements of the StackSetOperationAction enum
22977func StackSetOperationAction_Values() []string {
22978	return []string{
22979		StackSetOperationActionCreate,
22980		StackSetOperationActionUpdate,
22981		StackSetOperationActionDelete,
22982		StackSetOperationActionDetectDrift,
22983	}
22984}
22985
22986const (
22987	// StackSetOperationResultStatusPending is a StackSetOperationResultStatus enum value
22988	StackSetOperationResultStatusPending = "PENDING"
22989
22990	// StackSetOperationResultStatusRunning is a StackSetOperationResultStatus enum value
22991	StackSetOperationResultStatusRunning = "RUNNING"
22992
22993	// StackSetOperationResultStatusSucceeded is a StackSetOperationResultStatus enum value
22994	StackSetOperationResultStatusSucceeded = "SUCCEEDED"
22995
22996	// StackSetOperationResultStatusFailed is a StackSetOperationResultStatus enum value
22997	StackSetOperationResultStatusFailed = "FAILED"
22998
22999	// StackSetOperationResultStatusCancelled is a StackSetOperationResultStatus enum value
23000	StackSetOperationResultStatusCancelled = "CANCELLED"
23001)
23002
23003// StackSetOperationResultStatus_Values returns all elements of the StackSetOperationResultStatus enum
23004func StackSetOperationResultStatus_Values() []string {
23005	return []string{
23006		StackSetOperationResultStatusPending,
23007		StackSetOperationResultStatusRunning,
23008		StackSetOperationResultStatusSucceeded,
23009		StackSetOperationResultStatusFailed,
23010		StackSetOperationResultStatusCancelled,
23011	}
23012}
23013
23014const (
23015	// StackSetOperationStatusRunning is a StackSetOperationStatus enum value
23016	StackSetOperationStatusRunning = "RUNNING"
23017
23018	// StackSetOperationStatusSucceeded is a StackSetOperationStatus enum value
23019	StackSetOperationStatusSucceeded = "SUCCEEDED"
23020
23021	// StackSetOperationStatusFailed is a StackSetOperationStatus enum value
23022	StackSetOperationStatusFailed = "FAILED"
23023
23024	// StackSetOperationStatusStopping is a StackSetOperationStatus enum value
23025	StackSetOperationStatusStopping = "STOPPING"
23026
23027	// StackSetOperationStatusStopped is a StackSetOperationStatus enum value
23028	StackSetOperationStatusStopped = "STOPPED"
23029
23030	// StackSetOperationStatusQueued is a StackSetOperationStatus enum value
23031	StackSetOperationStatusQueued = "QUEUED"
23032)
23033
23034// StackSetOperationStatus_Values returns all elements of the StackSetOperationStatus enum
23035func StackSetOperationStatus_Values() []string {
23036	return []string{
23037		StackSetOperationStatusRunning,
23038		StackSetOperationStatusSucceeded,
23039		StackSetOperationStatusFailed,
23040		StackSetOperationStatusStopping,
23041		StackSetOperationStatusStopped,
23042		StackSetOperationStatusQueued,
23043	}
23044}
23045
23046const (
23047	// StackSetStatusActive is a StackSetStatus enum value
23048	StackSetStatusActive = "ACTIVE"
23049
23050	// StackSetStatusDeleted is a StackSetStatus enum value
23051	StackSetStatusDeleted = "DELETED"
23052)
23053
23054// StackSetStatus_Values returns all elements of the StackSetStatus enum
23055func StackSetStatus_Values() []string {
23056	return []string{
23057		StackSetStatusActive,
23058		StackSetStatusDeleted,
23059	}
23060}
23061
23062const (
23063	// StackStatusCreateInProgress is a StackStatus enum value
23064	StackStatusCreateInProgress = "CREATE_IN_PROGRESS"
23065
23066	// StackStatusCreateFailed is a StackStatus enum value
23067	StackStatusCreateFailed = "CREATE_FAILED"
23068
23069	// StackStatusCreateComplete is a StackStatus enum value
23070	StackStatusCreateComplete = "CREATE_COMPLETE"
23071
23072	// StackStatusRollbackInProgress is a StackStatus enum value
23073	StackStatusRollbackInProgress = "ROLLBACK_IN_PROGRESS"
23074
23075	// StackStatusRollbackFailed is a StackStatus enum value
23076	StackStatusRollbackFailed = "ROLLBACK_FAILED"
23077
23078	// StackStatusRollbackComplete is a StackStatus enum value
23079	StackStatusRollbackComplete = "ROLLBACK_COMPLETE"
23080
23081	// StackStatusDeleteInProgress is a StackStatus enum value
23082	StackStatusDeleteInProgress = "DELETE_IN_PROGRESS"
23083
23084	// StackStatusDeleteFailed is a StackStatus enum value
23085	StackStatusDeleteFailed = "DELETE_FAILED"
23086
23087	// StackStatusDeleteComplete is a StackStatus enum value
23088	StackStatusDeleteComplete = "DELETE_COMPLETE"
23089
23090	// StackStatusUpdateInProgress is a StackStatus enum value
23091	StackStatusUpdateInProgress = "UPDATE_IN_PROGRESS"
23092
23093	// StackStatusUpdateCompleteCleanupInProgress is a StackStatus enum value
23094	StackStatusUpdateCompleteCleanupInProgress = "UPDATE_COMPLETE_CLEANUP_IN_PROGRESS"
23095
23096	// StackStatusUpdateComplete is a StackStatus enum value
23097	StackStatusUpdateComplete = "UPDATE_COMPLETE"
23098
23099	// StackStatusUpdateFailed is a StackStatus enum value
23100	StackStatusUpdateFailed = "UPDATE_FAILED"
23101
23102	// StackStatusUpdateRollbackInProgress is a StackStatus enum value
23103	StackStatusUpdateRollbackInProgress = "UPDATE_ROLLBACK_IN_PROGRESS"
23104
23105	// StackStatusUpdateRollbackFailed is a StackStatus enum value
23106	StackStatusUpdateRollbackFailed = "UPDATE_ROLLBACK_FAILED"
23107
23108	// StackStatusUpdateRollbackCompleteCleanupInProgress is a StackStatus enum value
23109	StackStatusUpdateRollbackCompleteCleanupInProgress = "UPDATE_ROLLBACK_COMPLETE_CLEANUP_IN_PROGRESS"
23110
23111	// StackStatusUpdateRollbackComplete is a StackStatus enum value
23112	StackStatusUpdateRollbackComplete = "UPDATE_ROLLBACK_COMPLETE"
23113
23114	// StackStatusReviewInProgress is a StackStatus enum value
23115	StackStatusReviewInProgress = "REVIEW_IN_PROGRESS"
23116
23117	// StackStatusImportInProgress is a StackStatus enum value
23118	StackStatusImportInProgress = "IMPORT_IN_PROGRESS"
23119
23120	// StackStatusImportComplete is a StackStatus enum value
23121	StackStatusImportComplete = "IMPORT_COMPLETE"
23122
23123	// StackStatusImportRollbackInProgress is a StackStatus enum value
23124	StackStatusImportRollbackInProgress = "IMPORT_ROLLBACK_IN_PROGRESS"
23125
23126	// StackStatusImportRollbackFailed is a StackStatus enum value
23127	StackStatusImportRollbackFailed = "IMPORT_ROLLBACK_FAILED"
23128
23129	// StackStatusImportRollbackComplete is a StackStatus enum value
23130	StackStatusImportRollbackComplete = "IMPORT_ROLLBACK_COMPLETE"
23131)
23132
23133// StackStatus_Values returns all elements of the StackStatus enum
23134func StackStatus_Values() []string {
23135	return []string{
23136		StackStatusCreateInProgress,
23137		StackStatusCreateFailed,
23138		StackStatusCreateComplete,
23139		StackStatusRollbackInProgress,
23140		StackStatusRollbackFailed,
23141		StackStatusRollbackComplete,
23142		StackStatusDeleteInProgress,
23143		StackStatusDeleteFailed,
23144		StackStatusDeleteComplete,
23145		StackStatusUpdateInProgress,
23146		StackStatusUpdateCompleteCleanupInProgress,
23147		StackStatusUpdateComplete,
23148		StackStatusUpdateFailed,
23149		StackStatusUpdateRollbackInProgress,
23150		StackStatusUpdateRollbackFailed,
23151		StackStatusUpdateRollbackCompleteCleanupInProgress,
23152		StackStatusUpdateRollbackComplete,
23153		StackStatusReviewInProgress,
23154		StackStatusImportInProgress,
23155		StackStatusImportComplete,
23156		StackStatusImportRollbackInProgress,
23157		StackStatusImportRollbackFailed,
23158		StackStatusImportRollbackComplete,
23159	}
23160}
23161
23162const (
23163	// TemplateStageOriginal is a TemplateStage enum value
23164	TemplateStageOriginal = "Original"
23165
23166	// TemplateStageProcessed is a TemplateStage enum value
23167	TemplateStageProcessed = "Processed"
23168)
23169
23170// TemplateStage_Values returns all elements of the TemplateStage enum
23171func TemplateStage_Values() []string {
23172	return []string{
23173		TemplateStageOriginal,
23174		TemplateStageProcessed,
23175	}
23176}
23177
23178const (
23179	// ThirdPartyTypeResource is a ThirdPartyType enum value
23180	ThirdPartyTypeResource = "RESOURCE"
23181
23182	// ThirdPartyTypeModule is a ThirdPartyType enum value
23183	ThirdPartyTypeModule = "MODULE"
23184)
23185
23186// ThirdPartyType_Values returns all elements of the ThirdPartyType enum
23187func ThirdPartyType_Values() []string {
23188	return []string{
23189		ThirdPartyTypeResource,
23190		ThirdPartyTypeModule,
23191	}
23192}
23193
23194const (
23195	// TypeTestsStatusPassed is a TypeTestsStatus enum value
23196	TypeTestsStatusPassed = "PASSED"
23197
23198	// TypeTestsStatusFailed is a TypeTestsStatus enum value
23199	TypeTestsStatusFailed = "FAILED"
23200
23201	// TypeTestsStatusInProgress is a TypeTestsStatus enum value
23202	TypeTestsStatusInProgress = "IN_PROGRESS"
23203
23204	// TypeTestsStatusNotTested is a TypeTestsStatus enum value
23205	TypeTestsStatusNotTested = "NOT_TESTED"
23206)
23207
23208// TypeTestsStatus_Values returns all elements of the TypeTestsStatus enum
23209func TypeTestsStatus_Values() []string {
23210	return []string{
23211		TypeTestsStatusPassed,
23212		TypeTestsStatusFailed,
23213		TypeTestsStatusInProgress,
23214		TypeTestsStatusNotTested,
23215	}
23216}
23217
23218const (
23219	// VersionBumpMajor is a VersionBump enum value
23220	VersionBumpMajor = "MAJOR"
23221
23222	// VersionBumpMinor is a VersionBump enum value
23223	VersionBumpMinor = "MINOR"
23224)
23225
23226// VersionBump_Values returns all elements of the VersionBump enum
23227func VersionBump_Values() []string {
23228	return []string{
23229		VersionBumpMajor,
23230		VersionBumpMinor,
23231	}
23232}
23233
23234const (
23235	// VisibilityPublic is a Visibility enum value
23236	VisibilityPublic = "PUBLIC"
23237
23238	// VisibilityPrivate is a Visibility enum value
23239	VisibilityPrivate = "PRIVATE"
23240)
23241
23242// Visibility_Values returns all elements of the Visibility enum
23243func Visibility_Values() []string {
23244	return []string{
23245		VisibilityPublic,
23246		VisibilityPrivate,
23247	}
23248}
23249