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 have not yet been checked
2056// for drift are not included. Resources that do not currently support drift
2057// detection are not checked, and so not included. For a list of resources that
2058// support drift detection, see Resources that Support Drift Detection (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-stack-drift-resource-list.html).
2059//
2060// Use DetectStackResourceDrift to detect drift on individual resources, or
2061// DetectStackDrift to detect drift on all supported resources for a given stack.
2062//
2063// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
2064// with awserr.Error's Code and Message methods to get detailed information about
2065// the error.
2066//
2067// See the AWS API reference guide for AWS CloudFormation's
2068// API operation DescribeStackResourceDrifts for usage and error information.
2069// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/DescribeStackResourceDrifts
2070func (c *CloudFormation) DescribeStackResourceDrifts(input *DescribeStackResourceDriftsInput) (*DescribeStackResourceDriftsOutput, error) {
2071	req, out := c.DescribeStackResourceDriftsRequest(input)
2072	return out, req.Send()
2073}
2074
2075// DescribeStackResourceDriftsWithContext is the same as DescribeStackResourceDrifts with the addition of
2076// the ability to pass a context and additional request options.
2077//
2078// See DescribeStackResourceDrifts for details on how to use this API operation.
2079//
2080// The context must be non-nil and will be used for request cancellation. If
2081// the context is nil a panic will occur. In the future the SDK may create
2082// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2083// for more information on using Contexts.
2084func (c *CloudFormation) DescribeStackResourceDriftsWithContext(ctx aws.Context, input *DescribeStackResourceDriftsInput, opts ...request.Option) (*DescribeStackResourceDriftsOutput, error) {
2085	req, out := c.DescribeStackResourceDriftsRequest(input)
2086	req.SetContext(ctx)
2087	req.ApplyOptions(opts...)
2088	return out, req.Send()
2089}
2090
2091// DescribeStackResourceDriftsPages iterates over the pages of a DescribeStackResourceDrifts operation,
2092// calling the "fn" function with the response data for each page. To stop
2093// iterating, return false from the fn function.
2094//
2095// See DescribeStackResourceDrifts method for more information on how to use this operation.
2096//
2097// Note: This operation can generate multiple requests to a service.
2098//
2099//    // Example iterating over at most 3 pages of a DescribeStackResourceDrifts operation.
2100//    pageNum := 0
2101//    err := client.DescribeStackResourceDriftsPages(params,
2102//        func(page *cloudformation.DescribeStackResourceDriftsOutput, lastPage bool) bool {
2103//            pageNum++
2104//            fmt.Println(page)
2105//            return pageNum <= 3
2106//        })
2107//
2108func (c *CloudFormation) DescribeStackResourceDriftsPages(input *DescribeStackResourceDriftsInput, fn func(*DescribeStackResourceDriftsOutput, bool) bool) error {
2109	return c.DescribeStackResourceDriftsPagesWithContext(aws.BackgroundContext(), input, fn)
2110}
2111
2112// DescribeStackResourceDriftsPagesWithContext same as DescribeStackResourceDriftsPages except
2113// it takes a Context and allows setting request options on the pages.
2114//
2115// The context must be non-nil and will be used for request cancellation. If
2116// the context is nil a panic will occur. In the future the SDK may create
2117// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2118// for more information on using Contexts.
2119func (c *CloudFormation) DescribeStackResourceDriftsPagesWithContext(ctx aws.Context, input *DescribeStackResourceDriftsInput, fn func(*DescribeStackResourceDriftsOutput, bool) bool, opts ...request.Option) error {
2120	p := request.Pagination{
2121		NewRequest: func() (*request.Request, error) {
2122			var inCpy *DescribeStackResourceDriftsInput
2123			if input != nil {
2124				tmp := *input
2125				inCpy = &tmp
2126			}
2127			req, _ := c.DescribeStackResourceDriftsRequest(inCpy)
2128			req.SetContext(ctx)
2129			req.ApplyOptions(opts...)
2130			return req, nil
2131		},
2132	}
2133
2134	for p.Next() {
2135		if !fn(p.Page().(*DescribeStackResourceDriftsOutput), !p.HasNextPage()) {
2136			break
2137		}
2138	}
2139
2140	return p.Err()
2141}
2142
2143const opDescribeStackResources = "DescribeStackResources"
2144
2145// DescribeStackResourcesRequest generates a "aws/request.Request" representing the
2146// client's request for the DescribeStackResources operation. The "output" return
2147// value will be populated with the request's response once the request completes
2148// successfully.
2149//
2150// Use "Send" method on the returned Request to send the API call to the service.
2151// the "output" return value is not valid until after Send returns without error.
2152//
2153// See DescribeStackResources for more information on using the DescribeStackResources
2154// API call, and error handling.
2155//
2156// This method is useful when you want to inject custom logic or configuration
2157// into the SDK's request lifecycle. Such as custom headers, or retry logic.
2158//
2159//
2160//    // Example sending a request using the DescribeStackResourcesRequest method.
2161//    req, resp := client.DescribeStackResourcesRequest(params)
2162//
2163//    err := req.Send()
2164//    if err == nil { // resp is now filled
2165//        fmt.Println(resp)
2166//    }
2167//
2168// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/DescribeStackResources
2169func (c *CloudFormation) DescribeStackResourcesRequest(input *DescribeStackResourcesInput) (req *request.Request, output *DescribeStackResourcesOutput) {
2170	op := &request.Operation{
2171		Name:       opDescribeStackResources,
2172		HTTPMethod: "POST",
2173		HTTPPath:   "/",
2174	}
2175
2176	if input == nil {
2177		input = &DescribeStackResourcesInput{}
2178	}
2179
2180	output = &DescribeStackResourcesOutput{}
2181	req = c.newRequest(op, input, output)
2182	return
2183}
2184
2185// DescribeStackResources API operation for AWS CloudFormation.
2186//
2187// Returns Amazon Web Services resource descriptions for running and deleted
2188// stacks. If StackName is specified, all the associated resources that are
2189// part of the stack are returned. If PhysicalResourceId is specified, the associated
2190// resources of the stack that the resource belongs to are returned.
2191//
2192// Only the first 100 resources will be returned. If your stack has more resources
2193// than this, you should use ListStackResources instead.
2194//
2195// For deleted stacks, DescribeStackResources returns resource information for
2196// up to 90 days after the stack has been deleted.
2197//
2198// You must specify either StackName or PhysicalResourceId, but not both. In
2199// addition, you can specify LogicalResourceId to filter the returned result.
2200// For more information about resources, the LogicalResourceId and PhysicalResourceId,
2201// go to the CloudFormation User Guide (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/).
2202//
2203// A ValidationError is returned if you specify both StackName and PhysicalResourceId
2204// in the same request.
2205//
2206// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
2207// with awserr.Error's Code and Message methods to get detailed information about
2208// the error.
2209//
2210// See the AWS API reference guide for AWS CloudFormation's
2211// API operation DescribeStackResources for usage and error information.
2212// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/DescribeStackResources
2213func (c *CloudFormation) DescribeStackResources(input *DescribeStackResourcesInput) (*DescribeStackResourcesOutput, error) {
2214	req, out := c.DescribeStackResourcesRequest(input)
2215	return out, req.Send()
2216}
2217
2218// DescribeStackResourcesWithContext is the same as DescribeStackResources with the addition of
2219// the ability to pass a context and additional request options.
2220//
2221// See DescribeStackResources for details on how to use this API operation.
2222//
2223// The context must be non-nil and will be used for request cancellation. If
2224// the context is nil a panic will occur. In the future the SDK may create
2225// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2226// for more information on using Contexts.
2227func (c *CloudFormation) DescribeStackResourcesWithContext(ctx aws.Context, input *DescribeStackResourcesInput, opts ...request.Option) (*DescribeStackResourcesOutput, error) {
2228	req, out := c.DescribeStackResourcesRequest(input)
2229	req.SetContext(ctx)
2230	req.ApplyOptions(opts...)
2231	return out, req.Send()
2232}
2233
2234const opDescribeStackSet = "DescribeStackSet"
2235
2236// DescribeStackSetRequest generates a "aws/request.Request" representing the
2237// client's request for the DescribeStackSet operation. The "output" return
2238// value will be populated with the request's response once the request completes
2239// successfully.
2240//
2241// Use "Send" method on the returned Request to send the API call to the service.
2242// the "output" return value is not valid until after Send returns without error.
2243//
2244// See DescribeStackSet for more information on using the DescribeStackSet
2245// API call, and error handling.
2246//
2247// This method is useful when you want to inject custom logic or configuration
2248// into the SDK's request lifecycle. Such as custom headers, or retry logic.
2249//
2250//
2251//    // Example sending a request using the DescribeStackSetRequest method.
2252//    req, resp := client.DescribeStackSetRequest(params)
2253//
2254//    err := req.Send()
2255//    if err == nil { // resp is now filled
2256//        fmt.Println(resp)
2257//    }
2258//
2259// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/DescribeStackSet
2260func (c *CloudFormation) DescribeStackSetRequest(input *DescribeStackSetInput) (req *request.Request, output *DescribeStackSetOutput) {
2261	op := &request.Operation{
2262		Name:       opDescribeStackSet,
2263		HTTPMethod: "POST",
2264		HTTPPath:   "/",
2265	}
2266
2267	if input == nil {
2268		input = &DescribeStackSetInput{}
2269	}
2270
2271	output = &DescribeStackSetOutput{}
2272	req = c.newRequest(op, input, output)
2273	return
2274}
2275
2276// DescribeStackSet API operation for AWS CloudFormation.
2277//
2278// Returns the description of the specified stack set.
2279//
2280// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
2281// with awserr.Error's Code and Message methods to get detailed information about
2282// the error.
2283//
2284// See the AWS API reference guide for AWS CloudFormation's
2285// API operation DescribeStackSet for usage and error information.
2286//
2287// Returned Error Codes:
2288//   * ErrCodeStackSetNotFoundException "StackSetNotFoundException"
2289//   The specified stack set doesn't exist.
2290//
2291// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/DescribeStackSet
2292func (c *CloudFormation) DescribeStackSet(input *DescribeStackSetInput) (*DescribeStackSetOutput, error) {
2293	req, out := c.DescribeStackSetRequest(input)
2294	return out, req.Send()
2295}
2296
2297// DescribeStackSetWithContext is the same as DescribeStackSet with the addition of
2298// the ability to pass a context and additional request options.
2299//
2300// See DescribeStackSet for details on how to use this API operation.
2301//
2302// The context must be non-nil and will be used for request cancellation. If
2303// the context is nil a panic will occur. In the future the SDK may create
2304// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2305// for more information on using Contexts.
2306func (c *CloudFormation) DescribeStackSetWithContext(ctx aws.Context, input *DescribeStackSetInput, opts ...request.Option) (*DescribeStackSetOutput, error) {
2307	req, out := c.DescribeStackSetRequest(input)
2308	req.SetContext(ctx)
2309	req.ApplyOptions(opts...)
2310	return out, req.Send()
2311}
2312
2313const opDescribeStackSetOperation = "DescribeStackSetOperation"
2314
2315// DescribeStackSetOperationRequest generates a "aws/request.Request" representing the
2316// client's request for the DescribeStackSetOperation operation. The "output" return
2317// value will be populated with the request's response once the request completes
2318// successfully.
2319//
2320// Use "Send" method on the returned Request to send the API call to the service.
2321// the "output" return value is not valid until after Send returns without error.
2322//
2323// See DescribeStackSetOperation for more information on using the DescribeStackSetOperation
2324// API call, and error handling.
2325//
2326// This method is useful when you want to inject custom logic or configuration
2327// into the SDK's request lifecycle. Such as custom headers, or retry logic.
2328//
2329//
2330//    // Example sending a request using the DescribeStackSetOperationRequest method.
2331//    req, resp := client.DescribeStackSetOperationRequest(params)
2332//
2333//    err := req.Send()
2334//    if err == nil { // resp is now filled
2335//        fmt.Println(resp)
2336//    }
2337//
2338// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/DescribeStackSetOperation
2339func (c *CloudFormation) DescribeStackSetOperationRequest(input *DescribeStackSetOperationInput) (req *request.Request, output *DescribeStackSetOperationOutput) {
2340	op := &request.Operation{
2341		Name:       opDescribeStackSetOperation,
2342		HTTPMethod: "POST",
2343		HTTPPath:   "/",
2344	}
2345
2346	if input == nil {
2347		input = &DescribeStackSetOperationInput{}
2348	}
2349
2350	output = &DescribeStackSetOperationOutput{}
2351	req = c.newRequest(op, input, output)
2352	return
2353}
2354
2355// DescribeStackSetOperation API operation for AWS CloudFormation.
2356//
2357// Returns the description of the specified stack set operation.
2358//
2359// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
2360// with awserr.Error's Code and Message methods to get detailed information about
2361// the error.
2362//
2363// See the AWS API reference guide for AWS CloudFormation's
2364// API operation DescribeStackSetOperation for usage and error information.
2365//
2366// Returned Error Codes:
2367//   * ErrCodeStackSetNotFoundException "StackSetNotFoundException"
2368//   The specified stack set doesn't exist.
2369//
2370//   * ErrCodeOperationNotFoundException "OperationNotFoundException"
2371//   The specified ID refers to an operation that doesn't exist.
2372//
2373// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/DescribeStackSetOperation
2374func (c *CloudFormation) DescribeStackSetOperation(input *DescribeStackSetOperationInput) (*DescribeStackSetOperationOutput, error) {
2375	req, out := c.DescribeStackSetOperationRequest(input)
2376	return out, req.Send()
2377}
2378
2379// DescribeStackSetOperationWithContext is the same as DescribeStackSetOperation with the addition of
2380// the ability to pass a context and additional request options.
2381//
2382// See DescribeStackSetOperation for details on how to use this API operation.
2383//
2384// The context must be non-nil and will be used for request cancellation. If
2385// the context is nil a panic will occur. In the future the SDK may create
2386// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2387// for more information on using Contexts.
2388func (c *CloudFormation) DescribeStackSetOperationWithContext(ctx aws.Context, input *DescribeStackSetOperationInput, opts ...request.Option) (*DescribeStackSetOperationOutput, error) {
2389	req, out := c.DescribeStackSetOperationRequest(input)
2390	req.SetContext(ctx)
2391	req.ApplyOptions(opts...)
2392	return out, req.Send()
2393}
2394
2395const opDescribeStacks = "DescribeStacks"
2396
2397// DescribeStacksRequest generates a "aws/request.Request" representing the
2398// client's request for the DescribeStacks operation. The "output" return
2399// value will be populated with the request's response once the request completes
2400// successfully.
2401//
2402// Use "Send" method on the returned Request to send the API call to the service.
2403// the "output" return value is not valid until after Send returns without error.
2404//
2405// See DescribeStacks for more information on using the DescribeStacks
2406// API call, and error handling.
2407//
2408// This method is useful when you want to inject custom logic or configuration
2409// into the SDK's request lifecycle. Such as custom headers, or retry logic.
2410//
2411//
2412//    // Example sending a request using the DescribeStacksRequest method.
2413//    req, resp := client.DescribeStacksRequest(params)
2414//
2415//    err := req.Send()
2416//    if err == nil { // resp is now filled
2417//        fmt.Println(resp)
2418//    }
2419//
2420// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/DescribeStacks
2421func (c *CloudFormation) DescribeStacksRequest(input *DescribeStacksInput) (req *request.Request, output *DescribeStacksOutput) {
2422	op := &request.Operation{
2423		Name:       opDescribeStacks,
2424		HTTPMethod: "POST",
2425		HTTPPath:   "/",
2426		Paginator: &request.Paginator{
2427			InputTokens:     []string{"NextToken"},
2428			OutputTokens:    []string{"NextToken"},
2429			LimitToken:      "",
2430			TruncationToken: "",
2431		},
2432	}
2433
2434	if input == nil {
2435		input = &DescribeStacksInput{}
2436	}
2437
2438	output = &DescribeStacksOutput{}
2439	req = c.newRequest(op, input, output)
2440	return
2441}
2442
2443// DescribeStacks API operation for AWS CloudFormation.
2444//
2445// Returns the description for the specified stack; if no stack name was specified,
2446// then it returns the description for all the stacks created.
2447//
2448// If the stack does not exist, an AmazonCloudFormationException is returned.
2449//
2450// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
2451// with awserr.Error's Code and Message methods to get detailed information about
2452// the error.
2453//
2454// See the AWS API reference guide for AWS CloudFormation's
2455// API operation DescribeStacks for usage and error information.
2456// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/DescribeStacks
2457func (c *CloudFormation) DescribeStacks(input *DescribeStacksInput) (*DescribeStacksOutput, error) {
2458	req, out := c.DescribeStacksRequest(input)
2459	return out, req.Send()
2460}
2461
2462// DescribeStacksWithContext is the same as DescribeStacks with the addition of
2463// the ability to pass a context and additional request options.
2464//
2465// See DescribeStacks for details on how to use this API operation.
2466//
2467// The context must be non-nil and will be used for request cancellation. If
2468// the context is nil a panic will occur. In the future the SDK may create
2469// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2470// for more information on using Contexts.
2471func (c *CloudFormation) DescribeStacksWithContext(ctx aws.Context, input *DescribeStacksInput, opts ...request.Option) (*DescribeStacksOutput, error) {
2472	req, out := c.DescribeStacksRequest(input)
2473	req.SetContext(ctx)
2474	req.ApplyOptions(opts...)
2475	return out, req.Send()
2476}
2477
2478// DescribeStacksPages iterates over the pages of a DescribeStacks operation,
2479// calling the "fn" function with the response data for each page. To stop
2480// iterating, return false from the fn function.
2481//
2482// See DescribeStacks method for more information on how to use this operation.
2483//
2484// Note: This operation can generate multiple requests to a service.
2485//
2486//    // Example iterating over at most 3 pages of a DescribeStacks operation.
2487//    pageNum := 0
2488//    err := client.DescribeStacksPages(params,
2489//        func(page *cloudformation.DescribeStacksOutput, lastPage bool) bool {
2490//            pageNum++
2491//            fmt.Println(page)
2492//            return pageNum <= 3
2493//        })
2494//
2495func (c *CloudFormation) DescribeStacksPages(input *DescribeStacksInput, fn func(*DescribeStacksOutput, bool) bool) error {
2496	return c.DescribeStacksPagesWithContext(aws.BackgroundContext(), input, fn)
2497}
2498
2499// DescribeStacksPagesWithContext same as DescribeStacksPages except
2500// it takes a Context and allows setting request options on the pages.
2501//
2502// The context must be non-nil and will be used for request cancellation. If
2503// the context is nil a panic will occur. In the future the SDK may create
2504// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2505// for more information on using Contexts.
2506func (c *CloudFormation) DescribeStacksPagesWithContext(ctx aws.Context, input *DescribeStacksInput, fn func(*DescribeStacksOutput, bool) bool, opts ...request.Option) error {
2507	p := request.Pagination{
2508		NewRequest: func() (*request.Request, error) {
2509			var inCpy *DescribeStacksInput
2510			if input != nil {
2511				tmp := *input
2512				inCpy = &tmp
2513			}
2514			req, _ := c.DescribeStacksRequest(inCpy)
2515			req.SetContext(ctx)
2516			req.ApplyOptions(opts...)
2517			return req, nil
2518		},
2519	}
2520
2521	for p.Next() {
2522		if !fn(p.Page().(*DescribeStacksOutput), !p.HasNextPage()) {
2523			break
2524		}
2525	}
2526
2527	return p.Err()
2528}
2529
2530const opDescribeType = "DescribeType"
2531
2532// DescribeTypeRequest generates a "aws/request.Request" representing the
2533// client's request for the DescribeType operation. The "output" return
2534// value will be populated with the request's response once the request completes
2535// successfully.
2536//
2537// Use "Send" method on the returned Request to send the API call to the service.
2538// the "output" return value is not valid until after Send returns without error.
2539//
2540// See DescribeType for more information on using the DescribeType
2541// API call, and error handling.
2542//
2543// This method is useful when you want to inject custom logic or configuration
2544// into the SDK's request lifecycle. Such as custom headers, or retry logic.
2545//
2546//
2547//    // Example sending a request using the DescribeTypeRequest method.
2548//    req, resp := client.DescribeTypeRequest(params)
2549//
2550//    err := req.Send()
2551//    if err == nil { // resp is now filled
2552//        fmt.Println(resp)
2553//    }
2554//
2555// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/DescribeType
2556func (c *CloudFormation) DescribeTypeRequest(input *DescribeTypeInput) (req *request.Request, output *DescribeTypeOutput) {
2557	op := &request.Operation{
2558		Name:       opDescribeType,
2559		HTTPMethod: "POST",
2560		HTTPPath:   "/",
2561	}
2562
2563	if input == nil {
2564		input = &DescribeTypeInput{}
2565	}
2566
2567	output = &DescribeTypeOutput{}
2568	req = c.newRequest(op, input, output)
2569	return
2570}
2571
2572// DescribeType API operation for AWS CloudFormation.
2573//
2574// Returns detailed information about an extension that has been registered.
2575//
2576// If you specify a VersionId, DescribeType returns information about that specific
2577// extension version. Otherwise, it returns information about the default extension
2578// version.
2579//
2580// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
2581// with awserr.Error's Code and Message methods to get detailed information about
2582// the error.
2583//
2584// See the AWS API reference guide for AWS CloudFormation's
2585// API operation DescribeType for usage and error information.
2586//
2587// Returned Error Codes:
2588//   * ErrCodeCFNRegistryException "CFNRegistryException"
2589//   An error occurred during a CloudFormation registry operation.
2590//
2591//   * ErrCodeTypeNotFoundException "TypeNotFoundException"
2592//   The specified extension does not exist in the CloudFormation registry.
2593//
2594// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/DescribeType
2595func (c *CloudFormation) DescribeType(input *DescribeTypeInput) (*DescribeTypeOutput, error) {
2596	req, out := c.DescribeTypeRequest(input)
2597	return out, req.Send()
2598}
2599
2600// DescribeTypeWithContext is the same as DescribeType with the addition of
2601// the ability to pass a context and additional request options.
2602//
2603// See DescribeType for details on how to use this API operation.
2604//
2605// The context must be non-nil and will be used for request cancellation. If
2606// the context is nil a panic will occur. In the future the SDK may create
2607// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2608// for more information on using Contexts.
2609func (c *CloudFormation) DescribeTypeWithContext(ctx aws.Context, input *DescribeTypeInput, opts ...request.Option) (*DescribeTypeOutput, error) {
2610	req, out := c.DescribeTypeRequest(input)
2611	req.SetContext(ctx)
2612	req.ApplyOptions(opts...)
2613	return out, req.Send()
2614}
2615
2616const opDescribeTypeRegistration = "DescribeTypeRegistration"
2617
2618// DescribeTypeRegistrationRequest generates a "aws/request.Request" representing the
2619// client's request for the DescribeTypeRegistration operation. The "output" return
2620// value will be populated with the request's response once the request completes
2621// successfully.
2622//
2623// Use "Send" method on the returned Request to send the API call to the service.
2624// the "output" return value is not valid until after Send returns without error.
2625//
2626// See DescribeTypeRegistration for more information on using the DescribeTypeRegistration
2627// API call, and error handling.
2628//
2629// This method is useful when you want to inject custom logic or configuration
2630// into the SDK's request lifecycle. Such as custom headers, or retry logic.
2631//
2632//
2633//    // Example sending a request using the DescribeTypeRegistrationRequest method.
2634//    req, resp := client.DescribeTypeRegistrationRequest(params)
2635//
2636//    err := req.Send()
2637//    if err == nil { // resp is now filled
2638//        fmt.Println(resp)
2639//    }
2640//
2641// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/DescribeTypeRegistration
2642func (c *CloudFormation) DescribeTypeRegistrationRequest(input *DescribeTypeRegistrationInput) (req *request.Request, output *DescribeTypeRegistrationOutput) {
2643	op := &request.Operation{
2644		Name:       opDescribeTypeRegistration,
2645		HTTPMethod: "POST",
2646		HTTPPath:   "/",
2647	}
2648
2649	if input == nil {
2650		input = &DescribeTypeRegistrationInput{}
2651	}
2652
2653	output = &DescribeTypeRegistrationOutput{}
2654	req = c.newRequest(op, input, output)
2655	return
2656}
2657
2658// DescribeTypeRegistration API operation for AWS CloudFormation.
2659//
2660// Returns information about an extension's registration, including its current
2661// status and type and version identifiers.
2662//
2663// When you initiate a registration request using RegisterType , you can then
2664// use DescribeTypeRegistration to monitor the progress of that registration
2665// request.
2666//
2667// Once the registration request has completed, use DescribeType to return detailed
2668// information about an extension.
2669//
2670// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
2671// with awserr.Error's Code and Message methods to get detailed information about
2672// the error.
2673//
2674// See the AWS API reference guide for AWS CloudFormation's
2675// API operation DescribeTypeRegistration for usage and error information.
2676//
2677// Returned Error Codes:
2678//   * ErrCodeCFNRegistryException "CFNRegistryException"
2679//   An error occurred during a CloudFormation registry operation.
2680//
2681// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/DescribeTypeRegistration
2682func (c *CloudFormation) DescribeTypeRegistration(input *DescribeTypeRegistrationInput) (*DescribeTypeRegistrationOutput, error) {
2683	req, out := c.DescribeTypeRegistrationRequest(input)
2684	return out, req.Send()
2685}
2686
2687// DescribeTypeRegistrationWithContext is the same as DescribeTypeRegistration with the addition of
2688// the ability to pass a context and additional request options.
2689//
2690// See DescribeTypeRegistration for details on how to use this API operation.
2691//
2692// The context must be non-nil and will be used for request cancellation. If
2693// the context is nil a panic will occur. In the future the SDK may create
2694// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2695// for more information on using Contexts.
2696func (c *CloudFormation) DescribeTypeRegistrationWithContext(ctx aws.Context, input *DescribeTypeRegistrationInput, opts ...request.Option) (*DescribeTypeRegistrationOutput, error) {
2697	req, out := c.DescribeTypeRegistrationRequest(input)
2698	req.SetContext(ctx)
2699	req.ApplyOptions(opts...)
2700	return out, req.Send()
2701}
2702
2703const opDetectStackDrift = "DetectStackDrift"
2704
2705// DetectStackDriftRequest generates a "aws/request.Request" representing the
2706// client's request for the DetectStackDrift operation. The "output" return
2707// value will be populated with the request's response once the request completes
2708// successfully.
2709//
2710// Use "Send" method on the returned Request to send the API call to the service.
2711// the "output" return value is not valid until after Send returns without error.
2712//
2713// See DetectStackDrift for more information on using the DetectStackDrift
2714// API call, and error handling.
2715//
2716// This method is useful when you want to inject custom logic or configuration
2717// into the SDK's request lifecycle. Such as custom headers, or retry logic.
2718//
2719//
2720//    // Example sending a request using the DetectStackDriftRequest method.
2721//    req, resp := client.DetectStackDriftRequest(params)
2722//
2723//    err := req.Send()
2724//    if err == nil { // resp is now filled
2725//        fmt.Println(resp)
2726//    }
2727//
2728// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/DetectStackDrift
2729func (c *CloudFormation) DetectStackDriftRequest(input *DetectStackDriftInput) (req *request.Request, output *DetectStackDriftOutput) {
2730	op := &request.Operation{
2731		Name:       opDetectStackDrift,
2732		HTTPMethod: "POST",
2733		HTTPPath:   "/",
2734	}
2735
2736	if input == nil {
2737		input = &DetectStackDriftInput{}
2738	}
2739
2740	output = &DetectStackDriftOutput{}
2741	req = c.newRequest(op, input, output)
2742	return
2743}
2744
2745// DetectStackDrift API operation for AWS CloudFormation.
2746//
2747// Detects whether a stack's actual configuration differs, or has drifted, from
2748// it's expected configuration, as defined in the stack template and any values
2749// specified as template parameters. For each resource in the stack that supports
2750// drift detection, CloudFormation compares the actual configuration of the
2751// resource with its expected template configuration. Only resource properties
2752// explicitly defined in the stack template are checked for drift. A stack is
2753// considered to have drifted if one or more of its resources differ from their
2754// expected template configurations. For more information, see Detecting Unregulated
2755// Configuration Changes to Stacks and Resources (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-stack-drift.html).
2756//
2757// Use DetectStackDrift to detect drift on all supported resources for a given
2758// stack, or DetectStackResourceDrift to detect drift on individual resources.
2759//
2760// For a list of stack resources that currently support drift detection, see
2761// Resources that Support Drift Detection (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-stack-drift-resource-list.html).
2762//
2763// DetectStackDrift can take up to several minutes, depending on the number
2764// of resources contained within the stack. Use DescribeStackDriftDetectionStatus
2765// to monitor the progress of a detect stack drift operation. Once the drift
2766// detection operation has completed, use DescribeStackResourceDrifts to return
2767// drift information about the stack and its resources.
2768//
2769// When detecting drift on a stack, CloudFormation does not detect drift on
2770// any nested stacks belonging to that stack. Perform DetectStackDrift directly
2771// on the nested stack itself.
2772//
2773// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
2774// with awserr.Error's Code and Message methods to get detailed information about
2775// the error.
2776//
2777// See the AWS API reference guide for AWS CloudFormation's
2778// API operation DetectStackDrift for usage and error information.
2779// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/DetectStackDrift
2780func (c *CloudFormation) DetectStackDrift(input *DetectStackDriftInput) (*DetectStackDriftOutput, error) {
2781	req, out := c.DetectStackDriftRequest(input)
2782	return out, req.Send()
2783}
2784
2785// DetectStackDriftWithContext is the same as DetectStackDrift with the addition of
2786// the ability to pass a context and additional request options.
2787//
2788// See DetectStackDrift for details on how to use this API operation.
2789//
2790// The context must be non-nil and will be used for request cancellation. If
2791// the context is nil a panic will occur. In the future the SDK may create
2792// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2793// for more information on using Contexts.
2794func (c *CloudFormation) DetectStackDriftWithContext(ctx aws.Context, input *DetectStackDriftInput, opts ...request.Option) (*DetectStackDriftOutput, error) {
2795	req, out := c.DetectStackDriftRequest(input)
2796	req.SetContext(ctx)
2797	req.ApplyOptions(opts...)
2798	return out, req.Send()
2799}
2800
2801const opDetectStackResourceDrift = "DetectStackResourceDrift"
2802
2803// DetectStackResourceDriftRequest generates a "aws/request.Request" representing the
2804// client's request for the DetectStackResourceDrift operation. The "output" return
2805// value will be populated with the request's response once the request completes
2806// successfully.
2807//
2808// Use "Send" method on the returned Request to send the API call to the service.
2809// the "output" return value is not valid until after Send returns without error.
2810//
2811// See DetectStackResourceDrift for more information on using the DetectStackResourceDrift
2812// API call, and error handling.
2813//
2814// This method is useful when you want to inject custom logic or configuration
2815// into the SDK's request lifecycle. Such as custom headers, or retry logic.
2816//
2817//
2818//    // Example sending a request using the DetectStackResourceDriftRequest method.
2819//    req, resp := client.DetectStackResourceDriftRequest(params)
2820//
2821//    err := req.Send()
2822//    if err == nil { // resp is now filled
2823//        fmt.Println(resp)
2824//    }
2825//
2826// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/DetectStackResourceDrift
2827func (c *CloudFormation) DetectStackResourceDriftRequest(input *DetectStackResourceDriftInput) (req *request.Request, output *DetectStackResourceDriftOutput) {
2828	op := &request.Operation{
2829		Name:       opDetectStackResourceDrift,
2830		HTTPMethod: "POST",
2831		HTTPPath:   "/",
2832	}
2833
2834	if input == nil {
2835		input = &DetectStackResourceDriftInput{}
2836	}
2837
2838	output = &DetectStackResourceDriftOutput{}
2839	req = c.newRequest(op, input, output)
2840	return
2841}
2842
2843// DetectStackResourceDrift API operation for AWS CloudFormation.
2844//
2845// Returns information about whether a resource's actual configuration differs,
2846// or has drifted, from it's expected configuration, as defined in the stack
2847// template and any values specified as template parameters. This information
2848// includes actual and expected property values for resources in which CloudFormation
2849// detects drift. Only resource properties explicitly defined in the stack template
2850// are checked for drift. For more information about stack and resource drift,
2851// see Detecting Unregulated Configuration Changes to Stacks and Resources (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-stack-drift.html).
2852//
2853// Use DetectStackResourceDrift to detect drift on individual resources, or
2854// DetectStackDrift to detect drift on all resources in a given stack that support
2855// drift detection.
2856//
2857// Resources that do not currently support drift detection cannot be checked.
2858// For a list of resources that support drift detection, see Resources that
2859// Support Drift Detection (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-stack-drift-resource-list.html).
2860//
2861// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
2862// with awserr.Error's Code and Message methods to get detailed information about
2863// the error.
2864//
2865// See the AWS API reference guide for AWS CloudFormation's
2866// API operation DetectStackResourceDrift for usage and error information.
2867// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/DetectStackResourceDrift
2868func (c *CloudFormation) DetectStackResourceDrift(input *DetectStackResourceDriftInput) (*DetectStackResourceDriftOutput, error) {
2869	req, out := c.DetectStackResourceDriftRequest(input)
2870	return out, req.Send()
2871}
2872
2873// DetectStackResourceDriftWithContext is the same as DetectStackResourceDrift with the addition of
2874// the ability to pass a context and additional request options.
2875//
2876// See DetectStackResourceDrift for details on how to use this API operation.
2877//
2878// The context must be non-nil and will be used for request cancellation. If
2879// the context is nil a panic will occur. In the future the SDK may create
2880// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2881// for more information on using Contexts.
2882func (c *CloudFormation) DetectStackResourceDriftWithContext(ctx aws.Context, input *DetectStackResourceDriftInput, opts ...request.Option) (*DetectStackResourceDriftOutput, error) {
2883	req, out := c.DetectStackResourceDriftRequest(input)
2884	req.SetContext(ctx)
2885	req.ApplyOptions(opts...)
2886	return out, req.Send()
2887}
2888
2889const opDetectStackSetDrift = "DetectStackSetDrift"
2890
2891// DetectStackSetDriftRequest generates a "aws/request.Request" representing the
2892// client's request for the DetectStackSetDrift operation. The "output" return
2893// value will be populated with the request's response once the request completes
2894// successfully.
2895//
2896// Use "Send" method on the returned Request to send the API call to the service.
2897// the "output" return value is not valid until after Send returns without error.
2898//
2899// See DetectStackSetDrift for more information on using the DetectStackSetDrift
2900// API call, and error handling.
2901//
2902// This method is useful when you want to inject custom logic or configuration
2903// into the SDK's request lifecycle. Such as custom headers, or retry logic.
2904//
2905//
2906//    // Example sending a request using the DetectStackSetDriftRequest method.
2907//    req, resp := client.DetectStackSetDriftRequest(params)
2908//
2909//    err := req.Send()
2910//    if err == nil { // resp is now filled
2911//        fmt.Println(resp)
2912//    }
2913//
2914// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/DetectStackSetDrift
2915func (c *CloudFormation) DetectStackSetDriftRequest(input *DetectStackSetDriftInput) (req *request.Request, output *DetectStackSetDriftOutput) {
2916	op := &request.Operation{
2917		Name:       opDetectStackSetDrift,
2918		HTTPMethod: "POST",
2919		HTTPPath:   "/",
2920	}
2921
2922	if input == nil {
2923		input = &DetectStackSetDriftInput{}
2924	}
2925
2926	output = &DetectStackSetDriftOutput{}
2927	req = c.newRequest(op, input, output)
2928	return
2929}
2930
2931// DetectStackSetDrift API operation for AWS CloudFormation.
2932//
2933// Detect drift on a stack set. When CloudFormation performs drift detection
2934// on a stack set, it performs drift detection on the stack associated with
2935// each stack instance in the stack set. For more information, see How CloudFormation
2936// Performs Drift Detection on a Stack Set (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/stacksets-drift.html).
2937//
2938// DetectStackSetDrift returns the OperationId of the stack set drift detection
2939// operation. Use this operation id with DescribeStackSetOperation to monitor
2940// the progress of the drift detection operation. The drift detection operation
2941// may take some time, depending on the number of stack instances included in
2942// the stack set, as well as the number of resources included in each stack.
2943//
2944// Once the operation has completed, use the following actions to return drift
2945// information:
2946//
2947//    * Use DescribeStackSet to return detailed information about the stack
2948//    set, including detailed information about the last completed drift operation
2949//    performed on the stack set. (Information about drift operations that are
2950//    in progress is not included.)
2951//
2952//    * Use ListStackInstances to return a list of stack instances belonging
2953//    to the stack set, including the drift status and last drift time checked
2954//    of each instance.
2955//
2956//    * Use DescribeStackInstance to return detailed information about a specific
2957//    stack instance, including its drift status and last drift time checked.
2958//
2959// For more information on performing a drift detection operation on a stack
2960// set, see Detecting Unmanaged Changes in Stack Sets (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/stacksets-drift.html).
2961//
2962// You can only run a single drift detection operation on a given stack set
2963// at one time.
2964//
2965// To stop a drift detection stack set operation, use StopStackSetOperation .
2966//
2967// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
2968// with awserr.Error's Code and Message methods to get detailed information about
2969// the error.
2970//
2971// See the AWS API reference guide for AWS CloudFormation's
2972// API operation DetectStackSetDrift for usage and error information.
2973//
2974// Returned Error Codes:
2975//   * ErrCodeInvalidOperationException "InvalidOperationException"
2976//   The specified operation isn't valid.
2977//
2978//   * ErrCodeOperationInProgressException "OperationInProgressException"
2979//   Another operation is currently in progress for this stack set. Only one operation
2980//   can be performed for a stack set at a given time.
2981//
2982//   * ErrCodeStackSetNotFoundException "StackSetNotFoundException"
2983//   The specified stack set doesn't exist.
2984//
2985// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/DetectStackSetDrift
2986func (c *CloudFormation) DetectStackSetDrift(input *DetectStackSetDriftInput) (*DetectStackSetDriftOutput, error) {
2987	req, out := c.DetectStackSetDriftRequest(input)
2988	return out, req.Send()
2989}
2990
2991// DetectStackSetDriftWithContext is the same as DetectStackSetDrift with the addition of
2992// the ability to pass a context and additional request options.
2993//
2994// See DetectStackSetDrift for details on how to use this API operation.
2995//
2996// The context must be non-nil and will be used for request cancellation. If
2997// the context is nil a panic will occur. In the future the SDK may create
2998// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2999// for more information on using Contexts.
3000func (c *CloudFormation) DetectStackSetDriftWithContext(ctx aws.Context, input *DetectStackSetDriftInput, opts ...request.Option) (*DetectStackSetDriftOutput, error) {
3001	req, out := c.DetectStackSetDriftRequest(input)
3002	req.SetContext(ctx)
3003	req.ApplyOptions(opts...)
3004	return out, req.Send()
3005}
3006
3007const opEstimateTemplateCost = "EstimateTemplateCost"
3008
3009// EstimateTemplateCostRequest generates a "aws/request.Request" representing the
3010// client's request for the EstimateTemplateCost operation. The "output" return
3011// value will be populated with the request's response once the request completes
3012// successfully.
3013//
3014// Use "Send" method on the returned Request to send the API call to the service.
3015// the "output" return value is not valid until after Send returns without error.
3016//
3017// See EstimateTemplateCost for more information on using the EstimateTemplateCost
3018// API call, and error handling.
3019//
3020// This method is useful when you want to inject custom logic or configuration
3021// into the SDK's request lifecycle. Such as custom headers, or retry logic.
3022//
3023//
3024//    // Example sending a request using the EstimateTemplateCostRequest method.
3025//    req, resp := client.EstimateTemplateCostRequest(params)
3026//
3027//    err := req.Send()
3028//    if err == nil { // resp is now filled
3029//        fmt.Println(resp)
3030//    }
3031//
3032// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/EstimateTemplateCost
3033func (c *CloudFormation) EstimateTemplateCostRequest(input *EstimateTemplateCostInput) (req *request.Request, output *EstimateTemplateCostOutput) {
3034	op := &request.Operation{
3035		Name:       opEstimateTemplateCost,
3036		HTTPMethod: "POST",
3037		HTTPPath:   "/",
3038	}
3039
3040	if input == nil {
3041		input = &EstimateTemplateCostInput{}
3042	}
3043
3044	output = &EstimateTemplateCostOutput{}
3045	req = c.newRequest(op, input, output)
3046	return
3047}
3048
3049// EstimateTemplateCost API operation for AWS CloudFormation.
3050//
3051// Returns the estimated monthly cost of a template. The return value is an
3052// Amazon Web Services Simple Monthly Calculator URL with a query string that
3053// describes the resources required to run the template.
3054//
3055// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
3056// with awserr.Error's Code and Message methods to get detailed information about
3057// the error.
3058//
3059// See the AWS API reference guide for AWS CloudFormation's
3060// API operation EstimateTemplateCost for usage and error information.
3061// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/EstimateTemplateCost
3062func (c *CloudFormation) EstimateTemplateCost(input *EstimateTemplateCostInput) (*EstimateTemplateCostOutput, error) {
3063	req, out := c.EstimateTemplateCostRequest(input)
3064	return out, req.Send()
3065}
3066
3067// EstimateTemplateCostWithContext is the same as EstimateTemplateCost with the addition of
3068// the ability to pass a context and additional request options.
3069//
3070// See EstimateTemplateCost for details on how to use this API operation.
3071//
3072// The context must be non-nil and will be used for request cancellation. If
3073// the context is nil a panic will occur. In the future the SDK may create
3074// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3075// for more information on using Contexts.
3076func (c *CloudFormation) EstimateTemplateCostWithContext(ctx aws.Context, input *EstimateTemplateCostInput, opts ...request.Option) (*EstimateTemplateCostOutput, error) {
3077	req, out := c.EstimateTemplateCostRequest(input)
3078	req.SetContext(ctx)
3079	req.ApplyOptions(opts...)
3080	return out, req.Send()
3081}
3082
3083const opExecuteChangeSet = "ExecuteChangeSet"
3084
3085// ExecuteChangeSetRequest generates a "aws/request.Request" representing the
3086// client's request for the ExecuteChangeSet operation. The "output" return
3087// value will be populated with the request's response once the request completes
3088// successfully.
3089//
3090// Use "Send" method on the returned Request to send the API call to the service.
3091// the "output" return value is not valid until after Send returns without error.
3092//
3093// See ExecuteChangeSet for more information on using the ExecuteChangeSet
3094// API call, and error handling.
3095//
3096// This method is useful when you want to inject custom logic or configuration
3097// into the SDK's request lifecycle. Such as custom headers, or retry logic.
3098//
3099//
3100//    // Example sending a request using the ExecuteChangeSetRequest method.
3101//    req, resp := client.ExecuteChangeSetRequest(params)
3102//
3103//    err := req.Send()
3104//    if err == nil { // resp is now filled
3105//        fmt.Println(resp)
3106//    }
3107//
3108// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/ExecuteChangeSet
3109func (c *CloudFormation) ExecuteChangeSetRequest(input *ExecuteChangeSetInput) (req *request.Request, output *ExecuteChangeSetOutput) {
3110	op := &request.Operation{
3111		Name:       opExecuteChangeSet,
3112		HTTPMethod: "POST",
3113		HTTPPath:   "/",
3114	}
3115
3116	if input == nil {
3117		input = &ExecuteChangeSetInput{}
3118	}
3119
3120	output = &ExecuteChangeSetOutput{}
3121	req = c.newRequest(op, input, output)
3122	req.Handlers.Unmarshal.Swap(query.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
3123	return
3124}
3125
3126// ExecuteChangeSet API operation for AWS CloudFormation.
3127//
3128// Updates a stack using the input information that was provided when the specified
3129// change set was created. After the call successfully completes, CloudFormation
3130// starts updating the stack. Use the DescribeStacks action to view the status
3131// of the update.
3132//
3133// When you execute a change set, CloudFormation deletes all other change sets
3134// associated with the stack because they aren't valid for the updated stack.
3135//
3136// If a stack policy is associated with the stack, CloudFormation enforces the
3137// policy during the update. You can't specify a temporary stack policy that
3138// overrides the current policy.
3139//
3140// To create a change set for the entire stack hierachy, IncludeNestedStacks
3141// must have been set to True.
3142//
3143// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
3144// with awserr.Error's Code and Message methods to get detailed information about
3145// the error.
3146//
3147// See the AWS API reference guide for AWS CloudFormation's
3148// API operation ExecuteChangeSet for usage and error information.
3149//
3150// Returned Error Codes:
3151//   * ErrCodeInvalidChangeSetStatusException "InvalidChangeSetStatus"
3152//   The specified change set can't be used to update the stack. For example,
3153//   the change set status might be CREATE_IN_PROGRESS, or the stack status might
3154//   be UPDATE_IN_PROGRESS.
3155//
3156//   * ErrCodeChangeSetNotFoundException "ChangeSetNotFound"
3157//   The specified change set name or ID doesn't exit. To view valid change sets
3158//   for a stack, use the ListChangeSets action.
3159//
3160//   * ErrCodeInsufficientCapabilitiesException "InsufficientCapabilitiesException"
3161//   The template contains resources with capabilities that weren't specified
3162//   in the Capabilities parameter.
3163//
3164//   * ErrCodeTokenAlreadyExistsException "TokenAlreadyExistsException"
3165//   A client request token already exists.
3166//
3167// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/ExecuteChangeSet
3168func (c *CloudFormation) ExecuteChangeSet(input *ExecuteChangeSetInput) (*ExecuteChangeSetOutput, error) {
3169	req, out := c.ExecuteChangeSetRequest(input)
3170	return out, req.Send()
3171}
3172
3173// ExecuteChangeSetWithContext is the same as ExecuteChangeSet with the addition of
3174// the ability to pass a context and additional request options.
3175//
3176// See ExecuteChangeSet for details on how to use this API operation.
3177//
3178// The context must be non-nil and will be used for request cancellation. If
3179// the context is nil a panic will occur. In the future the SDK may create
3180// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3181// for more information on using Contexts.
3182func (c *CloudFormation) ExecuteChangeSetWithContext(ctx aws.Context, input *ExecuteChangeSetInput, opts ...request.Option) (*ExecuteChangeSetOutput, error) {
3183	req, out := c.ExecuteChangeSetRequest(input)
3184	req.SetContext(ctx)
3185	req.ApplyOptions(opts...)
3186	return out, req.Send()
3187}
3188
3189const opGetStackPolicy = "GetStackPolicy"
3190
3191// GetStackPolicyRequest generates a "aws/request.Request" representing the
3192// client's request for the GetStackPolicy operation. The "output" return
3193// value will be populated with the request's response once the request completes
3194// successfully.
3195//
3196// Use "Send" method on the returned Request to send the API call to the service.
3197// the "output" return value is not valid until after Send returns without error.
3198//
3199// See GetStackPolicy for more information on using the GetStackPolicy
3200// API call, and error handling.
3201//
3202// This method is useful when you want to inject custom logic or configuration
3203// into the SDK's request lifecycle. Such as custom headers, or retry logic.
3204//
3205//
3206//    // Example sending a request using the GetStackPolicyRequest method.
3207//    req, resp := client.GetStackPolicyRequest(params)
3208//
3209//    err := req.Send()
3210//    if err == nil { // resp is now filled
3211//        fmt.Println(resp)
3212//    }
3213//
3214// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/GetStackPolicy
3215func (c *CloudFormation) GetStackPolicyRequest(input *GetStackPolicyInput) (req *request.Request, output *GetStackPolicyOutput) {
3216	op := &request.Operation{
3217		Name:       opGetStackPolicy,
3218		HTTPMethod: "POST",
3219		HTTPPath:   "/",
3220	}
3221
3222	if input == nil {
3223		input = &GetStackPolicyInput{}
3224	}
3225
3226	output = &GetStackPolicyOutput{}
3227	req = c.newRequest(op, input, output)
3228	return
3229}
3230
3231// GetStackPolicy API operation for AWS CloudFormation.
3232//
3233// Returns the stack policy for a specified stack. If a stack doesn't have a
3234// policy, a null value is returned.
3235//
3236// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
3237// with awserr.Error's Code and Message methods to get detailed information about
3238// the error.
3239//
3240// See the AWS API reference guide for AWS CloudFormation's
3241// API operation GetStackPolicy for usage and error information.
3242// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/GetStackPolicy
3243func (c *CloudFormation) GetStackPolicy(input *GetStackPolicyInput) (*GetStackPolicyOutput, error) {
3244	req, out := c.GetStackPolicyRequest(input)
3245	return out, req.Send()
3246}
3247
3248// GetStackPolicyWithContext is the same as GetStackPolicy with the addition of
3249// the ability to pass a context and additional request options.
3250//
3251// See GetStackPolicy for details on how to use this API operation.
3252//
3253// The context must be non-nil and will be used for request cancellation. If
3254// the context is nil a panic will occur. In the future the SDK may create
3255// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3256// for more information on using Contexts.
3257func (c *CloudFormation) GetStackPolicyWithContext(ctx aws.Context, input *GetStackPolicyInput, opts ...request.Option) (*GetStackPolicyOutput, error) {
3258	req, out := c.GetStackPolicyRequest(input)
3259	req.SetContext(ctx)
3260	req.ApplyOptions(opts...)
3261	return out, req.Send()
3262}
3263
3264const opGetTemplate = "GetTemplate"
3265
3266// GetTemplateRequest generates a "aws/request.Request" representing the
3267// client's request for the GetTemplate operation. The "output" return
3268// value will be populated with the request's response once the request completes
3269// successfully.
3270//
3271// Use "Send" method on the returned Request to send the API call to the service.
3272// the "output" return value is not valid until after Send returns without error.
3273//
3274// See GetTemplate for more information on using the GetTemplate
3275// API call, and error handling.
3276//
3277// This method is useful when you want to inject custom logic or configuration
3278// into the SDK's request lifecycle. Such as custom headers, or retry logic.
3279//
3280//
3281//    // Example sending a request using the GetTemplateRequest method.
3282//    req, resp := client.GetTemplateRequest(params)
3283//
3284//    err := req.Send()
3285//    if err == nil { // resp is now filled
3286//        fmt.Println(resp)
3287//    }
3288//
3289// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/GetTemplate
3290func (c *CloudFormation) GetTemplateRequest(input *GetTemplateInput) (req *request.Request, output *GetTemplateOutput) {
3291	op := &request.Operation{
3292		Name:       opGetTemplate,
3293		HTTPMethod: "POST",
3294		HTTPPath:   "/",
3295	}
3296
3297	if input == nil {
3298		input = &GetTemplateInput{}
3299	}
3300
3301	output = &GetTemplateOutput{}
3302	req = c.newRequest(op, input, output)
3303	return
3304}
3305
3306// GetTemplate API operation for AWS CloudFormation.
3307//
3308// Returns the template body for a specified stack. You can get the template
3309// for running or deleted stacks.
3310//
3311// For deleted stacks, GetTemplate returns the template for up to 90 days after
3312// the stack has been deleted.
3313//
3314// If the template does not exist, a ValidationError is returned.
3315//
3316// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
3317// with awserr.Error's Code and Message methods to get detailed information about
3318// the error.
3319//
3320// See the AWS API reference guide for AWS CloudFormation's
3321// API operation GetTemplate for usage and error information.
3322//
3323// Returned Error Codes:
3324//   * ErrCodeChangeSetNotFoundException "ChangeSetNotFound"
3325//   The specified change set name or ID doesn't exit. To view valid change sets
3326//   for a stack, use the ListChangeSets action.
3327//
3328// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/GetTemplate
3329func (c *CloudFormation) GetTemplate(input *GetTemplateInput) (*GetTemplateOutput, error) {
3330	req, out := c.GetTemplateRequest(input)
3331	return out, req.Send()
3332}
3333
3334// GetTemplateWithContext is the same as GetTemplate with the addition of
3335// the ability to pass a context and additional request options.
3336//
3337// See GetTemplate for details on how to use this API operation.
3338//
3339// The context must be non-nil and will be used for request cancellation. If
3340// the context is nil a panic will occur. In the future the SDK may create
3341// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3342// for more information on using Contexts.
3343func (c *CloudFormation) GetTemplateWithContext(ctx aws.Context, input *GetTemplateInput, opts ...request.Option) (*GetTemplateOutput, error) {
3344	req, out := c.GetTemplateRequest(input)
3345	req.SetContext(ctx)
3346	req.ApplyOptions(opts...)
3347	return out, req.Send()
3348}
3349
3350const opGetTemplateSummary = "GetTemplateSummary"
3351
3352// GetTemplateSummaryRequest generates a "aws/request.Request" representing the
3353// client's request for the GetTemplateSummary operation. The "output" return
3354// value will be populated with the request's response once the request completes
3355// successfully.
3356//
3357// Use "Send" method on the returned Request to send the API call to the service.
3358// the "output" return value is not valid until after Send returns without error.
3359//
3360// See GetTemplateSummary for more information on using the GetTemplateSummary
3361// API call, and error handling.
3362//
3363// This method is useful when you want to inject custom logic or configuration
3364// into the SDK's request lifecycle. Such as custom headers, or retry logic.
3365//
3366//
3367//    // Example sending a request using the GetTemplateSummaryRequest method.
3368//    req, resp := client.GetTemplateSummaryRequest(params)
3369//
3370//    err := req.Send()
3371//    if err == nil { // resp is now filled
3372//        fmt.Println(resp)
3373//    }
3374//
3375// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/GetTemplateSummary
3376func (c *CloudFormation) GetTemplateSummaryRequest(input *GetTemplateSummaryInput) (req *request.Request, output *GetTemplateSummaryOutput) {
3377	op := &request.Operation{
3378		Name:       opGetTemplateSummary,
3379		HTTPMethod: "POST",
3380		HTTPPath:   "/",
3381	}
3382
3383	if input == nil {
3384		input = &GetTemplateSummaryInput{}
3385	}
3386
3387	output = &GetTemplateSummaryOutput{}
3388	req = c.newRequest(op, input, output)
3389	return
3390}
3391
3392// GetTemplateSummary API operation for AWS CloudFormation.
3393//
3394// Returns information about a new or existing template. The GetTemplateSummary
3395// action is useful for viewing parameter information, such as default parameter
3396// values and parameter types, before you create or update a stack or stack
3397// set.
3398//
3399// You can use the GetTemplateSummary action when you submit a template, or
3400// you can get template information for a stack set, or a running or deleted
3401// stack.
3402//
3403// For deleted stacks, GetTemplateSummary returns the template information for
3404// up to 90 days after the stack has been deleted. If the template does not
3405// exist, a ValidationError is returned.
3406//
3407// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
3408// with awserr.Error's Code and Message methods to get detailed information about
3409// the error.
3410//
3411// See the AWS API reference guide for AWS CloudFormation's
3412// API operation GetTemplateSummary for usage and error information.
3413//
3414// Returned Error Codes:
3415//   * ErrCodeStackSetNotFoundException "StackSetNotFoundException"
3416//   The specified stack set doesn't exist.
3417//
3418// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/GetTemplateSummary
3419func (c *CloudFormation) GetTemplateSummary(input *GetTemplateSummaryInput) (*GetTemplateSummaryOutput, error) {
3420	req, out := c.GetTemplateSummaryRequest(input)
3421	return out, req.Send()
3422}
3423
3424// GetTemplateSummaryWithContext is the same as GetTemplateSummary with the addition of
3425// the ability to pass a context and additional request options.
3426//
3427// See GetTemplateSummary for details on how to use this API operation.
3428//
3429// The context must be non-nil and will be used for request cancellation. If
3430// the context is nil a panic will occur. In the future the SDK may create
3431// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3432// for more information on using Contexts.
3433func (c *CloudFormation) GetTemplateSummaryWithContext(ctx aws.Context, input *GetTemplateSummaryInput, opts ...request.Option) (*GetTemplateSummaryOutput, error) {
3434	req, out := c.GetTemplateSummaryRequest(input)
3435	req.SetContext(ctx)
3436	req.ApplyOptions(opts...)
3437	return out, req.Send()
3438}
3439
3440const opImportStacksToStackSet = "ImportStacksToStackSet"
3441
3442// ImportStacksToStackSetRequest generates a "aws/request.Request" representing the
3443// client's request for the ImportStacksToStackSet operation. The "output" return
3444// value will be populated with the request's response once the request completes
3445// successfully.
3446//
3447// Use "Send" method on the returned Request to send the API call to the service.
3448// the "output" return value is not valid until after Send returns without error.
3449//
3450// See ImportStacksToStackSet for more information on using the ImportStacksToStackSet
3451// API call, and error handling.
3452//
3453// This method is useful when you want to inject custom logic or configuration
3454// into the SDK's request lifecycle. Such as custom headers, or retry logic.
3455//
3456//
3457//    // Example sending a request using the ImportStacksToStackSetRequest method.
3458//    req, resp := client.ImportStacksToStackSetRequest(params)
3459//
3460//    err := req.Send()
3461//    if err == nil { // resp is now filled
3462//        fmt.Println(resp)
3463//    }
3464//
3465// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/ImportStacksToStackSet
3466func (c *CloudFormation) ImportStacksToStackSetRequest(input *ImportStacksToStackSetInput) (req *request.Request, output *ImportStacksToStackSetOutput) {
3467	op := &request.Operation{
3468		Name:       opImportStacksToStackSet,
3469		HTTPMethod: "POST",
3470		HTTPPath:   "/",
3471	}
3472
3473	if input == nil {
3474		input = &ImportStacksToStackSetInput{}
3475	}
3476
3477	output = &ImportStacksToStackSetOutput{}
3478	req = c.newRequest(op, input, output)
3479	return
3480}
3481
3482// ImportStacksToStackSet API operation for AWS CloudFormation.
3483//
3484// Import existing stacks into a new stack sets. Use the stack import operation
3485// to import up to 10 stacks into a new stack set in the same account as the
3486// source stack or in a different administrator account and Region, by specifying
3487// the stack ID of the stack you intend to import.
3488//
3489// ImportStacksToStackSet is only supported by self-managed permissions.
3490//
3491// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
3492// with awserr.Error's Code and Message methods to get detailed information about
3493// the error.
3494//
3495// See the AWS API reference guide for AWS CloudFormation's
3496// API operation ImportStacksToStackSet for usage and error information.
3497//
3498// Returned Error Codes:
3499//   * ErrCodeLimitExceededException "LimitExceededException"
3500//   The quota for the resource has already been reached.
3501//
3502//   For information on resource and stack limitations, see Limits (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/cloudformation-limits.html)
3503//   in the CloudFormation User Guide.
3504//
3505//   * ErrCodeStackSetNotFoundException "StackSetNotFoundException"
3506//   The specified stack set doesn't exist.
3507//
3508//   * ErrCodeInvalidOperationException "InvalidOperationException"
3509//   The specified operation isn't valid.
3510//
3511//   * ErrCodeOperationInProgressException "OperationInProgressException"
3512//   Another operation is currently in progress for this stack set. Only one operation
3513//   can be performed for a stack set at a given time.
3514//
3515//   * ErrCodeOperationIdAlreadyExistsException "OperationIdAlreadyExistsException"
3516//   The specified operation ID already exists.
3517//
3518//   * ErrCodeStackNotFoundException "StackNotFoundException"
3519//   The specified stack ARN doesn’t exist or stack doesn’t exist corresponding
3520//   to the ARN in input.
3521//
3522//   * ErrCodeStaleRequestException "StaleRequestException"
3523//   Another operation has been performed on this stack set since the specified
3524//   operation was performed.
3525//
3526// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/ImportStacksToStackSet
3527func (c *CloudFormation) ImportStacksToStackSet(input *ImportStacksToStackSetInput) (*ImportStacksToStackSetOutput, error) {
3528	req, out := c.ImportStacksToStackSetRequest(input)
3529	return out, req.Send()
3530}
3531
3532// ImportStacksToStackSetWithContext is the same as ImportStacksToStackSet with the addition of
3533// the ability to pass a context and additional request options.
3534//
3535// See ImportStacksToStackSet for details on how to use this API operation.
3536//
3537// The context must be non-nil and will be used for request cancellation. If
3538// the context is nil a panic will occur. In the future the SDK may create
3539// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3540// for more information on using Contexts.
3541func (c *CloudFormation) ImportStacksToStackSetWithContext(ctx aws.Context, input *ImportStacksToStackSetInput, opts ...request.Option) (*ImportStacksToStackSetOutput, error) {
3542	req, out := c.ImportStacksToStackSetRequest(input)
3543	req.SetContext(ctx)
3544	req.ApplyOptions(opts...)
3545	return out, req.Send()
3546}
3547
3548const opListChangeSets = "ListChangeSets"
3549
3550// ListChangeSetsRequest generates a "aws/request.Request" representing the
3551// client's request for the ListChangeSets operation. The "output" return
3552// value will be populated with the request's response once the request completes
3553// successfully.
3554//
3555// Use "Send" method on the returned Request to send the API call to the service.
3556// the "output" return value is not valid until after Send returns without error.
3557//
3558// See ListChangeSets for more information on using the ListChangeSets
3559// API call, and error handling.
3560//
3561// This method is useful when you want to inject custom logic or configuration
3562// into the SDK's request lifecycle. Such as custom headers, or retry logic.
3563//
3564//
3565//    // Example sending a request using the ListChangeSetsRequest method.
3566//    req, resp := client.ListChangeSetsRequest(params)
3567//
3568//    err := req.Send()
3569//    if err == nil { // resp is now filled
3570//        fmt.Println(resp)
3571//    }
3572//
3573// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/ListChangeSets
3574func (c *CloudFormation) ListChangeSetsRequest(input *ListChangeSetsInput) (req *request.Request, output *ListChangeSetsOutput) {
3575	op := &request.Operation{
3576		Name:       opListChangeSets,
3577		HTTPMethod: "POST",
3578		HTTPPath:   "/",
3579		Paginator: &request.Paginator{
3580			InputTokens:     []string{"NextToken"},
3581			OutputTokens:    []string{"NextToken"},
3582			LimitToken:      "",
3583			TruncationToken: "",
3584		},
3585	}
3586
3587	if input == nil {
3588		input = &ListChangeSetsInput{}
3589	}
3590
3591	output = &ListChangeSetsOutput{}
3592	req = c.newRequest(op, input, output)
3593	return
3594}
3595
3596// ListChangeSets API operation for AWS CloudFormation.
3597//
3598// Returns the ID and status of each active change set for a stack. For example,
3599// CloudFormation lists change sets that are in the CREATE_IN_PROGRESS or CREATE_PENDING
3600// state.
3601//
3602// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
3603// with awserr.Error's Code and Message methods to get detailed information about
3604// the error.
3605//
3606// See the AWS API reference guide for AWS CloudFormation's
3607// API operation ListChangeSets for usage and error information.
3608// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/ListChangeSets
3609func (c *CloudFormation) ListChangeSets(input *ListChangeSetsInput) (*ListChangeSetsOutput, error) {
3610	req, out := c.ListChangeSetsRequest(input)
3611	return out, req.Send()
3612}
3613
3614// ListChangeSetsWithContext is the same as ListChangeSets with the addition of
3615// the ability to pass a context and additional request options.
3616//
3617// See ListChangeSets for details on how to use this API operation.
3618//
3619// The context must be non-nil and will be used for request cancellation. If
3620// the context is nil a panic will occur. In the future the SDK may create
3621// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3622// for more information on using Contexts.
3623func (c *CloudFormation) ListChangeSetsWithContext(ctx aws.Context, input *ListChangeSetsInput, opts ...request.Option) (*ListChangeSetsOutput, error) {
3624	req, out := c.ListChangeSetsRequest(input)
3625	req.SetContext(ctx)
3626	req.ApplyOptions(opts...)
3627	return out, req.Send()
3628}
3629
3630// ListChangeSetsPages iterates over the pages of a ListChangeSets operation,
3631// calling the "fn" function with the response data for each page. To stop
3632// iterating, return false from the fn function.
3633//
3634// See ListChangeSets method for more information on how to use this operation.
3635//
3636// Note: This operation can generate multiple requests to a service.
3637//
3638//    // Example iterating over at most 3 pages of a ListChangeSets operation.
3639//    pageNum := 0
3640//    err := client.ListChangeSetsPages(params,
3641//        func(page *cloudformation.ListChangeSetsOutput, lastPage bool) bool {
3642//            pageNum++
3643//            fmt.Println(page)
3644//            return pageNum <= 3
3645//        })
3646//
3647func (c *CloudFormation) ListChangeSetsPages(input *ListChangeSetsInput, fn func(*ListChangeSetsOutput, bool) bool) error {
3648	return c.ListChangeSetsPagesWithContext(aws.BackgroundContext(), input, fn)
3649}
3650
3651// ListChangeSetsPagesWithContext same as ListChangeSetsPages except
3652// it takes a Context and allows setting request options on the pages.
3653//
3654// The context must be non-nil and will be used for request cancellation. If
3655// the context is nil a panic will occur. In the future the SDK may create
3656// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3657// for more information on using Contexts.
3658func (c *CloudFormation) ListChangeSetsPagesWithContext(ctx aws.Context, input *ListChangeSetsInput, fn func(*ListChangeSetsOutput, bool) bool, opts ...request.Option) error {
3659	p := request.Pagination{
3660		NewRequest: func() (*request.Request, error) {
3661			var inCpy *ListChangeSetsInput
3662			if input != nil {
3663				tmp := *input
3664				inCpy = &tmp
3665			}
3666			req, _ := c.ListChangeSetsRequest(inCpy)
3667			req.SetContext(ctx)
3668			req.ApplyOptions(opts...)
3669			return req, nil
3670		},
3671	}
3672
3673	for p.Next() {
3674		if !fn(p.Page().(*ListChangeSetsOutput), !p.HasNextPage()) {
3675			break
3676		}
3677	}
3678
3679	return p.Err()
3680}
3681
3682const opListExports = "ListExports"
3683
3684// ListExportsRequest generates a "aws/request.Request" representing the
3685// client's request for the ListExports operation. The "output" return
3686// value will be populated with the request's response once the request completes
3687// successfully.
3688//
3689// Use "Send" method on the returned Request to send the API call to the service.
3690// the "output" return value is not valid until after Send returns without error.
3691//
3692// See ListExports for more information on using the ListExports
3693// API call, and error handling.
3694//
3695// This method is useful when you want to inject custom logic or configuration
3696// into the SDK's request lifecycle. Such as custom headers, or retry logic.
3697//
3698//
3699//    // Example sending a request using the ListExportsRequest method.
3700//    req, resp := client.ListExportsRequest(params)
3701//
3702//    err := req.Send()
3703//    if err == nil { // resp is now filled
3704//        fmt.Println(resp)
3705//    }
3706//
3707// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/ListExports
3708func (c *CloudFormation) ListExportsRequest(input *ListExportsInput) (req *request.Request, output *ListExportsOutput) {
3709	op := &request.Operation{
3710		Name:       opListExports,
3711		HTTPMethod: "POST",
3712		HTTPPath:   "/",
3713		Paginator: &request.Paginator{
3714			InputTokens:     []string{"NextToken"},
3715			OutputTokens:    []string{"NextToken"},
3716			LimitToken:      "",
3717			TruncationToken: "",
3718		},
3719	}
3720
3721	if input == nil {
3722		input = &ListExportsInput{}
3723	}
3724
3725	output = &ListExportsOutput{}
3726	req = c.newRequest(op, input, output)
3727	return
3728}
3729
3730// ListExports API operation for AWS CloudFormation.
3731//
3732// Lists all exported output values in the account and Region in which you call
3733// this action. Use this action to see the exported output values that you can
3734// import into other stacks. To import values, use the Fn::ImportValue (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/intrinsic-function-reference-importvalue.html)
3735// function.
3736//
3737// For more information, see CloudFormation Export Stack Output Values (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-stack-exports.html).
3738//
3739// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
3740// with awserr.Error's Code and Message methods to get detailed information about
3741// the error.
3742//
3743// See the AWS API reference guide for AWS CloudFormation's
3744// API operation ListExports for usage and error information.
3745// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/ListExports
3746func (c *CloudFormation) ListExports(input *ListExportsInput) (*ListExportsOutput, error) {
3747	req, out := c.ListExportsRequest(input)
3748	return out, req.Send()
3749}
3750
3751// ListExportsWithContext is the same as ListExports with the addition of
3752// the ability to pass a context and additional request options.
3753//
3754// See ListExports for details on how to use this API operation.
3755//
3756// The context must be non-nil and will be used for request cancellation. If
3757// the context is nil a panic will occur. In the future the SDK may create
3758// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3759// for more information on using Contexts.
3760func (c *CloudFormation) ListExportsWithContext(ctx aws.Context, input *ListExportsInput, opts ...request.Option) (*ListExportsOutput, error) {
3761	req, out := c.ListExportsRequest(input)
3762	req.SetContext(ctx)
3763	req.ApplyOptions(opts...)
3764	return out, req.Send()
3765}
3766
3767// ListExportsPages iterates over the pages of a ListExports operation,
3768// calling the "fn" function with the response data for each page. To stop
3769// iterating, return false from the fn function.
3770//
3771// See ListExports method for more information on how to use this operation.
3772//
3773// Note: This operation can generate multiple requests to a service.
3774//
3775//    // Example iterating over at most 3 pages of a ListExports operation.
3776//    pageNum := 0
3777//    err := client.ListExportsPages(params,
3778//        func(page *cloudformation.ListExportsOutput, lastPage bool) bool {
3779//            pageNum++
3780//            fmt.Println(page)
3781//            return pageNum <= 3
3782//        })
3783//
3784func (c *CloudFormation) ListExportsPages(input *ListExportsInput, fn func(*ListExportsOutput, bool) bool) error {
3785	return c.ListExportsPagesWithContext(aws.BackgroundContext(), input, fn)
3786}
3787
3788// ListExportsPagesWithContext same as ListExportsPages except
3789// it takes a Context and allows setting request options on the pages.
3790//
3791// The context must be non-nil and will be used for request cancellation. If
3792// the context is nil a panic will occur. In the future the SDK may create
3793// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3794// for more information on using Contexts.
3795func (c *CloudFormation) ListExportsPagesWithContext(ctx aws.Context, input *ListExportsInput, fn func(*ListExportsOutput, bool) bool, opts ...request.Option) error {
3796	p := request.Pagination{
3797		NewRequest: func() (*request.Request, error) {
3798			var inCpy *ListExportsInput
3799			if input != nil {
3800				tmp := *input
3801				inCpy = &tmp
3802			}
3803			req, _ := c.ListExportsRequest(inCpy)
3804			req.SetContext(ctx)
3805			req.ApplyOptions(opts...)
3806			return req, nil
3807		},
3808	}
3809
3810	for p.Next() {
3811		if !fn(p.Page().(*ListExportsOutput), !p.HasNextPage()) {
3812			break
3813		}
3814	}
3815
3816	return p.Err()
3817}
3818
3819const opListImports = "ListImports"
3820
3821// ListImportsRequest generates a "aws/request.Request" representing the
3822// client's request for the ListImports operation. The "output" return
3823// value will be populated with the request's response once the request completes
3824// successfully.
3825//
3826// Use "Send" method on the returned Request to send the API call to the service.
3827// the "output" return value is not valid until after Send returns without error.
3828//
3829// See ListImports for more information on using the ListImports
3830// API call, and error handling.
3831//
3832// This method is useful when you want to inject custom logic or configuration
3833// into the SDK's request lifecycle. Such as custom headers, or retry logic.
3834//
3835//
3836//    // Example sending a request using the ListImportsRequest method.
3837//    req, resp := client.ListImportsRequest(params)
3838//
3839//    err := req.Send()
3840//    if err == nil { // resp is now filled
3841//        fmt.Println(resp)
3842//    }
3843//
3844// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/ListImports
3845func (c *CloudFormation) ListImportsRequest(input *ListImportsInput) (req *request.Request, output *ListImportsOutput) {
3846	op := &request.Operation{
3847		Name:       opListImports,
3848		HTTPMethod: "POST",
3849		HTTPPath:   "/",
3850		Paginator: &request.Paginator{
3851			InputTokens:     []string{"NextToken"},
3852			OutputTokens:    []string{"NextToken"},
3853			LimitToken:      "",
3854			TruncationToken: "",
3855		},
3856	}
3857
3858	if input == nil {
3859		input = &ListImportsInput{}
3860	}
3861
3862	output = &ListImportsOutput{}
3863	req = c.newRequest(op, input, output)
3864	return
3865}
3866
3867// ListImports API operation for AWS CloudFormation.
3868//
3869// Lists all stacks that are importing an exported output value. To modify or
3870// remove an exported output value, first use this action to see which stacks
3871// are using it. To see the exported output values in your account, see ListExports.
3872//
3873// For more information about importing an exported output value, see the Fn::ImportValue
3874// (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/intrinsic-function-reference-importvalue.html)
3875// function.
3876//
3877// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
3878// with awserr.Error's Code and Message methods to get detailed information about
3879// the error.
3880//
3881// See the AWS API reference guide for AWS CloudFormation's
3882// API operation ListImports for usage and error information.
3883// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/ListImports
3884func (c *CloudFormation) ListImports(input *ListImportsInput) (*ListImportsOutput, error) {
3885	req, out := c.ListImportsRequest(input)
3886	return out, req.Send()
3887}
3888
3889// ListImportsWithContext is the same as ListImports with the addition of
3890// the ability to pass a context and additional request options.
3891//
3892// See ListImports for details on how to use this API operation.
3893//
3894// The context must be non-nil and will be used for request cancellation. If
3895// the context is nil a panic will occur. In the future the SDK may create
3896// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3897// for more information on using Contexts.
3898func (c *CloudFormation) ListImportsWithContext(ctx aws.Context, input *ListImportsInput, opts ...request.Option) (*ListImportsOutput, error) {
3899	req, out := c.ListImportsRequest(input)
3900	req.SetContext(ctx)
3901	req.ApplyOptions(opts...)
3902	return out, req.Send()
3903}
3904
3905// ListImportsPages iterates over the pages of a ListImports operation,
3906// calling the "fn" function with the response data for each page. To stop
3907// iterating, return false from the fn function.
3908//
3909// See ListImports method for more information on how to use this operation.
3910//
3911// Note: This operation can generate multiple requests to a service.
3912//
3913//    // Example iterating over at most 3 pages of a ListImports operation.
3914//    pageNum := 0
3915//    err := client.ListImportsPages(params,
3916//        func(page *cloudformation.ListImportsOutput, lastPage bool) bool {
3917//            pageNum++
3918//            fmt.Println(page)
3919//            return pageNum <= 3
3920//        })
3921//
3922func (c *CloudFormation) ListImportsPages(input *ListImportsInput, fn func(*ListImportsOutput, bool) bool) error {
3923	return c.ListImportsPagesWithContext(aws.BackgroundContext(), input, fn)
3924}
3925
3926// ListImportsPagesWithContext same as ListImportsPages except
3927// it takes a Context and allows setting request options on the pages.
3928//
3929// The context must be non-nil and will be used for request cancellation. If
3930// the context is nil a panic will occur. In the future the SDK may create
3931// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3932// for more information on using Contexts.
3933func (c *CloudFormation) ListImportsPagesWithContext(ctx aws.Context, input *ListImportsInput, fn func(*ListImportsOutput, bool) bool, opts ...request.Option) error {
3934	p := request.Pagination{
3935		NewRequest: func() (*request.Request, error) {
3936			var inCpy *ListImportsInput
3937			if input != nil {
3938				tmp := *input
3939				inCpy = &tmp
3940			}
3941			req, _ := c.ListImportsRequest(inCpy)
3942			req.SetContext(ctx)
3943			req.ApplyOptions(opts...)
3944			return req, nil
3945		},
3946	}
3947
3948	for p.Next() {
3949		if !fn(p.Page().(*ListImportsOutput), !p.HasNextPage()) {
3950			break
3951		}
3952	}
3953
3954	return p.Err()
3955}
3956
3957const opListStackInstances = "ListStackInstances"
3958
3959// ListStackInstancesRequest generates a "aws/request.Request" representing the
3960// client's request for the ListStackInstances operation. The "output" return
3961// value will be populated with the request's response once the request completes
3962// successfully.
3963//
3964// Use "Send" method on the returned Request to send the API call to the service.
3965// the "output" return value is not valid until after Send returns without error.
3966//
3967// See ListStackInstances for more information on using the ListStackInstances
3968// API call, and error handling.
3969//
3970// This method is useful when you want to inject custom logic or configuration
3971// into the SDK's request lifecycle. Such as custom headers, or retry logic.
3972//
3973//
3974//    // Example sending a request using the ListStackInstancesRequest method.
3975//    req, resp := client.ListStackInstancesRequest(params)
3976//
3977//    err := req.Send()
3978//    if err == nil { // resp is now filled
3979//        fmt.Println(resp)
3980//    }
3981//
3982// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/ListStackInstances
3983func (c *CloudFormation) ListStackInstancesRequest(input *ListStackInstancesInput) (req *request.Request, output *ListStackInstancesOutput) {
3984	op := &request.Operation{
3985		Name:       opListStackInstances,
3986		HTTPMethod: "POST",
3987		HTTPPath:   "/",
3988		Paginator: &request.Paginator{
3989			InputTokens:     []string{"NextToken"},
3990			OutputTokens:    []string{"NextToken"},
3991			LimitToken:      "MaxResults",
3992			TruncationToken: "",
3993		},
3994	}
3995
3996	if input == nil {
3997		input = &ListStackInstancesInput{}
3998	}
3999
4000	output = &ListStackInstancesOutput{}
4001	req = c.newRequest(op, input, output)
4002	return
4003}
4004
4005// ListStackInstances API operation for AWS CloudFormation.
4006//
4007// Returns summary information about stack instances that are associated with
4008// the specified stack set. You can filter for stack instances that are associated
4009// with a specific 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 Lamdba 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
6703func (s AccountGateResult) String() string {
6704	return awsutil.Prettify(s)
6705}
6706
6707// GoString returns the string representation
6708func (s AccountGateResult) GoString() string {
6709	return s.String()
6710}
6711
6712// SetStatus sets the Status field's value.
6713func (s *AccountGateResult) SetStatus(v string) *AccountGateResult {
6714	s.Status = &v
6715	return s
6716}
6717
6718// SetStatusReason sets the StatusReason field's value.
6719func (s *AccountGateResult) SetStatusReason(v string) *AccountGateResult {
6720	s.StatusReason = &v
6721	return s
6722}
6723
6724// The AccountLimit data type.
6725//
6726// CloudFormation has the following limits per account:
6727//
6728//    * Number of concurrent resources
6729//
6730//    * Number of stacks
6731//
6732//    * Number of stack outputs
6733//
6734// For more information about these account limits, and other CloudFormation
6735// limits, see CloudFormation Limits (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/cloudformation-limits.html)
6736// in the CloudFormation User Guide.
6737type AccountLimit struct {
6738	_ struct{} `type:"structure"`
6739
6740	// The name of the account limit.
6741	//
6742	// Values: ConcurrentResourcesLimit | StackLimit | StackOutputsLimit
6743	Name *string `type:"string"`
6744
6745	// The value that is associated with the account limit name.
6746	Value *int64 `type:"integer"`
6747}
6748
6749// String returns the string representation
6750func (s AccountLimit) String() string {
6751	return awsutil.Prettify(s)
6752}
6753
6754// GoString returns the string representation
6755func (s AccountLimit) GoString() string {
6756	return s.String()
6757}
6758
6759// SetName sets the Name field's value.
6760func (s *AccountLimit) SetName(v string) *AccountLimit {
6761	s.Name = &v
6762	return s
6763}
6764
6765// SetValue sets the Value field's value.
6766func (s *AccountLimit) SetValue(v int64) *AccountLimit {
6767	s.Value = &v
6768	return s
6769}
6770
6771type ActivateTypeInput struct {
6772	_ struct{} `type:"structure"`
6773
6774	// Whether to automatically update the extension in this account and region
6775	// when a new minor version is published by the extension publisher. Major versions
6776	// released by the publisher must be manually updated.
6777	//
6778	// The default is true.
6779	AutoUpdate *bool `type:"boolean"`
6780
6781	// The name of the IAM execution role to use to activate the extension.
6782	ExecutionRoleArn *string `min:"1" type:"string"`
6783
6784	// Contains logging configuration information for an extension.
6785	LoggingConfig *LoggingConfig `type:"structure"`
6786
6787	// The major version of this extension you want to activate, if multiple major
6788	// versions are available. The default is the latest major version. CloudFormation
6789	// uses the latest available minor version of the major version selected.
6790	//
6791	// You can specify MajorVersion or VersionBump, but not both.
6792	MajorVersion *int64 `min:"1" type:"long"`
6793
6794	// The Amazon Resource Number (ARN) of the public extension.
6795	//
6796	// Conditional: You must specify PublicTypeArn, or TypeName, Type, and PublisherId.
6797	PublicTypeArn *string `type:"string"`
6798
6799	// The ID of the extension publisher.
6800	//
6801	// Conditional: You must specify PublicTypeArn, or TypeName, Type, and PublisherId.
6802	PublisherId *string `min:"1" type:"string"`
6803
6804	// The extension type.
6805	//
6806	// Conditional: You must specify PublicTypeArn, or TypeName, Type, and PublisherId.
6807	Type *string `type:"string" enum:"ThirdPartyType"`
6808
6809	// The name of the extension.
6810	//
6811	// Conditional: You must specify PublicTypeArn, or TypeName, Type, and PublisherId.
6812	TypeName *string `min:"10" type:"string"`
6813
6814	// An alias to assign to the public extension, in this account and region. If
6815	// you specify an alias for the extension, CloudFormation treats the alias as
6816	// the extension type name within this account and region. You must use the
6817	// alias to refer to the extension in your templates, API calls, and CloudFormation
6818	// console.
6819	//
6820	// An extension alias must be unique within a given account and region. You
6821	// can activate the same public resource multiple times in the same account
6822	// and region, using different type name aliases.
6823	TypeNameAlias *string `min:"10" type:"string"`
6824
6825	// Manually updates a previously-activated type to a new major or minor version,
6826	// if available. You can also use this parameter to update the value of AutoUpdate.
6827	//
6828	//    * MAJOR: CloudFormation updates the extension to the newest major version,
6829	//    if one is available.
6830	//
6831	//    * MINOR: CloudFormation updates the extension to the newest minor version,
6832	//    if one is available.
6833	VersionBump *string `type:"string" enum:"VersionBump"`
6834}
6835
6836// String returns the string representation
6837func (s ActivateTypeInput) String() string {
6838	return awsutil.Prettify(s)
6839}
6840
6841// GoString returns the string representation
6842func (s ActivateTypeInput) GoString() string {
6843	return s.String()
6844}
6845
6846// Validate inspects the fields of the type to determine if they are valid.
6847func (s *ActivateTypeInput) Validate() error {
6848	invalidParams := request.ErrInvalidParams{Context: "ActivateTypeInput"}
6849	if s.ExecutionRoleArn != nil && len(*s.ExecutionRoleArn) < 1 {
6850		invalidParams.Add(request.NewErrParamMinLen("ExecutionRoleArn", 1))
6851	}
6852	if s.MajorVersion != nil && *s.MajorVersion < 1 {
6853		invalidParams.Add(request.NewErrParamMinValue("MajorVersion", 1))
6854	}
6855	if s.PublisherId != nil && len(*s.PublisherId) < 1 {
6856		invalidParams.Add(request.NewErrParamMinLen("PublisherId", 1))
6857	}
6858	if s.TypeName != nil && len(*s.TypeName) < 10 {
6859		invalidParams.Add(request.NewErrParamMinLen("TypeName", 10))
6860	}
6861	if s.TypeNameAlias != nil && len(*s.TypeNameAlias) < 10 {
6862		invalidParams.Add(request.NewErrParamMinLen("TypeNameAlias", 10))
6863	}
6864	if s.LoggingConfig != nil {
6865		if err := s.LoggingConfig.Validate(); err != nil {
6866			invalidParams.AddNested("LoggingConfig", err.(request.ErrInvalidParams))
6867		}
6868	}
6869
6870	if invalidParams.Len() > 0 {
6871		return invalidParams
6872	}
6873	return nil
6874}
6875
6876// SetAutoUpdate sets the AutoUpdate field's value.
6877func (s *ActivateTypeInput) SetAutoUpdate(v bool) *ActivateTypeInput {
6878	s.AutoUpdate = &v
6879	return s
6880}
6881
6882// SetExecutionRoleArn sets the ExecutionRoleArn field's value.
6883func (s *ActivateTypeInput) SetExecutionRoleArn(v string) *ActivateTypeInput {
6884	s.ExecutionRoleArn = &v
6885	return s
6886}
6887
6888// SetLoggingConfig sets the LoggingConfig field's value.
6889func (s *ActivateTypeInput) SetLoggingConfig(v *LoggingConfig) *ActivateTypeInput {
6890	s.LoggingConfig = v
6891	return s
6892}
6893
6894// SetMajorVersion sets the MajorVersion field's value.
6895func (s *ActivateTypeInput) SetMajorVersion(v int64) *ActivateTypeInput {
6896	s.MajorVersion = &v
6897	return s
6898}
6899
6900// SetPublicTypeArn sets the PublicTypeArn field's value.
6901func (s *ActivateTypeInput) SetPublicTypeArn(v string) *ActivateTypeInput {
6902	s.PublicTypeArn = &v
6903	return s
6904}
6905
6906// SetPublisherId sets the PublisherId field's value.
6907func (s *ActivateTypeInput) SetPublisherId(v string) *ActivateTypeInput {
6908	s.PublisherId = &v
6909	return s
6910}
6911
6912// SetType sets the Type field's value.
6913func (s *ActivateTypeInput) SetType(v string) *ActivateTypeInput {
6914	s.Type = &v
6915	return s
6916}
6917
6918// SetTypeName sets the TypeName field's value.
6919func (s *ActivateTypeInput) SetTypeName(v string) *ActivateTypeInput {
6920	s.TypeName = &v
6921	return s
6922}
6923
6924// SetTypeNameAlias sets the TypeNameAlias field's value.
6925func (s *ActivateTypeInput) SetTypeNameAlias(v string) *ActivateTypeInput {
6926	s.TypeNameAlias = &v
6927	return s
6928}
6929
6930// SetVersionBump sets the VersionBump field's value.
6931func (s *ActivateTypeInput) SetVersionBump(v string) *ActivateTypeInput {
6932	s.VersionBump = &v
6933	return s
6934}
6935
6936type ActivateTypeOutput struct {
6937	_ struct{} `type:"structure"`
6938
6939	// The Amazon Resource Number (ARN) of the activated extension, in this account
6940	// and region.
6941	Arn *string `type:"string"`
6942}
6943
6944// String returns the string representation
6945func (s ActivateTypeOutput) String() string {
6946	return awsutil.Prettify(s)
6947}
6948
6949// GoString returns the string representation
6950func (s ActivateTypeOutput) GoString() string {
6951	return s.String()
6952}
6953
6954// SetArn sets the Arn field's value.
6955func (s *ActivateTypeOutput) SetArn(v string) *ActivateTypeOutput {
6956	s.Arn = &v
6957	return s
6958}
6959
6960// [Service-managed permissions] Describes whether StackSets automatically deploys
6961// to Organizations accounts that are added to a target organization or organizational
6962// unit (OU).
6963type AutoDeployment struct {
6964	_ struct{} `type:"structure"`
6965
6966	// If set to true, StackSets automatically deploys additional stack instances
6967	// to Organizations accounts that are added to a target organization or organizational
6968	// unit (OU) in the specified Regions. If an account is removed from a target
6969	// organization or OU, StackSets deletes stack instances from the account in
6970	// the specified Regions.
6971	Enabled *bool `type:"boolean"`
6972
6973	// If set to true, stack resources are retained when an account is removed from
6974	// a target organization or OU. If set to false, stack resources are deleted.
6975	// Specify only if Enabled is set to True.
6976	RetainStacksOnAccountRemoval *bool `type:"boolean"`
6977}
6978
6979// String returns the string representation
6980func (s AutoDeployment) String() string {
6981	return awsutil.Prettify(s)
6982}
6983
6984// GoString returns the string representation
6985func (s AutoDeployment) GoString() string {
6986	return s.String()
6987}
6988
6989// SetEnabled sets the Enabled field's value.
6990func (s *AutoDeployment) SetEnabled(v bool) *AutoDeployment {
6991	s.Enabled = &v
6992	return s
6993}
6994
6995// SetRetainStacksOnAccountRemoval sets the RetainStacksOnAccountRemoval field's value.
6996func (s *AutoDeployment) SetRetainStacksOnAccountRemoval(v bool) *AutoDeployment {
6997	s.RetainStacksOnAccountRemoval = &v
6998	return s
6999}
7000
7001// Detailed information concerning an error generated during the setting of
7002// configuration data for a CloudFormation extension.
7003type BatchDescribeTypeConfigurationsError struct {
7004	_ struct{} `type:"structure"`
7005
7006	// The error code.
7007	ErrorCode *string `min:"3" type:"string"`
7008
7009	// The error message.
7010	ErrorMessage *string `min:"1" type:"string"`
7011
7012	// Identifying information for the configuration of a CloudFormation extension.
7013	TypeConfigurationIdentifier *TypeConfigurationIdentifier `type:"structure"`
7014}
7015
7016// String returns the string representation
7017func (s BatchDescribeTypeConfigurationsError) String() string {
7018	return awsutil.Prettify(s)
7019}
7020
7021// GoString returns the string representation
7022func (s BatchDescribeTypeConfigurationsError) GoString() string {
7023	return s.String()
7024}
7025
7026// SetErrorCode sets the ErrorCode field's value.
7027func (s *BatchDescribeTypeConfigurationsError) SetErrorCode(v string) *BatchDescribeTypeConfigurationsError {
7028	s.ErrorCode = &v
7029	return s
7030}
7031
7032// SetErrorMessage sets the ErrorMessage field's value.
7033func (s *BatchDescribeTypeConfigurationsError) SetErrorMessage(v string) *BatchDescribeTypeConfigurationsError {
7034	s.ErrorMessage = &v
7035	return s
7036}
7037
7038// SetTypeConfigurationIdentifier sets the TypeConfigurationIdentifier field's value.
7039func (s *BatchDescribeTypeConfigurationsError) SetTypeConfigurationIdentifier(v *TypeConfigurationIdentifier) *BatchDescribeTypeConfigurationsError {
7040	s.TypeConfigurationIdentifier = v
7041	return s
7042}
7043
7044type BatchDescribeTypeConfigurationsInput struct {
7045	_ struct{} `type:"structure"`
7046
7047	// The list of identifiers for the desired extension configurations.
7048	//
7049	// TypeConfigurationIdentifiers is a required field
7050	TypeConfigurationIdentifiers []*TypeConfigurationIdentifier `min:"1" type:"list" required:"true"`
7051}
7052
7053// String returns the string representation
7054func (s BatchDescribeTypeConfigurationsInput) String() string {
7055	return awsutil.Prettify(s)
7056}
7057
7058// GoString returns the string representation
7059func (s BatchDescribeTypeConfigurationsInput) GoString() string {
7060	return s.String()
7061}
7062
7063// Validate inspects the fields of the type to determine if they are valid.
7064func (s *BatchDescribeTypeConfigurationsInput) Validate() error {
7065	invalidParams := request.ErrInvalidParams{Context: "BatchDescribeTypeConfigurationsInput"}
7066	if s.TypeConfigurationIdentifiers == nil {
7067		invalidParams.Add(request.NewErrParamRequired("TypeConfigurationIdentifiers"))
7068	}
7069	if s.TypeConfigurationIdentifiers != nil && len(s.TypeConfigurationIdentifiers) < 1 {
7070		invalidParams.Add(request.NewErrParamMinLen("TypeConfigurationIdentifiers", 1))
7071	}
7072	if s.TypeConfigurationIdentifiers != nil {
7073		for i, v := range s.TypeConfigurationIdentifiers {
7074			if v == nil {
7075				continue
7076			}
7077			if err := v.Validate(); err != nil {
7078				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "TypeConfigurationIdentifiers", i), err.(request.ErrInvalidParams))
7079			}
7080		}
7081	}
7082
7083	if invalidParams.Len() > 0 {
7084		return invalidParams
7085	}
7086	return nil
7087}
7088
7089// SetTypeConfigurationIdentifiers sets the TypeConfigurationIdentifiers field's value.
7090func (s *BatchDescribeTypeConfigurationsInput) SetTypeConfigurationIdentifiers(v []*TypeConfigurationIdentifier) *BatchDescribeTypeConfigurationsInput {
7091	s.TypeConfigurationIdentifiers = v
7092	return s
7093}
7094
7095type BatchDescribeTypeConfigurationsOutput struct {
7096	_ struct{} `type:"structure"`
7097
7098	// A list of information concerning any errors generated during the setting
7099	// of the specified configurations.
7100	Errors []*BatchDescribeTypeConfigurationsError `type:"list"`
7101
7102	// A list of any of the specified extension configurations from the CloudFormation
7103	// registry.
7104	TypeConfigurations []*TypeConfigurationDetails `type:"list"`
7105
7106	// A list of any of the specified extension configurations that CloudFormation
7107	// could not process for any reason.
7108	UnprocessedTypeConfigurations []*TypeConfigurationIdentifier `type:"list"`
7109}
7110
7111// String returns the string representation
7112func (s BatchDescribeTypeConfigurationsOutput) String() string {
7113	return awsutil.Prettify(s)
7114}
7115
7116// GoString returns the string representation
7117func (s BatchDescribeTypeConfigurationsOutput) GoString() string {
7118	return s.String()
7119}
7120
7121// SetErrors sets the Errors field's value.
7122func (s *BatchDescribeTypeConfigurationsOutput) SetErrors(v []*BatchDescribeTypeConfigurationsError) *BatchDescribeTypeConfigurationsOutput {
7123	s.Errors = v
7124	return s
7125}
7126
7127// SetTypeConfigurations sets the TypeConfigurations field's value.
7128func (s *BatchDescribeTypeConfigurationsOutput) SetTypeConfigurations(v []*TypeConfigurationDetails) *BatchDescribeTypeConfigurationsOutput {
7129	s.TypeConfigurations = v
7130	return s
7131}
7132
7133// SetUnprocessedTypeConfigurations sets the UnprocessedTypeConfigurations field's value.
7134func (s *BatchDescribeTypeConfigurationsOutput) SetUnprocessedTypeConfigurations(v []*TypeConfigurationIdentifier) *BatchDescribeTypeConfigurationsOutput {
7135	s.UnprocessedTypeConfigurations = v
7136	return s
7137}
7138
7139// The input for the CancelUpdateStack action.
7140type CancelUpdateStackInput struct {
7141	_ struct{} `type:"structure"`
7142
7143	// A unique identifier for this CancelUpdateStack request. Specify this token
7144	// if you plan to retry requests so that CloudFormation knows that you're not
7145	// attempting to cancel an update on a stack with the same name. You might retry
7146	// CancelUpdateStack requests to ensure that CloudFormation successfully received
7147	// them.
7148	ClientRequestToken *string `min:"1" type:"string"`
7149
7150	// The name or the unique stack ID that is associated with the stack.
7151	//
7152	// StackName is a required field
7153	StackName *string `type:"string" required:"true"`
7154}
7155
7156// String returns the string representation
7157func (s CancelUpdateStackInput) String() string {
7158	return awsutil.Prettify(s)
7159}
7160
7161// GoString returns the string representation
7162func (s CancelUpdateStackInput) GoString() string {
7163	return s.String()
7164}
7165
7166// Validate inspects the fields of the type to determine if they are valid.
7167func (s *CancelUpdateStackInput) Validate() error {
7168	invalidParams := request.ErrInvalidParams{Context: "CancelUpdateStackInput"}
7169	if s.ClientRequestToken != nil && len(*s.ClientRequestToken) < 1 {
7170		invalidParams.Add(request.NewErrParamMinLen("ClientRequestToken", 1))
7171	}
7172	if s.StackName == nil {
7173		invalidParams.Add(request.NewErrParamRequired("StackName"))
7174	}
7175
7176	if invalidParams.Len() > 0 {
7177		return invalidParams
7178	}
7179	return nil
7180}
7181
7182// SetClientRequestToken sets the ClientRequestToken field's value.
7183func (s *CancelUpdateStackInput) SetClientRequestToken(v string) *CancelUpdateStackInput {
7184	s.ClientRequestToken = &v
7185	return s
7186}
7187
7188// SetStackName sets the StackName field's value.
7189func (s *CancelUpdateStackInput) SetStackName(v string) *CancelUpdateStackInput {
7190	s.StackName = &v
7191	return s
7192}
7193
7194type CancelUpdateStackOutput struct {
7195	_ struct{} `type:"structure"`
7196}
7197
7198// String returns the string representation
7199func (s CancelUpdateStackOutput) String() string {
7200	return awsutil.Prettify(s)
7201}
7202
7203// GoString returns the string representation
7204func (s CancelUpdateStackOutput) GoString() string {
7205	return s.String()
7206}
7207
7208// The Change structure describes the changes CloudFormation will perform if
7209// you execute the change set.
7210type Change struct {
7211	_ struct{} `type:"structure"`
7212
7213	// A ResourceChange structure that describes the resource and action that CloudFormation
7214	// will perform.
7215	ResourceChange *ResourceChange `type:"structure"`
7216
7217	// The type of entity that CloudFormation changes. Currently, the only entity
7218	// type is Resource.
7219	Type *string `type:"string" enum:"ChangeType"`
7220}
7221
7222// String returns the string representation
7223func (s Change) String() string {
7224	return awsutil.Prettify(s)
7225}
7226
7227// GoString returns the string representation
7228func (s Change) GoString() string {
7229	return s.String()
7230}
7231
7232// SetResourceChange sets the ResourceChange field's value.
7233func (s *Change) SetResourceChange(v *ResourceChange) *Change {
7234	s.ResourceChange = v
7235	return s
7236}
7237
7238// SetType sets the Type field's value.
7239func (s *Change) SetType(v string) *Change {
7240	s.Type = &v
7241	return s
7242}
7243
7244// The ChangeSetSummary structure describes a change set, its status, and the
7245// stack with which it's associated.
7246type ChangeSetSummary struct {
7247	_ struct{} `type:"structure"`
7248
7249	// The ID of the change set.
7250	ChangeSetId *string `min:"1" type:"string"`
7251
7252	// The name of the change set.
7253	ChangeSetName *string `min:"1" type:"string"`
7254
7255	// The start time when the change set was created, in UTC.
7256	CreationTime *time.Time `type:"timestamp"`
7257
7258	// Descriptive information about the change set.
7259	Description *string `min:"1" type:"string"`
7260
7261	// If the change set execution status is AVAILABLE, you can execute the change
7262	// set. If you can’t execute the change set, the status indicates why. For
7263	// example, a change set might be in an UNAVAILABLE state because CloudFormation
7264	// is still creating it or in an OBSOLETE state because the stack was already
7265	// updated.
7266	ExecutionStatus *string `type:"string" enum:"ExecutionStatus"`
7267
7268	// Specifies the current setting of IncludeNestedStacks for the change set.
7269	IncludeNestedStacks *bool `type:"boolean"`
7270
7271	// The parent change set ID.
7272	ParentChangeSetId *string `min:"1" type:"string"`
7273
7274	// The root change set ID.
7275	RootChangeSetId *string `min:"1" type:"string"`
7276
7277	// The ID of the stack with which the change set is associated.
7278	StackId *string `type:"string"`
7279
7280	// The name of the stack with which the change set is associated.
7281	StackName *string `type:"string"`
7282
7283	// The state of the change set, such as CREATE_IN_PROGRESS, CREATE_COMPLETE,
7284	// or FAILED.
7285	Status *string `type:"string" enum:"ChangeSetStatus"`
7286
7287	// A description of the change set's status. For example, if your change set
7288	// is in the FAILED state, CloudFormation shows the error message.
7289	StatusReason *string `type:"string"`
7290}
7291
7292// String returns the string representation
7293func (s ChangeSetSummary) String() string {
7294	return awsutil.Prettify(s)
7295}
7296
7297// GoString returns the string representation
7298func (s ChangeSetSummary) GoString() string {
7299	return s.String()
7300}
7301
7302// SetChangeSetId sets the ChangeSetId field's value.
7303func (s *ChangeSetSummary) SetChangeSetId(v string) *ChangeSetSummary {
7304	s.ChangeSetId = &v
7305	return s
7306}
7307
7308// SetChangeSetName sets the ChangeSetName field's value.
7309func (s *ChangeSetSummary) SetChangeSetName(v string) *ChangeSetSummary {
7310	s.ChangeSetName = &v
7311	return s
7312}
7313
7314// SetCreationTime sets the CreationTime field's value.
7315func (s *ChangeSetSummary) SetCreationTime(v time.Time) *ChangeSetSummary {
7316	s.CreationTime = &v
7317	return s
7318}
7319
7320// SetDescription sets the Description field's value.
7321func (s *ChangeSetSummary) SetDescription(v string) *ChangeSetSummary {
7322	s.Description = &v
7323	return s
7324}
7325
7326// SetExecutionStatus sets the ExecutionStatus field's value.
7327func (s *ChangeSetSummary) SetExecutionStatus(v string) *ChangeSetSummary {
7328	s.ExecutionStatus = &v
7329	return s
7330}
7331
7332// SetIncludeNestedStacks sets the IncludeNestedStacks field's value.
7333func (s *ChangeSetSummary) SetIncludeNestedStacks(v bool) *ChangeSetSummary {
7334	s.IncludeNestedStacks = &v
7335	return s
7336}
7337
7338// SetParentChangeSetId sets the ParentChangeSetId field's value.
7339func (s *ChangeSetSummary) SetParentChangeSetId(v string) *ChangeSetSummary {
7340	s.ParentChangeSetId = &v
7341	return s
7342}
7343
7344// SetRootChangeSetId sets the RootChangeSetId field's value.
7345func (s *ChangeSetSummary) SetRootChangeSetId(v string) *ChangeSetSummary {
7346	s.RootChangeSetId = &v
7347	return s
7348}
7349
7350// SetStackId sets the StackId field's value.
7351func (s *ChangeSetSummary) SetStackId(v string) *ChangeSetSummary {
7352	s.StackId = &v
7353	return s
7354}
7355
7356// SetStackName sets the StackName field's value.
7357func (s *ChangeSetSummary) SetStackName(v string) *ChangeSetSummary {
7358	s.StackName = &v
7359	return s
7360}
7361
7362// SetStatus sets the Status field's value.
7363func (s *ChangeSetSummary) SetStatus(v string) *ChangeSetSummary {
7364	s.Status = &v
7365	return s
7366}
7367
7368// SetStatusReason sets the StatusReason field's value.
7369func (s *ChangeSetSummary) SetStatusReason(v string) *ChangeSetSummary {
7370	s.StatusReason = &v
7371	return s
7372}
7373
7374// The input for the ContinueUpdateRollback action.
7375type ContinueUpdateRollbackInput struct {
7376	_ struct{} `type:"structure"`
7377
7378	// A unique identifier for this ContinueUpdateRollback request. Specify this
7379	// token if you plan to retry requests so that CloudFormationknows that you're
7380	// not attempting to continue the rollback to a stack with the same name. You
7381	// might retry ContinueUpdateRollback requests to ensure that CloudFormation
7382	// successfully received them.
7383	ClientRequestToken *string `min:"1" type:"string"`
7384
7385	// A list of the logical IDs of the resources that CloudFormation skips during
7386	// the continue update rollback operation. You can specify only resources that
7387	// are in the UPDATE_FAILED state because a rollback failed. You can't specify
7388	// resources that are in the UPDATE_FAILED state for other reasons, for example,
7389	// because an update was cancelled. To check why a resource update failed, use
7390	// the DescribeStackResources action, and view the resource status reason.
7391	//
7392	// Specify this property to skip rolling back resources that CloudFormation
7393	// 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)
7394	// resources before skipping them. CloudFormation sets the status of the specified
7395	// resources to UPDATE_COMPLETE and continues to roll back the stack. After
7396	// the rollback is complete, the state of the skipped resources will be inconsistent
7397	// with the state of the resources in the stack template. Before performing
7398	// another stack update, you must update the stack or resources to be consistent
7399	// with each other. If you don't, subsequent stack updates might fail, and the
7400	// stack will become unrecoverable.
7401	//
7402	// Specify the minimum number of resources required to successfully roll back
7403	// your stack. For example, a failed resource update might cause dependent resources
7404	// to fail. In this case, it might not be necessary to skip the dependent resources.
7405	//
7406	// To skip resources that are part of nested stacks, use the following format:
7407	// NestedStackName.ResourceLogicalID. If you want to specify the logical ID
7408	// of a stack resource (Type: AWS::CloudFormation::Stack) in the ResourcesToSkip
7409	// list, then its corresponding embedded stack must be in one of the following
7410	// states: DELETE_IN_PROGRESS, DELETE_COMPLETE, or DELETE_FAILED.
7411	//
7412	// Don't confuse a child stack's name with its corresponding logical ID defined
7413	// in the parent stack. For an example of a continue update rollback operation
7414	// with nested stacks, see Using ResourcesToSkip to recover a nested stacks
7415	// hierarchy (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-continueupdaterollback.html#nested-stacks).
7416	ResourcesToSkip []*string `type:"list"`
7417
7418	// The Amazon Resource Name (ARN) of an Identity and Access Management (IAM)
7419	// role that CloudFormation assumes to roll back the stack. CloudFormation uses
7420	// the role's credentials to make calls on your behalf. CloudFormation always
7421	// uses this role for all future operations on the stack. As long as users have
7422	// permission to operate on the stack, CloudFormation uses this role even if
7423	// the users don't have permission to pass it. Ensure that the role grants least
7424	// privilege.
7425	//
7426	// If you don't specify a value, CloudFormation uses the role that was previously
7427	// associated with the stack. If no role is available, CloudFormation uses a
7428	// temporary session that is generated from your user credentials.
7429	RoleARN *string `min:"20" type:"string"`
7430
7431	// The name or the unique ID of the stack that you want to continue rolling
7432	// back.
7433	//
7434	// Don't specify the name of a nested stack (a stack that was created by using
7435	// the AWS::CloudFormation::Stack resource). Instead, use this operation on
7436	// the parent stack (the stack that contains the AWS::CloudFormation::Stack
7437	// resource).
7438	//
7439	// StackName is a required field
7440	StackName *string `min:"1" type:"string" required:"true"`
7441}
7442
7443// String returns the string representation
7444func (s ContinueUpdateRollbackInput) String() string {
7445	return awsutil.Prettify(s)
7446}
7447
7448// GoString returns the string representation
7449func (s ContinueUpdateRollbackInput) GoString() string {
7450	return s.String()
7451}
7452
7453// Validate inspects the fields of the type to determine if they are valid.
7454func (s *ContinueUpdateRollbackInput) Validate() error {
7455	invalidParams := request.ErrInvalidParams{Context: "ContinueUpdateRollbackInput"}
7456	if s.ClientRequestToken != nil && len(*s.ClientRequestToken) < 1 {
7457		invalidParams.Add(request.NewErrParamMinLen("ClientRequestToken", 1))
7458	}
7459	if s.RoleARN != nil && len(*s.RoleARN) < 20 {
7460		invalidParams.Add(request.NewErrParamMinLen("RoleARN", 20))
7461	}
7462	if s.StackName == nil {
7463		invalidParams.Add(request.NewErrParamRequired("StackName"))
7464	}
7465	if s.StackName != nil && len(*s.StackName) < 1 {
7466		invalidParams.Add(request.NewErrParamMinLen("StackName", 1))
7467	}
7468
7469	if invalidParams.Len() > 0 {
7470		return invalidParams
7471	}
7472	return nil
7473}
7474
7475// SetClientRequestToken sets the ClientRequestToken field's value.
7476func (s *ContinueUpdateRollbackInput) SetClientRequestToken(v string) *ContinueUpdateRollbackInput {
7477	s.ClientRequestToken = &v
7478	return s
7479}
7480
7481// SetResourcesToSkip sets the ResourcesToSkip field's value.
7482func (s *ContinueUpdateRollbackInput) SetResourcesToSkip(v []*string) *ContinueUpdateRollbackInput {
7483	s.ResourcesToSkip = v
7484	return s
7485}
7486
7487// SetRoleARN sets the RoleARN field's value.
7488func (s *ContinueUpdateRollbackInput) SetRoleARN(v string) *ContinueUpdateRollbackInput {
7489	s.RoleARN = &v
7490	return s
7491}
7492
7493// SetStackName sets the StackName field's value.
7494func (s *ContinueUpdateRollbackInput) SetStackName(v string) *ContinueUpdateRollbackInput {
7495	s.StackName = &v
7496	return s
7497}
7498
7499// The output for a ContinueUpdateRollback action.
7500type ContinueUpdateRollbackOutput struct {
7501	_ struct{} `type:"structure"`
7502}
7503
7504// String returns the string representation
7505func (s ContinueUpdateRollbackOutput) String() string {
7506	return awsutil.Prettify(s)
7507}
7508
7509// GoString returns the string representation
7510func (s ContinueUpdateRollbackOutput) GoString() string {
7511	return s.String()
7512}
7513
7514// The input for the CreateChangeSet action.
7515type CreateChangeSetInput struct {
7516	_ struct{} `type:"structure"`
7517
7518	// In some cases, you must explicitly acknowledge that your stack template contains
7519	// certain capabilities in order for CloudFormation to create the stack.
7520	//
7521	//    * CAPABILITY_IAM and CAPABILITY_NAMED_IAM Some stack templates might include
7522	//    resources that can affect permissions in your Amazon Web Services account;
7523	//    for example, by creating new Identity and Access Management (IAM) users.
7524	//    For those stacks, you must explicitly acknowledge this by specifying one
7525	//    of these capabilities. The following IAM resources require you to specify
7526	//    either the CAPABILITY_IAM or CAPABILITY_NAMED_IAM capability. If you have
7527	//    IAM resources, you can specify either capability. If you have IAM resources
7528	//    with custom names, you must specify CAPABILITY_NAMED_IAM. If you don't
7529	//    specify either of these capabilities, CloudFormation returns an InsufficientCapabilities
7530	//    error. If your stack template contains these resources, we recommend that
7531	//    you review all permissions associated with them and edit their permissions
7532	//    if necessary. AWS::IAM::AccessKey (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iam-accesskey.html)
7533	//    AWS::IAM::Group (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iam-group.html)
7534	//    AWS::IAM::InstanceProfile (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iam-instanceprofile.html)
7535	//    AWS::IAM::Policy (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iam-policy.html)
7536	//    AWS::IAM::Role (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iam-role.html)
7537	//    AWS::IAM::User (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iam-user.html)
7538	//    AWS::IAM::UserToGroupAddition (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iam-addusertogroup.html)
7539	//    For more information, see Acknowledging IAM Resources in CloudFormation
7540	//    Templates (http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-iam-template.html#capabilities).
7541	//
7542	//    * CAPABILITY_AUTO_EXPAND Some template contain macros. Macros perform
7543	//    custom processing on templates; this can include simple actions like find-and-replace
7544	//    operations, all the way to extensive transformations of entire templates.
7545	//    Because of this, users typically create a change set from the processed
7546	//    template, so that they can review the changes resulting from the macros
7547	//    before actually creating the stack. If your stack template contains one
7548	//    or more macros, and you choose to create a stack directly from the processed
7549	//    template, without first reviewing the resulting changes in a change set,
7550	//    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)
7551	//    and AWS::Serverless (http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/transform-aws-serverless.html)
7552	//    transforms, which are macros hosted by CloudFormation. This capacity does
7553	//    not apply to creating change sets, and specifying it when creating change
7554	//    sets has no effect. If you want to create a stack from a stack template
7555	//    that contains macros and nested stacks, you must create or update the
7556	//    stack directly from the template using the CreateStack or UpdateStack
7557	//    action, and specifying this capability. For more information on macros,
7558	//    see Using CloudFormation Macros to Perform Custom Processing on Templates
7559	//    (http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/template-macros.html).
7560	Capabilities []*string `type:"list"`
7561
7562	// The name of the change set. The name must be unique among all change sets
7563	// that are associated with the specified stack.
7564	//
7565	// A change set name can contain only alphanumeric, case sensitive characters
7566	// and hyphens. It must start with an alphabetic character and cannot exceed
7567	// 128 characters.
7568	//
7569	// ChangeSetName is a required field
7570	ChangeSetName *string `min:"1" type:"string" required:"true"`
7571
7572	// The type of change set operation. To create a change set for a new stack,
7573	// specify CREATE. To create a change set for an existing stack, specify UPDATE.
7574	// To create a change set for an import operation, specify IMPORT.
7575	//
7576	// If you create a change set for a new stack, CloudFormation creates a stack
7577	// with a unique stack ID, but no template or resources. The stack will be in
7578	// the REVIEW_IN_PROGRESS (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-describing-stacks.html#d0e11995)
7579	// state until you execute the change set.
7580	//
7581	// By default, CloudFormation specifies UPDATE. You can't use the UPDATE type
7582	// to create a change set for a new stack or the CREATE type to create a change
7583	// set for an existing stack.
7584	ChangeSetType *string `type:"string" enum:"ChangeSetType"`
7585
7586	// A unique identifier for this CreateChangeSet request. Specify this token
7587	// if you plan to retry requests so that CloudFormation knows that you're not
7588	// attempting to create another change set with the same name. You might retry
7589	// CreateChangeSet requests to ensure that CloudFormation successfully received
7590	// them.
7591	ClientToken *string `min:"1" type:"string"`
7592
7593	// A description to help you identify this change set.
7594	Description *string `min:"1" type:"string"`
7595
7596	// Creates a change set for the all nested stacks specified in the template.
7597	// The default behavior of this action is set to False. To include nested sets
7598	// in a change set, specify True.
7599	IncludeNestedStacks *bool `type:"boolean"`
7600
7601	// The Amazon Resource Names (ARNs) of Amazon Simple Notification Service (Amazon
7602	// SNS) topics that CloudFormation associates with the stack. To remove all
7603	// associated notification topics, specify an empty list.
7604	NotificationARNs []*string `type:"list"`
7605
7606	// A list of Parameter structures that specify input parameters for the change
7607	// set. For more information, see the Parameter data type.
7608	Parameters []*Parameter `type:"list"`
7609
7610	// The template resource types that you have permissions to work with if you
7611	// execute this change set, such as AWS::EC2::Instance, AWS::EC2::*, or Custom::MyCustomInstance.
7612	//
7613	// If the list of resource types doesn't include a resource type that you're
7614	// updating, the stack update fails. By default, CloudFormation grants permissions
7615	// to all resource types. Identity and Access Management (IAM) uses this parameter
7616	// for condition keys in IAM policies for CloudFormation. For more information,
7617	// see Controlling Access with Identity and Access Management (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-iam-template.html)
7618	// in the CloudFormation User Guide.
7619	ResourceTypes []*string `type:"list"`
7620
7621	// The resources to import into your stack.
7622	ResourcesToImport []*ResourceToImport `type:"list"`
7623
7624	// The Amazon Resource Name (ARN) of an Identity and Access Management (IAM)
7625	// role that CloudFormation assumes when executing the change set. CloudFormation
7626	// uses the role's credentials to make calls on your behalf. CloudFormation
7627	// uses this role for all future operations on the stack. As long as users have
7628	// permission to operate on the stack, CloudFormation uses this role even if
7629	// the users don't have permission to pass it. Ensure that the role grants least
7630	// privilege.
7631	//
7632	// If you don't specify a value, CloudFormation uses the role that was previously
7633	// associated with the stack. If no role is available, CloudFormation uses a
7634	// temporary session that is generated from your user credentials.
7635	RoleARN *string `min:"20" type:"string"`
7636
7637	// The rollback triggers for CloudFormation to monitor during stack creation
7638	// and updating operations, and for the specified monitoring period afterwards.
7639	RollbackConfiguration *RollbackConfiguration `type:"structure"`
7640
7641	// The name or the unique ID of the stack for which you are creating a change
7642	// set. CloudFormation generates the change set by comparing this stack's information
7643	// with the information that you submit, such as a modified template or different
7644	// parameter input values.
7645	//
7646	// StackName is a required field
7647	StackName *string `min:"1" type:"string" required:"true"`
7648
7649	// Key-value pairs to associate with this stack. CloudFormation also propagates
7650	// these tags to resources in the stack. You can specify a maximum of 50 tags.
7651	Tags []*Tag `type:"list"`
7652
7653	// A structure that contains the body of the revised template, with a minimum
7654	// length of 1 byte and a maximum length of 51,200 bytes. CloudFormation generates
7655	// the change set by comparing this template with the template of the stack
7656	// that you specified.
7657	//
7658	// Conditional: You must specify only TemplateBody or TemplateURL.
7659	TemplateBody *string `min:"1" type:"string"`
7660
7661	// The location of the file that contains the revised template. The URL must
7662	// point to a template (max size: 460,800 bytes) that is located in an S3 bucket
7663	// or a Systems Manager document. CloudFormation generates the change set by
7664	// comparing this template with the stack that you specified.
7665	//
7666	// Conditional: You must specify only TemplateBody or TemplateURL.
7667	TemplateURL *string `min:"1" type:"string"`
7668
7669	// Whether to reuse the template that is associated with the stack to create
7670	// the change set.
7671	UsePreviousTemplate *bool `type:"boolean"`
7672}
7673
7674// String returns the string representation
7675func (s CreateChangeSetInput) String() string {
7676	return awsutil.Prettify(s)
7677}
7678
7679// GoString returns the string representation
7680func (s CreateChangeSetInput) GoString() string {
7681	return s.String()
7682}
7683
7684// Validate inspects the fields of the type to determine if they are valid.
7685func (s *CreateChangeSetInput) Validate() error {
7686	invalidParams := request.ErrInvalidParams{Context: "CreateChangeSetInput"}
7687	if s.ChangeSetName == nil {
7688		invalidParams.Add(request.NewErrParamRequired("ChangeSetName"))
7689	}
7690	if s.ChangeSetName != nil && len(*s.ChangeSetName) < 1 {
7691		invalidParams.Add(request.NewErrParamMinLen("ChangeSetName", 1))
7692	}
7693	if s.ClientToken != nil && len(*s.ClientToken) < 1 {
7694		invalidParams.Add(request.NewErrParamMinLen("ClientToken", 1))
7695	}
7696	if s.Description != nil && len(*s.Description) < 1 {
7697		invalidParams.Add(request.NewErrParamMinLen("Description", 1))
7698	}
7699	if s.RoleARN != nil && len(*s.RoleARN) < 20 {
7700		invalidParams.Add(request.NewErrParamMinLen("RoleARN", 20))
7701	}
7702	if s.StackName == nil {
7703		invalidParams.Add(request.NewErrParamRequired("StackName"))
7704	}
7705	if s.StackName != nil && len(*s.StackName) < 1 {
7706		invalidParams.Add(request.NewErrParamMinLen("StackName", 1))
7707	}
7708	if s.TemplateBody != nil && len(*s.TemplateBody) < 1 {
7709		invalidParams.Add(request.NewErrParamMinLen("TemplateBody", 1))
7710	}
7711	if s.TemplateURL != nil && len(*s.TemplateURL) < 1 {
7712		invalidParams.Add(request.NewErrParamMinLen("TemplateURL", 1))
7713	}
7714	if s.ResourcesToImport != nil {
7715		for i, v := range s.ResourcesToImport {
7716			if v == nil {
7717				continue
7718			}
7719			if err := v.Validate(); err != nil {
7720				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "ResourcesToImport", i), err.(request.ErrInvalidParams))
7721			}
7722		}
7723	}
7724	if s.RollbackConfiguration != nil {
7725		if err := s.RollbackConfiguration.Validate(); err != nil {
7726			invalidParams.AddNested("RollbackConfiguration", err.(request.ErrInvalidParams))
7727		}
7728	}
7729	if s.Tags != nil {
7730		for i, v := range s.Tags {
7731			if v == nil {
7732				continue
7733			}
7734			if err := v.Validate(); err != nil {
7735				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Tags", i), err.(request.ErrInvalidParams))
7736			}
7737		}
7738	}
7739
7740	if invalidParams.Len() > 0 {
7741		return invalidParams
7742	}
7743	return nil
7744}
7745
7746// SetCapabilities sets the Capabilities field's value.
7747func (s *CreateChangeSetInput) SetCapabilities(v []*string) *CreateChangeSetInput {
7748	s.Capabilities = v
7749	return s
7750}
7751
7752// SetChangeSetName sets the ChangeSetName field's value.
7753func (s *CreateChangeSetInput) SetChangeSetName(v string) *CreateChangeSetInput {
7754	s.ChangeSetName = &v
7755	return s
7756}
7757
7758// SetChangeSetType sets the ChangeSetType field's value.
7759func (s *CreateChangeSetInput) SetChangeSetType(v string) *CreateChangeSetInput {
7760	s.ChangeSetType = &v
7761	return s
7762}
7763
7764// SetClientToken sets the ClientToken field's value.
7765func (s *CreateChangeSetInput) SetClientToken(v string) *CreateChangeSetInput {
7766	s.ClientToken = &v
7767	return s
7768}
7769
7770// SetDescription sets the Description field's value.
7771func (s *CreateChangeSetInput) SetDescription(v string) *CreateChangeSetInput {
7772	s.Description = &v
7773	return s
7774}
7775
7776// SetIncludeNestedStacks sets the IncludeNestedStacks field's value.
7777func (s *CreateChangeSetInput) SetIncludeNestedStacks(v bool) *CreateChangeSetInput {
7778	s.IncludeNestedStacks = &v
7779	return s
7780}
7781
7782// SetNotificationARNs sets the NotificationARNs field's value.
7783func (s *CreateChangeSetInput) SetNotificationARNs(v []*string) *CreateChangeSetInput {
7784	s.NotificationARNs = v
7785	return s
7786}
7787
7788// SetParameters sets the Parameters field's value.
7789func (s *CreateChangeSetInput) SetParameters(v []*Parameter) *CreateChangeSetInput {
7790	s.Parameters = v
7791	return s
7792}
7793
7794// SetResourceTypes sets the ResourceTypes field's value.
7795func (s *CreateChangeSetInput) SetResourceTypes(v []*string) *CreateChangeSetInput {
7796	s.ResourceTypes = v
7797	return s
7798}
7799
7800// SetResourcesToImport sets the ResourcesToImport field's value.
7801func (s *CreateChangeSetInput) SetResourcesToImport(v []*ResourceToImport) *CreateChangeSetInput {
7802	s.ResourcesToImport = v
7803	return s
7804}
7805
7806// SetRoleARN sets the RoleARN field's value.
7807func (s *CreateChangeSetInput) SetRoleARN(v string) *CreateChangeSetInput {
7808	s.RoleARN = &v
7809	return s
7810}
7811
7812// SetRollbackConfiguration sets the RollbackConfiguration field's value.
7813func (s *CreateChangeSetInput) SetRollbackConfiguration(v *RollbackConfiguration) *CreateChangeSetInput {
7814	s.RollbackConfiguration = v
7815	return s
7816}
7817
7818// SetStackName sets the StackName field's value.
7819func (s *CreateChangeSetInput) SetStackName(v string) *CreateChangeSetInput {
7820	s.StackName = &v
7821	return s
7822}
7823
7824// SetTags sets the Tags field's value.
7825func (s *CreateChangeSetInput) SetTags(v []*Tag) *CreateChangeSetInput {
7826	s.Tags = v
7827	return s
7828}
7829
7830// SetTemplateBody sets the TemplateBody field's value.
7831func (s *CreateChangeSetInput) SetTemplateBody(v string) *CreateChangeSetInput {
7832	s.TemplateBody = &v
7833	return s
7834}
7835
7836// SetTemplateURL sets the TemplateURL field's value.
7837func (s *CreateChangeSetInput) SetTemplateURL(v string) *CreateChangeSetInput {
7838	s.TemplateURL = &v
7839	return s
7840}
7841
7842// SetUsePreviousTemplate sets the UsePreviousTemplate field's value.
7843func (s *CreateChangeSetInput) SetUsePreviousTemplate(v bool) *CreateChangeSetInput {
7844	s.UsePreviousTemplate = &v
7845	return s
7846}
7847
7848// The output for the CreateChangeSet action.
7849type CreateChangeSetOutput struct {
7850	_ struct{} `type:"structure"`
7851
7852	// The Amazon Resource Name (ARN) of the change set.
7853	Id *string `min:"1" type:"string"`
7854
7855	// The unique ID of the stack.
7856	StackId *string `type:"string"`
7857}
7858
7859// String returns the string representation
7860func (s CreateChangeSetOutput) String() string {
7861	return awsutil.Prettify(s)
7862}
7863
7864// GoString returns the string representation
7865func (s CreateChangeSetOutput) GoString() string {
7866	return s.String()
7867}
7868
7869// SetId sets the Id field's value.
7870func (s *CreateChangeSetOutput) SetId(v string) *CreateChangeSetOutput {
7871	s.Id = &v
7872	return s
7873}
7874
7875// SetStackId sets the StackId field's value.
7876func (s *CreateChangeSetOutput) SetStackId(v string) *CreateChangeSetOutput {
7877	s.StackId = &v
7878	return s
7879}
7880
7881// The input for CreateStack action.
7882type CreateStackInput struct {
7883	_ struct{} `type:"structure"`
7884
7885	// In some cases, you must explicitly acknowledge that your stack template contains
7886	// certain capabilities in order for CloudFormation to create the stack.
7887	//
7888	//    * CAPABILITY_IAM and CAPABILITY_NAMED_IAM Some stack templates might include
7889	//    resources that can affect permissions in your Amazon Web Services account;
7890	//    for example, by creating new Identity and Access Management (IAM) users.
7891	//    For those stacks, you must explicitly acknowledge this by specifying one
7892	//    of these capabilities. The following IAM resources require you to specify
7893	//    either the CAPABILITY_IAM or CAPABILITY_NAMED_IAM capability. If you have
7894	//    IAM resources, you can specify either capability. If you have IAM resources
7895	//    with custom names, you must specify CAPABILITY_NAMED_IAM. If you don't
7896	//    specify either of these capabilities, CloudFormation returns an InsufficientCapabilities
7897	//    error. If your stack template contains these resources, we recommend that
7898	//    you review all permissions associated with them and edit their permissions
7899	//    if necessary. AWS::IAM::AccessKey (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iam-accesskey.html)
7900	//    AWS::IAM::Group (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iam-group.html)
7901	//    AWS::IAM::InstanceProfile (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iam-instanceprofile.html)
7902	//    AWS::IAM::Policy (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iam-policy.html)
7903	//    AWS::IAM::Role (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iam-role.html)
7904	//    AWS::IAM::User (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iam-user.html)
7905	//    AWS::IAM::UserToGroupAddition (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iam-addusertogroup.html)
7906	//    For more information, see Acknowledging IAM Resources in CloudFormation
7907	//    Templates (http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-iam-template.html#capabilities).
7908	//
7909	//    * CAPABILITY_AUTO_EXPAND Some template contain macros. Macros perform
7910	//    custom processing on templates; this can include simple actions like find-and-replace
7911	//    operations, all the way to extensive transformations of entire templates.
7912	//    Because of this, users typically create a change set from the processed
7913	//    template, so that they can review the changes resulting from the macros
7914	//    before actually creating the stack. If your stack template contains one
7915	//    or more macros, and you choose to create a stack directly from the processed
7916	//    template, without first reviewing the resulting changes in a change set,
7917	//    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)
7918	//    and AWS::Serverless (http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/transform-aws-serverless.html)
7919	//    transforms, which are macros hosted by CloudFormation. If you want to
7920	//    create a stack from a stack template that contains macros and nested stacks,
7921	//    you must create the stack directly from the template using this capability.
7922	//    You should only create stacks directly from a stack template that contains
7923	//    macros if you know what processing the macro performs. Each macro relies
7924	//    on an underlying Lambda service function for processing stack templates.
7925	//    Be aware that the Lambda function owner can update the function operation
7926	//    without CloudFormation being notified. For more information, see Using
7927	//    CloudFormation Macros to Perform Custom Processing on Templates (http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/template-macros.html).
7928	Capabilities []*string `type:"list"`
7929
7930	// A unique identifier for this CreateStack request. Specify this token if you
7931	// plan to retry requests so that CloudFormation knows that you're not attempting
7932	// to create a stack with the same name. You might retry CreateStack requests
7933	// to ensure that CloudFormation successfully received them.
7934	//
7935	// All events triggered by a given stack operation are assigned the same client
7936	// request token, which you can use to track operations. For example, if you
7937	// execute a CreateStack operation with the token token1, then all the StackEvents
7938	// generated by that operation will have ClientRequestToken set as token1.
7939	//
7940	// In the console, stack operations display the client request token on the
7941	// Events tab. Stack operations that are initiated from the console use the
7942	// token format Console-StackOperation-ID, which helps you easily identify the
7943	// stack operation . For example, if you create a stack using the console, each
7944	// stack event would be assigned the same token in the following format: Console-CreateStack-7f59c3cf-00d2-40c7-b2ff-e75db0987002.
7945	ClientRequestToken *string `min:"1" type:"string"`
7946
7947	// Set to true to disable rollback of the stack if stack creation failed. You
7948	// can specify either DisableRollback or OnFailure, but not both.
7949	//
7950	// Default: false
7951	DisableRollback *bool `type:"boolean"`
7952
7953	// Whether to enable termination protection on the specified stack. If a user
7954	// attempts to delete a stack with termination protection enabled, the operation
7955	// fails and the stack remains unchanged. For more information, see Protecting
7956	// a Stack From Being Deleted (http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-protect-stacks.html)
7957	// in the CloudFormation User Guide. Termination protection is disabled on stacks
7958	// by default.
7959	//
7960	// For nested stacks (http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-nested-stacks.html),
7961	// termination protection is set on the root stack and cannot be changed directly
7962	// on the nested stack.
7963	EnableTerminationProtection *bool `type:"boolean"`
7964
7965	// The Simple Notification Service (SNS) topic ARNs to publish stack related
7966	// events. You can find your SNS topic ARNs using the SNS console or your Command
7967	// Line Interface (CLI).
7968	NotificationARNs []*string `type:"list"`
7969
7970	// Determines what action will be taken if stack creation fails. This must be
7971	// one of: DO_NOTHING, ROLLBACK, or DELETE. You can specify either OnFailure
7972	// or DisableRollback, but not both.
7973	//
7974	// Default: ROLLBACK
7975	OnFailure *string `type:"string" enum:"OnFailure"`
7976
7977	// A list of Parameter structures that specify input parameters for the stack.
7978	// For more information, see the Parameter (https://docs.aws.amazon.com/AWSCloudFormation/latest/APIReference/API_Parameter.html)
7979	// data type.
7980	Parameters []*Parameter `type:"list"`
7981
7982	// The template resource types that you have permissions to work with for this
7983	// create stack action, such as AWS::EC2::Instance, AWS::EC2::*, or Custom::MyCustomInstance.
7984	// Use the following syntax to describe template resource types: AWS::* (for
7985	// all Amazon Web Services resources), Custom::* (for all custom resources),
7986	// Custom::logical_ID (for a specific custom resource), AWS::service_name::*
7987	// (for all resources of a particular Amazon Web Services service), and AWS::service_name::resource_logical_ID
7988	// (for a specific Amazon Web Services resource).
7989	//
7990	// If the list of resource types doesn't include a resource that you're creating,
7991	// the stack creation fails. By default, CloudFormation grants permissions to
7992	// all resource types. Identity and Access Management (IAM) uses this parameter
7993	// for CloudFormation-specific condition keys in IAM policies. For more information,
7994	// see Controlling Access with Identity and Access Management (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-iam-template.html).
7995	ResourceTypes []*string `type:"list"`
7996
7997	// The Amazon Resource Name (ARN) of an Identity and Access Management (IAM)
7998	// role that CloudFormation assumes to create the stack. CloudFormation uses
7999	// the role's credentials to make calls on your behalf. CloudFormation always
8000	// uses this role for all future operations on the stack. As long as users have
8001	// permission to operate on the stack, CloudFormation uses this role even if
8002	// the users don't have permission to pass it. Ensure that the role grants least
8003	// privilege.
8004	//
8005	// If you don't specify a value, CloudFormation uses the role that was previously
8006	// associated with the stack. If no role is available, CloudFormation uses a
8007	// temporary session that is generated from your user credentials.
8008	RoleARN *string `min:"20" type:"string"`
8009
8010	// The rollback triggers for CloudFormation to monitor during stack creation
8011	// and updating operations, and for the specified monitoring period afterwards.
8012	RollbackConfiguration *RollbackConfiguration `type:"structure"`
8013
8014	// The name that is associated with the stack. The name must be unique in the
8015	// Region in which you are creating the stack.
8016	//
8017	// A stack name can contain only alphanumeric characters (case sensitive) and
8018	// hyphens. It must start with an alphabetical character and cannot be longer
8019	// than 128 characters.
8020	//
8021	// StackName is a required field
8022	StackName *string `type:"string" required:"true"`
8023
8024	// Structure containing the stack policy body. For more information, go to Prevent
8025	// Updates to Stack Resources (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/protect-stack-resources.html)
8026	// in the CloudFormation User Guide. You can specify either the StackPolicyBody
8027	// or the StackPolicyURL parameter, but not both.
8028	StackPolicyBody *string `min:"1" type:"string"`
8029
8030	// Location of a file containing the stack policy. The URL must point to a policy
8031	// (maximum size: 16 KB) located in an S3 bucket in the same Region as the stack.
8032	// You can specify either the StackPolicyBody or the StackPolicyURL parameter,
8033	// but not both.
8034	StackPolicyURL *string `min:"1" type:"string"`
8035
8036	// Key-value pairs to associate with this stack. CloudFormation also propagates
8037	// these tags to the resources created in the stack. A maximum number of 50
8038	// tags can be specified.
8039	Tags []*Tag `type:"list"`
8040
8041	// Structure containing the template body with a minimum length of 1 byte and
8042	// a maximum length of 51,200 bytes. For more information, go to Template Anatomy
8043	// (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/template-anatomy.html)
8044	// in the CloudFormation User Guide.
8045	//
8046	// Conditional: You must specify either the TemplateBody or the TemplateURL
8047	// parameter, but not both.
8048	TemplateBody *string `min:"1" type:"string"`
8049
8050	// Location of file containing the template body. The URL must point to a template
8051	// (max size: 460,800 bytes) that is located in an Amazon S3 bucket or a Systems
8052	// Manager document. For more information, go to the Template Anatomy (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/template-anatomy.html)
8053	// in the CloudFormation User Guide.
8054	//
8055	// Conditional: You must specify either the TemplateBody or the TemplateURL
8056	// parameter, but not both.
8057	TemplateURL *string `min:"1" type:"string"`
8058
8059	// The amount of time that can pass before the stack status becomes CREATE_FAILED;
8060	// if DisableRollback is not set or is set to false, the stack will be rolled
8061	// back.
8062	TimeoutInMinutes *int64 `min:"1" type:"integer"`
8063}
8064
8065// String returns the string representation
8066func (s CreateStackInput) String() string {
8067	return awsutil.Prettify(s)
8068}
8069
8070// GoString returns the string representation
8071func (s CreateStackInput) GoString() string {
8072	return s.String()
8073}
8074
8075// Validate inspects the fields of the type to determine if they are valid.
8076func (s *CreateStackInput) Validate() error {
8077	invalidParams := request.ErrInvalidParams{Context: "CreateStackInput"}
8078	if s.ClientRequestToken != nil && len(*s.ClientRequestToken) < 1 {
8079		invalidParams.Add(request.NewErrParamMinLen("ClientRequestToken", 1))
8080	}
8081	if s.RoleARN != nil && len(*s.RoleARN) < 20 {
8082		invalidParams.Add(request.NewErrParamMinLen("RoleARN", 20))
8083	}
8084	if s.StackName == nil {
8085		invalidParams.Add(request.NewErrParamRequired("StackName"))
8086	}
8087	if s.StackPolicyBody != nil && len(*s.StackPolicyBody) < 1 {
8088		invalidParams.Add(request.NewErrParamMinLen("StackPolicyBody", 1))
8089	}
8090	if s.StackPolicyURL != nil && len(*s.StackPolicyURL) < 1 {
8091		invalidParams.Add(request.NewErrParamMinLen("StackPolicyURL", 1))
8092	}
8093	if s.TemplateBody != nil && len(*s.TemplateBody) < 1 {
8094		invalidParams.Add(request.NewErrParamMinLen("TemplateBody", 1))
8095	}
8096	if s.TemplateURL != nil && len(*s.TemplateURL) < 1 {
8097		invalidParams.Add(request.NewErrParamMinLen("TemplateURL", 1))
8098	}
8099	if s.TimeoutInMinutes != nil && *s.TimeoutInMinutes < 1 {
8100		invalidParams.Add(request.NewErrParamMinValue("TimeoutInMinutes", 1))
8101	}
8102	if s.RollbackConfiguration != nil {
8103		if err := s.RollbackConfiguration.Validate(); err != nil {
8104			invalidParams.AddNested("RollbackConfiguration", err.(request.ErrInvalidParams))
8105		}
8106	}
8107	if s.Tags != nil {
8108		for i, v := range s.Tags {
8109			if v == nil {
8110				continue
8111			}
8112			if err := v.Validate(); err != nil {
8113				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Tags", i), err.(request.ErrInvalidParams))
8114			}
8115		}
8116	}
8117
8118	if invalidParams.Len() > 0 {
8119		return invalidParams
8120	}
8121	return nil
8122}
8123
8124// SetCapabilities sets the Capabilities field's value.
8125func (s *CreateStackInput) SetCapabilities(v []*string) *CreateStackInput {
8126	s.Capabilities = v
8127	return s
8128}
8129
8130// SetClientRequestToken sets the ClientRequestToken field's value.
8131func (s *CreateStackInput) SetClientRequestToken(v string) *CreateStackInput {
8132	s.ClientRequestToken = &v
8133	return s
8134}
8135
8136// SetDisableRollback sets the DisableRollback field's value.
8137func (s *CreateStackInput) SetDisableRollback(v bool) *CreateStackInput {
8138	s.DisableRollback = &v
8139	return s
8140}
8141
8142// SetEnableTerminationProtection sets the EnableTerminationProtection field's value.
8143func (s *CreateStackInput) SetEnableTerminationProtection(v bool) *CreateStackInput {
8144	s.EnableTerminationProtection = &v
8145	return s
8146}
8147
8148// SetNotificationARNs sets the NotificationARNs field's value.
8149func (s *CreateStackInput) SetNotificationARNs(v []*string) *CreateStackInput {
8150	s.NotificationARNs = v
8151	return s
8152}
8153
8154// SetOnFailure sets the OnFailure field's value.
8155func (s *CreateStackInput) SetOnFailure(v string) *CreateStackInput {
8156	s.OnFailure = &v
8157	return s
8158}
8159
8160// SetParameters sets the Parameters field's value.
8161func (s *CreateStackInput) SetParameters(v []*Parameter) *CreateStackInput {
8162	s.Parameters = v
8163	return s
8164}
8165
8166// SetResourceTypes sets the ResourceTypes field's value.
8167func (s *CreateStackInput) SetResourceTypes(v []*string) *CreateStackInput {
8168	s.ResourceTypes = v
8169	return s
8170}
8171
8172// SetRoleARN sets the RoleARN field's value.
8173func (s *CreateStackInput) SetRoleARN(v string) *CreateStackInput {
8174	s.RoleARN = &v
8175	return s
8176}
8177
8178// SetRollbackConfiguration sets the RollbackConfiguration field's value.
8179func (s *CreateStackInput) SetRollbackConfiguration(v *RollbackConfiguration) *CreateStackInput {
8180	s.RollbackConfiguration = v
8181	return s
8182}
8183
8184// SetStackName sets the StackName field's value.
8185func (s *CreateStackInput) SetStackName(v string) *CreateStackInput {
8186	s.StackName = &v
8187	return s
8188}
8189
8190// SetStackPolicyBody sets the StackPolicyBody field's value.
8191func (s *CreateStackInput) SetStackPolicyBody(v string) *CreateStackInput {
8192	s.StackPolicyBody = &v
8193	return s
8194}
8195
8196// SetStackPolicyURL sets the StackPolicyURL field's value.
8197func (s *CreateStackInput) SetStackPolicyURL(v string) *CreateStackInput {
8198	s.StackPolicyURL = &v
8199	return s
8200}
8201
8202// SetTags sets the Tags field's value.
8203func (s *CreateStackInput) SetTags(v []*Tag) *CreateStackInput {
8204	s.Tags = v
8205	return s
8206}
8207
8208// SetTemplateBody sets the TemplateBody field's value.
8209func (s *CreateStackInput) SetTemplateBody(v string) *CreateStackInput {
8210	s.TemplateBody = &v
8211	return s
8212}
8213
8214// SetTemplateURL sets the TemplateURL field's value.
8215func (s *CreateStackInput) SetTemplateURL(v string) *CreateStackInput {
8216	s.TemplateURL = &v
8217	return s
8218}
8219
8220// SetTimeoutInMinutes sets the TimeoutInMinutes field's value.
8221func (s *CreateStackInput) SetTimeoutInMinutes(v int64) *CreateStackInput {
8222	s.TimeoutInMinutes = &v
8223	return s
8224}
8225
8226type CreateStackInstancesInput struct {
8227	_ struct{} `type:"structure"`
8228
8229	// [Self-managed permissions] The names of one or more Amazon Web Services accounts
8230	// that you want to create stack instances in the specified Region(s) for.
8231	//
8232	// You can specify Accounts or DeploymentTargets, but not both.
8233	Accounts []*string `type:"list"`
8234
8235	// [Service-managed permissions] Specifies whether you are acting as an account
8236	// administrator in the organization's management account or as a delegated
8237	// administrator in a member account.
8238	//
8239	// By default, SELF is specified. Use SELF for stack sets with self-managed
8240	// permissions.
8241	//
8242	//    * If you are signed in to the management account, specify SELF.
8243	//
8244	//    * If you are signed in to a delegated administrator account, specify DELEGATED_ADMIN.
8245	//    Your Amazon Web Services account must be registered as a delegated administrator
8246	//    in the management account. For more information, see Register a delegated
8247	//    administrator (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/stacksets-orgs-delegated-admin.html)
8248	//    in the CloudFormation User Guide.
8249	CallAs *string `type:"string" enum:"CallAs"`
8250
8251	// [Service-managed permissions] The Organizations accounts for which to create
8252	// stack instances in the specified Regions.
8253	//
8254	// You can specify Accounts or DeploymentTargets, but not both.
8255	DeploymentTargets *DeploymentTargets `type:"structure"`
8256
8257	// The unique identifier for this stack set operation.
8258	//
8259	// The operation ID also functions as an idempotency token, to ensure that CloudFormation
8260	// performs the stack set operation only once, even if you retry the request
8261	// multiple times. You might retry stack set operation requests to ensure that
8262	// CloudFormation successfully received them.
8263	//
8264	// If you don't specify an operation ID, the SDK generates one automatically.
8265	//
8266	// Repeating this stack set operation with a new operation ID retries all stack
8267	// instances whose status is OUTDATED.
8268	OperationId *string `min:"1" type:"string" idempotencyToken:"true"`
8269
8270	// Preferences for how CloudFormation performs this stack set operation.
8271	OperationPreferences *StackSetOperationPreferences `type:"structure"`
8272
8273	// A list of stack set parameters whose values you want to override in the selected
8274	// stack instances.
8275	//
8276	// Any overridden parameter values will be applied to all stack instances in
8277	// the specified accounts and Regions. When specifying parameters and their
8278	// values, be aware of how CloudFormation sets parameter values during stack
8279	// instance operations:
8280	//
8281	//    * To override the current value for a parameter, include the parameter
8282	//    and specify its value.
8283	//
8284	//    * To leave an overridden parameter set to its present value, include the
8285	//    parameter and specify UsePreviousValue as true. (You cannot specify both
8286	//    a value and set UsePreviousValue to true.)
8287	//
8288	//    * To set an overridden parameter back to the value specified in the stack
8289	//    set, specify a parameter list but do not include the parameter in the
8290	//    list.
8291	//
8292	//    * To leave all parameters set to their present values, do not specify
8293	//    this property at all.
8294	//
8295	// During stack set updates, any parameter values overridden for a stack instance
8296	// are not updated, but retain their overridden value.
8297	//
8298	// You can only override the parameter values that are specified in the stack
8299	// set; to add or delete a parameter itself, use UpdateStackSet (https://docs.aws.amazon.com/AWSCloudFormation/latest/APIReference/API_UpdateStackSet.html)
8300	// to update the stack set template.
8301	ParameterOverrides []*Parameter `type:"list"`
8302
8303	// The names of one or more Regions where you want to create stack instances
8304	// using the specified Amazon Web Services accounts.
8305	//
8306	// Regions is a required field
8307	Regions []*string `type:"list" required:"true"`
8308
8309	// The name or unique ID of the stack set that you want to create stack instances
8310	// from.
8311	//
8312	// StackSetName is a required field
8313	StackSetName *string `type:"string" required:"true"`
8314}
8315
8316// String returns the string representation
8317func (s CreateStackInstancesInput) String() string {
8318	return awsutil.Prettify(s)
8319}
8320
8321// GoString returns the string representation
8322func (s CreateStackInstancesInput) GoString() string {
8323	return s.String()
8324}
8325
8326// Validate inspects the fields of the type to determine if they are valid.
8327func (s *CreateStackInstancesInput) Validate() error {
8328	invalidParams := request.ErrInvalidParams{Context: "CreateStackInstancesInput"}
8329	if s.OperationId != nil && len(*s.OperationId) < 1 {
8330		invalidParams.Add(request.NewErrParamMinLen("OperationId", 1))
8331	}
8332	if s.Regions == nil {
8333		invalidParams.Add(request.NewErrParamRequired("Regions"))
8334	}
8335	if s.StackSetName == nil {
8336		invalidParams.Add(request.NewErrParamRequired("StackSetName"))
8337	}
8338	if s.DeploymentTargets != nil {
8339		if err := s.DeploymentTargets.Validate(); err != nil {
8340			invalidParams.AddNested("DeploymentTargets", err.(request.ErrInvalidParams))
8341		}
8342	}
8343	if s.OperationPreferences != nil {
8344		if err := s.OperationPreferences.Validate(); err != nil {
8345			invalidParams.AddNested("OperationPreferences", err.(request.ErrInvalidParams))
8346		}
8347	}
8348
8349	if invalidParams.Len() > 0 {
8350		return invalidParams
8351	}
8352	return nil
8353}
8354
8355// SetAccounts sets the Accounts field's value.
8356func (s *CreateStackInstancesInput) SetAccounts(v []*string) *CreateStackInstancesInput {
8357	s.Accounts = v
8358	return s
8359}
8360
8361// SetCallAs sets the CallAs field's value.
8362func (s *CreateStackInstancesInput) SetCallAs(v string) *CreateStackInstancesInput {
8363	s.CallAs = &v
8364	return s
8365}
8366
8367// SetDeploymentTargets sets the DeploymentTargets field's value.
8368func (s *CreateStackInstancesInput) SetDeploymentTargets(v *DeploymentTargets) *CreateStackInstancesInput {
8369	s.DeploymentTargets = v
8370	return s
8371}
8372
8373// SetOperationId sets the OperationId field's value.
8374func (s *CreateStackInstancesInput) SetOperationId(v string) *CreateStackInstancesInput {
8375	s.OperationId = &v
8376	return s
8377}
8378
8379// SetOperationPreferences sets the OperationPreferences field's value.
8380func (s *CreateStackInstancesInput) SetOperationPreferences(v *StackSetOperationPreferences) *CreateStackInstancesInput {
8381	s.OperationPreferences = v
8382	return s
8383}
8384
8385// SetParameterOverrides sets the ParameterOverrides field's value.
8386func (s *CreateStackInstancesInput) SetParameterOverrides(v []*Parameter) *CreateStackInstancesInput {
8387	s.ParameterOverrides = v
8388	return s
8389}
8390
8391// SetRegions sets the Regions field's value.
8392func (s *CreateStackInstancesInput) SetRegions(v []*string) *CreateStackInstancesInput {
8393	s.Regions = v
8394	return s
8395}
8396
8397// SetStackSetName sets the StackSetName field's value.
8398func (s *CreateStackInstancesInput) SetStackSetName(v string) *CreateStackInstancesInput {
8399	s.StackSetName = &v
8400	return s
8401}
8402
8403type CreateStackInstancesOutput struct {
8404	_ struct{} `type:"structure"`
8405
8406	// The unique identifier for this stack set operation.
8407	OperationId *string `min:"1" type:"string"`
8408}
8409
8410// String returns the string representation
8411func (s CreateStackInstancesOutput) String() string {
8412	return awsutil.Prettify(s)
8413}
8414
8415// GoString returns the string representation
8416func (s CreateStackInstancesOutput) GoString() string {
8417	return s.String()
8418}
8419
8420// SetOperationId sets the OperationId field's value.
8421func (s *CreateStackInstancesOutput) SetOperationId(v string) *CreateStackInstancesOutput {
8422	s.OperationId = &v
8423	return s
8424}
8425
8426// The output for a CreateStack action.
8427type CreateStackOutput struct {
8428	_ struct{} `type:"structure"`
8429
8430	// Unique identifier of the stack.
8431	StackId *string `type:"string"`
8432}
8433
8434// String returns the string representation
8435func (s CreateStackOutput) String() string {
8436	return awsutil.Prettify(s)
8437}
8438
8439// GoString returns the string representation
8440func (s CreateStackOutput) GoString() string {
8441	return s.String()
8442}
8443
8444// SetStackId sets the StackId field's value.
8445func (s *CreateStackOutput) SetStackId(v string) *CreateStackOutput {
8446	s.StackId = &v
8447	return s
8448}
8449
8450type CreateStackSetInput struct {
8451	_ struct{} `type:"structure"`
8452
8453	// The Amazon Resource Number (ARN) of the IAM role to use to create this stack
8454	// set.
8455	//
8456	// Specify an IAM role only if you are using customized administrator roles
8457	// to control which users or groups can manage specific stack sets within the
8458	// same administrator account. For more information, see Prerequisites: Granting
8459	// Permissions for Stack Set Operations (http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/stacksets-prereqs.html)
8460	// in the CloudFormation User Guide.
8461	AdministrationRoleARN *string `min:"20" type:"string"`
8462
8463	// Describes whether StackSets automatically deploys to Organizations accounts
8464	// that are added to the target organization or organizational unit (OU). Specify
8465	// only if PermissionModel is SERVICE_MANAGED.
8466	AutoDeployment *AutoDeployment `type:"structure"`
8467
8468	// [Service-managed permissions] Specifies whether you are acting as an account
8469	// administrator in the organization's management account or as a delegated
8470	// administrator in a member account.
8471	//
8472	// By default, SELF is specified. Use SELF for stack sets with self-managed
8473	// permissions.
8474	//
8475	//    * To create a stack set with service-managed permissions while signed
8476	//    in to the management account, specify SELF.
8477	//
8478	//    * To create a stack set with service-managed permissions while signed
8479	//    in to a delegated administrator account, specify DELEGATED_ADMIN. Your
8480	//    Amazon Web Services account must be registered as a delegated admin in
8481	//    the management account. For more information, see Register a delegated
8482	//    administrator (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/stacksets-orgs-delegated-admin.html)
8483	//    in the CloudFormation User Guide.
8484	//
8485	// Stack sets with service-managed permissions are created in the management
8486	// account, including stack sets that are created by delegated administrators.
8487	CallAs *string `type:"string" enum:"CallAs"`
8488
8489	// In some cases, you must explicitly acknowledge that your stack set template
8490	// contains certain capabilities in order for CloudFormation to create the stack
8491	// set and related stack instances.
8492	//
8493	//    * CAPABILITY_IAM and CAPABILITY_NAMED_IAM Some stack templates might include
8494	//    resources that can affect permissions in your Amazon Web Services account;
8495	//    for example, by creating new Identity and Access Management (IAM) users.
8496	//    For those stack sets, you must explicitly acknowledge this by specifying
8497	//    one of these capabilities. The following IAM resources require you to
8498	//    specify either the CAPABILITY_IAM or CAPABILITY_NAMED_IAM capability.
8499	//    If you have IAM resources, you can specify either capability. If you have
8500	//    IAM resources with custom names, you must specify CAPABILITY_NAMED_IAM.
8501	//    If you don't specify either of these capabilities, CloudFormation returns
8502	//    an InsufficientCapabilities error. If your stack template contains these
8503	//    resources, we recommend that you review all permissions associated with
8504	//    them and edit their permissions if necessary. AWS::IAM::AccessKey (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iam-accesskey.html)
8505	//    AWS::IAM::Group (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iam-group.html)
8506	//    AWS::IAM::InstanceProfile (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iam-instanceprofile.html)
8507	//    AWS::IAM::Policy (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iam-policy.html)
8508	//    AWS::IAM::Role (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iam-role.html)
8509	//    AWS::IAM::User (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iam-user.html)
8510	//    AWS::IAM::UserToGroupAddition (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iam-addusertogroup.html)
8511	//    For more information, see Acknowledging IAM Resources in CloudFormation
8512	//    Templates (http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-iam-template.html#capabilities).
8513	//
8514	//    * CAPABILITY_AUTO_EXPAND Some templates reference macros. If your stack
8515	//    set template references one or more macros, you must create the stack
8516	//    set directly from the processed template, without first reviewing the
8517	//    resulting changes in a change set. To create the stack set directly, you
8518	//    must acknowledge this capability. For more information, see Using CloudFormation
8519	//    Macros to Perform Custom Processing on Templates (http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/template-macros.html).
8520	//    Stack sets with service-managed permissions do not currently support the
8521	//    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)
8522	//    and AWS::Serverless (http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/transform-aws-serverless.html)
8523	//    transforms, which are macros hosted by CloudFormation.) Even if you specify
8524	//    this capability for a stack set with service-managed permissions, if you
8525	//    reference a macro in your template the stack set operation will fail.
8526	Capabilities []*string `type:"list"`
8527
8528	// A unique identifier for this CreateStackSet request. Specify this token if
8529	// you plan to retry requests so that CloudFormation knows that you're not attempting
8530	// to create another stack set with the same name. You might retry CreateStackSet
8531	// requests to ensure that CloudFormation successfully received them.
8532	//
8533	// If you don't specify an operation ID, the SDK generates one automatically.
8534	ClientRequestToken *string `min:"1" type:"string" idempotencyToken:"true"`
8535
8536	// A description of the stack set. You can use the description to identify the
8537	// stack set's purpose or other important information.
8538	Description *string `min:"1" type:"string"`
8539
8540	// The name of the IAM execution role to use to create the stack set. If you
8541	// do not specify an execution role, CloudFormation uses the AWSCloudFormationStackSetExecutionRole
8542	// role for the stack set operation.
8543	//
8544	// Specify an IAM role only if you are using customized execution roles to control
8545	// which stack resources users and groups can include in their stack sets.
8546	ExecutionRoleName *string `min:"1" type:"string"`
8547
8548	// The input parameters for the stack set template.
8549	Parameters []*Parameter `type:"list"`
8550
8551	// Describes how the IAM roles required for stack set operations are created.
8552	// By default, SELF-MANAGED is specified.
8553	//
8554	//    * With self-managed permissions, you must create the administrator and
8555	//    execution roles required to deploy to target accounts. For more information,
8556	//    see Grant Self-Managed Stack Set Permissions (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/stacksets-prereqs-self-managed.html).
8557	//
8558	//    * With service-managed permissions, StackSets automatically creates the
8559	//    IAM roles required to deploy to accounts managed by Organizations. For
8560	//    more information, see Grant Service-Managed Stack Set Permissions (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/stacksets-prereqs-service-managed.html).
8561	PermissionModel *string `type:"string" enum:"PermissionModels"`
8562
8563	// The stack ID you are importing into a new stack set. Specify the Amazon Resource
8564	// Number (ARN) of the stack.
8565	StackId *string `type:"string"`
8566
8567	// The name to associate with the stack set. The name must be unique in the
8568	// Region where you create your stack set.
8569	//
8570	// A stack name can contain only alphanumeric characters (case-sensitive) and
8571	// hyphens. It must start with an alphabetic character and can't be longer than
8572	// 128 characters.
8573	//
8574	// StackSetName is a required field
8575	StackSetName *string `type:"string" required:"true"`
8576
8577	// The key-value pairs to associate with this stack set and the stacks created
8578	// from it. CloudFormation also propagates these tags to supported resources
8579	// that are created in the stacks. A maximum number of 50 tags can be specified.
8580	//
8581	// If you specify tags as part of a CreateStackSet action, CloudFormation checks
8582	// to see if you have the required IAM permission to tag resources. If you don't,
8583	// the entire CreateStackSet action fails with an access denied error, and the
8584	// stack set is not created.
8585	Tags []*Tag `type:"list"`
8586
8587	// The structure that contains the template body, with a minimum length of 1
8588	// byte and a maximum length of 51,200 bytes. For more information, see Template
8589	// Anatomy (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/template-anatomy.html)
8590	// in the CloudFormation User Guide.
8591	//
8592	// Conditional: You must specify either the TemplateBody or the TemplateURL
8593	// parameter, but not both.
8594	TemplateBody *string `min:"1" type:"string"`
8595
8596	// The location of the file that contains the template body. The URL must point
8597	// to a template (maximum size: 460,800 bytes) that's located in an Amazon S3
8598	// bucket or a Systems Manager document. For more information, see Template
8599	// Anatomy (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/template-anatomy.html)
8600	// in the CloudFormation User Guide.
8601	//
8602	// Conditional: You must specify either the TemplateBody or the TemplateURL
8603	// parameter, but not both.
8604	TemplateURL *string `min:"1" type:"string"`
8605}
8606
8607// String returns the string representation
8608func (s CreateStackSetInput) String() string {
8609	return awsutil.Prettify(s)
8610}
8611
8612// GoString returns the string representation
8613func (s CreateStackSetInput) GoString() string {
8614	return s.String()
8615}
8616
8617// Validate inspects the fields of the type to determine if they are valid.
8618func (s *CreateStackSetInput) Validate() error {
8619	invalidParams := request.ErrInvalidParams{Context: "CreateStackSetInput"}
8620	if s.AdministrationRoleARN != nil && len(*s.AdministrationRoleARN) < 20 {
8621		invalidParams.Add(request.NewErrParamMinLen("AdministrationRoleARN", 20))
8622	}
8623	if s.ClientRequestToken != nil && len(*s.ClientRequestToken) < 1 {
8624		invalidParams.Add(request.NewErrParamMinLen("ClientRequestToken", 1))
8625	}
8626	if s.Description != nil && len(*s.Description) < 1 {
8627		invalidParams.Add(request.NewErrParamMinLen("Description", 1))
8628	}
8629	if s.ExecutionRoleName != nil && len(*s.ExecutionRoleName) < 1 {
8630		invalidParams.Add(request.NewErrParamMinLen("ExecutionRoleName", 1))
8631	}
8632	if s.StackSetName == nil {
8633		invalidParams.Add(request.NewErrParamRequired("StackSetName"))
8634	}
8635	if s.TemplateBody != nil && len(*s.TemplateBody) < 1 {
8636		invalidParams.Add(request.NewErrParamMinLen("TemplateBody", 1))
8637	}
8638	if s.TemplateURL != nil && len(*s.TemplateURL) < 1 {
8639		invalidParams.Add(request.NewErrParamMinLen("TemplateURL", 1))
8640	}
8641	if s.Tags != nil {
8642		for i, v := range s.Tags {
8643			if v == nil {
8644				continue
8645			}
8646			if err := v.Validate(); err != nil {
8647				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Tags", i), err.(request.ErrInvalidParams))
8648			}
8649		}
8650	}
8651
8652	if invalidParams.Len() > 0 {
8653		return invalidParams
8654	}
8655	return nil
8656}
8657
8658// SetAdministrationRoleARN sets the AdministrationRoleARN field's value.
8659func (s *CreateStackSetInput) SetAdministrationRoleARN(v string) *CreateStackSetInput {
8660	s.AdministrationRoleARN = &v
8661	return s
8662}
8663
8664// SetAutoDeployment sets the AutoDeployment field's value.
8665func (s *CreateStackSetInput) SetAutoDeployment(v *AutoDeployment) *CreateStackSetInput {
8666	s.AutoDeployment = v
8667	return s
8668}
8669
8670// SetCallAs sets the CallAs field's value.
8671func (s *CreateStackSetInput) SetCallAs(v string) *CreateStackSetInput {
8672	s.CallAs = &v
8673	return s
8674}
8675
8676// SetCapabilities sets the Capabilities field's value.
8677func (s *CreateStackSetInput) SetCapabilities(v []*string) *CreateStackSetInput {
8678	s.Capabilities = v
8679	return s
8680}
8681
8682// SetClientRequestToken sets the ClientRequestToken field's value.
8683func (s *CreateStackSetInput) SetClientRequestToken(v string) *CreateStackSetInput {
8684	s.ClientRequestToken = &v
8685	return s
8686}
8687
8688// SetDescription sets the Description field's value.
8689func (s *CreateStackSetInput) SetDescription(v string) *CreateStackSetInput {
8690	s.Description = &v
8691	return s
8692}
8693
8694// SetExecutionRoleName sets the ExecutionRoleName field's value.
8695func (s *CreateStackSetInput) SetExecutionRoleName(v string) *CreateStackSetInput {
8696	s.ExecutionRoleName = &v
8697	return s
8698}
8699
8700// SetParameters sets the Parameters field's value.
8701func (s *CreateStackSetInput) SetParameters(v []*Parameter) *CreateStackSetInput {
8702	s.Parameters = v
8703	return s
8704}
8705
8706// SetPermissionModel sets the PermissionModel field's value.
8707func (s *CreateStackSetInput) SetPermissionModel(v string) *CreateStackSetInput {
8708	s.PermissionModel = &v
8709	return s
8710}
8711
8712// SetStackId sets the StackId field's value.
8713func (s *CreateStackSetInput) SetStackId(v string) *CreateStackSetInput {
8714	s.StackId = &v
8715	return s
8716}
8717
8718// SetStackSetName sets the StackSetName field's value.
8719func (s *CreateStackSetInput) SetStackSetName(v string) *CreateStackSetInput {
8720	s.StackSetName = &v
8721	return s
8722}
8723
8724// SetTags sets the Tags field's value.
8725func (s *CreateStackSetInput) SetTags(v []*Tag) *CreateStackSetInput {
8726	s.Tags = v
8727	return s
8728}
8729
8730// SetTemplateBody sets the TemplateBody field's value.
8731func (s *CreateStackSetInput) SetTemplateBody(v string) *CreateStackSetInput {
8732	s.TemplateBody = &v
8733	return s
8734}
8735
8736// SetTemplateURL sets the TemplateURL field's value.
8737func (s *CreateStackSetInput) SetTemplateURL(v string) *CreateStackSetInput {
8738	s.TemplateURL = &v
8739	return s
8740}
8741
8742type CreateStackSetOutput struct {
8743	_ struct{} `type:"structure"`
8744
8745	// The ID of the stack set that you're creating.
8746	StackSetId *string `type:"string"`
8747}
8748
8749// String returns the string representation
8750func (s CreateStackSetOutput) String() string {
8751	return awsutil.Prettify(s)
8752}
8753
8754// GoString returns the string representation
8755func (s CreateStackSetOutput) GoString() string {
8756	return s.String()
8757}
8758
8759// SetStackSetId sets the StackSetId field's value.
8760func (s *CreateStackSetOutput) SetStackSetId(v string) *CreateStackSetOutput {
8761	s.StackSetId = &v
8762	return s
8763}
8764
8765type DeactivateTypeInput struct {
8766	_ struct{} `type:"structure"`
8767
8768	// The Amazon Resource Name (ARN) for the extension, in this account and region.
8769	//
8770	// Conditional: You must specify either Arn, or TypeName and Type.
8771	Arn *string `type:"string"`
8772
8773	// The extension type.
8774	//
8775	// Conditional: You must specify either Arn, or TypeName and Type.
8776	Type *string `type:"string" enum:"ThirdPartyType"`
8777
8778	// The type name of the extension, in this account and region. If you specified
8779	// a type name alias when enabling the extension, use the type name alias.
8780	//
8781	// Conditional: You must specify either Arn, or TypeName and Type.
8782	TypeName *string `min:"10" type:"string"`
8783}
8784
8785// String returns the string representation
8786func (s DeactivateTypeInput) String() string {
8787	return awsutil.Prettify(s)
8788}
8789
8790// GoString returns the string representation
8791func (s DeactivateTypeInput) GoString() string {
8792	return s.String()
8793}
8794
8795// Validate inspects the fields of the type to determine if they are valid.
8796func (s *DeactivateTypeInput) Validate() error {
8797	invalidParams := request.ErrInvalidParams{Context: "DeactivateTypeInput"}
8798	if s.TypeName != nil && len(*s.TypeName) < 10 {
8799		invalidParams.Add(request.NewErrParamMinLen("TypeName", 10))
8800	}
8801
8802	if invalidParams.Len() > 0 {
8803		return invalidParams
8804	}
8805	return nil
8806}
8807
8808// SetArn sets the Arn field's value.
8809func (s *DeactivateTypeInput) SetArn(v string) *DeactivateTypeInput {
8810	s.Arn = &v
8811	return s
8812}
8813
8814// SetType sets the Type field's value.
8815func (s *DeactivateTypeInput) SetType(v string) *DeactivateTypeInput {
8816	s.Type = &v
8817	return s
8818}
8819
8820// SetTypeName sets the TypeName field's value.
8821func (s *DeactivateTypeInput) SetTypeName(v string) *DeactivateTypeInput {
8822	s.TypeName = &v
8823	return s
8824}
8825
8826type DeactivateTypeOutput struct {
8827	_ struct{} `type:"structure"`
8828}
8829
8830// String returns the string representation
8831func (s DeactivateTypeOutput) String() string {
8832	return awsutil.Prettify(s)
8833}
8834
8835// GoString returns the string representation
8836func (s DeactivateTypeOutput) GoString() string {
8837	return s.String()
8838}
8839
8840// The input for the DeleteChangeSet action.
8841type DeleteChangeSetInput struct {
8842	_ struct{} `type:"structure"`
8843
8844	// The name or Amazon Resource Name (ARN) of the change set that you want to
8845	// delete.
8846	//
8847	// ChangeSetName is a required field
8848	ChangeSetName *string `min:"1" type:"string" required:"true"`
8849
8850	// If you specified the name of a change set to delete, specify the stack name
8851	// or ID (ARN) that is associated with it.
8852	StackName *string `min:"1" type:"string"`
8853}
8854
8855// String returns the string representation
8856func (s DeleteChangeSetInput) String() string {
8857	return awsutil.Prettify(s)
8858}
8859
8860// GoString returns the string representation
8861func (s DeleteChangeSetInput) GoString() string {
8862	return s.String()
8863}
8864
8865// Validate inspects the fields of the type to determine if they are valid.
8866func (s *DeleteChangeSetInput) Validate() error {
8867	invalidParams := request.ErrInvalidParams{Context: "DeleteChangeSetInput"}
8868	if s.ChangeSetName == nil {
8869		invalidParams.Add(request.NewErrParamRequired("ChangeSetName"))
8870	}
8871	if s.ChangeSetName != nil && len(*s.ChangeSetName) < 1 {
8872		invalidParams.Add(request.NewErrParamMinLen("ChangeSetName", 1))
8873	}
8874	if s.StackName != nil && len(*s.StackName) < 1 {
8875		invalidParams.Add(request.NewErrParamMinLen("StackName", 1))
8876	}
8877
8878	if invalidParams.Len() > 0 {
8879		return invalidParams
8880	}
8881	return nil
8882}
8883
8884// SetChangeSetName sets the ChangeSetName field's value.
8885func (s *DeleteChangeSetInput) SetChangeSetName(v string) *DeleteChangeSetInput {
8886	s.ChangeSetName = &v
8887	return s
8888}
8889
8890// SetStackName sets the StackName field's value.
8891func (s *DeleteChangeSetInput) SetStackName(v string) *DeleteChangeSetInput {
8892	s.StackName = &v
8893	return s
8894}
8895
8896// The output for the DeleteChangeSet action.
8897type DeleteChangeSetOutput struct {
8898	_ struct{} `type:"structure"`
8899}
8900
8901// String returns the string representation
8902func (s DeleteChangeSetOutput) String() string {
8903	return awsutil.Prettify(s)
8904}
8905
8906// GoString returns the string representation
8907func (s DeleteChangeSetOutput) GoString() string {
8908	return s.String()
8909}
8910
8911// The input for DeleteStack action.
8912type DeleteStackInput struct {
8913	_ struct{} `type:"structure"`
8914
8915	// A unique identifier for this DeleteStack request. Specify this token if you
8916	// plan to retry requests so that CloudFormation knows that you're not attempting
8917	// to delete a stack with the same name. You might retry DeleteStack requests
8918	// to ensure that CloudFormation successfully received them.
8919	//
8920	// All events triggered by a given stack operation are assigned the same client
8921	// request token, which you can use to track operations. For example, if you
8922	// execute a CreateStack operation with the token token1, then all the StackEvents
8923	// generated by that operation will have ClientRequestToken set as token1.
8924	//
8925	// In the console, stack operations display the client request token on the
8926	// Events tab. Stack operations that are initiated from the console use the
8927	// token format Console-StackOperation-ID, which helps you easily identify the
8928	// stack operation . For example, if you create a stack using the console, each
8929	// stack event would be assigned the same token in the following format: Console-CreateStack-7f59c3cf-00d2-40c7-b2ff-e75db0987002.
8930	ClientRequestToken *string `min:"1" type:"string"`
8931
8932	// For stacks in the DELETE_FAILED state, a list of resource logical IDs that
8933	// are associated with the resources you want to retain. During deletion, CloudFormation
8934	// deletes the stack but does not delete the retained resources.
8935	//
8936	// Retaining resources is useful when you cannot delete a resource, such as
8937	// a non-empty S3 bucket, but you want to delete the stack.
8938	RetainResources []*string `type:"list"`
8939
8940	// The Amazon Resource Name (ARN) of an Identity and Access Management (IAM)
8941	// role that CloudFormation assumes to delete the stack. CloudFormation uses
8942	// the role's credentials to make calls on your behalf.
8943	//
8944	// If you don't specify a value, CloudFormation uses the role that was previously
8945	// associated with the stack. If no role is available, CloudFormation uses a
8946	// temporary session that is generated from your user credentials.
8947	RoleARN *string `min:"20" type:"string"`
8948
8949	// The name or the unique stack ID that is associated with the stack.
8950	//
8951	// StackName is a required field
8952	StackName *string `type:"string" required:"true"`
8953}
8954
8955// String returns the string representation
8956func (s DeleteStackInput) String() string {
8957	return awsutil.Prettify(s)
8958}
8959
8960// GoString returns the string representation
8961func (s DeleteStackInput) GoString() string {
8962	return s.String()
8963}
8964
8965// Validate inspects the fields of the type to determine if they are valid.
8966func (s *DeleteStackInput) Validate() error {
8967	invalidParams := request.ErrInvalidParams{Context: "DeleteStackInput"}
8968	if s.ClientRequestToken != nil && len(*s.ClientRequestToken) < 1 {
8969		invalidParams.Add(request.NewErrParamMinLen("ClientRequestToken", 1))
8970	}
8971	if s.RoleARN != nil && len(*s.RoleARN) < 20 {
8972		invalidParams.Add(request.NewErrParamMinLen("RoleARN", 20))
8973	}
8974	if s.StackName == nil {
8975		invalidParams.Add(request.NewErrParamRequired("StackName"))
8976	}
8977
8978	if invalidParams.Len() > 0 {
8979		return invalidParams
8980	}
8981	return nil
8982}
8983
8984// SetClientRequestToken sets the ClientRequestToken field's value.
8985func (s *DeleteStackInput) SetClientRequestToken(v string) *DeleteStackInput {
8986	s.ClientRequestToken = &v
8987	return s
8988}
8989
8990// SetRetainResources sets the RetainResources field's value.
8991func (s *DeleteStackInput) SetRetainResources(v []*string) *DeleteStackInput {
8992	s.RetainResources = v
8993	return s
8994}
8995
8996// SetRoleARN sets the RoleARN field's value.
8997func (s *DeleteStackInput) SetRoleARN(v string) *DeleteStackInput {
8998	s.RoleARN = &v
8999	return s
9000}
9001
9002// SetStackName sets the StackName field's value.
9003func (s *DeleteStackInput) SetStackName(v string) *DeleteStackInput {
9004	s.StackName = &v
9005	return s
9006}
9007
9008type DeleteStackInstancesInput struct {
9009	_ struct{} `type:"structure"`
9010
9011	// [Self-managed permissions] The names of the Amazon Web Services accounts
9012	// that you want to delete stack instances for.
9013	//
9014	// You can specify Accounts or DeploymentTargets, but not both.
9015	Accounts []*string `type:"list"`
9016
9017	// [Service-managed permissions] Specifies whether you are acting as an account
9018	// administrator in the organization's management account or as a delegated
9019	// administrator in a member account.
9020	//
9021	// By default, SELF is specified. Use SELF for stack sets with self-managed
9022	// permissions.
9023	//
9024	//    * If you are signed in to the management account, specify SELF.
9025	//
9026	//    * If you are signed in to a delegated administrator account, specify DELEGATED_ADMIN.
9027	//    Your Amazon Web Services account must be registered as a delegated administrator
9028	//    in the management account. For more information, see Register a delegated
9029	//    administrator (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/stacksets-orgs-delegated-admin.html)
9030	//    in the CloudFormation User Guide.
9031	CallAs *string `type:"string" enum:"CallAs"`
9032
9033	// [Service-managed permissions] The Organizations accounts from which to delete
9034	// stack instances.
9035	//
9036	// You can specify Accounts or DeploymentTargets, but not both.
9037	DeploymentTargets *DeploymentTargets `type:"structure"`
9038
9039	// The unique identifier for this stack set operation.
9040	//
9041	// If you don't specify an operation ID, the SDK generates one automatically.
9042	//
9043	// The operation ID also functions as an idempotency token, to ensure that CloudFormation
9044	// performs the stack set operation only once, even if you retry the request
9045	// multiple times. You can retry stack set operation requests to ensure that
9046	// CloudFormation successfully received them.
9047	//
9048	// Repeating this stack set operation with a new operation ID retries all stack
9049	// instances whose status is OUTDATED.
9050	OperationId *string `min:"1" type:"string" idempotencyToken:"true"`
9051
9052	// Preferences for how CloudFormation performs this stack set operation.
9053	OperationPreferences *StackSetOperationPreferences `type:"structure"`
9054
9055	// The Regions where you want to delete stack set instances.
9056	//
9057	// Regions is a required field
9058	Regions []*string `type:"list" required:"true"`
9059
9060	// Removes the stack instances from the specified stack set, but doesn't delete
9061	// the stacks. You can't reassociate a retained stack or add an existing, saved
9062	// stack to a new stack set.
9063	//
9064	// For more information, see Stack set operation options (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/stacksets-concepts.html#stackset-ops-options).
9065	//
9066	// RetainStacks is a required field
9067	RetainStacks *bool `type:"boolean" required:"true"`
9068
9069	// The name or unique ID of the stack set that you want to delete stack instances
9070	// for.
9071	//
9072	// StackSetName is a required field
9073	StackSetName *string `type:"string" required:"true"`
9074}
9075
9076// String returns the string representation
9077func (s DeleteStackInstancesInput) String() string {
9078	return awsutil.Prettify(s)
9079}
9080
9081// GoString returns the string representation
9082func (s DeleteStackInstancesInput) GoString() string {
9083	return s.String()
9084}
9085
9086// Validate inspects the fields of the type to determine if they are valid.
9087func (s *DeleteStackInstancesInput) Validate() error {
9088	invalidParams := request.ErrInvalidParams{Context: "DeleteStackInstancesInput"}
9089	if s.OperationId != nil && len(*s.OperationId) < 1 {
9090		invalidParams.Add(request.NewErrParamMinLen("OperationId", 1))
9091	}
9092	if s.Regions == nil {
9093		invalidParams.Add(request.NewErrParamRequired("Regions"))
9094	}
9095	if s.RetainStacks == nil {
9096		invalidParams.Add(request.NewErrParamRequired("RetainStacks"))
9097	}
9098	if s.StackSetName == nil {
9099		invalidParams.Add(request.NewErrParamRequired("StackSetName"))
9100	}
9101	if s.DeploymentTargets != nil {
9102		if err := s.DeploymentTargets.Validate(); err != nil {
9103			invalidParams.AddNested("DeploymentTargets", err.(request.ErrInvalidParams))
9104		}
9105	}
9106	if s.OperationPreferences != nil {
9107		if err := s.OperationPreferences.Validate(); err != nil {
9108			invalidParams.AddNested("OperationPreferences", err.(request.ErrInvalidParams))
9109		}
9110	}
9111
9112	if invalidParams.Len() > 0 {
9113		return invalidParams
9114	}
9115	return nil
9116}
9117
9118// SetAccounts sets the Accounts field's value.
9119func (s *DeleteStackInstancesInput) SetAccounts(v []*string) *DeleteStackInstancesInput {
9120	s.Accounts = v
9121	return s
9122}
9123
9124// SetCallAs sets the CallAs field's value.
9125func (s *DeleteStackInstancesInput) SetCallAs(v string) *DeleteStackInstancesInput {
9126	s.CallAs = &v
9127	return s
9128}
9129
9130// SetDeploymentTargets sets the DeploymentTargets field's value.
9131func (s *DeleteStackInstancesInput) SetDeploymentTargets(v *DeploymentTargets) *DeleteStackInstancesInput {
9132	s.DeploymentTargets = v
9133	return s
9134}
9135
9136// SetOperationId sets the OperationId field's value.
9137func (s *DeleteStackInstancesInput) SetOperationId(v string) *DeleteStackInstancesInput {
9138	s.OperationId = &v
9139	return s
9140}
9141
9142// SetOperationPreferences sets the OperationPreferences field's value.
9143func (s *DeleteStackInstancesInput) SetOperationPreferences(v *StackSetOperationPreferences) *DeleteStackInstancesInput {
9144	s.OperationPreferences = v
9145	return s
9146}
9147
9148// SetRegions sets the Regions field's value.
9149func (s *DeleteStackInstancesInput) SetRegions(v []*string) *DeleteStackInstancesInput {
9150	s.Regions = v
9151	return s
9152}
9153
9154// SetRetainStacks sets the RetainStacks field's value.
9155func (s *DeleteStackInstancesInput) SetRetainStacks(v bool) *DeleteStackInstancesInput {
9156	s.RetainStacks = &v
9157	return s
9158}
9159
9160// SetStackSetName sets the StackSetName field's value.
9161func (s *DeleteStackInstancesInput) SetStackSetName(v string) *DeleteStackInstancesInput {
9162	s.StackSetName = &v
9163	return s
9164}
9165
9166type DeleteStackInstancesOutput struct {
9167	_ struct{} `type:"structure"`
9168
9169	// The unique identifier for this stack set operation.
9170	OperationId *string `min:"1" type:"string"`
9171}
9172
9173// String returns the string representation
9174func (s DeleteStackInstancesOutput) String() string {
9175	return awsutil.Prettify(s)
9176}
9177
9178// GoString returns the string representation
9179func (s DeleteStackInstancesOutput) GoString() string {
9180	return s.String()
9181}
9182
9183// SetOperationId sets the OperationId field's value.
9184func (s *DeleteStackInstancesOutput) SetOperationId(v string) *DeleteStackInstancesOutput {
9185	s.OperationId = &v
9186	return s
9187}
9188
9189type DeleteStackOutput struct {
9190	_ struct{} `type:"structure"`
9191}
9192
9193// String returns the string representation
9194func (s DeleteStackOutput) String() string {
9195	return awsutil.Prettify(s)
9196}
9197
9198// GoString returns the string representation
9199func (s DeleteStackOutput) GoString() string {
9200	return s.String()
9201}
9202
9203type DeleteStackSetInput struct {
9204	_ struct{} `type:"structure"`
9205
9206	// [Service-managed permissions] Specifies whether you are acting as an account
9207	// administrator in the organization's management account or as a delegated
9208	// administrator in a member account.
9209	//
9210	// By default, SELF is specified. Use SELF for stack sets with self-managed
9211	// permissions.
9212	//
9213	//    * If you are signed in to the management account, specify SELF.
9214	//
9215	//    * If you are signed in to a delegated administrator account, specify DELEGATED_ADMIN.
9216	//    Your Amazon Web Services account must be registered as a delegated administrator
9217	//    in the management account. For more information, see Register a delegated
9218	//    administrator (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/stacksets-orgs-delegated-admin.html)
9219	//    in the CloudFormation User Guide.
9220	CallAs *string `type:"string" enum:"CallAs"`
9221
9222	// The name or unique ID of the stack set that you're deleting. You can obtain
9223	// this value by running ListStackSets.
9224	//
9225	// StackSetName is a required field
9226	StackSetName *string `type:"string" required:"true"`
9227}
9228
9229// String returns the string representation
9230func (s DeleteStackSetInput) String() string {
9231	return awsutil.Prettify(s)
9232}
9233
9234// GoString returns the string representation
9235func (s DeleteStackSetInput) GoString() string {
9236	return s.String()
9237}
9238
9239// Validate inspects the fields of the type to determine if they are valid.
9240func (s *DeleteStackSetInput) Validate() error {
9241	invalidParams := request.ErrInvalidParams{Context: "DeleteStackSetInput"}
9242	if s.StackSetName == nil {
9243		invalidParams.Add(request.NewErrParamRequired("StackSetName"))
9244	}
9245
9246	if invalidParams.Len() > 0 {
9247		return invalidParams
9248	}
9249	return nil
9250}
9251
9252// SetCallAs sets the CallAs field's value.
9253func (s *DeleteStackSetInput) SetCallAs(v string) *DeleteStackSetInput {
9254	s.CallAs = &v
9255	return s
9256}
9257
9258// SetStackSetName sets the StackSetName field's value.
9259func (s *DeleteStackSetInput) SetStackSetName(v string) *DeleteStackSetInput {
9260	s.StackSetName = &v
9261	return s
9262}
9263
9264type DeleteStackSetOutput struct {
9265	_ struct{} `type:"structure"`
9266}
9267
9268// String returns the string representation
9269func (s DeleteStackSetOutput) String() string {
9270	return awsutil.Prettify(s)
9271}
9272
9273// GoString returns the string representation
9274func (s DeleteStackSetOutput) GoString() string {
9275	return s.String()
9276}
9277
9278// [Service-managed permissions] The Organizations accounts to which StackSets
9279// deploys. StackSets does not deploy stack instances to the organization management
9280// account, even if the organization management account is in your organization
9281// or in an OU in your organization.
9282//
9283// For update operations, you can specify either Accounts or OrganizationalUnitIds.
9284// For create and delete operations, specify OrganizationalUnitIds.
9285type DeploymentTargets struct {
9286	_ struct{} `type:"structure"`
9287
9288	// The names of one or more Amazon Web Services accounts for which you want
9289	// to deploy stack set updates.
9290	Accounts []*string `type:"list"`
9291
9292	// Returns the value of the AccountsUrl property.
9293	AccountsUrl *string `min:"1" type:"string"`
9294
9295	// The organization root ID or organizational unit (OU) IDs to which StackSets
9296	// deploys.
9297	OrganizationalUnitIds []*string `type:"list"`
9298}
9299
9300// String returns the string representation
9301func (s DeploymentTargets) String() string {
9302	return awsutil.Prettify(s)
9303}
9304
9305// GoString returns the string representation
9306func (s DeploymentTargets) GoString() string {
9307	return s.String()
9308}
9309
9310// Validate inspects the fields of the type to determine if they are valid.
9311func (s *DeploymentTargets) Validate() error {
9312	invalidParams := request.ErrInvalidParams{Context: "DeploymentTargets"}
9313	if s.AccountsUrl != nil && len(*s.AccountsUrl) < 1 {
9314		invalidParams.Add(request.NewErrParamMinLen("AccountsUrl", 1))
9315	}
9316
9317	if invalidParams.Len() > 0 {
9318		return invalidParams
9319	}
9320	return nil
9321}
9322
9323// SetAccounts sets the Accounts field's value.
9324func (s *DeploymentTargets) SetAccounts(v []*string) *DeploymentTargets {
9325	s.Accounts = v
9326	return s
9327}
9328
9329// SetAccountsUrl sets the AccountsUrl field's value.
9330func (s *DeploymentTargets) SetAccountsUrl(v string) *DeploymentTargets {
9331	s.AccountsUrl = &v
9332	return s
9333}
9334
9335// SetOrganizationalUnitIds sets the OrganizationalUnitIds field's value.
9336func (s *DeploymentTargets) SetOrganizationalUnitIds(v []*string) *DeploymentTargets {
9337	s.OrganizationalUnitIds = v
9338	return s
9339}
9340
9341type DeregisterTypeInput struct {
9342	_ struct{} `type:"structure"`
9343
9344	// The Amazon Resource Name (ARN) of the extension.
9345	//
9346	// Conditional: You must specify either TypeName and Type, or Arn.
9347	Arn *string `type:"string"`
9348
9349	// The kind of extension.
9350	//
9351	// Conditional: You must specify either TypeName and Type, or Arn.
9352	Type *string `type:"string" enum:"RegistryType"`
9353
9354	// The name of the extension.
9355	//
9356	// Conditional: You must specify either TypeName and Type, or Arn.
9357	TypeName *string `min:"10" type:"string"`
9358
9359	// The ID of a specific version of the extension. The version ID is the value
9360	// at the end of the Amazon Resource Name (ARN) assigned to the extension version
9361	// when it is registered.
9362	VersionId *string `min:"1" type:"string"`
9363}
9364
9365// String returns the string representation
9366func (s DeregisterTypeInput) String() string {
9367	return awsutil.Prettify(s)
9368}
9369
9370// GoString returns the string representation
9371func (s DeregisterTypeInput) GoString() string {
9372	return s.String()
9373}
9374
9375// Validate inspects the fields of the type to determine if they are valid.
9376func (s *DeregisterTypeInput) Validate() error {
9377	invalidParams := request.ErrInvalidParams{Context: "DeregisterTypeInput"}
9378	if s.TypeName != nil && len(*s.TypeName) < 10 {
9379		invalidParams.Add(request.NewErrParamMinLen("TypeName", 10))
9380	}
9381	if s.VersionId != nil && len(*s.VersionId) < 1 {
9382		invalidParams.Add(request.NewErrParamMinLen("VersionId", 1))
9383	}
9384
9385	if invalidParams.Len() > 0 {
9386		return invalidParams
9387	}
9388	return nil
9389}
9390
9391// SetArn sets the Arn field's value.
9392func (s *DeregisterTypeInput) SetArn(v string) *DeregisterTypeInput {
9393	s.Arn = &v
9394	return s
9395}
9396
9397// SetType sets the Type field's value.
9398func (s *DeregisterTypeInput) SetType(v string) *DeregisterTypeInput {
9399	s.Type = &v
9400	return s
9401}
9402
9403// SetTypeName sets the TypeName field's value.
9404func (s *DeregisterTypeInput) SetTypeName(v string) *DeregisterTypeInput {
9405	s.TypeName = &v
9406	return s
9407}
9408
9409// SetVersionId sets the VersionId field's value.
9410func (s *DeregisterTypeInput) SetVersionId(v string) *DeregisterTypeInput {
9411	s.VersionId = &v
9412	return s
9413}
9414
9415type DeregisterTypeOutput struct {
9416	_ struct{} `type:"structure"`
9417}
9418
9419// String returns the string representation
9420func (s DeregisterTypeOutput) String() string {
9421	return awsutil.Prettify(s)
9422}
9423
9424// GoString returns the string representation
9425func (s DeregisterTypeOutput) GoString() string {
9426	return s.String()
9427}
9428
9429// The input for the DescribeAccountLimits action.
9430type DescribeAccountLimitsInput struct {
9431	_ struct{} `type:"structure"`
9432
9433	// A string that identifies the next page of limits that you want to retrieve.
9434	NextToken *string `min:"1" type:"string"`
9435}
9436
9437// String returns the string representation
9438func (s DescribeAccountLimitsInput) String() string {
9439	return awsutil.Prettify(s)
9440}
9441
9442// GoString returns the string representation
9443func (s DescribeAccountLimitsInput) GoString() string {
9444	return s.String()
9445}
9446
9447// Validate inspects the fields of the type to determine if they are valid.
9448func (s *DescribeAccountLimitsInput) Validate() error {
9449	invalidParams := request.ErrInvalidParams{Context: "DescribeAccountLimitsInput"}
9450	if s.NextToken != nil && len(*s.NextToken) < 1 {
9451		invalidParams.Add(request.NewErrParamMinLen("NextToken", 1))
9452	}
9453
9454	if invalidParams.Len() > 0 {
9455		return invalidParams
9456	}
9457	return nil
9458}
9459
9460// SetNextToken sets the NextToken field's value.
9461func (s *DescribeAccountLimitsInput) SetNextToken(v string) *DescribeAccountLimitsInput {
9462	s.NextToken = &v
9463	return s
9464}
9465
9466// The output for the DescribeAccountLimits action.
9467type DescribeAccountLimitsOutput struct {
9468	_ struct{} `type:"structure"`
9469
9470	// An account limit structure that contain a list of CloudFormation account
9471	// limits and their values.
9472	AccountLimits []*AccountLimit `type:"list"`
9473
9474	// If the output exceeds 1 MB in size, a string that identifies the next page
9475	// of limits. If no additional page exists, this value is null.
9476	NextToken *string `min:"1" type:"string"`
9477}
9478
9479// String returns the string representation
9480func (s DescribeAccountLimitsOutput) String() string {
9481	return awsutil.Prettify(s)
9482}
9483
9484// GoString returns the string representation
9485func (s DescribeAccountLimitsOutput) GoString() string {
9486	return s.String()
9487}
9488
9489// SetAccountLimits sets the AccountLimits field's value.
9490func (s *DescribeAccountLimitsOutput) SetAccountLimits(v []*AccountLimit) *DescribeAccountLimitsOutput {
9491	s.AccountLimits = v
9492	return s
9493}
9494
9495// SetNextToken sets the NextToken field's value.
9496func (s *DescribeAccountLimitsOutput) SetNextToken(v string) *DescribeAccountLimitsOutput {
9497	s.NextToken = &v
9498	return s
9499}
9500
9501// The input for the DescribeChangeSet action.
9502type DescribeChangeSetInput struct {
9503	_ struct{} `type:"structure"`
9504
9505	// The name or Amazon Resource Name (ARN) of the change set that you want to
9506	// describe.
9507	//
9508	// ChangeSetName is a required field
9509	ChangeSetName *string `min:"1" type:"string" required:"true"`
9510
9511	// A string (provided by the DescribeChangeSet response output) that identifies
9512	// the next page of information that you want to retrieve.
9513	NextToken *string `min:"1" type:"string"`
9514
9515	// If you specified the name of a change set, specify the stack name or ID (ARN)
9516	// of the change set you want to describe.
9517	StackName *string `min:"1" type:"string"`
9518}
9519
9520// String returns the string representation
9521func (s DescribeChangeSetInput) String() string {
9522	return awsutil.Prettify(s)
9523}
9524
9525// GoString returns the string representation
9526func (s DescribeChangeSetInput) GoString() string {
9527	return s.String()
9528}
9529
9530// Validate inspects the fields of the type to determine if they are valid.
9531func (s *DescribeChangeSetInput) Validate() error {
9532	invalidParams := request.ErrInvalidParams{Context: "DescribeChangeSetInput"}
9533	if s.ChangeSetName == nil {
9534		invalidParams.Add(request.NewErrParamRequired("ChangeSetName"))
9535	}
9536	if s.ChangeSetName != nil && len(*s.ChangeSetName) < 1 {
9537		invalidParams.Add(request.NewErrParamMinLen("ChangeSetName", 1))
9538	}
9539	if s.NextToken != nil && len(*s.NextToken) < 1 {
9540		invalidParams.Add(request.NewErrParamMinLen("NextToken", 1))
9541	}
9542	if s.StackName != nil && len(*s.StackName) < 1 {
9543		invalidParams.Add(request.NewErrParamMinLen("StackName", 1))
9544	}
9545
9546	if invalidParams.Len() > 0 {
9547		return invalidParams
9548	}
9549	return nil
9550}
9551
9552// SetChangeSetName sets the ChangeSetName field's value.
9553func (s *DescribeChangeSetInput) SetChangeSetName(v string) *DescribeChangeSetInput {
9554	s.ChangeSetName = &v
9555	return s
9556}
9557
9558// SetNextToken sets the NextToken field's value.
9559func (s *DescribeChangeSetInput) SetNextToken(v string) *DescribeChangeSetInput {
9560	s.NextToken = &v
9561	return s
9562}
9563
9564// SetStackName sets the StackName field's value.
9565func (s *DescribeChangeSetInput) SetStackName(v string) *DescribeChangeSetInput {
9566	s.StackName = &v
9567	return s
9568}
9569
9570// The output for the DescribeChangeSet action.
9571type DescribeChangeSetOutput struct {
9572	_ struct{} `type:"structure"`
9573
9574	// If you execute the change set, the list of capabilities that were explicitly
9575	// acknowledged when the change set was created.
9576	Capabilities []*string `type:"list"`
9577
9578	// The ARN of the change set.
9579	ChangeSetId *string `min:"1" type:"string"`
9580
9581	// The name of the change set.
9582	ChangeSetName *string `min:"1" type:"string"`
9583
9584	// A list of Change structures that describes the resources CloudFormation changes
9585	// if you execute the change set.
9586	Changes []*Change `type:"list"`
9587
9588	// The start time when the change set was created, in UTC.
9589	CreationTime *time.Time `type:"timestamp"`
9590
9591	// Information about the change set.
9592	Description *string `min:"1" type:"string"`
9593
9594	// If the change set execution status is AVAILABLE, you can execute the change
9595	// set. If you can’t execute the change set, the status indicates why. For
9596	// example, a change set might be in an UNAVAILABLE state because CloudFormation
9597	// is still creating it or in an OBSOLETE state because the stack was already
9598	// updated.
9599	ExecutionStatus *string `type:"string" enum:"ExecutionStatus"`
9600
9601	// Verifies if IncludeNestedStacks is set to True.
9602	IncludeNestedStacks *bool `type:"boolean"`
9603
9604	// If the output exceeds 1 MB, a string that identifies the next page of changes.
9605	// If there is no additional page, this value is null.
9606	NextToken *string `min:"1" type:"string"`
9607
9608	// The ARNs of the Amazon Simple Notification Service (Amazon SNS) topics that
9609	// will be associated with the stack if you execute the change set.
9610	NotificationARNs []*string `type:"list"`
9611
9612	// A list of Parameter structures that describes the input parameters and their
9613	// values used to create the change set. For more information, see the Parameter
9614	// (https://docs.aws.amazon.com/AWSCloudFormation/latest/APIReference/API_Parameter.html)
9615	// data type.
9616	Parameters []*Parameter `type:"list"`
9617
9618	// Specifies the change set ID of the parent change set in the current nested
9619	// change set hierarchy.
9620	ParentChangeSetId *string `min:"1" type:"string"`
9621
9622	// The rollback triggers for CloudFormation to monitor during stack creation
9623	// and updating operations, and for the specified monitoring period afterwards.
9624	RollbackConfiguration *RollbackConfiguration `type:"structure"`
9625
9626	// Specifies the change set ID of the root change set in the current nested
9627	// change set hierarchy.
9628	RootChangeSetId *string `min:"1" type:"string"`
9629
9630	// The ARN of the stack that is associated with the change set.
9631	StackId *string `type:"string"`
9632
9633	// The name of the stack that is associated with the change set.
9634	StackName *string `type:"string"`
9635
9636	// The current status of the change set, such as CREATE_IN_PROGRESS, CREATE_COMPLETE,
9637	// or FAILED.
9638	Status *string `type:"string" enum:"ChangeSetStatus"`
9639
9640	// A description of the change set's status. For example, if your attempt to
9641	// create a change set failed, CloudFormation shows the error message.
9642	StatusReason *string `type:"string"`
9643
9644	// If you execute the change set, the tags that will be associated with the
9645	// stack.
9646	Tags []*Tag `type:"list"`
9647}
9648
9649// String returns the string representation
9650func (s DescribeChangeSetOutput) String() string {
9651	return awsutil.Prettify(s)
9652}
9653
9654// GoString returns the string representation
9655func (s DescribeChangeSetOutput) GoString() string {
9656	return s.String()
9657}
9658
9659// SetCapabilities sets the Capabilities field's value.
9660func (s *DescribeChangeSetOutput) SetCapabilities(v []*string) *DescribeChangeSetOutput {
9661	s.Capabilities = v
9662	return s
9663}
9664
9665// SetChangeSetId sets the ChangeSetId field's value.
9666func (s *DescribeChangeSetOutput) SetChangeSetId(v string) *DescribeChangeSetOutput {
9667	s.ChangeSetId = &v
9668	return s
9669}
9670
9671// SetChangeSetName sets the ChangeSetName field's value.
9672func (s *DescribeChangeSetOutput) SetChangeSetName(v string) *DescribeChangeSetOutput {
9673	s.ChangeSetName = &v
9674	return s
9675}
9676
9677// SetChanges sets the Changes field's value.
9678func (s *DescribeChangeSetOutput) SetChanges(v []*Change) *DescribeChangeSetOutput {
9679	s.Changes = v
9680	return s
9681}
9682
9683// SetCreationTime sets the CreationTime field's value.
9684func (s *DescribeChangeSetOutput) SetCreationTime(v time.Time) *DescribeChangeSetOutput {
9685	s.CreationTime = &v
9686	return s
9687}
9688
9689// SetDescription sets the Description field's value.
9690func (s *DescribeChangeSetOutput) SetDescription(v string) *DescribeChangeSetOutput {
9691	s.Description = &v
9692	return s
9693}
9694
9695// SetExecutionStatus sets the ExecutionStatus field's value.
9696func (s *DescribeChangeSetOutput) SetExecutionStatus(v string) *DescribeChangeSetOutput {
9697	s.ExecutionStatus = &v
9698	return s
9699}
9700
9701// SetIncludeNestedStacks sets the IncludeNestedStacks field's value.
9702func (s *DescribeChangeSetOutput) SetIncludeNestedStacks(v bool) *DescribeChangeSetOutput {
9703	s.IncludeNestedStacks = &v
9704	return s
9705}
9706
9707// SetNextToken sets the NextToken field's value.
9708func (s *DescribeChangeSetOutput) SetNextToken(v string) *DescribeChangeSetOutput {
9709	s.NextToken = &v
9710	return s
9711}
9712
9713// SetNotificationARNs sets the NotificationARNs field's value.
9714func (s *DescribeChangeSetOutput) SetNotificationARNs(v []*string) *DescribeChangeSetOutput {
9715	s.NotificationARNs = v
9716	return s
9717}
9718
9719// SetParameters sets the Parameters field's value.
9720func (s *DescribeChangeSetOutput) SetParameters(v []*Parameter) *DescribeChangeSetOutput {
9721	s.Parameters = v
9722	return s
9723}
9724
9725// SetParentChangeSetId sets the ParentChangeSetId field's value.
9726func (s *DescribeChangeSetOutput) SetParentChangeSetId(v string) *DescribeChangeSetOutput {
9727	s.ParentChangeSetId = &v
9728	return s
9729}
9730
9731// SetRollbackConfiguration sets the RollbackConfiguration field's value.
9732func (s *DescribeChangeSetOutput) SetRollbackConfiguration(v *RollbackConfiguration) *DescribeChangeSetOutput {
9733	s.RollbackConfiguration = v
9734	return s
9735}
9736
9737// SetRootChangeSetId sets the RootChangeSetId field's value.
9738func (s *DescribeChangeSetOutput) SetRootChangeSetId(v string) *DescribeChangeSetOutput {
9739	s.RootChangeSetId = &v
9740	return s
9741}
9742
9743// SetStackId sets the StackId field's value.
9744func (s *DescribeChangeSetOutput) SetStackId(v string) *DescribeChangeSetOutput {
9745	s.StackId = &v
9746	return s
9747}
9748
9749// SetStackName sets the StackName field's value.
9750func (s *DescribeChangeSetOutput) SetStackName(v string) *DescribeChangeSetOutput {
9751	s.StackName = &v
9752	return s
9753}
9754
9755// SetStatus sets the Status field's value.
9756func (s *DescribeChangeSetOutput) SetStatus(v string) *DescribeChangeSetOutput {
9757	s.Status = &v
9758	return s
9759}
9760
9761// SetStatusReason sets the StatusReason field's value.
9762func (s *DescribeChangeSetOutput) SetStatusReason(v string) *DescribeChangeSetOutput {
9763	s.StatusReason = &v
9764	return s
9765}
9766
9767// SetTags sets the Tags field's value.
9768func (s *DescribeChangeSetOutput) SetTags(v []*Tag) *DescribeChangeSetOutput {
9769	s.Tags = v
9770	return s
9771}
9772
9773type DescribePublisherInput struct {
9774	_ struct{} `type:"structure"`
9775
9776	// The ID of the extension publisher.
9777	//
9778	// If you do not supply a PublisherId, and you have registered as an extension
9779	// publisher, DescribePublisher returns information about your own publisher
9780	// account.
9781	PublisherId *string `min:"1" type:"string"`
9782}
9783
9784// String returns the string representation
9785func (s DescribePublisherInput) String() string {
9786	return awsutil.Prettify(s)
9787}
9788
9789// GoString returns the string representation
9790func (s DescribePublisherInput) GoString() string {
9791	return s.String()
9792}
9793
9794// Validate inspects the fields of the type to determine if they are valid.
9795func (s *DescribePublisherInput) Validate() error {
9796	invalidParams := request.ErrInvalidParams{Context: "DescribePublisherInput"}
9797	if s.PublisherId != nil && len(*s.PublisherId) < 1 {
9798		invalidParams.Add(request.NewErrParamMinLen("PublisherId", 1))
9799	}
9800
9801	if invalidParams.Len() > 0 {
9802		return invalidParams
9803	}
9804	return nil
9805}
9806
9807// SetPublisherId sets the PublisherId field's value.
9808func (s *DescribePublisherInput) SetPublisherId(v string) *DescribePublisherInput {
9809	s.PublisherId = &v
9810	return s
9811}
9812
9813type DescribePublisherOutput struct {
9814	_ struct{} `type:"structure"`
9815
9816	// The type of account used as the identity provider when registering this publisher
9817	// with CloudFormation.
9818	IdentityProvider *string `type:"string" enum:"IdentityProvider"`
9819
9820	// The ID of the extension publisher.
9821	PublisherId *string `min:"1" type:"string"`
9822
9823	// The URL to the publisher's profile with the identity provider.
9824	PublisherProfile *string `type:"string"`
9825
9826	// Whether the publisher is verified. Currently, all registered publishers are
9827	// verified.
9828	PublisherStatus *string `type:"string" enum:"PublisherStatus"`
9829}
9830
9831// String returns the string representation
9832func (s DescribePublisherOutput) String() string {
9833	return awsutil.Prettify(s)
9834}
9835
9836// GoString returns the string representation
9837func (s DescribePublisherOutput) GoString() string {
9838	return s.String()
9839}
9840
9841// SetIdentityProvider sets the IdentityProvider field's value.
9842func (s *DescribePublisherOutput) SetIdentityProvider(v string) *DescribePublisherOutput {
9843	s.IdentityProvider = &v
9844	return s
9845}
9846
9847// SetPublisherId sets the PublisherId field's value.
9848func (s *DescribePublisherOutput) SetPublisherId(v string) *DescribePublisherOutput {
9849	s.PublisherId = &v
9850	return s
9851}
9852
9853// SetPublisherProfile sets the PublisherProfile field's value.
9854func (s *DescribePublisherOutput) SetPublisherProfile(v string) *DescribePublisherOutput {
9855	s.PublisherProfile = &v
9856	return s
9857}
9858
9859// SetPublisherStatus sets the PublisherStatus field's value.
9860func (s *DescribePublisherOutput) SetPublisherStatus(v string) *DescribePublisherOutput {
9861	s.PublisherStatus = &v
9862	return s
9863}
9864
9865type DescribeStackDriftDetectionStatusInput struct {
9866	_ struct{} `type:"structure"`
9867
9868	// The ID of the drift detection results of this operation.
9869	//
9870	// CloudFormation generates new results, with a new drift detection ID, each
9871	// time this operation is run. However, the number of drift results CloudFormation
9872	// retains for any given stack, and for how long, may vary.
9873	//
9874	// StackDriftDetectionId is a required field
9875	StackDriftDetectionId *string `min:"1" type:"string" required:"true"`
9876}
9877
9878// String returns the string representation
9879func (s DescribeStackDriftDetectionStatusInput) String() string {
9880	return awsutil.Prettify(s)
9881}
9882
9883// GoString returns the string representation
9884func (s DescribeStackDriftDetectionStatusInput) GoString() string {
9885	return s.String()
9886}
9887
9888// Validate inspects the fields of the type to determine if they are valid.
9889func (s *DescribeStackDriftDetectionStatusInput) Validate() error {
9890	invalidParams := request.ErrInvalidParams{Context: "DescribeStackDriftDetectionStatusInput"}
9891	if s.StackDriftDetectionId == nil {
9892		invalidParams.Add(request.NewErrParamRequired("StackDriftDetectionId"))
9893	}
9894	if s.StackDriftDetectionId != nil && len(*s.StackDriftDetectionId) < 1 {
9895		invalidParams.Add(request.NewErrParamMinLen("StackDriftDetectionId", 1))
9896	}
9897
9898	if invalidParams.Len() > 0 {
9899		return invalidParams
9900	}
9901	return nil
9902}
9903
9904// SetStackDriftDetectionId sets the StackDriftDetectionId field's value.
9905func (s *DescribeStackDriftDetectionStatusInput) SetStackDriftDetectionId(v string) *DescribeStackDriftDetectionStatusInput {
9906	s.StackDriftDetectionId = &v
9907	return s
9908}
9909
9910type DescribeStackDriftDetectionStatusOutput struct {
9911	_ struct{} `type:"structure"`
9912
9913	// The status of the stack drift detection operation.
9914	//
9915	//    * DETECTION_COMPLETE: The stack drift detection operation has successfully
9916	//    completed for all resources in the stack that support drift detection.
9917	//    (Resources that do not currently support stack detection remain unchecked.)
9918	//    If you specified logical resource IDs for CloudFormation to use as a filter
9919	//    for the stack drift detection operation, only the resources with those
9920	//    logical IDs are checked for drift.
9921	//
9922	//    * DETECTION_FAILED: The stack drift detection operation has failed for
9923	//    at least one resource in the stack. Results will be available for resources
9924	//    on which CloudFormation successfully completed drift detection.
9925	//
9926	//    * DETECTION_IN_PROGRESS: The stack drift detection operation is currently
9927	//    in progress.
9928	//
9929	// DetectionStatus is a required field
9930	DetectionStatus *string `type:"string" required:"true" enum:"StackDriftDetectionStatus"`
9931
9932	// The reason the stack drift detection operation has its current status.
9933	DetectionStatusReason *string `type:"string"`
9934
9935	// Total number of stack resources that have drifted. This is NULL until the
9936	// drift detection operation reaches a status of DETECTION_COMPLETE. This value
9937	// will be 0 for stacks whose drift status is IN_SYNC.
9938	DriftedStackResourceCount *int64 `type:"integer"`
9939
9940	// The ID of the drift detection results of this operation.
9941	//
9942	// CloudFormation generates new results, with a new drift detection ID, each
9943	// time this operation is run. However, the number of reports CloudFormation
9944	// retains for any given stack, and for how long, may vary.
9945	//
9946	// StackDriftDetectionId is a required field
9947	StackDriftDetectionId *string `min:"1" type:"string" required:"true"`
9948
9949	// Status of the stack's actual configuration compared to its expected configuration.
9950	//
9951	//    * DRIFTED: The stack differs from its expected template configuration.
9952	//    A stack is considered to have drifted if one or more of its resources
9953	//    have drifted.
9954	//
9955	//    * NOT_CHECKED: CloudFormation has not checked if the stack differs from
9956	//    its expected template configuration.
9957	//
9958	//    * IN_SYNC: The stack's actual configuration matches its expected template
9959	//    configuration.
9960	//
9961	//    * UNKNOWN: This value is reserved for future use.
9962	StackDriftStatus *string `type:"string" enum:"StackDriftStatus"`
9963
9964	// The ID of the stack.
9965	//
9966	// StackId is a required field
9967	StackId *string `type:"string" required:"true"`
9968
9969	// Time at which the stack drift detection operation was initiated.
9970	//
9971	// Timestamp is a required field
9972	Timestamp *time.Time `type:"timestamp" required:"true"`
9973}
9974
9975// String returns the string representation
9976func (s DescribeStackDriftDetectionStatusOutput) String() string {
9977	return awsutil.Prettify(s)
9978}
9979
9980// GoString returns the string representation
9981func (s DescribeStackDriftDetectionStatusOutput) GoString() string {
9982	return s.String()
9983}
9984
9985// SetDetectionStatus sets the DetectionStatus field's value.
9986func (s *DescribeStackDriftDetectionStatusOutput) SetDetectionStatus(v string) *DescribeStackDriftDetectionStatusOutput {
9987	s.DetectionStatus = &v
9988	return s
9989}
9990
9991// SetDetectionStatusReason sets the DetectionStatusReason field's value.
9992func (s *DescribeStackDriftDetectionStatusOutput) SetDetectionStatusReason(v string) *DescribeStackDriftDetectionStatusOutput {
9993	s.DetectionStatusReason = &v
9994	return s
9995}
9996
9997// SetDriftedStackResourceCount sets the DriftedStackResourceCount field's value.
9998func (s *DescribeStackDriftDetectionStatusOutput) SetDriftedStackResourceCount(v int64) *DescribeStackDriftDetectionStatusOutput {
9999	s.DriftedStackResourceCount = &v
10000	return s
10001}
10002
10003// SetStackDriftDetectionId sets the StackDriftDetectionId field's value.
10004func (s *DescribeStackDriftDetectionStatusOutput) SetStackDriftDetectionId(v string) *DescribeStackDriftDetectionStatusOutput {
10005	s.StackDriftDetectionId = &v
10006	return s
10007}
10008
10009// SetStackDriftStatus sets the StackDriftStatus field's value.
10010func (s *DescribeStackDriftDetectionStatusOutput) SetStackDriftStatus(v string) *DescribeStackDriftDetectionStatusOutput {
10011	s.StackDriftStatus = &v
10012	return s
10013}
10014
10015// SetStackId sets the StackId field's value.
10016func (s *DescribeStackDriftDetectionStatusOutput) SetStackId(v string) *DescribeStackDriftDetectionStatusOutput {
10017	s.StackId = &v
10018	return s
10019}
10020
10021// SetTimestamp sets the Timestamp field's value.
10022func (s *DescribeStackDriftDetectionStatusOutput) SetTimestamp(v time.Time) *DescribeStackDriftDetectionStatusOutput {
10023	s.Timestamp = &v
10024	return s
10025}
10026
10027// The input for DescribeStackEvents action.
10028type DescribeStackEventsInput struct {
10029	_ struct{} `type:"structure"`
10030
10031	// A string that identifies the next page of events that you want to retrieve.
10032	NextToken *string `min:"1" type:"string"`
10033
10034	// The name or the unique stack ID that is associated with the stack, which
10035	// are not always interchangeable:
10036	//
10037	//    * Running stacks: You can specify either the stack's name or its unique
10038	//    stack ID.
10039	//
10040	//    * Deleted stacks: You must specify the unique stack ID.
10041	//
10042	// Default: There is no default value.
10043	StackName *string `type:"string"`
10044}
10045
10046// String returns the string representation
10047func (s DescribeStackEventsInput) String() string {
10048	return awsutil.Prettify(s)
10049}
10050
10051// GoString returns the string representation
10052func (s DescribeStackEventsInput) GoString() string {
10053	return s.String()
10054}
10055
10056// Validate inspects the fields of the type to determine if they are valid.
10057func (s *DescribeStackEventsInput) Validate() error {
10058	invalidParams := request.ErrInvalidParams{Context: "DescribeStackEventsInput"}
10059	if s.NextToken != nil && len(*s.NextToken) < 1 {
10060		invalidParams.Add(request.NewErrParamMinLen("NextToken", 1))
10061	}
10062
10063	if invalidParams.Len() > 0 {
10064		return invalidParams
10065	}
10066	return nil
10067}
10068
10069// SetNextToken sets the NextToken field's value.
10070func (s *DescribeStackEventsInput) SetNextToken(v string) *DescribeStackEventsInput {
10071	s.NextToken = &v
10072	return s
10073}
10074
10075// SetStackName sets the StackName field's value.
10076func (s *DescribeStackEventsInput) SetStackName(v string) *DescribeStackEventsInput {
10077	s.StackName = &v
10078	return s
10079}
10080
10081// The output for a DescribeStackEvents action.
10082type DescribeStackEventsOutput struct {
10083	_ struct{} `type:"structure"`
10084
10085	// If the output exceeds 1 MB in size, a string that identifies the next page
10086	// of events. If no additional page exists, this value is null.
10087	NextToken *string `min:"1" type:"string"`
10088
10089	// A list of StackEvents structures.
10090	StackEvents []*StackEvent `type:"list"`
10091}
10092
10093// String returns the string representation
10094func (s DescribeStackEventsOutput) String() string {
10095	return awsutil.Prettify(s)
10096}
10097
10098// GoString returns the string representation
10099func (s DescribeStackEventsOutput) GoString() string {
10100	return s.String()
10101}
10102
10103// SetNextToken sets the NextToken field's value.
10104func (s *DescribeStackEventsOutput) SetNextToken(v string) *DescribeStackEventsOutput {
10105	s.NextToken = &v
10106	return s
10107}
10108
10109// SetStackEvents sets the StackEvents field's value.
10110func (s *DescribeStackEventsOutput) SetStackEvents(v []*StackEvent) *DescribeStackEventsOutput {
10111	s.StackEvents = v
10112	return s
10113}
10114
10115type DescribeStackInstanceInput struct {
10116	_ struct{} `type:"structure"`
10117
10118	// [Service-managed permissions] Specifies whether you are acting as an account
10119	// administrator in the organization's management account or as a delegated
10120	// administrator in a member account.
10121	//
10122	// By default, SELF is specified. Use SELF for stack sets with self-managed
10123	// permissions.
10124	//
10125	//    * If you are signed in to the management account, specify SELF.
10126	//
10127	//    * If you are signed in to a delegated administrator account, specify DELEGATED_ADMIN.
10128	//    Your Amazon Web Services account must be registered as a delegated administrator
10129	//    in the management account. For more information, see Register a delegated
10130	//    administrator (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/stacksets-orgs-delegated-admin.html)
10131	//    in the CloudFormation User Guide.
10132	CallAs *string `type:"string" enum:"CallAs"`
10133
10134	// The ID of an Amazon Web Services account that's associated with this stack
10135	// instance.
10136	//
10137	// StackInstanceAccount is a required field
10138	StackInstanceAccount *string `type:"string" required:"true"`
10139
10140	// The name of a Region that's associated with this stack instance.
10141	//
10142	// StackInstanceRegion is a required field
10143	StackInstanceRegion *string `type:"string" required:"true"`
10144
10145	// The name or the unique stack ID of the stack set that you want to get stack
10146	// instance information for.
10147	//
10148	// StackSetName is a required field
10149	StackSetName *string `type:"string" required:"true"`
10150}
10151
10152// String returns the string representation
10153func (s DescribeStackInstanceInput) String() string {
10154	return awsutil.Prettify(s)
10155}
10156
10157// GoString returns the string representation
10158func (s DescribeStackInstanceInput) GoString() string {
10159	return s.String()
10160}
10161
10162// Validate inspects the fields of the type to determine if they are valid.
10163func (s *DescribeStackInstanceInput) Validate() error {
10164	invalidParams := request.ErrInvalidParams{Context: "DescribeStackInstanceInput"}
10165	if s.StackInstanceAccount == nil {
10166		invalidParams.Add(request.NewErrParamRequired("StackInstanceAccount"))
10167	}
10168	if s.StackInstanceRegion == nil {
10169		invalidParams.Add(request.NewErrParamRequired("StackInstanceRegion"))
10170	}
10171	if s.StackSetName == nil {
10172		invalidParams.Add(request.NewErrParamRequired("StackSetName"))
10173	}
10174
10175	if invalidParams.Len() > 0 {
10176		return invalidParams
10177	}
10178	return nil
10179}
10180
10181// SetCallAs sets the CallAs field's value.
10182func (s *DescribeStackInstanceInput) SetCallAs(v string) *DescribeStackInstanceInput {
10183	s.CallAs = &v
10184	return s
10185}
10186
10187// SetStackInstanceAccount sets the StackInstanceAccount field's value.
10188func (s *DescribeStackInstanceInput) SetStackInstanceAccount(v string) *DescribeStackInstanceInput {
10189	s.StackInstanceAccount = &v
10190	return s
10191}
10192
10193// SetStackInstanceRegion sets the StackInstanceRegion field's value.
10194func (s *DescribeStackInstanceInput) SetStackInstanceRegion(v string) *DescribeStackInstanceInput {
10195	s.StackInstanceRegion = &v
10196	return s
10197}
10198
10199// SetStackSetName sets the StackSetName field's value.
10200func (s *DescribeStackInstanceInput) SetStackSetName(v string) *DescribeStackInstanceInput {
10201	s.StackSetName = &v
10202	return s
10203}
10204
10205type DescribeStackInstanceOutput struct {
10206	_ struct{} `type:"structure"`
10207
10208	// The stack instance that matches the specified request parameters.
10209	StackInstance *StackInstance `type:"structure"`
10210}
10211
10212// String returns the string representation
10213func (s DescribeStackInstanceOutput) String() string {
10214	return awsutil.Prettify(s)
10215}
10216
10217// GoString returns the string representation
10218func (s DescribeStackInstanceOutput) GoString() string {
10219	return s.String()
10220}
10221
10222// SetStackInstance sets the StackInstance field's value.
10223func (s *DescribeStackInstanceOutput) SetStackInstance(v *StackInstance) *DescribeStackInstanceOutput {
10224	s.StackInstance = v
10225	return s
10226}
10227
10228type DescribeStackResourceDriftsInput struct {
10229	_ struct{} `type:"structure"`
10230
10231	// The maximum number of results to be returned with a single call. If the number
10232	// of available results exceeds this maximum, the response includes a NextToken
10233	// value that you can assign to the NextToken request parameter to get the next
10234	// set of results.
10235	MaxResults *int64 `min:"1" type:"integer"`
10236
10237	// A string that identifies the next page of stack resource drift results.
10238	NextToken *string `min:"1" type:"string"`
10239
10240	// The name of the stack for which you want drift information.
10241	//
10242	// StackName is a required field
10243	StackName *string `min:"1" type:"string" required:"true"`
10244
10245	// The resource drift status values to use as filters for the resource drift
10246	// results returned.
10247	//
10248	//    * DELETED: The resource differs from its expected template configuration
10249	//    in that the resource has been deleted.
10250	//
10251	//    * MODIFIED: One or more resource properties differ from their expected
10252	//    template values.
10253	//
10254	//    * IN_SYNC: The resources's actual configuration matches its expected template
10255	//    configuration.
10256	//
10257	//    * NOT_CHECKED: CloudFormation does not currently return this value.
10258	StackResourceDriftStatusFilters []*string `min:"1" type:"list"`
10259}
10260
10261// String returns the string representation
10262func (s DescribeStackResourceDriftsInput) String() string {
10263	return awsutil.Prettify(s)
10264}
10265
10266// GoString returns the string representation
10267func (s DescribeStackResourceDriftsInput) GoString() string {
10268	return s.String()
10269}
10270
10271// Validate inspects the fields of the type to determine if they are valid.
10272func (s *DescribeStackResourceDriftsInput) Validate() error {
10273	invalidParams := request.ErrInvalidParams{Context: "DescribeStackResourceDriftsInput"}
10274	if s.MaxResults != nil && *s.MaxResults < 1 {
10275		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
10276	}
10277	if s.NextToken != nil && len(*s.NextToken) < 1 {
10278		invalidParams.Add(request.NewErrParamMinLen("NextToken", 1))
10279	}
10280	if s.StackName == nil {
10281		invalidParams.Add(request.NewErrParamRequired("StackName"))
10282	}
10283	if s.StackName != nil && len(*s.StackName) < 1 {
10284		invalidParams.Add(request.NewErrParamMinLen("StackName", 1))
10285	}
10286	if s.StackResourceDriftStatusFilters != nil && len(s.StackResourceDriftStatusFilters) < 1 {
10287		invalidParams.Add(request.NewErrParamMinLen("StackResourceDriftStatusFilters", 1))
10288	}
10289
10290	if invalidParams.Len() > 0 {
10291		return invalidParams
10292	}
10293	return nil
10294}
10295
10296// SetMaxResults sets the MaxResults field's value.
10297func (s *DescribeStackResourceDriftsInput) SetMaxResults(v int64) *DescribeStackResourceDriftsInput {
10298	s.MaxResults = &v
10299	return s
10300}
10301
10302// SetNextToken sets the NextToken field's value.
10303func (s *DescribeStackResourceDriftsInput) SetNextToken(v string) *DescribeStackResourceDriftsInput {
10304	s.NextToken = &v
10305	return s
10306}
10307
10308// SetStackName sets the StackName field's value.
10309func (s *DescribeStackResourceDriftsInput) SetStackName(v string) *DescribeStackResourceDriftsInput {
10310	s.StackName = &v
10311	return s
10312}
10313
10314// SetStackResourceDriftStatusFilters sets the StackResourceDriftStatusFilters field's value.
10315func (s *DescribeStackResourceDriftsInput) SetStackResourceDriftStatusFilters(v []*string) *DescribeStackResourceDriftsInput {
10316	s.StackResourceDriftStatusFilters = v
10317	return s
10318}
10319
10320type DescribeStackResourceDriftsOutput struct {
10321	_ struct{} `type:"structure"`
10322
10323	// If the request doesn't return all of the remaining results, NextToken is
10324	// set to a token. To retrieve the next set of results, call DescribeStackResourceDrifts
10325	// again and assign that token to the request object's NextToken parameter.
10326	// If the request returns all results, NextToken is set to null.
10327	NextToken *string `min:"1" type:"string"`
10328
10329	// Drift information for the resources that have been checked for drift in the
10330	// specified stack. This includes actual and expected configuration values for
10331	// resources where CloudFormation detects drift.
10332	//
10333	// For a given stack, there will be one StackResourceDrift for each stack resource
10334	// that has been checked for drift. Resources that have not yet been checked
10335	// for drift are not included. Resources that do not currently support drift
10336	// detection are not checked, and so not included. For a list of resources that
10337	// support drift detection, see Resources that Support Drift Detection (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-stack-drift-resource-list.html).
10338	//
10339	// StackResourceDrifts is a required field
10340	StackResourceDrifts []*StackResourceDrift `type:"list" required:"true"`
10341}
10342
10343// String returns the string representation
10344func (s DescribeStackResourceDriftsOutput) String() string {
10345	return awsutil.Prettify(s)
10346}
10347
10348// GoString returns the string representation
10349func (s DescribeStackResourceDriftsOutput) GoString() string {
10350	return s.String()
10351}
10352
10353// SetNextToken sets the NextToken field's value.
10354func (s *DescribeStackResourceDriftsOutput) SetNextToken(v string) *DescribeStackResourceDriftsOutput {
10355	s.NextToken = &v
10356	return s
10357}
10358
10359// SetStackResourceDrifts sets the StackResourceDrifts field's value.
10360func (s *DescribeStackResourceDriftsOutput) SetStackResourceDrifts(v []*StackResourceDrift) *DescribeStackResourceDriftsOutput {
10361	s.StackResourceDrifts = v
10362	return s
10363}
10364
10365// The input for DescribeStackResource action.
10366type DescribeStackResourceInput struct {
10367	_ struct{} `type:"structure"`
10368
10369	// The logical name of the resource as specified in the template.
10370	//
10371	// Default: There is no default value.
10372	//
10373	// LogicalResourceId is a required field
10374	LogicalResourceId *string `type:"string" required:"true"`
10375
10376	// The name or the unique stack ID that is associated with the stack, which
10377	// are not always interchangeable:
10378	//
10379	//    * Running stacks: You can specify either the stack's name or its unique
10380	//    stack ID.
10381	//
10382	//    * Deleted stacks: You must specify the unique stack ID.
10383	//
10384	// Default: There is no default value.
10385	//
10386	// StackName is a required field
10387	StackName *string `type:"string" required:"true"`
10388}
10389
10390// String returns the string representation
10391func (s DescribeStackResourceInput) String() string {
10392	return awsutil.Prettify(s)
10393}
10394
10395// GoString returns the string representation
10396func (s DescribeStackResourceInput) GoString() string {
10397	return s.String()
10398}
10399
10400// Validate inspects the fields of the type to determine if they are valid.
10401func (s *DescribeStackResourceInput) Validate() error {
10402	invalidParams := request.ErrInvalidParams{Context: "DescribeStackResourceInput"}
10403	if s.LogicalResourceId == nil {
10404		invalidParams.Add(request.NewErrParamRequired("LogicalResourceId"))
10405	}
10406	if s.StackName == nil {
10407		invalidParams.Add(request.NewErrParamRequired("StackName"))
10408	}
10409
10410	if invalidParams.Len() > 0 {
10411		return invalidParams
10412	}
10413	return nil
10414}
10415
10416// SetLogicalResourceId sets the LogicalResourceId field's value.
10417func (s *DescribeStackResourceInput) SetLogicalResourceId(v string) *DescribeStackResourceInput {
10418	s.LogicalResourceId = &v
10419	return s
10420}
10421
10422// SetStackName sets the StackName field's value.
10423func (s *DescribeStackResourceInput) SetStackName(v string) *DescribeStackResourceInput {
10424	s.StackName = &v
10425	return s
10426}
10427
10428// The output for a DescribeStackResource action.
10429type DescribeStackResourceOutput struct {
10430	_ struct{} `type:"structure"`
10431
10432	// A StackResourceDetail structure containing the description of the specified
10433	// resource in the specified stack.
10434	StackResourceDetail *StackResourceDetail `type:"structure"`
10435}
10436
10437// String returns the string representation
10438func (s DescribeStackResourceOutput) String() string {
10439	return awsutil.Prettify(s)
10440}
10441
10442// GoString returns the string representation
10443func (s DescribeStackResourceOutput) GoString() string {
10444	return s.String()
10445}
10446
10447// SetStackResourceDetail sets the StackResourceDetail field's value.
10448func (s *DescribeStackResourceOutput) SetStackResourceDetail(v *StackResourceDetail) *DescribeStackResourceOutput {
10449	s.StackResourceDetail = v
10450	return s
10451}
10452
10453// The input for DescribeStackResources action.
10454type DescribeStackResourcesInput struct {
10455	_ struct{} `type:"structure"`
10456
10457	// The logical name of the resource as specified in the template.
10458	//
10459	// Default: There is no default value.
10460	LogicalResourceId *string `type:"string"`
10461
10462	// The name or unique identifier that corresponds to a physical instance ID
10463	// of a resource supported by CloudFormation.
10464	//
10465	// For example, for an Amazon Elastic Compute Cloud (EC2) instance, PhysicalResourceId
10466	// corresponds to the InstanceId. You can pass the EC2 InstanceId to DescribeStackResources
10467	// to find which stack the instance belongs to and what other resources are
10468	// part of the stack.
10469	//
10470	// Required: Conditional. If you do not specify PhysicalResourceId, you must
10471	// specify StackName.
10472	//
10473	// Default: There is no default value.
10474	PhysicalResourceId *string `type:"string"`
10475
10476	// The name or the unique stack ID that is associated with the stack, which
10477	// are not always interchangeable:
10478	//
10479	//    * Running stacks: You can specify either the stack's name or its unique
10480	//    stack ID.
10481	//
10482	//    * Deleted stacks: You must specify the unique stack ID.
10483	//
10484	// Default: There is no default value.
10485	//
10486	// Required: Conditional. If you do not specify StackName, you must specify
10487	// PhysicalResourceId.
10488	StackName *string `type:"string"`
10489}
10490
10491// String returns the string representation
10492func (s DescribeStackResourcesInput) String() string {
10493	return awsutil.Prettify(s)
10494}
10495
10496// GoString returns the string representation
10497func (s DescribeStackResourcesInput) GoString() string {
10498	return s.String()
10499}
10500
10501// SetLogicalResourceId sets the LogicalResourceId field's value.
10502func (s *DescribeStackResourcesInput) SetLogicalResourceId(v string) *DescribeStackResourcesInput {
10503	s.LogicalResourceId = &v
10504	return s
10505}
10506
10507// SetPhysicalResourceId sets the PhysicalResourceId field's value.
10508func (s *DescribeStackResourcesInput) SetPhysicalResourceId(v string) *DescribeStackResourcesInput {
10509	s.PhysicalResourceId = &v
10510	return s
10511}
10512
10513// SetStackName sets the StackName field's value.
10514func (s *DescribeStackResourcesInput) SetStackName(v string) *DescribeStackResourcesInput {
10515	s.StackName = &v
10516	return s
10517}
10518
10519// The output for a DescribeStackResources action.
10520type DescribeStackResourcesOutput struct {
10521	_ struct{} `type:"structure"`
10522
10523	// A list of StackResource structures.
10524	StackResources []*StackResource `type:"list"`
10525}
10526
10527// String returns the string representation
10528func (s DescribeStackResourcesOutput) String() string {
10529	return awsutil.Prettify(s)
10530}
10531
10532// GoString returns the string representation
10533func (s DescribeStackResourcesOutput) GoString() string {
10534	return s.String()
10535}
10536
10537// SetStackResources sets the StackResources field's value.
10538func (s *DescribeStackResourcesOutput) SetStackResources(v []*StackResource) *DescribeStackResourcesOutput {
10539	s.StackResources = v
10540	return s
10541}
10542
10543type DescribeStackSetInput struct {
10544	_ struct{} `type:"structure"`
10545
10546	// [Service-managed permissions] Specifies whether you are acting as an account
10547	// administrator in the organization's management account or as a delegated
10548	// administrator in a member account.
10549	//
10550	// By default, SELF is specified. Use SELF for stack sets with self-managed
10551	// permissions.
10552	//
10553	//    * If you are signed in to the management account, specify SELF.
10554	//
10555	//    * If you are signed in to a delegated administrator account, specify DELEGATED_ADMIN.
10556	//    Your Amazon Web Services account must be registered as a delegated administrator
10557	//    in the management account. For more information, see Register a delegated
10558	//    administrator (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/stacksets-orgs-delegated-admin.html)
10559	//    in the CloudFormation User Guide.
10560	CallAs *string `type:"string" enum:"CallAs"`
10561
10562	// The name or unique ID of the stack set whose description you want.
10563	//
10564	// StackSetName is a required field
10565	StackSetName *string `type:"string" required:"true"`
10566}
10567
10568// String returns the string representation
10569func (s DescribeStackSetInput) String() string {
10570	return awsutil.Prettify(s)
10571}
10572
10573// GoString returns the string representation
10574func (s DescribeStackSetInput) GoString() string {
10575	return s.String()
10576}
10577
10578// Validate inspects the fields of the type to determine if they are valid.
10579func (s *DescribeStackSetInput) Validate() error {
10580	invalidParams := request.ErrInvalidParams{Context: "DescribeStackSetInput"}
10581	if s.StackSetName == nil {
10582		invalidParams.Add(request.NewErrParamRequired("StackSetName"))
10583	}
10584
10585	if invalidParams.Len() > 0 {
10586		return invalidParams
10587	}
10588	return nil
10589}
10590
10591// SetCallAs sets the CallAs field's value.
10592func (s *DescribeStackSetInput) SetCallAs(v string) *DescribeStackSetInput {
10593	s.CallAs = &v
10594	return s
10595}
10596
10597// SetStackSetName sets the StackSetName field's value.
10598func (s *DescribeStackSetInput) SetStackSetName(v string) *DescribeStackSetInput {
10599	s.StackSetName = &v
10600	return s
10601}
10602
10603type DescribeStackSetOperationInput struct {
10604	_ struct{} `type:"structure"`
10605
10606	// [Service-managed permissions] Specifies whether you are acting as an account
10607	// administrator in the organization's management account or as a delegated
10608	// administrator in a member account.
10609	//
10610	// By default, SELF is specified. Use SELF for stack sets with self-managed
10611	// permissions.
10612	//
10613	//    * If you are signed in to the management account, specify SELF.
10614	//
10615	//    * If you are signed in to a delegated administrator account, specify DELEGATED_ADMIN.
10616	//    Your Amazon Web Services account must be registered as a delegated administrator
10617	//    in the management account. For more information, see Register a delegated
10618	//    administrator (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/stacksets-orgs-delegated-admin.html)
10619	//    in the CloudFormation User Guide.
10620	CallAs *string `type:"string" enum:"CallAs"`
10621
10622	// The unique ID of the stack set operation.
10623	//
10624	// OperationId is a required field
10625	OperationId *string `min:"1" type:"string" required:"true"`
10626
10627	// The name or the unique stack ID of the stack set for the stack operation.
10628	//
10629	// StackSetName is a required field
10630	StackSetName *string `type:"string" required:"true"`
10631}
10632
10633// String returns the string representation
10634func (s DescribeStackSetOperationInput) String() string {
10635	return awsutil.Prettify(s)
10636}
10637
10638// GoString returns the string representation
10639func (s DescribeStackSetOperationInput) GoString() string {
10640	return s.String()
10641}
10642
10643// Validate inspects the fields of the type to determine if they are valid.
10644func (s *DescribeStackSetOperationInput) Validate() error {
10645	invalidParams := request.ErrInvalidParams{Context: "DescribeStackSetOperationInput"}
10646	if s.OperationId == nil {
10647		invalidParams.Add(request.NewErrParamRequired("OperationId"))
10648	}
10649	if s.OperationId != nil && len(*s.OperationId) < 1 {
10650		invalidParams.Add(request.NewErrParamMinLen("OperationId", 1))
10651	}
10652	if s.StackSetName == nil {
10653		invalidParams.Add(request.NewErrParamRequired("StackSetName"))
10654	}
10655
10656	if invalidParams.Len() > 0 {
10657		return invalidParams
10658	}
10659	return nil
10660}
10661
10662// SetCallAs sets the CallAs field's value.
10663func (s *DescribeStackSetOperationInput) SetCallAs(v string) *DescribeStackSetOperationInput {
10664	s.CallAs = &v
10665	return s
10666}
10667
10668// SetOperationId sets the OperationId field's value.
10669func (s *DescribeStackSetOperationInput) SetOperationId(v string) *DescribeStackSetOperationInput {
10670	s.OperationId = &v
10671	return s
10672}
10673
10674// SetStackSetName sets the StackSetName field's value.
10675func (s *DescribeStackSetOperationInput) SetStackSetName(v string) *DescribeStackSetOperationInput {
10676	s.StackSetName = &v
10677	return s
10678}
10679
10680type DescribeStackSetOperationOutput struct {
10681	_ struct{} `type:"structure"`
10682
10683	// The specified stack set operation.
10684	StackSetOperation *StackSetOperation `type:"structure"`
10685}
10686
10687// String returns the string representation
10688func (s DescribeStackSetOperationOutput) String() string {
10689	return awsutil.Prettify(s)
10690}
10691
10692// GoString returns the string representation
10693func (s DescribeStackSetOperationOutput) GoString() string {
10694	return s.String()
10695}
10696
10697// SetStackSetOperation sets the StackSetOperation field's value.
10698func (s *DescribeStackSetOperationOutput) SetStackSetOperation(v *StackSetOperation) *DescribeStackSetOperationOutput {
10699	s.StackSetOperation = v
10700	return s
10701}
10702
10703type DescribeStackSetOutput struct {
10704	_ struct{} `type:"structure"`
10705
10706	// The specified stack set.
10707	StackSet *StackSet `type:"structure"`
10708}
10709
10710// String returns the string representation
10711func (s DescribeStackSetOutput) String() string {
10712	return awsutil.Prettify(s)
10713}
10714
10715// GoString returns the string representation
10716func (s DescribeStackSetOutput) GoString() string {
10717	return s.String()
10718}
10719
10720// SetStackSet sets the StackSet field's value.
10721func (s *DescribeStackSetOutput) SetStackSet(v *StackSet) *DescribeStackSetOutput {
10722	s.StackSet = v
10723	return s
10724}
10725
10726// The input for DescribeStacks action.
10727type DescribeStacksInput struct {
10728	_ struct{} `type:"structure"`
10729
10730	// A string that identifies the next page of stacks that you want to retrieve.
10731	NextToken *string `min:"1" type:"string"`
10732
10733	// The name or the unique stack ID that is associated with the stack, which
10734	// are not always interchangeable:
10735	//
10736	//    * Running stacks: You can specify either the stack's name or its unique
10737	//    stack ID.
10738	//
10739	//    * Deleted stacks: You must specify the unique stack ID.
10740	//
10741	// Default: There is no default value.
10742	StackName *string `type:"string"`
10743}
10744
10745// String returns the string representation
10746func (s DescribeStacksInput) String() string {
10747	return awsutil.Prettify(s)
10748}
10749
10750// GoString returns the string representation
10751func (s DescribeStacksInput) GoString() string {
10752	return s.String()
10753}
10754
10755// Validate inspects the fields of the type to determine if they are valid.
10756func (s *DescribeStacksInput) Validate() error {
10757	invalidParams := request.ErrInvalidParams{Context: "DescribeStacksInput"}
10758	if s.NextToken != nil && len(*s.NextToken) < 1 {
10759		invalidParams.Add(request.NewErrParamMinLen("NextToken", 1))
10760	}
10761
10762	if invalidParams.Len() > 0 {
10763		return invalidParams
10764	}
10765	return nil
10766}
10767
10768// SetNextToken sets the NextToken field's value.
10769func (s *DescribeStacksInput) SetNextToken(v string) *DescribeStacksInput {
10770	s.NextToken = &v
10771	return s
10772}
10773
10774// SetStackName sets the StackName field's value.
10775func (s *DescribeStacksInput) SetStackName(v string) *DescribeStacksInput {
10776	s.StackName = &v
10777	return s
10778}
10779
10780// The output for a DescribeStacks action.
10781type DescribeStacksOutput struct {
10782	_ struct{} `type:"structure"`
10783
10784	// If the output exceeds 1 MB in size, a string that identifies the next page
10785	// of stacks. If no additional page exists, this value is null.
10786	NextToken *string `min:"1" type:"string"`
10787
10788	// A list of stack structures.
10789	Stacks []*Stack `type:"list"`
10790}
10791
10792// String returns the string representation
10793func (s DescribeStacksOutput) String() string {
10794	return awsutil.Prettify(s)
10795}
10796
10797// GoString returns the string representation
10798func (s DescribeStacksOutput) GoString() string {
10799	return s.String()
10800}
10801
10802// SetNextToken sets the NextToken field's value.
10803func (s *DescribeStacksOutput) SetNextToken(v string) *DescribeStacksOutput {
10804	s.NextToken = &v
10805	return s
10806}
10807
10808// SetStacks sets the Stacks field's value.
10809func (s *DescribeStacksOutput) SetStacks(v []*Stack) *DescribeStacksOutput {
10810	s.Stacks = v
10811	return s
10812}
10813
10814type DescribeTypeInput struct {
10815	_ struct{} `type:"structure"`
10816
10817	// The Amazon Resource Name (ARN) of the extension.
10818	//
10819	// Conditional: You must specify either TypeName and Type, or Arn.
10820	Arn *string `type:"string"`
10821
10822	// The version number of a public third-party extension.
10823	PublicVersionNumber *string `min:"5" type:"string"`
10824
10825	// The publisher ID of the extension publisher.
10826	//
10827	// Extensions provided by Amazon are not assigned a publisher ID.
10828	PublisherId *string `min:"1" type:"string"`
10829
10830	// The kind of extension.
10831	//
10832	// Conditional: You must specify either TypeName and Type, or Arn.
10833	Type *string `type:"string" enum:"RegistryType"`
10834
10835	// The name of the extension.
10836	//
10837	// Conditional: You must specify either TypeName and Type, or Arn.
10838	TypeName *string `min:"10" type:"string"`
10839
10840	// The ID of a specific version of the extension. The version ID is the value
10841	// at the end of the Amazon Resource Name (ARN) assigned to the extension version
10842	// when it is registered.
10843	//
10844	// If you specify a VersionId, DescribeType returns information about that specific
10845	// extension version. Otherwise, it returns information about the default extension
10846	// version.
10847	VersionId *string `min:"1" type:"string"`
10848}
10849
10850// String returns the string representation
10851func (s DescribeTypeInput) String() string {
10852	return awsutil.Prettify(s)
10853}
10854
10855// GoString returns the string representation
10856func (s DescribeTypeInput) GoString() string {
10857	return s.String()
10858}
10859
10860// Validate inspects the fields of the type to determine if they are valid.
10861func (s *DescribeTypeInput) Validate() error {
10862	invalidParams := request.ErrInvalidParams{Context: "DescribeTypeInput"}
10863	if s.PublicVersionNumber != nil && len(*s.PublicVersionNumber) < 5 {
10864		invalidParams.Add(request.NewErrParamMinLen("PublicVersionNumber", 5))
10865	}
10866	if s.PublisherId != nil && len(*s.PublisherId) < 1 {
10867		invalidParams.Add(request.NewErrParamMinLen("PublisherId", 1))
10868	}
10869	if s.TypeName != nil && len(*s.TypeName) < 10 {
10870		invalidParams.Add(request.NewErrParamMinLen("TypeName", 10))
10871	}
10872	if s.VersionId != nil && len(*s.VersionId) < 1 {
10873		invalidParams.Add(request.NewErrParamMinLen("VersionId", 1))
10874	}
10875
10876	if invalidParams.Len() > 0 {
10877		return invalidParams
10878	}
10879	return nil
10880}
10881
10882// SetArn sets the Arn field's value.
10883func (s *DescribeTypeInput) SetArn(v string) *DescribeTypeInput {
10884	s.Arn = &v
10885	return s
10886}
10887
10888// SetPublicVersionNumber sets the PublicVersionNumber field's value.
10889func (s *DescribeTypeInput) SetPublicVersionNumber(v string) *DescribeTypeInput {
10890	s.PublicVersionNumber = &v
10891	return s
10892}
10893
10894// SetPublisherId sets the PublisherId field's value.
10895func (s *DescribeTypeInput) SetPublisherId(v string) *DescribeTypeInput {
10896	s.PublisherId = &v
10897	return s
10898}
10899
10900// SetType sets the Type field's value.
10901func (s *DescribeTypeInput) SetType(v string) *DescribeTypeInput {
10902	s.Type = &v
10903	return s
10904}
10905
10906// SetTypeName sets the TypeName field's value.
10907func (s *DescribeTypeInput) SetTypeName(v string) *DescribeTypeInput {
10908	s.TypeName = &v
10909	return s
10910}
10911
10912// SetVersionId sets the VersionId field's value.
10913func (s *DescribeTypeInput) SetVersionId(v string) *DescribeTypeInput {
10914	s.VersionId = &v
10915	return s
10916}
10917
10918type DescribeTypeOutput struct {
10919	_ struct{} `type:"structure"`
10920
10921	// The Amazon Resource Name (ARN) of the extension.
10922	Arn *string `type:"string"`
10923
10924	// Whether CloudFormation automatically updates the extension in this account
10925	// and region when a new minor version is published by the extension publisher.
10926	// Major versions released by the publisher must be manually updated. For more
10927	// information, see Activating public extensions for use in your account (AWSCloudFormation/latest/UserGuide/registry-public.html#registry-public-enable)
10928	// in the CloudFormation User Guide.
10929	AutoUpdate *bool `type:"boolean"`
10930
10931	// A JSON string that represent the current configuration data for the extension
10932	// in this account and region.
10933	//
10934	// To set the configuration data for an extension, use SetTypeConfiguration
10935	// (https://docs.aws.amazon.com/AWSCloudFormation/latest/APIReference/API_SetTypeConfiguration.html).
10936	// For more information, see Configuring extensions at the account level (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/registry-register.html#registry-set-configuration)
10937	// in the CloudFormation User Guide.
10938	ConfigurationSchema *string `min:"1" type:"string"`
10939
10940	// The ID of the default version of the extension. The default version is used
10941	// when the extension version is not specified.
10942	//
10943	// This applies only to private extensions you have registered in your account.
10944	// For public extensions, both those provided by Amazon and published by third
10945	// parties, CloudFormation returns null. For more information, see RegisterType
10946	// (https://docs.aws.amazon.com/AWSCloudFormation/latest/APIReference/API_RegisterType.html).
10947	//
10948	// To set the default version of an extension, use SetTypeDefaultVersion .
10949	DefaultVersionId *string `min:"1" type:"string"`
10950
10951	// The deprecation status of the extension version.
10952	//
10953	// Valid values include:
10954	//
10955	//    * LIVE: The extension is activated or registered and can be used in CloudFormation
10956	//    operations, dependent on its provisioning behavior and visibility scope.
10957	//
10958	//    * DEPRECATED: The extension has been deactivated or deregistered and can
10959	//    no longer be used in CloudFormation operations.
10960	//
10961	// For public third-party extensions, CloudFormation returns null.
10962	DeprecatedStatus *string `type:"string" enum:"DeprecatedStatus"`
10963
10964	// The description of the extension.
10965	Description *string `min:"1" type:"string"`
10966
10967	// The URL of a page providing detailed documentation for this extension.
10968	DocumentationUrl *string `type:"string"`
10969
10970	// The Amazon Resource Name (ARN) of the IAM execution role used to register
10971	// the extension. This applies only to private extensions you have registered
10972	// in your account. For more information, see RegisterType (https://docs.aws.amazon.com/AWSCloudFormation/latest/APIReference/API_RegisterType.html).
10973	//
10974	// If the registered extension calls any Amazon Web Services APIs, you must
10975	// create an IAM execution role (https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles.html)
10976	// that includes the necessary permissions to call those Amazon Web Services
10977	// APIs, and provision that execution role in your account. CloudFormation then
10978	// assumes that execution role to provide your extension with the appropriate
10979	// credentials.
10980	ExecutionRoleArn *string `min:"1" type:"string"`
10981
10982	// Whether or not the extension is activated in the account and region.
10983	//
10984	// This only applies to public third-party extensions. For all other extensions,
10985	// CloudFormation returns null.
10986	IsActivated *bool `type:"boolean"`
10987
10988	// Whether the specified extension version is set as the default version.
10989	//
10990	// This applies only to private extensions you have registered in your account,
10991	// and extensions published by Amazon. For public third-party extensions, whether
10992	// or not they are activated in your account, CloudFormation returns null.
10993	IsDefaultVersion *bool `type:"boolean"`
10994
10995	// When the specified extension version was registered. This applies only to:
10996	//
10997	//    * Private extensions you have registered in your account. For more information,
10998	//    see RegisterType (https://docs.aws.amazon.com/AWSCloudFormation/latest/APIReference/API_RegisterType.html).
10999	//
11000	//    * Public extensions you have activated in your account with auto-update
11001	//    specified. For more information, see ActivateType (https://docs.aws.amazon.com/AWSCloudFormation/latest/APIReference/API_ActivateType.html).
11002	LastUpdated *time.Time `type:"timestamp"`
11003
11004	// The latest version of a public extension that is available for use.
11005	//
11006	// This only applies if you specify a public extension, and you do not specify
11007	// a version. For all other requests, CloudFormation returns null.
11008	LatestPublicVersion *string `min:"5" type:"string"`
11009
11010	// Contains logging configuration information for private extensions. This applies
11011	// only to private extensions you have registered in your account. For public
11012	// extensions, both those provided by Amazon and published by third parties,
11013	// CloudFormation returns null. For more information, see RegisterType (https://docs.aws.amazon.com/AWSCloudFormation/latest/APIReference/API_RegisterType.html).
11014	LoggingConfig *LoggingConfig `type:"structure"`
11015
11016	// For public extensions that have been activated for this account and region,
11017	// the Amazon Resource Name (ARN) of the public extension.
11018	OriginalTypeArn *string `type:"string"`
11019
11020	// For public extensions that have been activated for this account and region,
11021	// the type name of the public extension.
11022	//
11023	// If you specified a TypeNameAlias when enabling the extension in this account
11024	// and region, CloudFormation treats that alias as the extension's type name
11025	// within the account and region, not the type name of the public extension.
11026	// 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)
11027	// in the CloudFormation User Guide.
11028	OriginalTypeName *string `min:"10" type:"string"`
11029
11030	// For resource type extensions, the provisioning behavior of the resource type.
11031	// CloudFormation determines the provisioning type during registration, based
11032	// on the types of handlers in the schema handler package submitted.
11033	//
11034	// Valid values include:
11035	//
11036	//    * FULLY_MUTABLE: The resource type includes an update handler to process
11037	//    updates to the type during stack update operations.
11038	//
11039	//    * IMMUTABLE: The resource type does not include an update handler, so
11040	//    the type cannot be updated and must instead be replaced during stack update
11041	//    operations.
11042	//
11043	//    * NON_PROVISIONABLE: The resource type does not include all of the following
11044	//    handlers, and therefore cannot actually be provisioned. create read delete
11045	ProvisioningType *string `type:"string" enum:"ProvisioningType"`
11046
11047	// The version number of a public third-party extension.
11048	//
11049	// This applies only if you specify a public extension you have activated in
11050	// your account, or specify a public extension without specifying a version.
11051	// For all other extensions, CloudFormation returns null.
11052	PublicVersionNumber *string `min:"5" type:"string"`
11053
11054	// The publisher ID of the extension publisher.
11055	//
11056	// This applies only to public third-party extensions. For private registered
11057	// extensions, and extensions provided by Amazon, CloudFormation returns null.
11058	PublisherId *string `min:"1" type:"string"`
11059
11060	// For extensions that are modules, the public third-party extensions that must
11061	// be activated in your account in order for the module itself to be activated.
11062	RequiredActivatedTypes []*RequiredActivatedType `type:"list"`
11063
11064	// The schema that defines the extension.
11065	//
11066	// For more information on extension schemas, see Resource Provider Schema (https://docs.aws.amazon.com/cloudformation-cli/latest/userguide/resource-type-schema.html)
11067	// in the CloudFormation CLI User Guide.
11068	Schema *string `min:"1" type:"string"`
11069
11070	// The URL of the source code for the extension.
11071	SourceUrl *string `type:"string"`
11072
11073	// When the specified private extension version was registered or activated
11074	// in your account.
11075	TimeCreated *time.Time `type:"timestamp"`
11076
11077	// The kind of extension.
11078	Type *string `type:"string" enum:"RegistryType"`
11079
11080	// The name of the extension.
11081	//
11082	// If the extension is a public third-party type you have activated with a type
11083	// name alias, CloudFormation returns the type name alias. For more information,
11084	// see ActivateType (https://docs.aws.amazon.com/AWSCloudFormation/latest/APIReference/API_ActivateType.html).
11085	TypeName *string `min:"10" type:"string"`
11086
11087	// The contract test status of the registered extension version. To return the
11088	// extension test status of a specifc extension version, you must specify VersionId.
11089	//
11090	// This applies only to registered private extension versions. CloudFormation
11091	// does not return this information for public extensions, whether or not they
11092	// are activated in your account.
11093	//
11094	//    * PASSED: The extension has passed all its contract tests. An extension
11095	//    must have a test status of PASSED before it can be published. For more
11096	//    information, see Publishing extensions to make them available for public
11097	//    use (https://docs.aws.amazon.com/cloudformation-cli/latest/userguide/resource-type-publish.html)
11098	//    in the CloudFormation Command Line Interface User Guide.
11099	//
11100	//    * FAILED: The extension has failed one or more contract tests.
11101	//
11102	//    * IN_PROGRESS: Contract tests are currently being performed on the extension.
11103	//
11104	//    * NOT_TESTED: Contract tests have not been performed on the extension.
11105	TypeTestsStatus *string `type:"string" enum:"TypeTestsStatus"`
11106
11107	// The description of the test status. To return the extension test status of
11108	// a specifc extension version, you must specify VersionId.
11109	//
11110	// This applies only to registered private extension versions. CloudFormation
11111	// does not return this information for public extensions, whether or not they
11112	// are activated in your account.
11113	TypeTestsStatusDescription *string `min:"1" type:"string"`
11114
11115	// The scope at which the extension is visible and usable in CloudFormation
11116	// operations.
11117	//
11118	// Valid values include:
11119	//
11120	//    * PRIVATE: The extension is only visible and usable within the account
11121	//    in which it is registered. CloudFormation marks any extensions you register
11122	//    as PRIVATE.
11123	//
11124	//    * PUBLIC: The extension is publically visible and usable within any Amazon
11125	//    account.
11126	Visibility *string `type:"string" enum:"Visibility"`
11127}
11128
11129// String returns the string representation
11130func (s DescribeTypeOutput) String() string {
11131	return awsutil.Prettify(s)
11132}
11133
11134// GoString returns the string representation
11135func (s DescribeTypeOutput) GoString() string {
11136	return s.String()
11137}
11138
11139// SetArn sets the Arn field's value.
11140func (s *DescribeTypeOutput) SetArn(v string) *DescribeTypeOutput {
11141	s.Arn = &v
11142	return s
11143}
11144
11145// SetAutoUpdate sets the AutoUpdate field's value.
11146func (s *DescribeTypeOutput) SetAutoUpdate(v bool) *DescribeTypeOutput {
11147	s.AutoUpdate = &v
11148	return s
11149}
11150
11151// SetConfigurationSchema sets the ConfigurationSchema field's value.
11152func (s *DescribeTypeOutput) SetConfigurationSchema(v string) *DescribeTypeOutput {
11153	s.ConfigurationSchema = &v
11154	return s
11155}
11156
11157// SetDefaultVersionId sets the DefaultVersionId field's value.
11158func (s *DescribeTypeOutput) SetDefaultVersionId(v string) *DescribeTypeOutput {
11159	s.DefaultVersionId = &v
11160	return s
11161}
11162
11163// SetDeprecatedStatus sets the DeprecatedStatus field's value.
11164func (s *DescribeTypeOutput) SetDeprecatedStatus(v string) *DescribeTypeOutput {
11165	s.DeprecatedStatus = &v
11166	return s
11167}
11168
11169// SetDescription sets the Description field's value.
11170func (s *DescribeTypeOutput) SetDescription(v string) *DescribeTypeOutput {
11171	s.Description = &v
11172	return s
11173}
11174
11175// SetDocumentationUrl sets the DocumentationUrl field's value.
11176func (s *DescribeTypeOutput) SetDocumentationUrl(v string) *DescribeTypeOutput {
11177	s.DocumentationUrl = &v
11178	return s
11179}
11180
11181// SetExecutionRoleArn sets the ExecutionRoleArn field's value.
11182func (s *DescribeTypeOutput) SetExecutionRoleArn(v string) *DescribeTypeOutput {
11183	s.ExecutionRoleArn = &v
11184	return s
11185}
11186
11187// SetIsActivated sets the IsActivated field's value.
11188func (s *DescribeTypeOutput) SetIsActivated(v bool) *DescribeTypeOutput {
11189	s.IsActivated = &v
11190	return s
11191}
11192
11193// SetIsDefaultVersion sets the IsDefaultVersion field's value.
11194func (s *DescribeTypeOutput) SetIsDefaultVersion(v bool) *DescribeTypeOutput {
11195	s.IsDefaultVersion = &v
11196	return s
11197}
11198
11199// SetLastUpdated sets the LastUpdated field's value.
11200func (s *DescribeTypeOutput) SetLastUpdated(v time.Time) *DescribeTypeOutput {
11201	s.LastUpdated = &v
11202	return s
11203}
11204
11205// SetLatestPublicVersion sets the LatestPublicVersion field's value.
11206func (s *DescribeTypeOutput) SetLatestPublicVersion(v string) *DescribeTypeOutput {
11207	s.LatestPublicVersion = &v
11208	return s
11209}
11210
11211// SetLoggingConfig sets the LoggingConfig field's value.
11212func (s *DescribeTypeOutput) SetLoggingConfig(v *LoggingConfig) *DescribeTypeOutput {
11213	s.LoggingConfig = v
11214	return s
11215}
11216
11217// SetOriginalTypeArn sets the OriginalTypeArn field's value.
11218func (s *DescribeTypeOutput) SetOriginalTypeArn(v string) *DescribeTypeOutput {
11219	s.OriginalTypeArn = &v
11220	return s
11221}
11222
11223// SetOriginalTypeName sets the OriginalTypeName field's value.
11224func (s *DescribeTypeOutput) SetOriginalTypeName(v string) *DescribeTypeOutput {
11225	s.OriginalTypeName = &v
11226	return s
11227}
11228
11229// SetProvisioningType sets the ProvisioningType field's value.
11230func (s *DescribeTypeOutput) SetProvisioningType(v string) *DescribeTypeOutput {
11231	s.ProvisioningType = &v
11232	return s
11233}
11234
11235// SetPublicVersionNumber sets the PublicVersionNumber field's value.
11236func (s *DescribeTypeOutput) SetPublicVersionNumber(v string) *DescribeTypeOutput {
11237	s.PublicVersionNumber = &v
11238	return s
11239}
11240
11241// SetPublisherId sets the PublisherId field's value.
11242func (s *DescribeTypeOutput) SetPublisherId(v string) *DescribeTypeOutput {
11243	s.PublisherId = &v
11244	return s
11245}
11246
11247// SetRequiredActivatedTypes sets the RequiredActivatedTypes field's value.
11248func (s *DescribeTypeOutput) SetRequiredActivatedTypes(v []*RequiredActivatedType) *DescribeTypeOutput {
11249	s.RequiredActivatedTypes = v
11250	return s
11251}
11252
11253// SetSchema sets the Schema field's value.
11254func (s *DescribeTypeOutput) SetSchema(v string) *DescribeTypeOutput {
11255	s.Schema = &v
11256	return s
11257}
11258
11259// SetSourceUrl sets the SourceUrl field's value.
11260func (s *DescribeTypeOutput) SetSourceUrl(v string) *DescribeTypeOutput {
11261	s.SourceUrl = &v
11262	return s
11263}
11264
11265// SetTimeCreated sets the TimeCreated field's value.
11266func (s *DescribeTypeOutput) SetTimeCreated(v time.Time) *DescribeTypeOutput {
11267	s.TimeCreated = &v
11268	return s
11269}
11270
11271// SetType sets the Type field's value.
11272func (s *DescribeTypeOutput) SetType(v string) *DescribeTypeOutput {
11273	s.Type = &v
11274	return s
11275}
11276
11277// SetTypeName sets the TypeName field's value.
11278func (s *DescribeTypeOutput) SetTypeName(v string) *DescribeTypeOutput {
11279	s.TypeName = &v
11280	return s
11281}
11282
11283// SetTypeTestsStatus sets the TypeTestsStatus field's value.
11284func (s *DescribeTypeOutput) SetTypeTestsStatus(v string) *DescribeTypeOutput {
11285	s.TypeTestsStatus = &v
11286	return s
11287}
11288
11289// SetTypeTestsStatusDescription sets the TypeTestsStatusDescription field's value.
11290func (s *DescribeTypeOutput) SetTypeTestsStatusDescription(v string) *DescribeTypeOutput {
11291	s.TypeTestsStatusDescription = &v
11292	return s
11293}
11294
11295// SetVisibility sets the Visibility field's value.
11296func (s *DescribeTypeOutput) SetVisibility(v string) *DescribeTypeOutput {
11297	s.Visibility = &v
11298	return s
11299}
11300
11301type DescribeTypeRegistrationInput struct {
11302	_ struct{} `type:"structure"`
11303
11304	// The identifier for this registration request.
11305	//
11306	// This registration token is generated by CloudFormation when you initiate
11307	// a registration request using RegisterType .
11308	//
11309	// RegistrationToken is a required field
11310	RegistrationToken *string `min:"1" type:"string" required:"true"`
11311}
11312
11313// String returns the string representation
11314func (s DescribeTypeRegistrationInput) String() string {
11315	return awsutil.Prettify(s)
11316}
11317
11318// GoString returns the string representation
11319func (s DescribeTypeRegistrationInput) GoString() string {
11320	return s.String()
11321}
11322
11323// Validate inspects the fields of the type to determine if they are valid.
11324func (s *DescribeTypeRegistrationInput) Validate() error {
11325	invalidParams := request.ErrInvalidParams{Context: "DescribeTypeRegistrationInput"}
11326	if s.RegistrationToken == nil {
11327		invalidParams.Add(request.NewErrParamRequired("RegistrationToken"))
11328	}
11329	if s.RegistrationToken != nil && len(*s.RegistrationToken) < 1 {
11330		invalidParams.Add(request.NewErrParamMinLen("RegistrationToken", 1))
11331	}
11332
11333	if invalidParams.Len() > 0 {
11334		return invalidParams
11335	}
11336	return nil
11337}
11338
11339// SetRegistrationToken sets the RegistrationToken field's value.
11340func (s *DescribeTypeRegistrationInput) SetRegistrationToken(v string) *DescribeTypeRegistrationInput {
11341	s.RegistrationToken = &v
11342	return s
11343}
11344
11345type DescribeTypeRegistrationOutput struct {
11346	_ struct{} `type:"structure"`
11347
11348	// The description of the extension registration request.
11349	Description *string `min:"1" type:"string"`
11350
11351	// The current status of the extension registration request.
11352	ProgressStatus *string `type:"string" enum:"RegistrationStatus"`
11353
11354	// The Amazon Resource Name (ARN) of the extension being registered.
11355	//
11356	// For registration requests with a ProgressStatus of other than COMPLETE, this
11357	// will be null.
11358	TypeArn *string `type:"string"`
11359
11360	// The Amazon Resource Name (ARN) of this specific version of the extension
11361	// being registered.
11362	//
11363	// For registration requests with a ProgressStatus of other than COMPLETE, this
11364	// will be null.
11365	TypeVersionArn *string `type:"string"`
11366}
11367
11368// String returns the string representation
11369func (s DescribeTypeRegistrationOutput) String() string {
11370	return awsutil.Prettify(s)
11371}
11372
11373// GoString returns the string representation
11374func (s DescribeTypeRegistrationOutput) GoString() string {
11375	return s.String()
11376}
11377
11378// SetDescription sets the Description field's value.
11379func (s *DescribeTypeRegistrationOutput) SetDescription(v string) *DescribeTypeRegistrationOutput {
11380	s.Description = &v
11381	return s
11382}
11383
11384// SetProgressStatus sets the ProgressStatus field's value.
11385func (s *DescribeTypeRegistrationOutput) SetProgressStatus(v string) *DescribeTypeRegistrationOutput {
11386	s.ProgressStatus = &v
11387	return s
11388}
11389
11390// SetTypeArn sets the TypeArn field's value.
11391func (s *DescribeTypeRegistrationOutput) SetTypeArn(v string) *DescribeTypeRegistrationOutput {
11392	s.TypeArn = &v
11393	return s
11394}
11395
11396// SetTypeVersionArn sets the TypeVersionArn field's value.
11397func (s *DescribeTypeRegistrationOutput) SetTypeVersionArn(v string) *DescribeTypeRegistrationOutput {
11398	s.TypeVersionArn = &v
11399	return s
11400}
11401
11402type DetectStackDriftInput struct {
11403	_ struct{} `type:"structure"`
11404
11405	// The logical names of any resources you want to use as filters.
11406	LogicalResourceIds []*string `min:"1" type:"list"`
11407
11408	// The name of the stack for which you want to detect drift.
11409	//
11410	// StackName is a required field
11411	StackName *string `min:"1" type:"string" required:"true"`
11412}
11413
11414// String returns the string representation
11415func (s DetectStackDriftInput) String() string {
11416	return awsutil.Prettify(s)
11417}
11418
11419// GoString returns the string representation
11420func (s DetectStackDriftInput) GoString() string {
11421	return s.String()
11422}
11423
11424// Validate inspects the fields of the type to determine if they are valid.
11425func (s *DetectStackDriftInput) Validate() error {
11426	invalidParams := request.ErrInvalidParams{Context: "DetectStackDriftInput"}
11427	if s.LogicalResourceIds != nil && len(s.LogicalResourceIds) < 1 {
11428		invalidParams.Add(request.NewErrParamMinLen("LogicalResourceIds", 1))
11429	}
11430	if s.StackName == nil {
11431		invalidParams.Add(request.NewErrParamRequired("StackName"))
11432	}
11433	if s.StackName != nil && len(*s.StackName) < 1 {
11434		invalidParams.Add(request.NewErrParamMinLen("StackName", 1))
11435	}
11436
11437	if invalidParams.Len() > 0 {
11438		return invalidParams
11439	}
11440	return nil
11441}
11442
11443// SetLogicalResourceIds sets the LogicalResourceIds field's value.
11444func (s *DetectStackDriftInput) SetLogicalResourceIds(v []*string) *DetectStackDriftInput {
11445	s.LogicalResourceIds = v
11446	return s
11447}
11448
11449// SetStackName sets the StackName field's value.
11450func (s *DetectStackDriftInput) SetStackName(v string) *DetectStackDriftInput {
11451	s.StackName = &v
11452	return s
11453}
11454
11455type DetectStackDriftOutput struct {
11456	_ struct{} `type:"structure"`
11457
11458	// The ID of the drift detection results of this operation.
11459	//
11460	// CloudFormation generates new results, with a new drift detection ID, each
11461	// time this operation is run. However, the number of drift results CloudFormation
11462	// retains for any given stack, and for how long, may vary.
11463	//
11464	// StackDriftDetectionId is a required field
11465	StackDriftDetectionId *string `min:"1" type:"string" required:"true"`
11466}
11467
11468// String returns the string representation
11469func (s DetectStackDriftOutput) String() string {
11470	return awsutil.Prettify(s)
11471}
11472
11473// GoString returns the string representation
11474func (s DetectStackDriftOutput) GoString() string {
11475	return s.String()
11476}
11477
11478// SetStackDriftDetectionId sets the StackDriftDetectionId field's value.
11479func (s *DetectStackDriftOutput) SetStackDriftDetectionId(v string) *DetectStackDriftOutput {
11480	s.StackDriftDetectionId = &v
11481	return s
11482}
11483
11484type DetectStackResourceDriftInput struct {
11485	_ struct{} `type:"structure"`
11486
11487	// The logical name of the resource for which to return drift information.
11488	//
11489	// LogicalResourceId is a required field
11490	LogicalResourceId *string `type:"string" required:"true"`
11491
11492	// The name of the stack to which the resource belongs.
11493	//
11494	// StackName is a required field
11495	StackName *string `min:"1" type:"string" required:"true"`
11496}
11497
11498// String returns the string representation
11499func (s DetectStackResourceDriftInput) String() string {
11500	return awsutil.Prettify(s)
11501}
11502
11503// GoString returns the string representation
11504func (s DetectStackResourceDriftInput) GoString() string {
11505	return s.String()
11506}
11507
11508// Validate inspects the fields of the type to determine if they are valid.
11509func (s *DetectStackResourceDriftInput) Validate() error {
11510	invalidParams := request.ErrInvalidParams{Context: "DetectStackResourceDriftInput"}
11511	if s.LogicalResourceId == nil {
11512		invalidParams.Add(request.NewErrParamRequired("LogicalResourceId"))
11513	}
11514	if s.StackName == nil {
11515		invalidParams.Add(request.NewErrParamRequired("StackName"))
11516	}
11517	if s.StackName != nil && len(*s.StackName) < 1 {
11518		invalidParams.Add(request.NewErrParamMinLen("StackName", 1))
11519	}
11520
11521	if invalidParams.Len() > 0 {
11522		return invalidParams
11523	}
11524	return nil
11525}
11526
11527// SetLogicalResourceId sets the LogicalResourceId field's value.
11528func (s *DetectStackResourceDriftInput) SetLogicalResourceId(v string) *DetectStackResourceDriftInput {
11529	s.LogicalResourceId = &v
11530	return s
11531}
11532
11533// SetStackName sets the StackName field's value.
11534func (s *DetectStackResourceDriftInput) SetStackName(v string) *DetectStackResourceDriftInput {
11535	s.StackName = &v
11536	return s
11537}
11538
11539type DetectStackResourceDriftOutput struct {
11540	_ struct{} `type:"structure"`
11541
11542	// Information about whether the resource's actual configuration has drifted
11543	// from its expected template configuration, including actual and expected property
11544	// values and any differences detected.
11545	//
11546	// StackResourceDrift is a required field
11547	StackResourceDrift *StackResourceDrift `type:"structure" required:"true"`
11548}
11549
11550// String returns the string representation
11551func (s DetectStackResourceDriftOutput) String() string {
11552	return awsutil.Prettify(s)
11553}
11554
11555// GoString returns the string representation
11556func (s DetectStackResourceDriftOutput) GoString() string {
11557	return s.String()
11558}
11559
11560// SetStackResourceDrift sets the StackResourceDrift field's value.
11561func (s *DetectStackResourceDriftOutput) SetStackResourceDrift(v *StackResourceDrift) *DetectStackResourceDriftOutput {
11562	s.StackResourceDrift = v
11563	return s
11564}
11565
11566type DetectStackSetDriftInput struct {
11567	_ struct{} `type:"structure"`
11568
11569	// [Service-managed permissions] Specifies whether you are acting as an account
11570	// administrator in the organization's management account or as a delegated
11571	// administrator in a member account.
11572	//
11573	// By default, SELF is specified. Use SELF for stack sets with self-managed
11574	// permissions.
11575	//
11576	//    * If you are signed in to the management account, specify SELF.
11577	//
11578	//    * If you are signed in to a delegated administrator account, specify DELEGATED_ADMIN.
11579	//    Your Amazon Web Services account must be registered as a delegated administrator
11580	//    in the management account. For more information, see Register a delegated
11581	//    administrator (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/stacksets-orgs-delegated-admin.html)
11582	//    in the CloudFormation User Guide.
11583	CallAs *string `type:"string" enum:"CallAs"`
11584
11585	// The ID of the stack set operation.
11586	OperationId *string `min:"1" type:"string" idempotencyToken:"true"`
11587
11588	// The user-specified preferences for how CloudFormation performs a stack set
11589	// operation.
11590	//
11591	// For more information on maximum concurrent accounts and failure tolerance,
11592	// see Stack set operation options (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/stacksets-concepts.html#stackset-ops-options).
11593	OperationPreferences *StackSetOperationPreferences `type:"structure"`
11594
11595	// The name of the stack set on which to perform the drift detection operation.
11596	//
11597	// StackSetName is a required field
11598	StackSetName *string `type:"string" required:"true"`
11599}
11600
11601// String returns the string representation
11602func (s DetectStackSetDriftInput) String() string {
11603	return awsutil.Prettify(s)
11604}
11605
11606// GoString returns the string representation
11607func (s DetectStackSetDriftInput) GoString() string {
11608	return s.String()
11609}
11610
11611// Validate inspects the fields of the type to determine if they are valid.
11612func (s *DetectStackSetDriftInput) Validate() error {
11613	invalidParams := request.ErrInvalidParams{Context: "DetectStackSetDriftInput"}
11614	if s.OperationId != nil && len(*s.OperationId) < 1 {
11615		invalidParams.Add(request.NewErrParamMinLen("OperationId", 1))
11616	}
11617	if s.StackSetName == nil {
11618		invalidParams.Add(request.NewErrParamRequired("StackSetName"))
11619	}
11620	if s.OperationPreferences != nil {
11621		if err := s.OperationPreferences.Validate(); err != nil {
11622			invalidParams.AddNested("OperationPreferences", err.(request.ErrInvalidParams))
11623		}
11624	}
11625
11626	if invalidParams.Len() > 0 {
11627		return invalidParams
11628	}
11629	return nil
11630}
11631
11632// SetCallAs sets the CallAs field's value.
11633func (s *DetectStackSetDriftInput) SetCallAs(v string) *DetectStackSetDriftInput {
11634	s.CallAs = &v
11635	return s
11636}
11637
11638// SetOperationId sets the OperationId field's value.
11639func (s *DetectStackSetDriftInput) SetOperationId(v string) *DetectStackSetDriftInput {
11640	s.OperationId = &v
11641	return s
11642}
11643
11644// SetOperationPreferences sets the OperationPreferences field's value.
11645func (s *DetectStackSetDriftInput) SetOperationPreferences(v *StackSetOperationPreferences) *DetectStackSetDriftInput {
11646	s.OperationPreferences = v
11647	return s
11648}
11649
11650// SetStackSetName sets the StackSetName field's value.
11651func (s *DetectStackSetDriftInput) SetStackSetName(v string) *DetectStackSetDriftInput {
11652	s.StackSetName = &v
11653	return s
11654}
11655
11656type DetectStackSetDriftOutput struct {
11657	_ struct{} `type:"structure"`
11658
11659	// The ID of the drift detection stack set operation.
11660	//
11661	// you can use this operation id with DescribeStackSetOperation to monitor the
11662	// progress of the drift detection operation.
11663	OperationId *string `min:"1" type:"string"`
11664}
11665
11666// String returns the string representation
11667func (s DetectStackSetDriftOutput) String() string {
11668	return awsutil.Prettify(s)
11669}
11670
11671// GoString returns the string representation
11672func (s DetectStackSetDriftOutput) GoString() string {
11673	return s.String()
11674}
11675
11676// SetOperationId sets the OperationId field's value.
11677func (s *DetectStackSetDriftOutput) SetOperationId(v string) *DetectStackSetDriftOutput {
11678	s.OperationId = &v
11679	return s
11680}
11681
11682// The input for an EstimateTemplateCost action.
11683type EstimateTemplateCostInput struct {
11684	_ struct{} `type:"structure"`
11685
11686	// A list of Parameter structures that specify input parameters.
11687	Parameters []*Parameter `type:"list"`
11688
11689	// Structure containing the template body with a minimum length of 1 byte and
11690	// a maximum length of 51,200 bytes. (For more information, go to Template Anatomy
11691	// (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/template-anatomy.html)
11692	// in the CloudFormation User Guide.)
11693	//
11694	// Conditional: You must pass TemplateBody or TemplateURL. If both are passed,
11695	// only TemplateBody is used.
11696	TemplateBody *string `min:"1" type:"string"`
11697
11698	// Location of file containing the template body. The URL must point to a template
11699	// that is located in an Amazon S3 bucket or a Systems Manager document. For
11700	// more information, go to Template Anatomy (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/template-anatomy.html)
11701	// in the CloudFormation User Guide.
11702	//
11703	// Conditional: You must pass TemplateURL or TemplateBody. If both are passed,
11704	// only TemplateBody is used.
11705	TemplateURL *string `min:"1" type:"string"`
11706}
11707
11708// String returns the string representation
11709func (s EstimateTemplateCostInput) String() string {
11710	return awsutil.Prettify(s)
11711}
11712
11713// GoString returns the string representation
11714func (s EstimateTemplateCostInput) GoString() string {
11715	return s.String()
11716}
11717
11718// Validate inspects the fields of the type to determine if they are valid.
11719func (s *EstimateTemplateCostInput) Validate() error {
11720	invalidParams := request.ErrInvalidParams{Context: "EstimateTemplateCostInput"}
11721	if s.TemplateBody != nil && len(*s.TemplateBody) < 1 {
11722		invalidParams.Add(request.NewErrParamMinLen("TemplateBody", 1))
11723	}
11724	if s.TemplateURL != nil && len(*s.TemplateURL) < 1 {
11725		invalidParams.Add(request.NewErrParamMinLen("TemplateURL", 1))
11726	}
11727
11728	if invalidParams.Len() > 0 {
11729		return invalidParams
11730	}
11731	return nil
11732}
11733
11734// SetParameters sets the Parameters field's value.
11735func (s *EstimateTemplateCostInput) SetParameters(v []*Parameter) *EstimateTemplateCostInput {
11736	s.Parameters = v
11737	return s
11738}
11739
11740// SetTemplateBody sets the TemplateBody field's value.
11741func (s *EstimateTemplateCostInput) SetTemplateBody(v string) *EstimateTemplateCostInput {
11742	s.TemplateBody = &v
11743	return s
11744}
11745
11746// SetTemplateURL sets the TemplateURL field's value.
11747func (s *EstimateTemplateCostInput) SetTemplateURL(v string) *EstimateTemplateCostInput {
11748	s.TemplateURL = &v
11749	return s
11750}
11751
11752// The output for a EstimateTemplateCost action.
11753type EstimateTemplateCostOutput struct {
11754	_ struct{} `type:"structure"`
11755
11756	// An Amazon Web Services Simple Monthly Calculator URL with a query string
11757	// that describes the resources required to run the template.
11758	Url *string `type:"string"`
11759}
11760
11761// String returns the string representation
11762func (s EstimateTemplateCostOutput) String() string {
11763	return awsutil.Prettify(s)
11764}
11765
11766// GoString returns the string representation
11767func (s EstimateTemplateCostOutput) GoString() string {
11768	return s.String()
11769}
11770
11771// SetUrl sets the Url field's value.
11772func (s *EstimateTemplateCostOutput) SetUrl(v string) *EstimateTemplateCostOutput {
11773	s.Url = &v
11774	return s
11775}
11776
11777// The input for the ExecuteChangeSet action.
11778type ExecuteChangeSetInput struct {
11779	_ struct{} `type:"structure"`
11780
11781	// The name or ARN of the change set that you want use to update the specified
11782	// stack.
11783	//
11784	// ChangeSetName is a required field
11785	ChangeSetName *string `min:"1" type:"string" required:"true"`
11786
11787	// A unique identifier for this ExecuteChangeSet request. Specify this token
11788	// if you plan to retry requests so that CloudFormation knows that you're not
11789	// attempting to execute a change set to update a stack with the same name.
11790	// You might retry ExecuteChangeSet requests to ensure that CloudFormation successfully
11791	// received them.
11792	ClientRequestToken *string `min:"1" type:"string"`
11793
11794	// Preserves the state of previously provisioned resources when an operation
11795	// fails.
11796	//
11797	// Default: True
11798	DisableRollback *bool `type:"boolean"`
11799
11800	// If you specified the name of a change set, specify the stack name or ID (ARN)
11801	// that is associated with the change set you want to execute.
11802	StackName *string `min:"1" type:"string"`
11803}
11804
11805// String returns the string representation
11806func (s ExecuteChangeSetInput) String() string {
11807	return awsutil.Prettify(s)
11808}
11809
11810// GoString returns the string representation
11811func (s ExecuteChangeSetInput) GoString() string {
11812	return s.String()
11813}
11814
11815// Validate inspects the fields of the type to determine if they are valid.
11816func (s *ExecuteChangeSetInput) Validate() error {
11817	invalidParams := request.ErrInvalidParams{Context: "ExecuteChangeSetInput"}
11818	if s.ChangeSetName == nil {
11819		invalidParams.Add(request.NewErrParamRequired("ChangeSetName"))
11820	}
11821	if s.ChangeSetName != nil && len(*s.ChangeSetName) < 1 {
11822		invalidParams.Add(request.NewErrParamMinLen("ChangeSetName", 1))
11823	}
11824	if s.ClientRequestToken != nil && len(*s.ClientRequestToken) < 1 {
11825		invalidParams.Add(request.NewErrParamMinLen("ClientRequestToken", 1))
11826	}
11827	if s.StackName != nil && len(*s.StackName) < 1 {
11828		invalidParams.Add(request.NewErrParamMinLen("StackName", 1))
11829	}
11830
11831	if invalidParams.Len() > 0 {
11832		return invalidParams
11833	}
11834	return nil
11835}
11836
11837// SetChangeSetName sets the ChangeSetName field's value.
11838func (s *ExecuteChangeSetInput) SetChangeSetName(v string) *ExecuteChangeSetInput {
11839	s.ChangeSetName = &v
11840	return s
11841}
11842
11843// SetClientRequestToken sets the ClientRequestToken field's value.
11844func (s *ExecuteChangeSetInput) SetClientRequestToken(v string) *ExecuteChangeSetInput {
11845	s.ClientRequestToken = &v
11846	return s
11847}
11848
11849// SetDisableRollback sets the DisableRollback field's value.
11850func (s *ExecuteChangeSetInput) SetDisableRollback(v bool) *ExecuteChangeSetInput {
11851	s.DisableRollback = &v
11852	return s
11853}
11854
11855// SetStackName sets the StackName field's value.
11856func (s *ExecuteChangeSetInput) SetStackName(v string) *ExecuteChangeSetInput {
11857	s.StackName = &v
11858	return s
11859}
11860
11861// The output for the ExecuteChangeSet action.
11862type ExecuteChangeSetOutput struct {
11863	_ struct{} `type:"structure"`
11864}
11865
11866// String returns the string representation
11867func (s ExecuteChangeSetOutput) String() string {
11868	return awsutil.Prettify(s)
11869}
11870
11871// GoString returns the string representation
11872func (s ExecuteChangeSetOutput) GoString() string {
11873	return s.String()
11874}
11875
11876// The Export structure describes the exported output values for a stack.
11877type Export struct {
11878	_ struct{} `type:"structure"`
11879
11880	// The stack that contains the exported output name and value.
11881	ExportingStackId *string `type:"string"`
11882
11883	// The name of exported output value. Use this name and the Fn::ImportValue
11884	// function to import the associated value into other stacks. The name is defined
11885	// in the Export field in the associated stack's Outputs section.
11886	Name *string `type:"string"`
11887
11888	// The value of the exported output, such as a resource physical ID. This value
11889	// is defined in the Export field in the associated stack's Outputs section.
11890	Value *string `type:"string"`
11891}
11892
11893// String returns the string representation
11894func (s Export) String() string {
11895	return awsutil.Prettify(s)
11896}
11897
11898// GoString returns the string representation
11899func (s Export) GoString() string {
11900	return s.String()
11901}
11902
11903// SetExportingStackId sets the ExportingStackId field's value.
11904func (s *Export) SetExportingStackId(v string) *Export {
11905	s.ExportingStackId = &v
11906	return s
11907}
11908
11909// SetName sets the Name field's value.
11910func (s *Export) SetName(v string) *Export {
11911	s.Name = &v
11912	return s
11913}
11914
11915// SetValue sets the Value field's value.
11916func (s *Export) SetValue(v string) *Export {
11917	s.Value = &v
11918	return s
11919}
11920
11921// The input for the GetStackPolicy action.
11922type GetStackPolicyInput struct {
11923	_ struct{} `type:"structure"`
11924
11925	// The name or unique stack ID that is associated with the stack whose policy
11926	// you want to get.
11927	//
11928	// StackName is a required field
11929	StackName *string `type:"string" required:"true"`
11930}
11931
11932// String returns the string representation
11933func (s GetStackPolicyInput) String() string {
11934	return awsutil.Prettify(s)
11935}
11936
11937// GoString returns the string representation
11938func (s GetStackPolicyInput) GoString() string {
11939	return s.String()
11940}
11941
11942// Validate inspects the fields of the type to determine if they are valid.
11943func (s *GetStackPolicyInput) Validate() error {
11944	invalidParams := request.ErrInvalidParams{Context: "GetStackPolicyInput"}
11945	if s.StackName == nil {
11946		invalidParams.Add(request.NewErrParamRequired("StackName"))
11947	}
11948
11949	if invalidParams.Len() > 0 {
11950		return invalidParams
11951	}
11952	return nil
11953}
11954
11955// SetStackName sets the StackName field's value.
11956func (s *GetStackPolicyInput) SetStackName(v string) *GetStackPolicyInput {
11957	s.StackName = &v
11958	return s
11959}
11960
11961// The output for the GetStackPolicy action.
11962type GetStackPolicyOutput struct {
11963	_ struct{} `type:"structure"`
11964
11965	// Structure containing the stack policy body. (For more information, go to
11966	// Prevent Updates to Stack Resources (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/protect-stack-resources.html)
11967	// in the CloudFormation User Guide.)
11968	StackPolicyBody *string `min:"1" type:"string"`
11969}
11970
11971// String returns the string representation
11972func (s GetStackPolicyOutput) String() string {
11973	return awsutil.Prettify(s)
11974}
11975
11976// GoString returns the string representation
11977func (s GetStackPolicyOutput) GoString() string {
11978	return s.String()
11979}
11980
11981// SetStackPolicyBody sets the StackPolicyBody field's value.
11982func (s *GetStackPolicyOutput) SetStackPolicyBody(v string) *GetStackPolicyOutput {
11983	s.StackPolicyBody = &v
11984	return s
11985}
11986
11987// The input for a GetTemplate action.
11988type GetTemplateInput struct {
11989	_ struct{} `type:"structure"`
11990
11991	// The name or Amazon Resource Name (ARN) of a change set for which CloudFormation
11992	// returns the associated template. If you specify a name, you must also specify
11993	// the StackName.
11994	ChangeSetName *string `min:"1" type:"string"`
11995
11996	// The name or the unique stack ID that is associated with the stack, which
11997	// are not always interchangeable:
11998	//
11999	//    * Running stacks: You can specify either the stack's name or its unique
12000	//    stack ID.
12001	//
12002	//    * Deleted stacks: You must specify the unique stack ID.
12003	//
12004	// Default: There is no default value.
12005	StackName *string `type:"string"`
12006
12007	// For templates that include transforms, the stage of the template that CloudFormation
12008	// returns. To get the user-submitted template, specify Original. To get the
12009	// template after CloudFormation has processed all transforms, specify Processed.
12010	//
12011	// If the template doesn't include transforms, Original and Processed return
12012	// the same template. By default, CloudFormation specifies Processed.
12013	TemplateStage *string `type:"string" enum:"TemplateStage"`
12014}
12015
12016// String returns the string representation
12017func (s GetTemplateInput) String() string {
12018	return awsutil.Prettify(s)
12019}
12020
12021// GoString returns the string representation
12022func (s GetTemplateInput) GoString() string {
12023	return s.String()
12024}
12025
12026// Validate inspects the fields of the type to determine if they are valid.
12027func (s *GetTemplateInput) Validate() error {
12028	invalidParams := request.ErrInvalidParams{Context: "GetTemplateInput"}
12029	if s.ChangeSetName != nil && len(*s.ChangeSetName) < 1 {
12030		invalidParams.Add(request.NewErrParamMinLen("ChangeSetName", 1))
12031	}
12032
12033	if invalidParams.Len() > 0 {
12034		return invalidParams
12035	}
12036	return nil
12037}
12038
12039// SetChangeSetName sets the ChangeSetName field's value.
12040func (s *GetTemplateInput) SetChangeSetName(v string) *GetTemplateInput {
12041	s.ChangeSetName = &v
12042	return s
12043}
12044
12045// SetStackName sets the StackName field's value.
12046func (s *GetTemplateInput) SetStackName(v string) *GetTemplateInput {
12047	s.StackName = &v
12048	return s
12049}
12050
12051// SetTemplateStage sets the TemplateStage field's value.
12052func (s *GetTemplateInput) SetTemplateStage(v string) *GetTemplateInput {
12053	s.TemplateStage = &v
12054	return s
12055}
12056
12057// The output for GetTemplate action.
12058type GetTemplateOutput struct {
12059	_ struct{} `type:"structure"`
12060
12061	// The stage of the template that you can retrieve. For stacks, the Original
12062	// and Processed templates are always available. For change sets, the Original
12063	// template is always available. After CloudFormation finishes creating the
12064	// change set, the Processed template becomes available.
12065	StagesAvailable []*string `type:"list"`
12066
12067	// Structure containing the template body. (For more information, go to Template
12068	// Anatomy (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/template-anatomy.html)
12069	// in the CloudFormation User Guide.)
12070	//
12071	// CloudFormation returns the same template that was used when the stack was
12072	// created.
12073	TemplateBody *string `min:"1" type:"string"`
12074}
12075
12076// String returns the string representation
12077func (s GetTemplateOutput) String() string {
12078	return awsutil.Prettify(s)
12079}
12080
12081// GoString returns the string representation
12082func (s GetTemplateOutput) GoString() string {
12083	return s.String()
12084}
12085
12086// SetStagesAvailable sets the StagesAvailable field's value.
12087func (s *GetTemplateOutput) SetStagesAvailable(v []*string) *GetTemplateOutput {
12088	s.StagesAvailable = v
12089	return s
12090}
12091
12092// SetTemplateBody sets the TemplateBody field's value.
12093func (s *GetTemplateOutput) SetTemplateBody(v string) *GetTemplateOutput {
12094	s.TemplateBody = &v
12095	return s
12096}
12097
12098// The input for the GetTemplateSummary action.
12099type GetTemplateSummaryInput struct {
12100	_ struct{} `type:"structure"`
12101
12102	// [Service-managed permissions] Specifies whether you are acting as an account
12103	// administrator in the organization's management account or as a delegated
12104	// administrator in a member account.
12105	//
12106	// By default, SELF is specified. Use SELF for stack sets with self-managed
12107	// permissions.
12108	//
12109	//    * If you are signed in to the management account, specify SELF.
12110	//
12111	//    * If you are signed in to a delegated administrator account, specify DELEGATED_ADMIN.
12112	//    Your Amazon Web Services account must be registered as a delegated administrator
12113	//    in the management account. For more information, see Register a delegated
12114	//    administrator (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/stacksets-orgs-delegated-admin.html)
12115	//    in the CloudFormation User Guide.
12116	CallAs *string `type:"string" enum:"CallAs"`
12117
12118	// The name or the stack ID that is associated with the stack, which are not
12119	// always interchangeable. For running stacks, you can specify either the stack's
12120	// name or its unique stack ID. For deleted stack, you must specify the unique
12121	// stack ID.
12122	//
12123	// Conditional: You must specify only one of the following parameters: StackName,
12124	// StackSetName, TemplateBody, or TemplateURL.
12125	StackName *string `min:"1" type:"string"`
12126
12127	// The name or unique ID of the stack set from which the stack was created.
12128	//
12129	// Conditional: You must specify only one of the following parameters: StackName,
12130	// StackSetName, TemplateBody, or TemplateURL.
12131	StackSetName *string `type:"string"`
12132
12133	// Structure containing the template body with a minimum length of 1 byte and
12134	// a maximum length of 51,200 bytes. For more information about templates, see
12135	// Template Anatomy (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/template-anatomy.html)
12136	// in the CloudFormation User Guide.
12137	//
12138	// Conditional: You must specify only one of the following parameters: StackName,
12139	// StackSetName, TemplateBody, or TemplateURL.
12140	TemplateBody *string `min:"1" type:"string"`
12141
12142	// Location of file containing the template body. The URL must point to a template
12143	// (max size: 460,800 bytes) that is located in an Amazon S3 bucket or a Systems
12144	// Manager document. For more information about templates, see Template Anatomy
12145	// (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/template-anatomy.html)
12146	// in the CloudFormation User Guide.
12147	//
12148	// Conditional: You must specify only one of the following parameters: StackName,
12149	// StackSetName, TemplateBody, or TemplateURL.
12150	TemplateURL *string `min:"1" type:"string"`
12151}
12152
12153// String returns the string representation
12154func (s GetTemplateSummaryInput) String() string {
12155	return awsutil.Prettify(s)
12156}
12157
12158// GoString returns the string representation
12159func (s GetTemplateSummaryInput) GoString() string {
12160	return s.String()
12161}
12162
12163// Validate inspects the fields of the type to determine if they are valid.
12164func (s *GetTemplateSummaryInput) Validate() error {
12165	invalidParams := request.ErrInvalidParams{Context: "GetTemplateSummaryInput"}
12166	if s.StackName != nil && len(*s.StackName) < 1 {
12167		invalidParams.Add(request.NewErrParamMinLen("StackName", 1))
12168	}
12169	if s.TemplateBody != nil && len(*s.TemplateBody) < 1 {
12170		invalidParams.Add(request.NewErrParamMinLen("TemplateBody", 1))
12171	}
12172	if s.TemplateURL != nil && len(*s.TemplateURL) < 1 {
12173		invalidParams.Add(request.NewErrParamMinLen("TemplateURL", 1))
12174	}
12175
12176	if invalidParams.Len() > 0 {
12177		return invalidParams
12178	}
12179	return nil
12180}
12181
12182// SetCallAs sets the CallAs field's value.
12183func (s *GetTemplateSummaryInput) SetCallAs(v string) *GetTemplateSummaryInput {
12184	s.CallAs = &v
12185	return s
12186}
12187
12188// SetStackName sets the StackName field's value.
12189func (s *GetTemplateSummaryInput) SetStackName(v string) *GetTemplateSummaryInput {
12190	s.StackName = &v
12191	return s
12192}
12193
12194// SetStackSetName sets the StackSetName field's value.
12195func (s *GetTemplateSummaryInput) SetStackSetName(v string) *GetTemplateSummaryInput {
12196	s.StackSetName = &v
12197	return s
12198}
12199
12200// SetTemplateBody sets the TemplateBody field's value.
12201func (s *GetTemplateSummaryInput) SetTemplateBody(v string) *GetTemplateSummaryInput {
12202	s.TemplateBody = &v
12203	return s
12204}
12205
12206// SetTemplateURL sets the TemplateURL field's value.
12207func (s *GetTemplateSummaryInput) SetTemplateURL(v string) *GetTemplateSummaryInput {
12208	s.TemplateURL = &v
12209	return s
12210}
12211
12212// The output for the GetTemplateSummary action.
12213type GetTemplateSummaryOutput struct {
12214	_ struct{} `type:"structure"`
12215
12216	// The capabilities found within the template. If your template contains IAM
12217	// resources, you must specify the CAPABILITY_IAM or CAPABILITY_NAMED_IAM value
12218	// for this parameter when you use the CreateStack or UpdateStack actions with
12219	// your template; otherwise, those actions return an InsufficientCapabilities
12220	// error.
12221	//
12222	// For more information, see Acknowledging IAM Resources in CloudFormation Templates
12223	// (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-iam-template.html#capabilities).
12224	Capabilities []*string `type:"list"`
12225
12226	// The list of resources that generated the values in the Capabilities response
12227	// element.
12228	CapabilitiesReason *string `type:"string"`
12229
12230	// A list of the transforms that are declared in the template.
12231	DeclaredTransforms []*string `type:"list"`
12232
12233	// The value that is defined in the Description property of the template.
12234	Description *string `min:"1" type:"string"`
12235
12236	// The value that is defined for the Metadata property of the template.
12237	Metadata *string `type:"string"`
12238
12239	// A list of parameter declarations that describe various properties for each
12240	// parameter.
12241	Parameters []*ParameterDeclaration `type:"list"`
12242
12243	// A list of resource identifier summaries that describe the target resources
12244	// of an import operation and the properties you can provide during the import
12245	// to identify the target resources. For example, BucketName is a possible identifier
12246	// property for an AWS::S3::Bucket resource.
12247	ResourceIdentifierSummaries []*ResourceIdentifierSummary `type:"list"`
12248
12249	// A list of all the template resource types that are defined in the template,
12250	// such as AWS::EC2::Instance, AWS::Dynamo::Table, and Custom::MyCustomInstance.
12251	ResourceTypes []*string `type:"list"`
12252
12253	// The Amazon Web Services template format version, which identifies the capabilities
12254	// of the template.
12255	Version *string `type:"string"`
12256}
12257
12258// String returns the string representation
12259func (s GetTemplateSummaryOutput) String() string {
12260	return awsutil.Prettify(s)
12261}
12262
12263// GoString returns the string representation
12264func (s GetTemplateSummaryOutput) GoString() string {
12265	return s.String()
12266}
12267
12268// SetCapabilities sets the Capabilities field's value.
12269func (s *GetTemplateSummaryOutput) SetCapabilities(v []*string) *GetTemplateSummaryOutput {
12270	s.Capabilities = v
12271	return s
12272}
12273
12274// SetCapabilitiesReason sets the CapabilitiesReason field's value.
12275func (s *GetTemplateSummaryOutput) SetCapabilitiesReason(v string) *GetTemplateSummaryOutput {
12276	s.CapabilitiesReason = &v
12277	return s
12278}
12279
12280// SetDeclaredTransforms sets the DeclaredTransforms field's value.
12281func (s *GetTemplateSummaryOutput) SetDeclaredTransforms(v []*string) *GetTemplateSummaryOutput {
12282	s.DeclaredTransforms = v
12283	return s
12284}
12285
12286// SetDescription sets the Description field's value.
12287func (s *GetTemplateSummaryOutput) SetDescription(v string) *GetTemplateSummaryOutput {
12288	s.Description = &v
12289	return s
12290}
12291
12292// SetMetadata sets the Metadata field's value.
12293func (s *GetTemplateSummaryOutput) SetMetadata(v string) *GetTemplateSummaryOutput {
12294	s.Metadata = &v
12295	return s
12296}
12297
12298// SetParameters sets the Parameters field's value.
12299func (s *GetTemplateSummaryOutput) SetParameters(v []*ParameterDeclaration) *GetTemplateSummaryOutput {
12300	s.Parameters = v
12301	return s
12302}
12303
12304// SetResourceIdentifierSummaries sets the ResourceIdentifierSummaries field's value.
12305func (s *GetTemplateSummaryOutput) SetResourceIdentifierSummaries(v []*ResourceIdentifierSummary) *GetTemplateSummaryOutput {
12306	s.ResourceIdentifierSummaries = v
12307	return s
12308}
12309
12310// SetResourceTypes sets the ResourceTypes field's value.
12311func (s *GetTemplateSummaryOutput) SetResourceTypes(v []*string) *GetTemplateSummaryOutput {
12312	s.ResourceTypes = v
12313	return s
12314}
12315
12316// SetVersion sets the Version field's value.
12317func (s *GetTemplateSummaryOutput) SetVersion(v string) *GetTemplateSummaryOutput {
12318	s.Version = &v
12319	return s
12320}
12321
12322type ImportStacksToStackSetInput struct {
12323	_ struct{} `type:"structure"`
12324
12325	// By default, SELF is specified. Use SELF for stack sets with self-managed
12326	// permissions.
12327	//
12328	//    * If you are signed in to the management account, specify SELF.
12329	//
12330	//    * For service managed stack sets, specify DELEGATED_ADMIN.
12331	CallAs *string `type:"string" enum:"CallAs"`
12332
12333	// A unique, user defined, identifier for the stack set operation.
12334	OperationId *string `min:"1" type:"string" idempotencyToken:"true"`
12335
12336	// The user-specified preferences for how CloudFormation performs a stack set
12337	// operation.
12338	//
12339	// For more information on maximum concurrent accounts and failure tolerance,
12340	// see Stack set operation options (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/stacksets-concepts.html#stackset-ops-options).
12341	OperationPreferences *StackSetOperationPreferences `type:"structure"`
12342
12343	// The IDs of the stacks you are importing into a stack set. You import up to
12344	// 10 stacks per stack set at a time.
12345	//
12346	// StackIds is a required field
12347	StackIds []*string `type:"list" required:"true"`
12348
12349	// The name of the stack set. The name must be unique in the Region where you
12350	// create your stack set.
12351	//
12352	// StackSetName is a required field
12353	StackSetName *string `type:"string" required:"true"`
12354}
12355
12356// String returns the string representation
12357func (s ImportStacksToStackSetInput) String() string {
12358	return awsutil.Prettify(s)
12359}
12360
12361// GoString returns the string representation
12362func (s ImportStacksToStackSetInput) GoString() string {
12363	return s.String()
12364}
12365
12366// Validate inspects the fields of the type to determine if they are valid.
12367func (s *ImportStacksToStackSetInput) Validate() error {
12368	invalidParams := request.ErrInvalidParams{Context: "ImportStacksToStackSetInput"}
12369	if s.OperationId != nil && len(*s.OperationId) < 1 {
12370		invalidParams.Add(request.NewErrParamMinLen("OperationId", 1))
12371	}
12372	if s.StackIds == nil {
12373		invalidParams.Add(request.NewErrParamRequired("StackIds"))
12374	}
12375	if s.StackSetName == nil {
12376		invalidParams.Add(request.NewErrParamRequired("StackSetName"))
12377	}
12378	if s.OperationPreferences != nil {
12379		if err := s.OperationPreferences.Validate(); err != nil {
12380			invalidParams.AddNested("OperationPreferences", err.(request.ErrInvalidParams))
12381		}
12382	}
12383
12384	if invalidParams.Len() > 0 {
12385		return invalidParams
12386	}
12387	return nil
12388}
12389
12390// SetCallAs sets the CallAs field's value.
12391func (s *ImportStacksToStackSetInput) SetCallAs(v string) *ImportStacksToStackSetInput {
12392	s.CallAs = &v
12393	return s
12394}
12395
12396// SetOperationId sets the OperationId field's value.
12397func (s *ImportStacksToStackSetInput) SetOperationId(v string) *ImportStacksToStackSetInput {
12398	s.OperationId = &v
12399	return s
12400}
12401
12402// SetOperationPreferences sets the OperationPreferences field's value.
12403func (s *ImportStacksToStackSetInput) SetOperationPreferences(v *StackSetOperationPreferences) *ImportStacksToStackSetInput {
12404	s.OperationPreferences = v
12405	return s
12406}
12407
12408// SetStackIds sets the StackIds field's value.
12409func (s *ImportStacksToStackSetInput) SetStackIds(v []*string) *ImportStacksToStackSetInput {
12410	s.StackIds = v
12411	return s
12412}
12413
12414// SetStackSetName sets the StackSetName field's value.
12415func (s *ImportStacksToStackSetInput) SetStackSetName(v string) *ImportStacksToStackSetInput {
12416	s.StackSetName = &v
12417	return s
12418}
12419
12420type ImportStacksToStackSetOutput struct {
12421	_ struct{} `type:"structure"`
12422
12423	// The unique identifier for the stack set operation.
12424	OperationId *string `min:"1" type:"string"`
12425}
12426
12427// String returns the string representation
12428func (s ImportStacksToStackSetOutput) String() string {
12429	return awsutil.Prettify(s)
12430}
12431
12432// GoString returns the string representation
12433func (s ImportStacksToStackSetOutput) GoString() string {
12434	return s.String()
12435}
12436
12437// SetOperationId sets the OperationId field's value.
12438func (s *ImportStacksToStackSetOutput) SetOperationId(v string) *ImportStacksToStackSetOutput {
12439	s.OperationId = &v
12440	return s
12441}
12442
12443// The input for the ListChangeSets action.
12444type ListChangeSetsInput struct {
12445	_ struct{} `type:"structure"`
12446
12447	// A string (provided by the ListChangeSets response output) that identifies
12448	// the next page of change sets that you want to retrieve.
12449	NextToken *string `min:"1" type:"string"`
12450
12451	// The name or the Amazon Resource Name (ARN) of the stack for which you want
12452	// to list change sets.
12453	//
12454	// StackName is a required field
12455	StackName *string `min:"1" type:"string" required:"true"`
12456}
12457
12458// String returns the string representation
12459func (s ListChangeSetsInput) String() string {
12460	return awsutil.Prettify(s)
12461}
12462
12463// GoString returns the string representation
12464func (s ListChangeSetsInput) GoString() string {
12465	return s.String()
12466}
12467
12468// Validate inspects the fields of the type to determine if they are valid.
12469func (s *ListChangeSetsInput) Validate() error {
12470	invalidParams := request.ErrInvalidParams{Context: "ListChangeSetsInput"}
12471	if s.NextToken != nil && len(*s.NextToken) < 1 {
12472		invalidParams.Add(request.NewErrParamMinLen("NextToken", 1))
12473	}
12474	if s.StackName == nil {
12475		invalidParams.Add(request.NewErrParamRequired("StackName"))
12476	}
12477	if s.StackName != nil && len(*s.StackName) < 1 {
12478		invalidParams.Add(request.NewErrParamMinLen("StackName", 1))
12479	}
12480
12481	if invalidParams.Len() > 0 {
12482		return invalidParams
12483	}
12484	return nil
12485}
12486
12487// SetNextToken sets the NextToken field's value.
12488func (s *ListChangeSetsInput) SetNextToken(v string) *ListChangeSetsInput {
12489	s.NextToken = &v
12490	return s
12491}
12492
12493// SetStackName sets the StackName field's value.
12494func (s *ListChangeSetsInput) SetStackName(v string) *ListChangeSetsInput {
12495	s.StackName = &v
12496	return s
12497}
12498
12499// The output for the ListChangeSets action.
12500type ListChangeSetsOutput struct {
12501	_ struct{} `type:"structure"`
12502
12503	// If the output exceeds 1 MB, a string that identifies the next page of change
12504	// sets. If there is no additional page, this value is null.
12505	NextToken *string `min:"1" type:"string"`
12506
12507	// A list of ChangeSetSummary structures that provides the ID and status of
12508	// each change set for the specified stack.
12509	Summaries []*ChangeSetSummary `type:"list"`
12510}
12511
12512// String returns the string representation
12513func (s ListChangeSetsOutput) String() string {
12514	return awsutil.Prettify(s)
12515}
12516
12517// GoString returns the string representation
12518func (s ListChangeSetsOutput) GoString() string {
12519	return s.String()
12520}
12521
12522// SetNextToken sets the NextToken field's value.
12523func (s *ListChangeSetsOutput) SetNextToken(v string) *ListChangeSetsOutput {
12524	s.NextToken = &v
12525	return s
12526}
12527
12528// SetSummaries sets the Summaries field's value.
12529func (s *ListChangeSetsOutput) SetSummaries(v []*ChangeSetSummary) *ListChangeSetsOutput {
12530	s.Summaries = v
12531	return s
12532}
12533
12534type ListExportsInput struct {
12535	_ struct{} `type:"structure"`
12536
12537	// A string (provided by the ListExports response output) that identifies the
12538	// next page of exported output values that you asked to retrieve.
12539	NextToken *string `min:"1" type:"string"`
12540}
12541
12542// String returns the string representation
12543func (s ListExportsInput) String() string {
12544	return awsutil.Prettify(s)
12545}
12546
12547// GoString returns the string representation
12548func (s ListExportsInput) GoString() string {
12549	return s.String()
12550}
12551
12552// Validate inspects the fields of the type to determine if they are valid.
12553func (s *ListExportsInput) Validate() error {
12554	invalidParams := request.ErrInvalidParams{Context: "ListExportsInput"}
12555	if s.NextToken != nil && len(*s.NextToken) < 1 {
12556		invalidParams.Add(request.NewErrParamMinLen("NextToken", 1))
12557	}
12558
12559	if invalidParams.Len() > 0 {
12560		return invalidParams
12561	}
12562	return nil
12563}
12564
12565// SetNextToken sets the NextToken field's value.
12566func (s *ListExportsInput) SetNextToken(v string) *ListExportsInput {
12567	s.NextToken = &v
12568	return s
12569}
12570
12571type ListExportsOutput struct {
12572	_ struct{} `type:"structure"`
12573
12574	// The output for the ListExports action.
12575	Exports []*Export `type:"list"`
12576
12577	// If the output exceeds 100 exported output values, a string that identifies
12578	// the next page of exports. If there is no additional page, this value is null.
12579	NextToken *string `min:"1" type:"string"`
12580}
12581
12582// String returns the string representation
12583func (s ListExportsOutput) String() string {
12584	return awsutil.Prettify(s)
12585}
12586
12587// GoString returns the string representation
12588func (s ListExportsOutput) GoString() string {
12589	return s.String()
12590}
12591
12592// SetExports sets the Exports field's value.
12593func (s *ListExportsOutput) SetExports(v []*Export) *ListExportsOutput {
12594	s.Exports = v
12595	return s
12596}
12597
12598// SetNextToken sets the NextToken field's value.
12599func (s *ListExportsOutput) SetNextToken(v string) *ListExportsOutput {
12600	s.NextToken = &v
12601	return s
12602}
12603
12604type ListImportsInput struct {
12605	_ struct{} `type:"structure"`
12606
12607	// The name of the exported output value. CloudFormation returns the stack names
12608	// that are importing this value.
12609	//
12610	// ExportName is a required field
12611	ExportName *string `type:"string" required:"true"`
12612
12613	// A string (provided by the ListImports response output) that identifies the
12614	// next page of stacks that are importing the specified exported output value.
12615	NextToken *string `min:"1" type:"string"`
12616}
12617
12618// String returns the string representation
12619func (s ListImportsInput) String() string {
12620	return awsutil.Prettify(s)
12621}
12622
12623// GoString returns the string representation
12624func (s ListImportsInput) GoString() string {
12625	return s.String()
12626}
12627
12628// Validate inspects the fields of the type to determine if they are valid.
12629func (s *ListImportsInput) Validate() error {
12630	invalidParams := request.ErrInvalidParams{Context: "ListImportsInput"}
12631	if s.ExportName == nil {
12632		invalidParams.Add(request.NewErrParamRequired("ExportName"))
12633	}
12634	if s.NextToken != nil && len(*s.NextToken) < 1 {
12635		invalidParams.Add(request.NewErrParamMinLen("NextToken", 1))
12636	}
12637
12638	if invalidParams.Len() > 0 {
12639		return invalidParams
12640	}
12641	return nil
12642}
12643
12644// SetExportName sets the ExportName field's value.
12645func (s *ListImportsInput) SetExportName(v string) *ListImportsInput {
12646	s.ExportName = &v
12647	return s
12648}
12649
12650// SetNextToken sets the NextToken field's value.
12651func (s *ListImportsInput) SetNextToken(v string) *ListImportsInput {
12652	s.NextToken = &v
12653	return s
12654}
12655
12656type ListImportsOutput struct {
12657	_ struct{} `type:"structure"`
12658
12659	// A list of stack names that are importing the specified exported output value.
12660	Imports []*string `type:"list"`
12661
12662	// A string that identifies the next page of exports. If there is no additional
12663	// page, this value is null.
12664	NextToken *string `min:"1" type:"string"`
12665}
12666
12667// String returns the string representation
12668func (s ListImportsOutput) String() string {
12669	return awsutil.Prettify(s)
12670}
12671
12672// GoString returns the string representation
12673func (s ListImportsOutput) GoString() string {
12674	return s.String()
12675}
12676
12677// SetImports sets the Imports field's value.
12678func (s *ListImportsOutput) SetImports(v []*string) *ListImportsOutput {
12679	s.Imports = v
12680	return s
12681}
12682
12683// SetNextToken sets the NextToken field's value.
12684func (s *ListImportsOutput) SetNextToken(v string) *ListImportsOutput {
12685	s.NextToken = &v
12686	return s
12687}
12688
12689type ListStackInstancesInput struct {
12690	_ struct{} `type:"structure"`
12691
12692	// [Service-managed permissions] Specifies whether you are acting as an account
12693	// administrator in the organization's management account or as a delegated
12694	// administrator in a member account.
12695	//
12696	// By default, SELF is specified. Use SELF for stack sets with self-managed
12697	// permissions.
12698	//
12699	//    * If you are signed in to the management account, specify SELF.
12700	//
12701	//    * If you are signed in to a delegated administrator account, specify DELEGATED_ADMIN.
12702	//    Your Amazon Web Services account must be registered as a delegated administrator
12703	//    in the management account. For more information, see Register a delegated
12704	//    administrator (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/stacksets-orgs-delegated-admin.html)
12705	//    in the CloudFormation User Guide.
12706	CallAs *string `type:"string" enum:"CallAs"`
12707
12708	// The status that stack instances are filtered by.
12709	Filters []*StackInstanceFilter `type:"list"`
12710
12711	// The maximum number of results to be returned with a single call. If the number
12712	// of available results exceeds this maximum, the response includes a NextToken
12713	// value that you can assign to the NextToken request parameter to get the next
12714	// set of results.
12715	MaxResults *int64 `min:"1" type:"integer"`
12716
12717	// If the previous request didn't return all of the remaining results, the response's
12718	// NextToken parameter value is set to a token. To retrieve the next set of
12719	// results, call ListStackInstances again and assign that token to the request
12720	// object's NextToken parameter. If there are no remaining results, the previous
12721	// response object's NextToken parameter is set to null.
12722	NextToken *string `min:"1" type:"string"`
12723
12724	// The name of the Amazon Web Services account that you want to list stack instances
12725	// for.
12726	StackInstanceAccount *string `type:"string"`
12727
12728	// The name of the Region where you want to list stack instances.
12729	StackInstanceRegion *string `type:"string"`
12730
12731	// The name or unique ID of the stack set that you want to list stack instances
12732	// for.
12733	//
12734	// StackSetName is a required field
12735	StackSetName *string `type:"string" required:"true"`
12736}
12737
12738// String returns the string representation
12739func (s ListStackInstancesInput) String() string {
12740	return awsutil.Prettify(s)
12741}
12742
12743// GoString returns the string representation
12744func (s ListStackInstancesInput) GoString() string {
12745	return s.String()
12746}
12747
12748// Validate inspects the fields of the type to determine if they are valid.
12749func (s *ListStackInstancesInput) Validate() error {
12750	invalidParams := request.ErrInvalidParams{Context: "ListStackInstancesInput"}
12751	if s.MaxResults != nil && *s.MaxResults < 1 {
12752		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
12753	}
12754	if s.NextToken != nil && len(*s.NextToken) < 1 {
12755		invalidParams.Add(request.NewErrParamMinLen("NextToken", 1))
12756	}
12757	if s.StackSetName == nil {
12758		invalidParams.Add(request.NewErrParamRequired("StackSetName"))
12759	}
12760	if s.Filters != nil {
12761		for i, v := range s.Filters {
12762			if v == nil {
12763				continue
12764			}
12765			if err := v.Validate(); err != nil {
12766				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Filters", i), err.(request.ErrInvalidParams))
12767			}
12768		}
12769	}
12770
12771	if invalidParams.Len() > 0 {
12772		return invalidParams
12773	}
12774	return nil
12775}
12776
12777// SetCallAs sets the CallAs field's value.
12778func (s *ListStackInstancesInput) SetCallAs(v string) *ListStackInstancesInput {
12779	s.CallAs = &v
12780	return s
12781}
12782
12783// SetFilters sets the Filters field's value.
12784func (s *ListStackInstancesInput) SetFilters(v []*StackInstanceFilter) *ListStackInstancesInput {
12785	s.Filters = v
12786	return s
12787}
12788
12789// SetMaxResults sets the MaxResults field's value.
12790func (s *ListStackInstancesInput) SetMaxResults(v int64) *ListStackInstancesInput {
12791	s.MaxResults = &v
12792	return s
12793}
12794
12795// SetNextToken sets the NextToken field's value.
12796func (s *ListStackInstancesInput) SetNextToken(v string) *ListStackInstancesInput {
12797	s.NextToken = &v
12798	return s
12799}
12800
12801// SetStackInstanceAccount sets the StackInstanceAccount field's value.
12802func (s *ListStackInstancesInput) SetStackInstanceAccount(v string) *ListStackInstancesInput {
12803	s.StackInstanceAccount = &v
12804	return s
12805}
12806
12807// SetStackInstanceRegion sets the StackInstanceRegion field's value.
12808func (s *ListStackInstancesInput) SetStackInstanceRegion(v string) *ListStackInstancesInput {
12809	s.StackInstanceRegion = &v
12810	return s
12811}
12812
12813// SetStackSetName sets the StackSetName field's value.
12814func (s *ListStackInstancesInput) SetStackSetName(v string) *ListStackInstancesInput {
12815	s.StackSetName = &v
12816	return s
12817}
12818
12819type ListStackInstancesOutput struct {
12820	_ struct{} `type:"structure"`
12821
12822	// If the request doesn't return all of the remaining results, NextToken is
12823	// set to a token. To retrieve the next set of results, call ListStackInstances
12824	// again and assign that token to the request object's NextToken parameter.
12825	// If the request returns all results, NextToken is set to null.
12826	NextToken *string `min:"1" type:"string"`
12827
12828	// A list of StackInstanceSummary structures that contain information about
12829	// the specified stack instances.
12830	Summaries []*StackInstanceSummary `type:"list"`
12831}
12832
12833// String returns the string representation
12834func (s ListStackInstancesOutput) String() string {
12835	return awsutil.Prettify(s)
12836}
12837
12838// GoString returns the string representation
12839func (s ListStackInstancesOutput) GoString() string {
12840	return s.String()
12841}
12842
12843// SetNextToken sets the NextToken field's value.
12844func (s *ListStackInstancesOutput) SetNextToken(v string) *ListStackInstancesOutput {
12845	s.NextToken = &v
12846	return s
12847}
12848
12849// SetSummaries sets the Summaries field's value.
12850func (s *ListStackInstancesOutput) SetSummaries(v []*StackInstanceSummary) *ListStackInstancesOutput {
12851	s.Summaries = v
12852	return s
12853}
12854
12855// The input for the ListStackResource action.
12856type ListStackResourcesInput struct {
12857	_ struct{} `type:"structure"`
12858
12859	// A string that identifies the next page of stack resources that you want to
12860	// retrieve.
12861	NextToken *string `min:"1" type:"string"`
12862
12863	// The name or the unique stack ID that is associated with the stack, which
12864	// are not always interchangeable:
12865	//
12866	//    * Running stacks: You can specify either the stack's name or its unique
12867	//    stack ID.
12868	//
12869	//    * Deleted stacks: You must specify the unique stack ID.
12870	//
12871	// Default: There is no default value.
12872	//
12873	// StackName is a required field
12874	StackName *string `type:"string" required:"true"`
12875}
12876
12877// String returns the string representation
12878func (s ListStackResourcesInput) String() string {
12879	return awsutil.Prettify(s)
12880}
12881
12882// GoString returns the string representation
12883func (s ListStackResourcesInput) GoString() string {
12884	return s.String()
12885}
12886
12887// Validate inspects the fields of the type to determine if they are valid.
12888func (s *ListStackResourcesInput) Validate() error {
12889	invalidParams := request.ErrInvalidParams{Context: "ListStackResourcesInput"}
12890	if s.NextToken != nil && len(*s.NextToken) < 1 {
12891		invalidParams.Add(request.NewErrParamMinLen("NextToken", 1))
12892	}
12893	if s.StackName == nil {
12894		invalidParams.Add(request.NewErrParamRequired("StackName"))
12895	}
12896
12897	if invalidParams.Len() > 0 {
12898		return invalidParams
12899	}
12900	return nil
12901}
12902
12903// SetNextToken sets the NextToken field's value.
12904func (s *ListStackResourcesInput) SetNextToken(v string) *ListStackResourcesInput {
12905	s.NextToken = &v
12906	return s
12907}
12908
12909// SetStackName sets the StackName field's value.
12910func (s *ListStackResourcesInput) SetStackName(v string) *ListStackResourcesInput {
12911	s.StackName = &v
12912	return s
12913}
12914
12915// The output for a ListStackResources action.
12916type ListStackResourcesOutput struct {
12917	_ struct{} `type:"structure"`
12918
12919	// If the output exceeds 1 MB, a string that identifies the next page of stack
12920	// resources. If no additional page exists, this value is null.
12921	NextToken *string `min:"1" type:"string"`
12922
12923	// A list of StackResourceSummary structures.
12924	StackResourceSummaries []*StackResourceSummary `type:"list"`
12925}
12926
12927// String returns the string representation
12928func (s ListStackResourcesOutput) String() string {
12929	return awsutil.Prettify(s)
12930}
12931
12932// GoString returns the string representation
12933func (s ListStackResourcesOutput) GoString() string {
12934	return s.String()
12935}
12936
12937// SetNextToken sets the NextToken field's value.
12938func (s *ListStackResourcesOutput) SetNextToken(v string) *ListStackResourcesOutput {
12939	s.NextToken = &v
12940	return s
12941}
12942
12943// SetStackResourceSummaries sets the StackResourceSummaries field's value.
12944func (s *ListStackResourcesOutput) SetStackResourceSummaries(v []*StackResourceSummary) *ListStackResourcesOutput {
12945	s.StackResourceSummaries = v
12946	return s
12947}
12948
12949type ListStackSetOperationResultsInput struct {
12950	_ struct{} `type:"structure"`
12951
12952	// [Service-managed permissions] Specifies whether you are acting as an account
12953	// administrator in the organization's management account or as a delegated
12954	// administrator in a member account.
12955	//
12956	// By default, SELF is specified. Use SELF for stack sets with self-managed
12957	// permissions.
12958	//
12959	//    * If you are signed in to the management account, specify SELF.
12960	//
12961	//    * If you are signed in to a delegated administrator account, specify DELEGATED_ADMIN.
12962	//    Your Amazon Web Services account must be registered as a delegated administrator
12963	//    in the management account. For more information, see Register a delegated
12964	//    administrator (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/stacksets-orgs-delegated-admin.html)
12965	//    in the CloudFormation User Guide.
12966	CallAs *string `type:"string" enum:"CallAs"`
12967
12968	// The maximum number of results to be returned with a single call. If the number
12969	// of available results exceeds this maximum, the response includes a NextToken
12970	// value that you can assign to the NextToken request parameter to get the next
12971	// set of results.
12972	MaxResults *int64 `min:"1" type:"integer"`
12973
12974	// If the previous request didn't return all of the remaining results, the response
12975	// object's NextToken parameter value is set to a token. To retrieve the next
12976	// set of results, call ListStackSetOperationResults again and assign that token
12977	// to the request object's NextToken parameter. If there are no remaining results,
12978	// the previous response object's NextToken parameter is set to null.
12979	NextToken *string `min:"1" type:"string"`
12980
12981	// The ID of the stack set operation.
12982	//
12983	// OperationId is a required field
12984	OperationId *string `min:"1" type:"string" required:"true"`
12985
12986	// The name or unique ID of the stack set that you want to get operation results
12987	// for.
12988	//
12989	// StackSetName is a required field
12990	StackSetName *string `type:"string" required:"true"`
12991}
12992
12993// String returns the string representation
12994func (s ListStackSetOperationResultsInput) String() string {
12995	return awsutil.Prettify(s)
12996}
12997
12998// GoString returns the string representation
12999func (s ListStackSetOperationResultsInput) GoString() string {
13000	return s.String()
13001}
13002
13003// Validate inspects the fields of the type to determine if they are valid.
13004func (s *ListStackSetOperationResultsInput) Validate() error {
13005	invalidParams := request.ErrInvalidParams{Context: "ListStackSetOperationResultsInput"}
13006	if s.MaxResults != nil && *s.MaxResults < 1 {
13007		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
13008	}
13009	if s.NextToken != nil && len(*s.NextToken) < 1 {
13010		invalidParams.Add(request.NewErrParamMinLen("NextToken", 1))
13011	}
13012	if s.OperationId == nil {
13013		invalidParams.Add(request.NewErrParamRequired("OperationId"))
13014	}
13015	if s.OperationId != nil && len(*s.OperationId) < 1 {
13016		invalidParams.Add(request.NewErrParamMinLen("OperationId", 1))
13017	}
13018	if s.StackSetName == nil {
13019		invalidParams.Add(request.NewErrParamRequired("StackSetName"))
13020	}
13021
13022	if invalidParams.Len() > 0 {
13023		return invalidParams
13024	}
13025	return nil
13026}
13027
13028// SetCallAs sets the CallAs field's value.
13029func (s *ListStackSetOperationResultsInput) SetCallAs(v string) *ListStackSetOperationResultsInput {
13030	s.CallAs = &v
13031	return s
13032}
13033
13034// SetMaxResults sets the MaxResults field's value.
13035func (s *ListStackSetOperationResultsInput) SetMaxResults(v int64) *ListStackSetOperationResultsInput {
13036	s.MaxResults = &v
13037	return s
13038}
13039
13040// SetNextToken sets the NextToken field's value.
13041func (s *ListStackSetOperationResultsInput) SetNextToken(v string) *ListStackSetOperationResultsInput {
13042	s.NextToken = &v
13043	return s
13044}
13045
13046// SetOperationId sets the OperationId field's value.
13047func (s *ListStackSetOperationResultsInput) SetOperationId(v string) *ListStackSetOperationResultsInput {
13048	s.OperationId = &v
13049	return s
13050}
13051
13052// SetStackSetName sets the StackSetName field's value.
13053func (s *ListStackSetOperationResultsInput) SetStackSetName(v string) *ListStackSetOperationResultsInput {
13054	s.StackSetName = &v
13055	return s
13056}
13057
13058type ListStackSetOperationResultsOutput struct {
13059	_ struct{} `type:"structure"`
13060
13061	// If the request doesn't return all results, NextToken is set to a token. To
13062	// retrieve the next set of results, call ListOperationResults again and assign
13063	// that token to the request object's NextToken parameter. If there are no remaining
13064	// results, NextToken is set to null.
13065	NextToken *string `min:"1" type:"string"`
13066
13067	// A list of StackSetOperationResultSummary structures that contain information
13068	// about the specified operation results, for accounts and Regions that are
13069	// included in the operation.
13070	Summaries []*StackSetOperationResultSummary `type:"list"`
13071}
13072
13073// String returns the string representation
13074func (s ListStackSetOperationResultsOutput) String() string {
13075	return awsutil.Prettify(s)
13076}
13077
13078// GoString returns the string representation
13079func (s ListStackSetOperationResultsOutput) GoString() string {
13080	return s.String()
13081}
13082
13083// SetNextToken sets the NextToken field's value.
13084func (s *ListStackSetOperationResultsOutput) SetNextToken(v string) *ListStackSetOperationResultsOutput {
13085	s.NextToken = &v
13086	return s
13087}
13088
13089// SetSummaries sets the Summaries field's value.
13090func (s *ListStackSetOperationResultsOutput) SetSummaries(v []*StackSetOperationResultSummary) *ListStackSetOperationResultsOutput {
13091	s.Summaries = v
13092	return s
13093}
13094
13095type ListStackSetOperationsInput struct {
13096	_ struct{} `type:"structure"`
13097
13098	// [Service-managed permissions] Specifies whether you are acting as an account
13099	// administrator in the organization's management account or as a delegated
13100	// administrator in a member account.
13101	//
13102	// By default, SELF is specified. Use SELF for stack sets with self-managed
13103	// permissions.
13104	//
13105	//    * If you are signed in to the management account, specify SELF.
13106	//
13107	//    * If you are signed in to a delegated administrator account, specify DELEGATED_ADMIN.
13108	//    Your Amazon Web Services account must be registered as a delegated administrator
13109	//    in the management account. For more information, see Register a delegated
13110	//    administrator (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/stacksets-orgs-delegated-admin.html)
13111	//    in the CloudFormation User Guide.
13112	CallAs *string `type:"string" enum:"CallAs"`
13113
13114	// The maximum number of results to be returned with a single call. If the number
13115	// of available results exceeds this maximum, the response includes a NextToken
13116	// value that you can assign to the NextToken request parameter to get the next
13117	// set of results.
13118	MaxResults *int64 `min:"1" type:"integer"`
13119
13120	// If the previous paginated request didn't return all of the remaining results,
13121	// the response object's NextToken parameter value is set to a token. To retrieve
13122	// the next set of results, call ListStackSetOperations again and assign that
13123	// token to the request object's NextToken parameter. If there are no remaining
13124	// results, the previous response object's NextToken parameter is set to null.
13125	NextToken *string `min:"1" type:"string"`
13126
13127	// The name or unique ID of the stack set that you want to get operation summaries
13128	// for.
13129	//
13130	// StackSetName is a required field
13131	StackSetName *string `type:"string" required:"true"`
13132}
13133
13134// String returns the string representation
13135func (s ListStackSetOperationsInput) String() string {
13136	return awsutil.Prettify(s)
13137}
13138
13139// GoString returns the string representation
13140func (s ListStackSetOperationsInput) GoString() string {
13141	return s.String()
13142}
13143
13144// Validate inspects the fields of the type to determine if they are valid.
13145func (s *ListStackSetOperationsInput) Validate() error {
13146	invalidParams := request.ErrInvalidParams{Context: "ListStackSetOperationsInput"}
13147	if s.MaxResults != nil && *s.MaxResults < 1 {
13148		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
13149	}
13150	if s.NextToken != nil && len(*s.NextToken) < 1 {
13151		invalidParams.Add(request.NewErrParamMinLen("NextToken", 1))
13152	}
13153	if s.StackSetName == nil {
13154		invalidParams.Add(request.NewErrParamRequired("StackSetName"))
13155	}
13156
13157	if invalidParams.Len() > 0 {
13158		return invalidParams
13159	}
13160	return nil
13161}
13162
13163// SetCallAs sets the CallAs field's value.
13164func (s *ListStackSetOperationsInput) SetCallAs(v string) *ListStackSetOperationsInput {
13165	s.CallAs = &v
13166	return s
13167}
13168
13169// SetMaxResults sets the MaxResults field's value.
13170func (s *ListStackSetOperationsInput) SetMaxResults(v int64) *ListStackSetOperationsInput {
13171	s.MaxResults = &v
13172	return s
13173}
13174
13175// SetNextToken sets the NextToken field's value.
13176func (s *ListStackSetOperationsInput) SetNextToken(v string) *ListStackSetOperationsInput {
13177	s.NextToken = &v
13178	return s
13179}
13180
13181// SetStackSetName sets the StackSetName field's value.
13182func (s *ListStackSetOperationsInput) SetStackSetName(v string) *ListStackSetOperationsInput {
13183	s.StackSetName = &v
13184	return s
13185}
13186
13187type ListStackSetOperationsOutput struct {
13188	_ struct{} `type:"structure"`
13189
13190	// If the request doesn't return all results, NextToken is set to a token. To
13191	// retrieve the next set of results, call ListOperationResults again and assign
13192	// that token to the request object's NextToken parameter. If there are no remaining
13193	// results, NextToken is set to null.
13194	NextToken *string `min:"1" type:"string"`
13195
13196	// A list of StackSetOperationSummary structures that contain summary information
13197	// about operations for the specified stack set.
13198	Summaries []*StackSetOperationSummary `type:"list"`
13199}
13200
13201// String returns the string representation
13202func (s ListStackSetOperationsOutput) String() string {
13203	return awsutil.Prettify(s)
13204}
13205
13206// GoString returns the string representation
13207func (s ListStackSetOperationsOutput) GoString() string {
13208	return s.String()
13209}
13210
13211// SetNextToken sets the NextToken field's value.
13212func (s *ListStackSetOperationsOutput) SetNextToken(v string) *ListStackSetOperationsOutput {
13213	s.NextToken = &v
13214	return s
13215}
13216
13217// SetSummaries sets the Summaries field's value.
13218func (s *ListStackSetOperationsOutput) SetSummaries(v []*StackSetOperationSummary) *ListStackSetOperationsOutput {
13219	s.Summaries = v
13220	return s
13221}
13222
13223type ListStackSetsInput struct {
13224	_ struct{} `type:"structure"`
13225
13226	// [Service-managed permissions] Specifies whether you are acting as an account
13227	// administrator in the management account or as a delegated administrator in
13228	// a member account.
13229	//
13230	// By default, SELF is specified. Use SELF for stack sets with self-managed
13231	// permissions.
13232	//
13233	//    * If you are signed in to the management account, specify SELF.
13234	//
13235	//    * If you are signed in to a delegated administrator account, specify DELEGATED_ADMIN.
13236	//    Your Amazon Web Services account must be registered as a delegated administrator
13237	//    in the management account. For more information, see Register a delegated
13238	//    administrator (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/stacksets-orgs-delegated-admin.html)
13239	//    in the CloudFormation User Guide.
13240	CallAs *string `type:"string" enum:"CallAs"`
13241
13242	// The maximum number of results to be returned with a single call. If the number
13243	// of available results exceeds this maximum, the response includes a NextToken
13244	// value that you can assign to the NextToken request parameter to get the next
13245	// set of results.
13246	MaxResults *int64 `min:"1" type:"integer"`
13247
13248	// If the previous paginated request didn't return all of the remaining results,
13249	// the response object's NextToken parameter value is set to a token. To retrieve
13250	// the next set of results, call ListStackSets again and assign that token to
13251	// the request object's NextToken parameter. If there are no remaining results,
13252	// the previous response object's NextToken parameter is set to null.
13253	NextToken *string `min:"1" type:"string"`
13254
13255	// The status of the stack sets that you want to get summary information about.
13256	Status *string `type:"string" enum:"StackSetStatus"`
13257}
13258
13259// String returns the string representation
13260func (s ListStackSetsInput) String() string {
13261	return awsutil.Prettify(s)
13262}
13263
13264// GoString returns the string representation
13265func (s ListStackSetsInput) GoString() string {
13266	return s.String()
13267}
13268
13269// Validate inspects the fields of the type to determine if they are valid.
13270func (s *ListStackSetsInput) Validate() error {
13271	invalidParams := request.ErrInvalidParams{Context: "ListStackSetsInput"}
13272	if s.MaxResults != nil && *s.MaxResults < 1 {
13273		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
13274	}
13275	if s.NextToken != nil && len(*s.NextToken) < 1 {
13276		invalidParams.Add(request.NewErrParamMinLen("NextToken", 1))
13277	}
13278
13279	if invalidParams.Len() > 0 {
13280		return invalidParams
13281	}
13282	return nil
13283}
13284
13285// SetCallAs sets the CallAs field's value.
13286func (s *ListStackSetsInput) SetCallAs(v string) *ListStackSetsInput {
13287	s.CallAs = &v
13288	return s
13289}
13290
13291// SetMaxResults sets the MaxResults field's value.
13292func (s *ListStackSetsInput) SetMaxResults(v int64) *ListStackSetsInput {
13293	s.MaxResults = &v
13294	return s
13295}
13296
13297// SetNextToken sets the NextToken field's value.
13298func (s *ListStackSetsInput) SetNextToken(v string) *ListStackSetsInput {
13299	s.NextToken = &v
13300	return s
13301}
13302
13303// SetStatus sets the Status field's value.
13304func (s *ListStackSetsInput) SetStatus(v string) *ListStackSetsInput {
13305	s.Status = &v
13306	return s
13307}
13308
13309type ListStackSetsOutput struct {
13310	_ struct{} `type:"structure"`
13311
13312	// If the request doesn't return all of the remaining results, NextToken is
13313	// set to a token. To retrieve the next set of results, call ListStackInstances
13314	// again and assign that token to the request object's NextToken parameter.
13315	// If the request returns all results, NextToken is set to null.
13316	NextToken *string `min:"1" type:"string"`
13317
13318	// A list of StackSetSummary structures that contain information about the user's
13319	// stack sets.
13320	Summaries []*StackSetSummary `type:"list"`
13321}
13322
13323// String returns the string representation
13324func (s ListStackSetsOutput) String() string {
13325	return awsutil.Prettify(s)
13326}
13327
13328// GoString returns the string representation
13329func (s ListStackSetsOutput) GoString() string {
13330	return s.String()
13331}
13332
13333// SetNextToken sets the NextToken field's value.
13334func (s *ListStackSetsOutput) SetNextToken(v string) *ListStackSetsOutput {
13335	s.NextToken = &v
13336	return s
13337}
13338
13339// SetSummaries sets the Summaries field's value.
13340func (s *ListStackSetsOutput) SetSummaries(v []*StackSetSummary) *ListStackSetsOutput {
13341	s.Summaries = v
13342	return s
13343}
13344
13345// The input for ListStacks action.
13346type ListStacksInput struct {
13347	_ struct{} `type:"structure"`
13348
13349	// A string that identifies the next page of stacks that you want to retrieve.
13350	NextToken *string `min:"1" type:"string"`
13351
13352	// Stack status to use as a filter. Specify one or more stack status codes to
13353	// list only stacks with the specified status codes. For a complete list of
13354	// stack status codes, see the StackStatus parameter of the Stack data type.
13355	StackStatusFilter []*string `type:"list"`
13356}
13357
13358// String returns the string representation
13359func (s ListStacksInput) String() string {
13360	return awsutil.Prettify(s)
13361}
13362
13363// GoString returns the string representation
13364func (s ListStacksInput) GoString() string {
13365	return s.String()
13366}
13367
13368// Validate inspects the fields of the type to determine if they are valid.
13369func (s *ListStacksInput) Validate() error {
13370	invalidParams := request.ErrInvalidParams{Context: "ListStacksInput"}
13371	if s.NextToken != nil && len(*s.NextToken) < 1 {
13372		invalidParams.Add(request.NewErrParamMinLen("NextToken", 1))
13373	}
13374
13375	if invalidParams.Len() > 0 {
13376		return invalidParams
13377	}
13378	return nil
13379}
13380
13381// SetNextToken sets the NextToken field's value.
13382func (s *ListStacksInput) SetNextToken(v string) *ListStacksInput {
13383	s.NextToken = &v
13384	return s
13385}
13386
13387// SetStackStatusFilter sets the StackStatusFilter field's value.
13388func (s *ListStacksInput) SetStackStatusFilter(v []*string) *ListStacksInput {
13389	s.StackStatusFilter = v
13390	return s
13391}
13392
13393// The output for ListStacks action.
13394type ListStacksOutput struct {
13395	_ struct{} `type:"structure"`
13396
13397	// If the output exceeds 1 MB in size, a string that identifies the next page
13398	// of stacks. If no additional page exists, this value is null.
13399	NextToken *string `min:"1" type:"string"`
13400
13401	// A list of StackSummary structures containing information about the specified
13402	// stacks.
13403	StackSummaries []*StackSummary `type:"list"`
13404}
13405
13406// String returns the string representation
13407func (s ListStacksOutput) String() string {
13408	return awsutil.Prettify(s)
13409}
13410
13411// GoString returns the string representation
13412func (s ListStacksOutput) GoString() string {
13413	return s.String()
13414}
13415
13416// SetNextToken sets the NextToken field's value.
13417func (s *ListStacksOutput) SetNextToken(v string) *ListStacksOutput {
13418	s.NextToken = &v
13419	return s
13420}
13421
13422// SetStackSummaries sets the StackSummaries field's value.
13423func (s *ListStacksOutput) SetStackSummaries(v []*StackSummary) *ListStacksOutput {
13424	s.StackSummaries = v
13425	return s
13426}
13427
13428type ListTypeRegistrationsInput struct {
13429	_ struct{} `type:"structure"`
13430
13431	// The maximum number of results to be returned with a single call. If the number
13432	// of available results exceeds this maximum, the response includes a NextToken
13433	// value that you can assign to the NextToken request parameter to get the next
13434	// set of results.
13435	MaxResults *int64 `min:"1" type:"integer"`
13436
13437	// If the previous paginated request didn't return all of the remaining results,
13438	// the response object's NextToken parameter value is set to a token. To retrieve
13439	// the next set of results, call this action again and assign that token to
13440	// the request object's NextToken parameter. If there are no remaining results,
13441	// the previous response object's NextToken parameter is set to null.
13442	NextToken *string `min:"1" type:"string"`
13443
13444	// The current status of the extension registration request.
13445	//
13446	// The default is IN_PROGRESS.
13447	RegistrationStatusFilter *string `type:"string" enum:"RegistrationStatus"`
13448
13449	// The kind of extension.
13450	//
13451	// Conditional: You must specify either TypeName and Type, or Arn.
13452	Type *string `type:"string" enum:"RegistryType"`
13453
13454	// The Amazon Resource Name (ARN) of the extension.
13455	//
13456	// Conditional: You must specify either TypeName and Type, or Arn.
13457	TypeArn *string `type:"string"`
13458
13459	// The name of the extension.
13460	//
13461	// Conditional: You must specify either TypeName and Type, or Arn.
13462	TypeName *string `min:"10" type:"string"`
13463}
13464
13465// String returns the string representation
13466func (s ListTypeRegistrationsInput) String() string {
13467	return awsutil.Prettify(s)
13468}
13469
13470// GoString returns the string representation
13471func (s ListTypeRegistrationsInput) GoString() string {
13472	return s.String()
13473}
13474
13475// Validate inspects the fields of the type to determine if they are valid.
13476func (s *ListTypeRegistrationsInput) Validate() error {
13477	invalidParams := request.ErrInvalidParams{Context: "ListTypeRegistrationsInput"}
13478	if s.MaxResults != nil && *s.MaxResults < 1 {
13479		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
13480	}
13481	if s.NextToken != nil && len(*s.NextToken) < 1 {
13482		invalidParams.Add(request.NewErrParamMinLen("NextToken", 1))
13483	}
13484	if s.TypeName != nil && len(*s.TypeName) < 10 {
13485		invalidParams.Add(request.NewErrParamMinLen("TypeName", 10))
13486	}
13487
13488	if invalidParams.Len() > 0 {
13489		return invalidParams
13490	}
13491	return nil
13492}
13493
13494// SetMaxResults sets the MaxResults field's value.
13495func (s *ListTypeRegistrationsInput) SetMaxResults(v int64) *ListTypeRegistrationsInput {
13496	s.MaxResults = &v
13497	return s
13498}
13499
13500// SetNextToken sets the NextToken field's value.
13501func (s *ListTypeRegistrationsInput) SetNextToken(v string) *ListTypeRegistrationsInput {
13502	s.NextToken = &v
13503	return s
13504}
13505
13506// SetRegistrationStatusFilter sets the RegistrationStatusFilter field's value.
13507func (s *ListTypeRegistrationsInput) SetRegistrationStatusFilter(v string) *ListTypeRegistrationsInput {
13508	s.RegistrationStatusFilter = &v
13509	return s
13510}
13511
13512// SetType sets the Type field's value.
13513func (s *ListTypeRegistrationsInput) SetType(v string) *ListTypeRegistrationsInput {
13514	s.Type = &v
13515	return s
13516}
13517
13518// SetTypeArn sets the TypeArn field's value.
13519func (s *ListTypeRegistrationsInput) SetTypeArn(v string) *ListTypeRegistrationsInput {
13520	s.TypeArn = &v
13521	return s
13522}
13523
13524// SetTypeName sets the TypeName field's value.
13525func (s *ListTypeRegistrationsInput) SetTypeName(v string) *ListTypeRegistrationsInput {
13526	s.TypeName = &v
13527	return s
13528}
13529
13530type ListTypeRegistrationsOutput struct {
13531	_ struct{} `type:"structure"`
13532
13533	// If the request doesn't return all of the remaining results, NextToken is
13534	// set to a token. To retrieve the next set of results, call this action again
13535	// and assign that token to the request object's NextToken parameter. If the
13536	// request returns all results, NextToken is set to null.
13537	NextToken *string `min:"1" type:"string"`
13538
13539	// A list of extension registration tokens.
13540	//
13541	// Use DescribeTypeRegistration to return detailed information about a type
13542	// registration request.
13543	RegistrationTokenList []*string `type:"list"`
13544}
13545
13546// String returns the string representation
13547func (s ListTypeRegistrationsOutput) String() string {
13548	return awsutil.Prettify(s)
13549}
13550
13551// GoString returns the string representation
13552func (s ListTypeRegistrationsOutput) GoString() string {
13553	return s.String()
13554}
13555
13556// SetNextToken sets the NextToken field's value.
13557func (s *ListTypeRegistrationsOutput) SetNextToken(v string) *ListTypeRegistrationsOutput {
13558	s.NextToken = &v
13559	return s
13560}
13561
13562// SetRegistrationTokenList sets the RegistrationTokenList field's value.
13563func (s *ListTypeRegistrationsOutput) SetRegistrationTokenList(v []*string) *ListTypeRegistrationsOutput {
13564	s.RegistrationTokenList = v
13565	return s
13566}
13567
13568type ListTypeVersionsInput struct {
13569	_ struct{} `type:"structure"`
13570
13571	// The Amazon Resource Name (ARN) of the extension for which you want version
13572	// summary information.
13573	//
13574	// Conditional: You must specify either TypeName and Type, or Arn.
13575	Arn *string `type:"string"`
13576
13577	// The deprecation status of the extension versions that you want to get summary
13578	// information about.
13579	//
13580	// Valid values include:
13581	//
13582	//    * LIVE: The extension version is registered and can be used in CloudFormation
13583	//    operations, dependent on its provisioning behavior and visibility scope.
13584	//
13585	//    * DEPRECATED: The extension version has been deregistered and can no longer
13586	//    be used in CloudFormation operations.
13587	//
13588	// The default is LIVE.
13589	DeprecatedStatus *string `type:"string" enum:"DeprecatedStatus"`
13590
13591	// The maximum number of results to be returned with a single call. If the number
13592	// of available results exceeds this maximum, the response includes a NextToken
13593	// value that you can assign to the NextToken request parameter to get the next
13594	// set of results.
13595	MaxResults *int64 `min:"1" type:"integer"`
13596
13597	// If the previous paginated request didn't return all of the remaining results,
13598	// the response object's NextToken parameter value is set to a token. To retrieve
13599	// the next set of results, call this action again and assign that token to
13600	// the request object's NextToken parameter. If there are no remaining results,
13601	// the previous response object's NextToken parameter is set to null.
13602	NextToken *string `min:"1" type:"string"`
13603
13604	// The publisher ID of the extension publisher.
13605	//
13606	// Extensions published by Amazon are not assigned a publisher ID.
13607	PublisherId *string `min:"1" type:"string"`
13608
13609	// The kind of the extension.
13610	//
13611	// Conditional: You must specify either TypeName and Type, or Arn.
13612	Type *string `type:"string" enum:"RegistryType"`
13613
13614	// The name of the extension for which you want version summary information.
13615	//
13616	// Conditional: You must specify either TypeName and Type, or Arn.
13617	TypeName *string `min:"10" type:"string"`
13618}
13619
13620// String returns the string representation
13621func (s ListTypeVersionsInput) String() string {
13622	return awsutil.Prettify(s)
13623}
13624
13625// GoString returns the string representation
13626func (s ListTypeVersionsInput) GoString() string {
13627	return s.String()
13628}
13629
13630// Validate inspects the fields of the type to determine if they are valid.
13631func (s *ListTypeVersionsInput) Validate() error {
13632	invalidParams := request.ErrInvalidParams{Context: "ListTypeVersionsInput"}
13633	if s.MaxResults != nil && *s.MaxResults < 1 {
13634		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
13635	}
13636	if s.NextToken != nil && len(*s.NextToken) < 1 {
13637		invalidParams.Add(request.NewErrParamMinLen("NextToken", 1))
13638	}
13639	if s.PublisherId != nil && len(*s.PublisherId) < 1 {
13640		invalidParams.Add(request.NewErrParamMinLen("PublisherId", 1))
13641	}
13642	if s.TypeName != nil && len(*s.TypeName) < 10 {
13643		invalidParams.Add(request.NewErrParamMinLen("TypeName", 10))
13644	}
13645
13646	if invalidParams.Len() > 0 {
13647		return invalidParams
13648	}
13649	return nil
13650}
13651
13652// SetArn sets the Arn field's value.
13653func (s *ListTypeVersionsInput) SetArn(v string) *ListTypeVersionsInput {
13654	s.Arn = &v
13655	return s
13656}
13657
13658// SetDeprecatedStatus sets the DeprecatedStatus field's value.
13659func (s *ListTypeVersionsInput) SetDeprecatedStatus(v string) *ListTypeVersionsInput {
13660	s.DeprecatedStatus = &v
13661	return s
13662}
13663
13664// SetMaxResults sets the MaxResults field's value.
13665func (s *ListTypeVersionsInput) SetMaxResults(v int64) *ListTypeVersionsInput {
13666	s.MaxResults = &v
13667	return s
13668}
13669
13670// SetNextToken sets the NextToken field's value.
13671func (s *ListTypeVersionsInput) SetNextToken(v string) *ListTypeVersionsInput {
13672	s.NextToken = &v
13673	return s
13674}
13675
13676// SetPublisherId sets the PublisherId field's value.
13677func (s *ListTypeVersionsInput) SetPublisherId(v string) *ListTypeVersionsInput {
13678	s.PublisherId = &v
13679	return s
13680}
13681
13682// SetType sets the Type field's value.
13683func (s *ListTypeVersionsInput) SetType(v string) *ListTypeVersionsInput {
13684	s.Type = &v
13685	return s
13686}
13687
13688// SetTypeName sets the TypeName field's value.
13689func (s *ListTypeVersionsInput) SetTypeName(v string) *ListTypeVersionsInput {
13690	s.TypeName = &v
13691	return s
13692}
13693
13694type ListTypeVersionsOutput struct {
13695	_ struct{} `type:"structure"`
13696
13697	// If the request doesn't return all of the remaining results, NextToken is
13698	// set to a token. To retrieve the next set of results, call this action again
13699	// and assign that token to the request object's NextToken parameter. If the
13700	// request returns all results, NextToken is set to null.
13701	NextToken *string `min:"1" type:"string"`
13702
13703	// A list of TypeVersionSummary structures that contain information about the
13704	// specified extension's versions.
13705	TypeVersionSummaries []*TypeVersionSummary `type:"list"`
13706}
13707
13708// String returns the string representation
13709func (s ListTypeVersionsOutput) String() string {
13710	return awsutil.Prettify(s)
13711}
13712
13713// GoString returns the string representation
13714func (s ListTypeVersionsOutput) GoString() string {
13715	return s.String()
13716}
13717
13718// SetNextToken sets the NextToken field's value.
13719func (s *ListTypeVersionsOutput) SetNextToken(v string) *ListTypeVersionsOutput {
13720	s.NextToken = &v
13721	return s
13722}
13723
13724// SetTypeVersionSummaries sets the TypeVersionSummaries field's value.
13725func (s *ListTypeVersionsOutput) SetTypeVersionSummaries(v []*TypeVersionSummary) *ListTypeVersionsOutput {
13726	s.TypeVersionSummaries = v
13727	return s
13728}
13729
13730type ListTypesInput struct {
13731	_ struct{} `type:"structure"`
13732
13733	// The deprecation status of the extension that you want to get summary information
13734	// about.
13735	//
13736	// Valid values include:
13737	//
13738	//    * LIVE: The extension is registered for use in CloudFormation operations.
13739	//
13740	//    * DEPRECATED: The extension has been deregistered and can no longer be
13741	//    used in CloudFormation operations.
13742	DeprecatedStatus *string `type:"string" enum:"DeprecatedStatus"`
13743
13744	// Filter criteria to use in determining which extensions to return.
13745	//
13746	// If you specify a filter, CloudFormation ignores any specified Visibility
13747	// value when returning the list of types.
13748	Filters *TypeFilters `type:"structure"`
13749
13750	// The maximum number of results to be returned with a single call. If the number
13751	// of available results exceeds this maximum, the response includes a NextToken
13752	// value that you can assign to the NextToken request parameter to get the next
13753	// set of results.
13754	MaxResults *int64 `min:"1" type:"integer"`
13755
13756	// If the previous paginated request didn't return all of the remaining results,
13757	// the response object's NextToken parameter value is set to a token. To retrieve
13758	// the next set of results, call this action again and assign that token to
13759	// the request object's NextToken parameter. If there are no remaining results,
13760	// the previous response object's NextToken parameter is set to null.
13761	NextToken *string `min:"1" type:"string"`
13762
13763	// For resource types, the provisioning behavior of the resource type. CloudFormation
13764	// determines the provisioning type during registration, based on the types
13765	// of handlers in the schema handler package submitted.
13766	//
13767	// Valid values include:
13768	//
13769	//    * FULLY_MUTABLE: The resource type includes an update handler to process
13770	//    updates to the type during stack update operations.
13771	//
13772	//    * IMMUTABLE: The resource type does not include an update handler, so
13773	//    the type cannot be updated and must instead be replaced during stack update
13774	//    operations.
13775	//
13776	//    * NON_PROVISIONABLE: The resource type does not include create, read,
13777	//    and delete handlers, and therefore cannot actually be provisioned.
13778	//
13779	// The default is FULLY_MUTABLE.
13780	ProvisioningType *string `type:"string" enum:"ProvisioningType"`
13781
13782	// The type of extension.
13783	Type *string `type:"string" enum:"RegistryType"`
13784
13785	// The scope at which the extensions are visible and usable in CloudFormation
13786	// operations.
13787	//
13788	// Valid values include:
13789	//
13790	//    * PRIVATE: Extensions that are visible and usable within this account
13791	//    and region. This includes: Private extensions you have registered in this
13792	//    account and region. Public extensions that you have activated in this
13793	//    account and region.
13794	//
13795	//    * PUBLIC: Extensions that are publicly visible and available to be activated
13796	//    within any Amazon account. This includes extensions from Amazon, as well
13797	//    as third-party publishers.
13798	//
13799	// The default is PRIVATE.
13800	Visibility *string `type:"string" enum:"Visibility"`
13801}
13802
13803// String returns the string representation
13804func (s ListTypesInput) String() string {
13805	return awsutil.Prettify(s)
13806}
13807
13808// GoString returns the string representation
13809func (s ListTypesInput) GoString() string {
13810	return s.String()
13811}
13812
13813// Validate inspects the fields of the type to determine if they are valid.
13814func (s *ListTypesInput) Validate() error {
13815	invalidParams := request.ErrInvalidParams{Context: "ListTypesInput"}
13816	if s.MaxResults != nil && *s.MaxResults < 1 {
13817		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
13818	}
13819	if s.NextToken != nil && len(*s.NextToken) < 1 {
13820		invalidParams.Add(request.NewErrParamMinLen("NextToken", 1))
13821	}
13822	if s.Filters != nil {
13823		if err := s.Filters.Validate(); err != nil {
13824			invalidParams.AddNested("Filters", err.(request.ErrInvalidParams))
13825		}
13826	}
13827
13828	if invalidParams.Len() > 0 {
13829		return invalidParams
13830	}
13831	return nil
13832}
13833
13834// SetDeprecatedStatus sets the DeprecatedStatus field's value.
13835func (s *ListTypesInput) SetDeprecatedStatus(v string) *ListTypesInput {
13836	s.DeprecatedStatus = &v
13837	return s
13838}
13839
13840// SetFilters sets the Filters field's value.
13841func (s *ListTypesInput) SetFilters(v *TypeFilters) *ListTypesInput {
13842	s.Filters = v
13843	return s
13844}
13845
13846// SetMaxResults sets the MaxResults field's value.
13847func (s *ListTypesInput) SetMaxResults(v int64) *ListTypesInput {
13848	s.MaxResults = &v
13849	return s
13850}
13851
13852// SetNextToken sets the NextToken field's value.
13853func (s *ListTypesInput) SetNextToken(v string) *ListTypesInput {
13854	s.NextToken = &v
13855	return s
13856}
13857
13858// SetProvisioningType sets the ProvisioningType field's value.
13859func (s *ListTypesInput) SetProvisioningType(v string) *ListTypesInput {
13860	s.ProvisioningType = &v
13861	return s
13862}
13863
13864// SetType sets the Type field's value.
13865func (s *ListTypesInput) SetType(v string) *ListTypesInput {
13866	s.Type = &v
13867	return s
13868}
13869
13870// SetVisibility sets the Visibility field's value.
13871func (s *ListTypesInput) SetVisibility(v string) *ListTypesInput {
13872	s.Visibility = &v
13873	return s
13874}
13875
13876type ListTypesOutput struct {
13877	_ struct{} `type:"structure"`
13878
13879	// If the request doesn't return all of the remaining results, NextToken is
13880	// set to a token. To retrieve the next set of results, call this action again
13881	// and assign that token to the request object's NextToken parameter. If the
13882	// request returns all results, NextToken is set to null.
13883	NextToken *string `min:"1" type:"string"`
13884
13885	// A list of TypeSummary structures that contain information about the specified
13886	// extensions.
13887	TypeSummaries []*TypeSummary `type:"list"`
13888}
13889
13890// String returns the string representation
13891func (s ListTypesOutput) String() string {
13892	return awsutil.Prettify(s)
13893}
13894
13895// GoString returns the string representation
13896func (s ListTypesOutput) GoString() string {
13897	return s.String()
13898}
13899
13900// SetNextToken sets the NextToken field's value.
13901func (s *ListTypesOutput) SetNextToken(v string) *ListTypesOutput {
13902	s.NextToken = &v
13903	return s
13904}
13905
13906// SetTypeSummaries sets the TypeSummaries field's value.
13907func (s *ListTypesOutput) SetTypeSummaries(v []*TypeSummary) *ListTypesOutput {
13908	s.TypeSummaries = v
13909	return s
13910}
13911
13912// Contains logging configuration information for an extension.
13913type LoggingConfig struct {
13914	_ struct{} `type:"structure"`
13915
13916	// The Amazon CloudWatch log group to which CloudFormation sends error logging
13917	// information when invoking the extension's handlers.
13918	//
13919	// LogGroupName is a required field
13920	LogGroupName *string `min:"1" type:"string" required:"true"`
13921
13922	// The ARN of the role that CloudFormation should assume when sending log entries
13923	// to CloudWatch logs.
13924	//
13925	// LogRoleArn is a required field
13926	LogRoleArn *string `min:"1" type:"string" required:"true"`
13927}
13928
13929// String returns the string representation
13930func (s LoggingConfig) String() string {
13931	return awsutil.Prettify(s)
13932}
13933
13934// GoString returns the string representation
13935func (s LoggingConfig) GoString() string {
13936	return s.String()
13937}
13938
13939// Validate inspects the fields of the type to determine if they are valid.
13940func (s *LoggingConfig) Validate() error {
13941	invalidParams := request.ErrInvalidParams{Context: "LoggingConfig"}
13942	if s.LogGroupName == nil {
13943		invalidParams.Add(request.NewErrParamRequired("LogGroupName"))
13944	}
13945	if s.LogGroupName != nil && len(*s.LogGroupName) < 1 {
13946		invalidParams.Add(request.NewErrParamMinLen("LogGroupName", 1))
13947	}
13948	if s.LogRoleArn == nil {
13949		invalidParams.Add(request.NewErrParamRequired("LogRoleArn"))
13950	}
13951	if s.LogRoleArn != nil && len(*s.LogRoleArn) < 1 {
13952		invalidParams.Add(request.NewErrParamMinLen("LogRoleArn", 1))
13953	}
13954
13955	if invalidParams.Len() > 0 {
13956		return invalidParams
13957	}
13958	return nil
13959}
13960
13961// SetLogGroupName sets the LogGroupName field's value.
13962func (s *LoggingConfig) SetLogGroupName(v string) *LoggingConfig {
13963	s.LogGroupName = &v
13964	return s
13965}
13966
13967// SetLogRoleArn sets the LogRoleArn field's value.
13968func (s *LoggingConfig) SetLogRoleArn(v string) *LoggingConfig {
13969	s.LogRoleArn = &v
13970	return s
13971}
13972
13973// Contains information about the module from which the resource was created,
13974// if the resource was created from a module included in the stack template.
13975//
13976// For more information on modules, see Using modules to encapsulate and reuse
13977// resource configurations (AWSCloudFormation/latest/UserGuide/modules.html)
13978// in the CloudFormation User Guide.
13979type ModuleInfo struct {
13980	_ struct{} `type:"structure"`
13981
13982	// A concantenated list of the logical IDs of the module or modules containing
13983	// the resource. Modules are listed starting with the inner-most nested module,
13984	// and separated by /.
13985	//
13986	// In the following example, the resource was created from a module, moduleA,
13987	// that is nested inside a parent module, moduleB.
13988	//
13989	// moduleA/moduleB
13990	//
13991	// For more information, see Referencing resources in a module (AWSCloudFormation/latest/UserGuide/modules.html#module-ref-resources)
13992	// in the CloudFormation User Guide.
13993	LogicalIdHierarchy *string `type:"string"`
13994
13995	// A concantenated list of the the module type or types containing the resource.
13996	// Module types are listed starting with the inner-most nested module, and separated
13997	// by /.
13998	//
13999	// In the following example, the resource was created from a module of type
14000	// AWS::First::Example::MODULE, that is nested inside a parent module of type
14001	// AWS::Second::Example::MODULE.
14002	//
14003	// AWS::First::Example::MODULE/AWS::Second::Example::MODULE
14004	TypeHierarchy *string `type:"string"`
14005}
14006
14007// String returns the string representation
14008func (s ModuleInfo) String() string {
14009	return awsutil.Prettify(s)
14010}
14011
14012// GoString returns the string representation
14013func (s ModuleInfo) GoString() string {
14014	return s.String()
14015}
14016
14017// SetLogicalIdHierarchy sets the LogicalIdHierarchy field's value.
14018func (s *ModuleInfo) SetLogicalIdHierarchy(v string) *ModuleInfo {
14019	s.LogicalIdHierarchy = &v
14020	return s
14021}
14022
14023// SetTypeHierarchy sets the TypeHierarchy field's value.
14024func (s *ModuleInfo) SetTypeHierarchy(v string) *ModuleInfo {
14025	s.TypeHierarchy = &v
14026	return s
14027}
14028
14029// The Output data type.
14030type Output struct {
14031	_ struct{} `type:"structure"`
14032
14033	// User defined description associated with the output.
14034	Description *string `min:"1" type:"string"`
14035
14036	// The name of the export associated with the output.
14037	ExportName *string `type:"string"`
14038
14039	// The key associated with the output.
14040	OutputKey *string `type:"string"`
14041
14042	// The value associated with the output.
14043	OutputValue *string `type:"string"`
14044}
14045
14046// String returns the string representation
14047func (s Output) String() string {
14048	return awsutil.Prettify(s)
14049}
14050
14051// GoString returns the string representation
14052func (s Output) GoString() string {
14053	return s.String()
14054}
14055
14056// SetDescription sets the Description field's value.
14057func (s *Output) SetDescription(v string) *Output {
14058	s.Description = &v
14059	return s
14060}
14061
14062// SetExportName sets the ExportName field's value.
14063func (s *Output) SetExportName(v string) *Output {
14064	s.ExportName = &v
14065	return s
14066}
14067
14068// SetOutputKey sets the OutputKey field's value.
14069func (s *Output) SetOutputKey(v string) *Output {
14070	s.OutputKey = &v
14071	return s
14072}
14073
14074// SetOutputValue sets the OutputValue field's value.
14075func (s *Output) SetOutputValue(v string) *Output {
14076	s.OutputValue = &v
14077	return s
14078}
14079
14080// The Parameter data type.
14081type Parameter struct {
14082	_ struct{} `type:"structure"`
14083
14084	// The key associated with the parameter. If you don't specify a key and value
14085	// for a particular parameter, CloudFormation uses the default value that is
14086	// specified in your template.
14087	ParameterKey *string `type:"string"`
14088
14089	// The input value associated with the parameter.
14090	ParameterValue *string `type:"string"`
14091
14092	// Read-only. The value that corresponds to a Systems Manager parameter key.
14093	// 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)
14094	// in the template.
14095	ResolvedValue *string `type:"string"`
14096
14097	// During a stack update, use the existing parameter value that the stack is
14098	// using for a given parameter key. If you specify true, do not specify a parameter
14099	// value.
14100	UsePreviousValue *bool `type:"boolean"`
14101}
14102
14103// String returns the string representation
14104func (s Parameter) String() string {
14105	return awsutil.Prettify(s)
14106}
14107
14108// GoString returns the string representation
14109func (s Parameter) GoString() string {
14110	return s.String()
14111}
14112
14113// SetParameterKey sets the ParameterKey field's value.
14114func (s *Parameter) SetParameterKey(v string) *Parameter {
14115	s.ParameterKey = &v
14116	return s
14117}
14118
14119// SetParameterValue sets the ParameterValue field's value.
14120func (s *Parameter) SetParameterValue(v string) *Parameter {
14121	s.ParameterValue = &v
14122	return s
14123}
14124
14125// SetResolvedValue sets the ResolvedValue field's value.
14126func (s *Parameter) SetResolvedValue(v string) *Parameter {
14127	s.ResolvedValue = &v
14128	return s
14129}
14130
14131// SetUsePreviousValue sets the UsePreviousValue field's value.
14132func (s *Parameter) SetUsePreviousValue(v bool) *Parameter {
14133	s.UsePreviousValue = &v
14134	return s
14135}
14136
14137// A set of criteria that CloudFormation uses to validate parameter values.
14138// Although other constraints might be defined in the stack template, CloudFormation
14139// returns only the AllowedValues property.
14140type ParameterConstraints struct {
14141	_ struct{} `type:"structure"`
14142
14143	// A list of values that are permitted for a parameter.
14144	AllowedValues []*string `type:"list"`
14145}
14146
14147// String returns the string representation
14148func (s ParameterConstraints) String() string {
14149	return awsutil.Prettify(s)
14150}
14151
14152// GoString returns the string representation
14153func (s ParameterConstraints) GoString() string {
14154	return s.String()
14155}
14156
14157// SetAllowedValues sets the AllowedValues field's value.
14158func (s *ParameterConstraints) SetAllowedValues(v []*string) *ParameterConstraints {
14159	s.AllowedValues = v
14160	return s
14161}
14162
14163// The ParameterDeclaration data type.
14164type ParameterDeclaration struct {
14165	_ struct{} `type:"structure"`
14166
14167	// The default value of the parameter.
14168	DefaultValue *string `type:"string"`
14169
14170	// The description that is associate with the parameter.
14171	Description *string `min:"1" type:"string"`
14172
14173	// Flag that indicates whether the parameter value is shown as plain text in
14174	// logs and in the Amazon Web Services Management Console.
14175	NoEcho *bool `type:"boolean"`
14176
14177	// The criteria that CloudFormation uses to validate parameter values.
14178	ParameterConstraints *ParameterConstraints `type:"structure"`
14179
14180	// The name that is associated with the parameter.
14181	ParameterKey *string `type:"string"`
14182
14183	// The type of parameter.
14184	ParameterType *string `type:"string"`
14185}
14186
14187// String returns the string representation
14188func (s ParameterDeclaration) String() string {
14189	return awsutil.Prettify(s)
14190}
14191
14192// GoString returns the string representation
14193func (s ParameterDeclaration) GoString() string {
14194	return s.String()
14195}
14196
14197// SetDefaultValue sets the DefaultValue field's value.
14198func (s *ParameterDeclaration) SetDefaultValue(v string) *ParameterDeclaration {
14199	s.DefaultValue = &v
14200	return s
14201}
14202
14203// SetDescription sets the Description field's value.
14204func (s *ParameterDeclaration) SetDescription(v string) *ParameterDeclaration {
14205	s.Description = &v
14206	return s
14207}
14208
14209// SetNoEcho sets the NoEcho field's value.
14210func (s *ParameterDeclaration) SetNoEcho(v bool) *ParameterDeclaration {
14211	s.NoEcho = &v
14212	return s
14213}
14214
14215// SetParameterConstraints sets the ParameterConstraints field's value.
14216func (s *ParameterDeclaration) SetParameterConstraints(v *ParameterConstraints) *ParameterDeclaration {
14217	s.ParameterConstraints = v
14218	return s
14219}
14220
14221// SetParameterKey sets the ParameterKey field's value.
14222func (s *ParameterDeclaration) SetParameterKey(v string) *ParameterDeclaration {
14223	s.ParameterKey = &v
14224	return s
14225}
14226
14227// SetParameterType sets the ParameterType field's value.
14228func (s *ParameterDeclaration) SetParameterType(v string) *ParameterDeclaration {
14229	s.ParameterType = &v
14230	return s
14231}
14232
14233// Context information that enables CloudFormation to uniquely identify a resource.
14234// CloudFormation uses context key-value pairs in cases where a resource's logical
14235// and physical IDs are not enough to uniquely identify that resource. Each
14236// context key-value pair specifies a resource that contains the targeted resource.
14237type PhysicalResourceIdContextKeyValuePair struct {
14238	_ struct{} `type:"structure"`
14239
14240	// The resource context key.
14241	//
14242	// Key is a required field
14243	Key *string `type:"string" required:"true"`
14244
14245	// The resource context value.
14246	//
14247	// Value is a required field
14248	Value *string `type:"string" required:"true"`
14249}
14250
14251// String returns the string representation
14252func (s PhysicalResourceIdContextKeyValuePair) String() string {
14253	return awsutil.Prettify(s)
14254}
14255
14256// GoString returns the string representation
14257func (s PhysicalResourceIdContextKeyValuePair) GoString() string {
14258	return s.String()
14259}
14260
14261// SetKey sets the Key field's value.
14262func (s *PhysicalResourceIdContextKeyValuePair) SetKey(v string) *PhysicalResourceIdContextKeyValuePair {
14263	s.Key = &v
14264	return s
14265}
14266
14267// SetValue sets the Value field's value.
14268func (s *PhysicalResourceIdContextKeyValuePair) SetValue(v string) *PhysicalResourceIdContextKeyValuePair {
14269	s.Value = &v
14270	return s
14271}
14272
14273// Information about a resource property whose actual value differs from its
14274// expected value, as defined in the stack template and any values specified
14275// as template parameters. These will be present only for resources whose StackResourceDriftStatus
14276// is MODIFIED. For more information, see Detecting Unregulated Configuration
14277// Changes to Stacks and Resources (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-stack-drift.html).
14278type PropertyDifference struct {
14279	_ struct{} `type:"structure"`
14280
14281	// The actual property value of the resource property.
14282	//
14283	// ActualValue is a required field
14284	ActualValue *string `type:"string" required:"true"`
14285
14286	// The type of property difference.
14287	//
14288	//    * ADD: A value has been added to a resource property that is an array
14289	//    or list data type.
14290	//
14291	//    * REMOVE: The property has been removed from the current resource configuration.
14292	//
14293	//    * NOT_EQUAL: The current property value differs from its expected value
14294	//    (as defined in the stack template and any values specified as template
14295	//    parameters).
14296	//
14297	// DifferenceType is a required field
14298	DifferenceType *string `type:"string" required:"true" enum:"DifferenceType"`
14299
14300	// The expected property value of the resource property, as defined in the stack
14301	// template and any values specified as template parameters.
14302	//
14303	// ExpectedValue is a required field
14304	ExpectedValue *string `type:"string" required:"true"`
14305
14306	// The fully-qualified path to the resource property.
14307	//
14308	// PropertyPath is a required field
14309	PropertyPath *string `type:"string" required:"true"`
14310}
14311
14312// String returns the string representation
14313func (s PropertyDifference) String() string {
14314	return awsutil.Prettify(s)
14315}
14316
14317// GoString returns the string representation
14318func (s PropertyDifference) GoString() string {
14319	return s.String()
14320}
14321
14322// SetActualValue sets the ActualValue field's value.
14323func (s *PropertyDifference) SetActualValue(v string) *PropertyDifference {
14324	s.ActualValue = &v
14325	return s
14326}
14327
14328// SetDifferenceType sets the DifferenceType field's value.
14329func (s *PropertyDifference) SetDifferenceType(v string) *PropertyDifference {
14330	s.DifferenceType = &v
14331	return s
14332}
14333
14334// SetExpectedValue sets the ExpectedValue field's value.
14335func (s *PropertyDifference) SetExpectedValue(v string) *PropertyDifference {
14336	s.ExpectedValue = &v
14337	return s
14338}
14339
14340// SetPropertyPath sets the PropertyPath field's value.
14341func (s *PropertyDifference) SetPropertyPath(v string) *PropertyDifference {
14342	s.PropertyPath = &v
14343	return s
14344}
14345
14346type PublishTypeInput struct {
14347	_ struct{} `type:"structure"`
14348
14349	// The Amazon Resource Number (ARN) of the extension.
14350	//
14351	// Conditional: You must specify Arn, or TypeName and Type.
14352	Arn *string `type:"string"`
14353
14354	// The version number to assign to this version of the extension.
14355	//
14356	// Use the following format, and adhere to semantic versioning when assigning
14357	// a version number to your extension:
14358	//
14359	// MAJOR.MINOR.PATCH
14360	//
14361	// For more information, see Semantic Versioning 2.0.0 (https://semver.org/).
14362	//
14363	// If you do not specify a version number, CloudFormation increments the version
14364	// number by one minor version release.
14365	//
14366	// The first time you publish a type, CloudFormation sets the version number
14367	// to 1.0.0, regardless of the value you specify.
14368	PublicVersionNumber *string `min:"5" type:"string"`
14369
14370	// The type of the extension.
14371	//
14372	// Conditional: You must specify Arn, or TypeName and Type.
14373	Type *string `type:"string" enum:"ThirdPartyType"`
14374
14375	// The name of the extension.
14376	//
14377	// Conditional: You must specify Arn, or TypeName and Type.
14378	TypeName *string `min:"10" type:"string"`
14379}
14380
14381// String returns the string representation
14382func (s PublishTypeInput) String() string {
14383	return awsutil.Prettify(s)
14384}
14385
14386// GoString returns the string representation
14387func (s PublishTypeInput) GoString() string {
14388	return s.String()
14389}
14390
14391// Validate inspects the fields of the type to determine if they are valid.
14392func (s *PublishTypeInput) Validate() error {
14393	invalidParams := request.ErrInvalidParams{Context: "PublishTypeInput"}
14394	if s.PublicVersionNumber != nil && len(*s.PublicVersionNumber) < 5 {
14395		invalidParams.Add(request.NewErrParamMinLen("PublicVersionNumber", 5))
14396	}
14397	if s.TypeName != nil && len(*s.TypeName) < 10 {
14398		invalidParams.Add(request.NewErrParamMinLen("TypeName", 10))
14399	}
14400
14401	if invalidParams.Len() > 0 {
14402		return invalidParams
14403	}
14404	return nil
14405}
14406
14407// SetArn sets the Arn field's value.
14408func (s *PublishTypeInput) SetArn(v string) *PublishTypeInput {
14409	s.Arn = &v
14410	return s
14411}
14412
14413// SetPublicVersionNumber sets the PublicVersionNumber field's value.
14414func (s *PublishTypeInput) SetPublicVersionNumber(v string) *PublishTypeInput {
14415	s.PublicVersionNumber = &v
14416	return s
14417}
14418
14419// SetType sets the Type field's value.
14420func (s *PublishTypeInput) SetType(v string) *PublishTypeInput {
14421	s.Type = &v
14422	return s
14423}
14424
14425// SetTypeName sets the TypeName field's value.
14426func (s *PublishTypeInput) SetTypeName(v string) *PublishTypeInput {
14427	s.TypeName = &v
14428	return s
14429}
14430
14431type PublishTypeOutput struct {
14432	_ struct{} `type:"structure"`
14433
14434	// The Amazon Resource Number (ARN) assigned to the public extension upon publication.
14435	PublicTypeArn *string `type:"string"`
14436}
14437
14438// String returns the string representation
14439func (s PublishTypeOutput) String() string {
14440	return awsutil.Prettify(s)
14441}
14442
14443// GoString returns the string representation
14444func (s PublishTypeOutput) GoString() string {
14445	return s.String()
14446}
14447
14448// SetPublicTypeArn sets the PublicTypeArn field's value.
14449func (s *PublishTypeOutput) SetPublicTypeArn(v string) *PublishTypeOutput {
14450	s.PublicTypeArn = &v
14451	return s
14452}
14453
14454type RecordHandlerProgressInput struct {
14455	_ struct{} `type:"structure"`
14456
14457	// Reserved for use by the CloudFormation CLI (https://docs.aws.amazon.com/cloudformation-cli/latest/userguide/what-is-cloudformation-cli.html).
14458	//
14459	// BearerToken is a required field
14460	BearerToken *string `min:"1" type:"string" required:"true"`
14461
14462	// Reserved for use by the CloudFormation CLI (https://docs.aws.amazon.com/cloudformation-cli/latest/userguide/what-is-cloudformation-cli.html).
14463	ClientRequestToken *string `min:"1" type:"string"`
14464
14465	// Reserved for use by the CloudFormation CLI (https://docs.aws.amazon.com/cloudformation-cli/latest/userguide/what-is-cloudformation-cli.html).
14466	CurrentOperationStatus *string `type:"string" enum:"OperationStatus"`
14467
14468	// Reserved for use by the CloudFormation CLI (https://docs.aws.amazon.com/cloudformation-cli/latest/userguide/what-is-cloudformation-cli.html).
14469	ErrorCode *string `type:"string" enum:"HandlerErrorCode"`
14470
14471	// Reserved for use by the CloudFormation CLI (https://docs.aws.amazon.com/cloudformation-cli/latest/userguide/what-is-cloudformation-cli.html).
14472	//
14473	// OperationStatus is a required field
14474	OperationStatus *string `type:"string" required:"true" enum:"OperationStatus"`
14475
14476	// Reserved for use by the CloudFormation CLI (https://docs.aws.amazon.com/cloudformation-cli/latest/userguide/what-is-cloudformation-cli.html).
14477	ResourceModel *string `min:"1" type:"string"`
14478
14479	// Reserved for use by the CloudFormation CLI (https://docs.aws.amazon.com/cloudformation-cli/latest/userguide/what-is-cloudformation-cli.html).
14480	StatusMessage *string `type:"string"`
14481}
14482
14483// String returns the string representation
14484func (s RecordHandlerProgressInput) String() string {
14485	return awsutil.Prettify(s)
14486}
14487
14488// GoString returns the string representation
14489func (s RecordHandlerProgressInput) GoString() string {
14490	return s.String()
14491}
14492
14493// Validate inspects the fields of the type to determine if they are valid.
14494func (s *RecordHandlerProgressInput) Validate() error {
14495	invalidParams := request.ErrInvalidParams{Context: "RecordHandlerProgressInput"}
14496	if s.BearerToken == nil {
14497		invalidParams.Add(request.NewErrParamRequired("BearerToken"))
14498	}
14499	if s.BearerToken != nil && len(*s.BearerToken) < 1 {
14500		invalidParams.Add(request.NewErrParamMinLen("BearerToken", 1))
14501	}
14502	if s.ClientRequestToken != nil && len(*s.ClientRequestToken) < 1 {
14503		invalidParams.Add(request.NewErrParamMinLen("ClientRequestToken", 1))
14504	}
14505	if s.OperationStatus == nil {
14506		invalidParams.Add(request.NewErrParamRequired("OperationStatus"))
14507	}
14508	if s.ResourceModel != nil && len(*s.ResourceModel) < 1 {
14509		invalidParams.Add(request.NewErrParamMinLen("ResourceModel", 1))
14510	}
14511
14512	if invalidParams.Len() > 0 {
14513		return invalidParams
14514	}
14515	return nil
14516}
14517
14518// SetBearerToken sets the BearerToken field's value.
14519func (s *RecordHandlerProgressInput) SetBearerToken(v string) *RecordHandlerProgressInput {
14520	s.BearerToken = &v
14521	return s
14522}
14523
14524// SetClientRequestToken sets the ClientRequestToken field's value.
14525func (s *RecordHandlerProgressInput) SetClientRequestToken(v string) *RecordHandlerProgressInput {
14526	s.ClientRequestToken = &v
14527	return s
14528}
14529
14530// SetCurrentOperationStatus sets the CurrentOperationStatus field's value.
14531func (s *RecordHandlerProgressInput) SetCurrentOperationStatus(v string) *RecordHandlerProgressInput {
14532	s.CurrentOperationStatus = &v
14533	return s
14534}
14535
14536// SetErrorCode sets the ErrorCode field's value.
14537func (s *RecordHandlerProgressInput) SetErrorCode(v string) *RecordHandlerProgressInput {
14538	s.ErrorCode = &v
14539	return s
14540}
14541
14542// SetOperationStatus sets the OperationStatus field's value.
14543func (s *RecordHandlerProgressInput) SetOperationStatus(v string) *RecordHandlerProgressInput {
14544	s.OperationStatus = &v
14545	return s
14546}
14547
14548// SetResourceModel sets the ResourceModel field's value.
14549func (s *RecordHandlerProgressInput) SetResourceModel(v string) *RecordHandlerProgressInput {
14550	s.ResourceModel = &v
14551	return s
14552}
14553
14554// SetStatusMessage sets the StatusMessage field's value.
14555func (s *RecordHandlerProgressInput) SetStatusMessage(v string) *RecordHandlerProgressInput {
14556	s.StatusMessage = &v
14557	return s
14558}
14559
14560type RecordHandlerProgressOutput struct {
14561	_ struct{} `type:"structure"`
14562}
14563
14564// String returns the string representation
14565func (s RecordHandlerProgressOutput) String() string {
14566	return awsutil.Prettify(s)
14567}
14568
14569// GoString returns the string representation
14570func (s RecordHandlerProgressOutput) GoString() string {
14571	return s.String()
14572}
14573
14574type RegisterPublisherInput struct {
14575	_ struct{} `type:"structure"`
14576
14577	// Whether you accept the Terms and Conditions (https://cloudformation-registry-documents.s3.amazonaws.com/Terms_and_Conditions_for_AWS_CloudFormation_Registry_Publishers.pdf)
14578	// for publishing extensions in the CloudFormation registry. You must accept
14579	// the terms and conditions in order to register to publish public extensions
14580	// to the CloudFormation registry.
14581	//
14582	// The default is false.
14583	AcceptTermsAndConditions *bool `type:"boolean"`
14584
14585	// If you are using a Bitbucket or GitHub account for identity verification,
14586	// the Amazon Resource Name (ARN) for your connection to that account.
14587	//
14588	// For more information, see Registering your account to publish CloudFormation
14589	// extensions (https://docs.aws.amazon.com/cloudformation-cli/latest/userguide/publish-extension.html#publish-extension-prereqs)
14590	// in the CloudFormation CLI User Guide.
14591	ConnectionArn *string `min:"1" type:"string"`
14592}
14593
14594// String returns the string representation
14595func (s RegisterPublisherInput) String() string {
14596	return awsutil.Prettify(s)
14597}
14598
14599// GoString returns the string representation
14600func (s RegisterPublisherInput) GoString() string {
14601	return s.String()
14602}
14603
14604// Validate inspects the fields of the type to determine if they are valid.
14605func (s *RegisterPublisherInput) Validate() error {
14606	invalidParams := request.ErrInvalidParams{Context: "RegisterPublisherInput"}
14607	if s.ConnectionArn != nil && len(*s.ConnectionArn) < 1 {
14608		invalidParams.Add(request.NewErrParamMinLen("ConnectionArn", 1))
14609	}
14610
14611	if invalidParams.Len() > 0 {
14612		return invalidParams
14613	}
14614	return nil
14615}
14616
14617// SetAcceptTermsAndConditions sets the AcceptTermsAndConditions field's value.
14618func (s *RegisterPublisherInput) SetAcceptTermsAndConditions(v bool) *RegisterPublisherInput {
14619	s.AcceptTermsAndConditions = &v
14620	return s
14621}
14622
14623// SetConnectionArn sets the ConnectionArn field's value.
14624func (s *RegisterPublisherInput) SetConnectionArn(v string) *RegisterPublisherInput {
14625	s.ConnectionArn = &v
14626	return s
14627}
14628
14629type RegisterPublisherOutput struct {
14630	_ struct{} `type:"structure"`
14631
14632	// The ID assigned this account by CloudFormation for publishing extensions.
14633	PublisherId *string `min:"1" type:"string"`
14634}
14635
14636// String returns the string representation
14637func (s RegisterPublisherOutput) String() string {
14638	return awsutil.Prettify(s)
14639}
14640
14641// GoString returns the string representation
14642func (s RegisterPublisherOutput) GoString() string {
14643	return s.String()
14644}
14645
14646// SetPublisherId sets the PublisherId field's value.
14647func (s *RegisterPublisherOutput) SetPublisherId(v string) *RegisterPublisherOutput {
14648	s.PublisherId = &v
14649	return s
14650}
14651
14652type RegisterTypeInput struct {
14653	_ struct{} `type:"structure"`
14654
14655	// A unique identifier that acts as an idempotency key for this registration
14656	// request. Specifying a client request token prevents CloudFormation from generating
14657	// more than one version of an extension from the same registeration request,
14658	// even if the request is submitted multiple times.
14659	ClientRequestToken *string `min:"1" type:"string"`
14660
14661	// The Amazon Resource Name (ARN) of the IAM role for CloudFormation to assume
14662	// when invoking the extension.
14663	//
14664	// For CloudFormation to assume the specified execution role, the role must
14665	// contain a trust relationship with the CloudFormation service principle (resources.cloudformation.amazonaws.com).
14666	// For more information on adding trust relationships, see Modifying a role
14667	// trust policy (IAM/latest/UserGuide/roles-managingrole-editing-console.html#roles-managingrole_edit-trust-policy)
14668	// in the Identity and Access Management User Guide.
14669	//
14670	// If your extension calls Amazon Web Services APIs in any of its handlers,
14671	// you must create an IAM execution role (https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles.html)
14672	// that includes the necessary permissions to call those Amazon Web Services
14673	// APIs, and provision that execution role in your account. When CloudFormation
14674	// needs to invoke the resource type handler, CloudFormation assumes this execution
14675	// role to create a temporary session token, which it then passes to the resource
14676	// type handler, thereby supplying your resource type with the appropriate credentials.
14677	ExecutionRoleArn *string `min:"1" type:"string"`
14678
14679	// Specifies logging configuration information for an extension.
14680	LoggingConfig *LoggingConfig `type:"structure"`
14681
14682	// A url to the S3 bucket containing the extension project package that contains
14683	// the neccessary files for the extension you want to register.
14684	//
14685	// For information on generating a schema handler package for the extension
14686	// you want to register, see submit (https://docs.aws.amazon.com/cloudformation-cli/latest/userguide/resource-type-cli-submit.html)
14687	// in the CloudFormation CLI User Guide.
14688	//
14689	// The user registering the extension must be able to access the package in
14690	// the S3 bucket. That is, the user needs to have GetObject (https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetObject.html)
14691	// permissions for the schema handler package. For more information, see Actions,
14692	// Resources, and Condition Keys for Amazon S3 (https://docs.aws.amazon.com/IAM/latest/UserGuide/list_amazons3.html)
14693	// in the Identity and Access Management User Guide.
14694	//
14695	// SchemaHandlerPackage is a required field
14696	SchemaHandlerPackage *string `min:"1" type:"string" required:"true"`
14697
14698	// The kind of extension.
14699	Type *string `type:"string" enum:"RegistryType"`
14700
14701	// The name of the extension being registered.
14702	//
14703	// We recommend that extension names adhere to the following patterns:
14704	//
14705	//    * For resource types, company_or_organization::service::type.
14706	//
14707	//    * For modules, company_or_organization::service::type::MODULE.
14708	//
14709	// The following organization namespaces are reserved and cannot be used in
14710	// your extension names:
14711	//
14712	//    * Alexa
14713	//
14714	//    * AMZN
14715	//
14716	//    * Amazon
14717	//
14718	//    * AWS
14719	//
14720	//    * Custom
14721	//
14722	//    * Dev
14723	//
14724	// TypeName is a required field
14725	TypeName *string `min:"10" type:"string" required:"true"`
14726}
14727
14728// String returns the string representation
14729func (s RegisterTypeInput) String() string {
14730	return awsutil.Prettify(s)
14731}
14732
14733// GoString returns the string representation
14734func (s RegisterTypeInput) GoString() string {
14735	return s.String()
14736}
14737
14738// Validate inspects the fields of the type to determine if they are valid.
14739func (s *RegisterTypeInput) Validate() error {
14740	invalidParams := request.ErrInvalidParams{Context: "RegisterTypeInput"}
14741	if s.ClientRequestToken != nil && len(*s.ClientRequestToken) < 1 {
14742		invalidParams.Add(request.NewErrParamMinLen("ClientRequestToken", 1))
14743	}
14744	if s.ExecutionRoleArn != nil && len(*s.ExecutionRoleArn) < 1 {
14745		invalidParams.Add(request.NewErrParamMinLen("ExecutionRoleArn", 1))
14746	}
14747	if s.SchemaHandlerPackage == nil {
14748		invalidParams.Add(request.NewErrParamRequired("SchemaHandlerPackage"))
14749	}
14750	if s.SchemaHandlerPackage != nil && len(*s.SchemaHandlerPackage) < 1 {
14751		invalidParams.Add(request.NewErrParamMinLen("SchemaHandlerPackage", 1))
14752	}
14753	if s.TypeName == nil {
14754		invalidParams.Add(request.NewErrParamRequired("TypeName"))
14755	}
14756	if s.TypeName != nil && len(*s.TypeName) < 10 {
14757		invalidParams.Add(request.NewErrParamMinLen("TypeName", 10))
14758	}
14759	if s.LoggingConfig != nil {
14760		if err := s.LoggingConfig.Validate(); err != nil {
14761			invalidParams.AddNested("LoggingConfig", err.(request.ErrInvalidParams))
14762		}
14763	}
14764
14765	if invalidParams.Len() > 0 {
14766		return invalidParams
14767	}
14768	return nil
14769}
14770
14771// SetClientRequestToken sets the ClientRequestToken field's value.
14772func (s *RegisterTypeInput) SetClientRequestToken(v string) *RegisterTypeInput {
14773	s.ClientRequestToken = &v
14774	return s
14775}
14776
14777// SetExecutionRoleArn sets the ExecutionRoleArn field's value.
14778func (s *RegisterTypeInput) SetExecutionRoleArn(v string) *RegisterTypeInput {
14779	s.ExecutionRoleArn = &v
14780	return s
14781}
14782
14783// SetLoggingConfig sets the LoggingConfig field's value.
14784func (s *RegisterTypeInput) SetLoggingConfig(v *LoggingConfig) *RegisterTypeInput {
14785	s.LoggingConfig = v
14786	return s
14787}
14788
14789// SetSchemaHandlerPackage sets the SchemaHandlerPackage field's value.
14790func (s *RegisterTypeInput) SetSchemaHandlerPackage(v string) *RegisterTypeInput {
14791	s.SchemaHandlerPackage = &v
14792	return s
14793}
14794
14795// SetType sets the Type field's value.
14796func (s *RegisterTypeInput) SetType(v string) *RegisterTypeInput {
14797	s.Type = &v
14798	return s
14799}
14800
14801// SetTypeName sets the TypeName field's value.
14802func (s *RegisterTypeInput) SetTypeName(v string) *RegisterTypeInput {
14803	s.TypeName = &v
14804	return s
14805}
14806
14807type RegisterTypeOutput struct {
14808	_ struct{} `type:"structure"`
14809
14810	// The identifier for this registration request.
14811	//
14812	// Use this registration token when calling DescribeTypeRegistration , which
14813	// returns information about the status and IDs of the extension registration.
14814	RegistrationToken *string `min:"1" type:"string"`
14815}
14816
14817// String returns the string representation
14818func (s RegisterTypeOutput) String() string {
14819	return awsutil.Prettify(s)
14820}
14821
14822// GoString returns the string representation
14823func (s RegisterTypeOutput) GoString() string {
14824	return s.String()
14825}
14826
14827// SetRegistrationToken sets the RegistrationToken field's value.
14828func (s *RegisterTypeOutput) SetRegistrationToken(v string) *RegisterTypeOutput {
14829	s.RegistrationToken = &v
14830	return s
14831}
14832
14833// For extensions that are modules, a public third-party extension that must
14834// be activated in your account in order for the module itself to be activated.
14835//
14836// For more information, see Activating public modules for use in your account
14837// (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/modules.html#module-enabling)
14838// in the CloudFormation User Guide.
14839type RequiredActivatedType struct {
14840	_ struct{} `type:"structure"`
14841
14842	// The type name of the public extension.
14843	//
14844	// If you specified a TypeNameAlias when enabling the extension in this account
14845	// and region, CloudFormation treats that alias as the extension's type name
14846	// within the account and region, not the type name of the public extension.
14847	// 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)
14848	// in the CloudFormation User Guide.
14849	OriginalTypeName *string `min:"10" type:"string"`
14850
14851	// The publisher ID of the extension publisher.
14852	PublisherId *string `min:"1" type:"string"`
14853
14854	// A list of the major versions of the extension type that the macro supports.
14855	SupportedMajorVersions []*int64 `type:"list"`
14856
14857	// An alias assigned to the public extension, in this account and region. If
14858	// you specify an alias for the extension, CloudFormation treats the alias as
14859	// the extension type name within this account and region. You must use the
14860	// alias to refer to the extension in your templates, API calls, and CloudFormation
14861	// console.
14862	TypeNameAlias *string `min:"10" type:"string"`
14863}
14864
14865// String returns the string representation
14866func (s RequiredActivatedType) String() string {
14867	return awsutil.Prettify(s)
14868}
14869
14870// GoString returns the string representation
14871func (s RequiredActivatedType) GoString() string {
14872	return s.String()
14873}
14874
14875// SetOriginalTypeName sets the OriginalTypeName field's value.
14876func (s *RequiredActivatedType) SetOriginalTypeName(v string) *RequiredActivatedType {
14877	s.OriginalTypeName = &v
14878	return s
14879}
14880
14881// SetPublisherId sets the PublisherId field's value.
14882func (s *RequiredActivatedType) SetPublisherId(v string) *RequiredActivatedType {
14883	s.PublisherId = &v
14884	return s
14885}
14886
14887// SetSupportedMajorVersions sets the SupportedMajorVersions field's value.
14888func (s *RequiredActivatedType) SetSupportedMajorVersions(v []*int64) *RequiredActivatedType {
14889	s.SupportedMajorVersions = v
14890	return s
14891}
14892
14893// SetTypeNameAlias sets the TypeNameAlias field's value.
14894func (s *RequiredActivatedType) SetTypeNameAlias(v string) *RequiredActivatedType {
14895	s.TypeNameAlias = &v
14896	return s
14897}
14898
14899// The ResourceChange structure describes the resource and the action that CloudFormation
14900// will perform on it if you execute this change set.
14901type ResourceChange struct {
14902	_ struct{} `type:"structure"`
14903
14904	// The action that CloudFormation takes on the resource, such as Add (adds a
14905	// new resource), Modify (changes a resource), Remove (deletes a resource),
14906	// Import (imports a resource), or Dynamic (exact action for the resource cannot
14907	// be determined).
14908	Action *string `type:"string" enum:"ChangeAction"`
14909
14910	// The change set ID of the nested change set.
14911	ChangeSetId *string `min:"1" type:"string"`
14912
14913	// For the Modify action, a list of ResourceChangeDetail structures that describes
14914	// the changes that CloudFormation will make to the resource.
14915	Details []*ResourceChangeDetail `type:"list"`
14916
14917	// The resource's logical ID, which is defined in the stack's template.
14918	LogicalResourceId *string `type:"string"`
14919
14920	// Contains information about the module from which the resource was created,
14921	// if the resource was created from a module included in the stack template.
14922	ModuleInfo *ModuleInfo `type:"structure"`
14923
14924	// The resource's physical ID (resource name). Resources that you are adding
14925	// don't have physical IDs because they haven't been created.
14926	PhysicalResourceId *string `type:"string"`
14927
14928	// For the Modify action, indicates whether CloudFormation will replace the
14929	// resource by creating a new one and deleting the old one. This value depends
14930	// on the value of the RequiresRecreation property in the ResourceTargetDefinition
14931	// structure. For example, if the RequiresRecreation field is Always and the
14932	// Evaluation field is Static, Replacement is True. If the RequiresRecreation
14933	// field is Always and the Evaluation field is Dynamic, Replacement is Conditionally.
14934	//
14935	// If you have multiple changes with different RequiresRecreation values, the
14936	// Replacement value depends on the change with the most impact. A RequiresRecreation
14937	// value of Always has the most impact, followed by Conditionally, and then
14938	// Never.
14939	Replacement *string `type:"string" enum:"Replacement"`
14940
14941	// The type of CloudFormation resource, such as AWS::S3::Bucket.
14942	ResourceType *string `min:"1" type:"string"`
14943
14944	// For the Modify action, indicates which resource attribute is triggering this
14945	// update, such as a change in the resource attribute's Metadata, Properties,
14946	// or Tags.
14947	Scope []*string `type:"list"`
14948}
14949
14950// String returns the string representation
14951func (s ResourceChange) String() string {
14952	return awsutil.Prettify(s)
14953}
14954
14955// GoString returns the string representation
14956func (s ResourceChange) GoString() string {
14957	return s.String()
14958}
14959
14960// SetAction sets the Action field's value.
14961func (s *ResourceChange) SetAction(v string) *ResourceChange {
14962	s.Action = &v
14963	return s
14964}
14965
14966// SetChangeSetId sets the ChangeSetId field's value.
14967func (s *ResourceChange) SetChangeSetId(v string) *ResourceChange {
14968	s.ChangeSetId = &v
14969	return s
14970}
14971
14972// SetDetails sets the Details field's value.
14973func (s *ResourceChange) SetDetails(v []*ResourceChangeDetail) *ResourceChange {
14974	s.Details = v
14975	return s
14976}
14977
14978// SetLogicalResourceId sets the LogicalResourceId field's value.
14979func (s *ResourceChange) SetLogicalResourceId(v string) *ResourceChange {
14980	s.LogicalResourceId = &v
14981	return s
14982}
14983
14984// SetModuleInfo sets the ModuleInfo field's value.
14985func (s *ResourceChange) SetModuleInfo(v *ModuleInfo) *ResourceChange {
14986	s.ModuleInfo = v
14987	return s
14988}
14989
14990// SetPhysicalResourceId sets the PhysicalResourceId field's value.
14991func (s *ResourceChange) SetPhysicalResourceId(v string) *ResourceChange {
14992	s.PhysicalResourceId = &v
14993	return s
14994}
14995
14996// SetReplacement sets the Replacement field's value.
14997func (s *ResourceChange) SetReplacement(v string) *ResourceChange {
14998	s.Replacement = &v
14999	return s
15000}
15001
15002// SetResourceType sets the ResourceType field's value.
15003func (s *ResourceChange) SetResourceType(v string) *ResourceChange {
15004	s.ResourceType = &v
15005	return s
15006}
15007
15008// SetScope sets the Scope field's value.
15009func (s *ResourceChange) SetScope(v []*string) *ResourceChange {
15010	s.Scope = v
15011	return s
15012}
15013
15014// For a resource with Modify as the action, the ResourceChange structure describes
15015// the changes CloudFormation will make to that resource.
15016type ResourceChangeDetail struct {
15017	_ struct{} `type:"structure"`
15018
15019	// The identity of the entity that triggered this change. This entity is a member
15020	// of the group that is specified by the ChangeSource field. For example, if
15021	// you modified the value of the KeyPairName parameter, the CausingEntity is
15022	// the name of the parameter (KeyPairName).
15023	//
15024	// If the ChangeSource value is DirectModification, no value is given for CausingEntity.
15025	CausingEntity *string `type:"string"`
15026
15027	// The group to which the CausingEntity value belongs. There are five entity
15028	// groups:
15029	//
15030	//    * ResourceReference entities are Ref intrinsic functions that refer to
15031	//    resources in the template, such as { "Ref" : "MyEC2InstanceResource" }.
15032	//
15033	//    * ParameterReference entities are Ref intrinsic functions that get template
15034	//    parameter values, such as { "Ref" : "MyPasswordParameter" }.
15035	//
15036	//    * ResourceAttribute entities are Fn::GetAtt intrinsic functions that get
15037	//    resource attribute values, such as { "Fn::GetAtt" : [ "MyEC2InstanceResource",
15038	//    "PublicDnsName" ] }.
15039	//
15040	//    * DirectModification entities are changes that are made directly to the
15041	//    template.
15042	//
15043	//    * Automatic entities are AWS::CloudFormation::Stack resource types, which
15044	//    are also known as nested stacks. If you made no changes to the AWS::CloudFormation::Stack
15045	//    resource, CloudFormation sets the ChangeSource to Automatic because the
15046	//    nested stack's template might have changed. Changes to a nested stack's
15047	//    template aren't visible to CloudFormation until you run an update on the
15048	//    parent stack.
15049	ChangeSource *string `type:"string" enum:"ChangeSource"`
15050
15051	// Indicates whether CloudFormation can determine the target value, and whether
15052	// the target value will change before you execute a change set.
15053	//
15054	// For Static evaluations, CloudFormation can determine that the target value
15055	// will change, and its value. For example, if you directly modify the InstanceType
15056	// property of an EC2 instance, CloudFormation knows that this property value
15057	// will change, and its value, so this is a Static evaluation.
15058	//
15059	// For Dynamic evaluations, cannot determine the target value because it depends
15060	// on the result of an intrinsic function, such as a Ref or Fn::GetAtt intrinsic
15061	// function, when the stack is updated. For example, if your template includes
15062	// a reference to a resource that is conditionally recreated, the value of the
15063	// reference (the physical ID of the resource) might change, depending on if
15064	// the resource is recreated. If the resource is recreated, it will have a new
15065	// physical ID, so all references to that resource will also be updated.
15066	Evaluation *string `type:"string" enum:"EvaluationType"`
15067
15068	// A ResourceTargetDefinition structure that describes the field that CloudFormation
15069	// will change and whether the resource will be recreated.
15070	Target *ResourceTargetDefinition `type:"structure"`
15071}
15072
15073// String returns the string representation
15074func (s ResourceChangeDetail) String() string {
15075	return awsutil.Prettify(s)
15076}
15077
15078// GoString returns the string representation
15079func (s ResourceChangeDetail) GoString() string {
15080	return s.String()
15081}
15082
15083// SetCausingEntity sets the CausingEntity field's value.
15084func (s *ResourceChangeDetail) SetCausingEntity(v string) *ResourceChangeDetail {
15085	s.CausingEntity = &v
15086	return s
15087}
15088
15089// SetChangeSource sets the ChangeSource field's value.
15090func (s *ResourceChangeDetail) SetChangeSource(v string) *ResourceChangeDetail {
15091	s.ChangeSource = &v
15092	return s
15093}
15094
15095// SetEvaluation sets the Evaluation field's value.
15096func (s *ResourceChangeDetail) SetEvaluation(v string) *ResourceChangeDetail {
15097	s.Evaluation = &v
15098	return s
15099}
15100
15101// SetTarget sets the Target field's value.
15102func (s *ResourceChangeDetail) SetTarget(v *ResourceTargetDefinition) *ResourceChangeDetail {
15103	s.Target = v
15104	return s
15105}
15106
15107// Describes the target resources of a specific type in your import template
15108// (for example, all AWS::S3::Bucket resources) and the properties you can provide
15109// during the import to identify resources of that type.
15110type ResourceIdentifierSummary struct {
15111	_ struct{} `type:"structure"`
15112
15113	// The logical IDs of the target resources of the specified ResourceType, as
15114	// defined in the import template.
15115	LogicalResourceIds []*string `min:"1" type:"list"`
15116
15117	// The resource properties you can provide during the import to identify your
15118	// target resources. For example, BucketName is a possible identifier property
15119	// for AWS::S3::Bucket resources.
15120	ResourceIdentifiers []*string `type:"list"`
15121
15122	// The template resource type of the target resources, such as AWS::S3::Bucket.
15123	ResourceType *string `min:"1" type:"string"`
15124}
15125
15126// String returns the string representation
15127func (s ResourceIdentifierSummary) String() string {
15128	return awsutil.Prettify(s)
15129}
15130
15131// GoString returns the string representation
15132func (s ResourceIdentifierSummary) GoString() string {
15133	return s.String()
15134}
15135
15136// SetLogicalResourceIds sets the LogicalResourceIds field's value.
15137func (s *ResourceIdentifierSummary) SetLogicalResourceIds(v []*string) *ResourceIdentifierSummary {
15138	s.LogicalResourceIds = v
15139	return s
15140}
15141
15142// SetResourceIdentifiers sets the ResourceIdentifiers field's value.
15143func (s *ResourceIdentifierSummary) SetResourceIdentifiers(v []*string) *ResourceIdentifierSummary {
15144	s.ResourceIdentifiers = v
15145	return s
15146}
15147
15148// SetResourceType sets the ResourceType field's value.
15149func (s *ResourceIdentifierSummary) SetResourceType(v string) *ResourceIdentifierSummary {
15150	s.ResourceType = &v
15151	return s
15152}
15153
15154// The field that CloudFormation will change, such as the name of a resource's
15155// property, and whether the resource will be recreated.
15156type ResourceTargetDefinition struct {
15157	_ struct{} `type:"structure"`
15158
15159	// Indicates which resource attribute is triggering this update, such as a change
15160	// in the resource attribute's Metadata, Properties, or Tags.
15161	Attribute *string `type:"string" enum:"ResourceAttribute"`
15162
15163	// If the Attribute value is Properties, the name of the property. For all other
15164	// attributes, the value is null.
15165	Name *string `type:"string"`
15166
15167	// If the Attribute value is Properties, indicates whether a change to this
15168	// property causes the resource to be recreated. The value can be Never, Always,
15169	// or Conditionally. To determine the conditions for a Conditionally recreation,
15170	// see the update behavior for that property (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-template-resource-type-ref.html)
15171	// in the CloudFormation User Guide.
15172	RequiresRecreation *string `type:"string" enum:"RequiresRecreation"`
15173}
15174
15175// String returns the string representation
15176func (s ResourceTargetDefinition) String() string {
15177	return awsutil.Prettify(s)
15178}
15179
15180// GoString returns the string representation
15181func (s ResourceTargetDefinition) GoString() string {
15182	return s.String()
15183}
15184
15185// SetAttribute sets the Attribute field's value.
15186func (s *ResourceTargetDefinition) SetAttribute(v string) *ResourceTargetDefinition {
15187	s.Attribute = &v
15188	return s
15189}
15190
15191// SetName sets the Name field's value.
15192func (s *ResourceTargetDefinition) SetName(v string) *ResourceTargetDefinition {
15193	s.Name = &v
15194	return s
15195}
15196
15197// SetRequiresRecreation sets the RequiresRecreation field's value.
15198func (s *ResourceTargetDefinition) SetRequiresRecreation(v string) *ResourceTargetDefinition {
15199	s.RequiresRecreation = &v
15200	return s
15201}
15202
15203// Describes the target resource of an import operation.
15204type ResourceToImport struct {
15205	_ struct{} `type:"structure"`
15206
15207	// The logical ID of the target resource as specified in the template.
15208	//
15209	// LogicalResourceId is a required field
15210	LogicalResourceId *string `type:"string" required:"true"`
15211
15212	// A key-value pair that identifies the target resource. The key is an identifier
15213	// property (for example, BucketName for AWS::S3::Bucket resources) and the
15214	// value is the actual property value (for example, MyS3Bucket).
15215	//
15216	// ResourceIdentifier is a required field
15217	ResourceIdentifier map[string]*string `min:"1" type:"map" required:"true"`
15218
15219	// The type of resource to import into your stack, such as AWS::S3::Bucket.
15220	// For a list of supported resource types, see Resources that support import
15221	// operations (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/resource-import-supported-resources.html)
15222	// in the CloudFormation User Guide.
15223	//
15224	// ResourceType is a required field
15225	ResourceType *string `min:"1" type:"string" required:"true"`
15226}
15227
15228// String returns the string representation
15229func (s ResourceToImport) String() string {
15230	return awsutil.Prettify(s)
15231}
15232
15233// GoString returns the string representation
15234func (s ResourceToImport) GoString() string {
15235	return s.String()
15236}
15237
15238// Validate inspects the fields of the type to determine if they are valid.
15239func (s *ResourceToImport) Validate() error {
15240	invalidParams := request.ErrInvalidParams{Context: "ResourceToImport"}
15241	if s.LogicalResourceId == nil {
15242		invalidParams.Add(request.NewErrParamRequired("LogicalResourceId"))
15243	}
15244	if s.ResourceIdentifier == nil {
15245		invalidParams.Add(request.NewErrParamRequired("ResourceIdentifier"))
15246	}
15247	if s.ResourceIdentifier != nil && len(s.ResourceIdentifier) < 1 {
15248		invalidParams.Add(request.NewErrParamMinLen("ResourceIdentifier", 1))
15249	}
15250	if s.ResourceType == nil {
15251		invalidParams.Add(request.NewErrParamRequired("ResourceType"))
15252	}
15253	if s.ResourceType != nil && len(*s.ResourceType) < 1 {
15254		invalidParams.Add(request.NewErrParamMinLen("ResourceType", 1))
15255	}
15256
15257	if invalidParams.Len() > 0 {
15258		return invalidParams
15259	}
15260	return nil
15261}
15262
15263// SetLogicalResourceId sets the LogicalResourceId field's value.
15264func (s *ResourceToImport) SetLogicalResourceId(v string) *ResourceToImport {
15265	s.LogicalResourceId = &v
15266	return s
15267}
15268
15269// SetResourceIdentifier sets the ResourceIdentifier field's value.
15270func (s *ResourceToImport) SetResourceIdentifier(v map[string]*string) *ResourceToImport {
15271	s.ResourceIdentifier = v
15272	return s
15273}
15274
15275// SetResourceType sets the ResourceType field's value.
15276func (s *ResourceToImport) SetResourceType(v string) *ResourceToImport {
15277	s.ResourceType = &v
15278	return s
15279}
15280
15281// Structure containing the rollback triggers for CloudFormation to monitor
15282// during stack creation and updating operations, and for the specified monitoring
15283// period afterwards.
15284//
15285// Rollback triggers enable you to have CloudFormation monitor the state of
15286// your application during stack creation and updating, and to roll back that
15287// operation if the application breaches the threshold of any of the alarms
15288// you've specified. For more information, see Monitor and Roll Back Stack Operations
15289// (http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-rollback-triggers.html).
15290type RollbackConfiguration struct {
15291	_ struct{} `type:"structure"`
15292
15293	// The amount of time, in minutes, during which CloudFormation should monitor
15294	// all the rollback triggers after the stack creation or update operation deploys
15295	// all necessary resources.
15296	//
15297	// The default is 0 minutes.
15298	//
15299	// If you specify a monitoring period but do not specify any rollback triggers,
15300	// CloudFormation still waits the specified period of time before cleaning up
15301	// old resources after update operations. You can use this monitoring period
15302	// to perform any manual stack validation desired, and manually cancel the stack
15303	// creation or update (using CancelUpdateStack (https://docs.aws.amazon.com/AWSCloudFormation/latest/APIReference/API_CancelUpdateStack.html),
15304	// for example) as necessary.
15305	//
15306	// If you specify 0 for this parameter, CloudFormation still monitors the specified
15307	// rollback triggers during stack creation and update operations. Then, for
15308	// update operations, it begins disposing of old resources immediately once
15309	// the operation completes.
15310	MonitoringTimeInMinutes *int64 `type:"integer"`
15311
15312	// The triggers to monitor during stack creation or update actions.
15313	//
15314	// By default, CloudFormation saves the rollback triggers specified for a stack
15315	// and applies them to any subsequent update operations for the stack, unless
15316	// you specify otherwise. If you do specify rollback triggers for this parameter,
15317	// those triggers replace any list of triggers previously specified for the
15318	// stack. This means:
15319	//
15320	//    * To use the rollback triggers previously specified for this stack, if
15321	//    any, don't specify this parameter.
15322	//
15323	//    * To specify new or updated rollback triggers, you must specify all the
15324	//    triggers that you want used for this stack, even triggers you've specifed
15325	//    before (for example, when creating the stack or during a previous stack
15326	//    update). Any triggers that you don't include in the updated list of triggers
15327	//    are no longer applied to the stack.
15328	//
15329	//    * To remove all currently specified triggers, specify an empty list for
15330	//    this parameter.
15331	//
15332	// If a specified trigger is missing, the entire stack operation fails and is
15333	// rolled back.
15334	RollbackTriggers []*RollbackTrigger `type:"list"`
15335}
15336
15337// String returns the string representation
15338func (s RollbackConfiguration) String() string {
15339	return awsutil.Prettify(s)
15340}
15341
15342// GoString returns the string representation
15343func (s RollbackConfiguration) GoString() string {
15344	return s.String()
15345}
15346
15347// Validate inspects the fields of the type to determine if they are valid.
15348func (s *RollbackConfiguration) Validate() error {
15349	invalidParams := request.ErrInvalidParams{Context: "RollbackConfiguration"}
15350	if s.RollbackTriggers != nil {
15351		for i, v := range s.RollbackTriggers {
15352			if v == nil {
15353				continue
15354			}
15355			if err := v.Validate(); err != nil {
15356				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "RollbackTriggers", i), err.(request.ErrInvalidParams))
15357			}
15358		}
15359	}
15360
15361	if invalidParams.Len() > 0 {
15362		return invalidParams
15363	}
15364	return nil
15365}
15366
15367// SetMonitoringTimeInMinutes sets the MonitoringTimeInMinutes field's value.
15368func (s *RollbackConfiguration) SetMonitoringTimeInMinutes(v int64) *RollbackConfiguration {
15369	s.MonitoringTimeInMinutes = &v
15370	return s
15371}
15372
15373// SetRollbackTriggers sets the RollbackTriggers field's value.
15374func (s *RollbackConfiguration) SetRollbackTriggers(v []*RollbackTrigger) *RollbackConfiguration {
15375	s.RollbackTriggers = v
15376	return s
15377}
15378
15379type RollbackStackInput struct {
15380	_ struct{} `type:"structure"`
15381
15382	// A unique identifier for this RollbackStack request.
15383	ClientRequestToken *string `min:"1" type:"string"`
15384
15385	// The Amazon Resource Name (ARN) of an Identity and Access Management role
15386	// that CloudFormation assumes to rollback the stack.
15387	RoleARN *string `min:"20" type:"string"`
15388
15389	// The name that is associated with the stack.
15390	//
15391	// StackName is a required field
15392	StackName *string `min:"1" type:"string" required:"true"`
15393}
15394
15395// String returns the string representation
15396func (s RollbackStackInput) String() string {
15397	return awsutil.Prettify(s)
15398}
15399
15400// GoString returns the string representation
15401func (s RollbackStackInput) GoString() string {
15402	return s.String()
15403}
15404
15405// Validate inspects the fields of the type to determine if they are valid.
15406func (s *RollbackStackInput) Validate() error {
15407	invalidParams := request.ErrInvalidParams{Context: "RollbackStackInput"}
15408	if s.ClientRequestToken != nil && len(*s.ClientRequestToken) < 1 {
15409		invalidParams.Add(request.NewErrParamMinLen("ClientRequestToken", 1))
15410	}
15411	if s.RoleARN != nil && len(*s.RoleARN) < 20 {
15412		invalidParams.Add(request.NewErrParamMinLen("RoleARN", 20))
15413	}
15414	if s.StackName == nil {
15415		invalidParams.Add(request.NewErrParamRequired("StackName"))
15416	}
15417	if s.StackName != nil && len(*s.StackName) < 1 {
15418		invalidParams.Add(request.NewErrParamMinLen("StackName", 1))
15419	}
15420
15421	if invalidParams.Len() > 0 {
15422		return invalidParams
15423	}
15424	return nil
15425}
15426
15427// SetClientRequestToken sets the ClientRequestToken field's value.
15428func (s *RollbackStackInput) SetClientRequestToken(v string) *RollbackStackInput {
15429	s.ClientRequestToken = &v
15430	return s
15431}
15432
15433// SetRoleARN sets the RoleARN field's value.
15434func (s *RollbackStackInput) SetRoleARN(v string) *RollbackStackInput {
15435	s.RoleARN = &v
15436	return s
15437}
15438
15439// SetStackName sets the StackName field's value.
15440func (s *RollbackStackInput) SetStackName(v string) *RollbackStackInput {
15441	s.StackName = &v
15442	return s
15443}
15444
15445type RollbackStackOutput struct {
15446	_ struct{} `type:"structure"`
15447
15448	// Unique identifier of the stack.
15449	StackId *string `type:"string"`
15450}
15451
15452// String returns the string representation
15453func (s RollbackStackOutput) String() string {
15454	return awsutil.Prettify(s)
15455}
15456
15457// GoString returns the string representation
15458func (s RollbackStackOutput) GoString() string {
15459	return s.String()
15460}
15461
15462// SetStackId sets the StackId field's value.
15463func (s *RollbackStackOutput) SetStackId(v string) *RollbackStackOutput {
15464	s.StackId = &v
15465	return s
15466}
15467
15468// A rollback trigger CloudFormation monitors during creation and updating of
15469// stacks. If any of the alarms you specify goes to ALARM state during the stack
15470// operation or within the specified monitoring period afterwards, CloudFormation
15471// rolls back the entire stack operation.
15472type RollbackTrigger struct {
15473	_ struct{} `type:"structure"`
15474
15475	// The Amazon Resource Name (ARN) of the rollback trigger.
15476	//
15477	// If a specified trigger is missing, the entire stack operation fails and is
15478	// rolled back.
15479	//
15480	// Arn is a required field
15481	Arn *string `type:"string" required:"true"`
15482
15483	// The resource type of the rollback trigger. Currently, AWS::CloudWatch::Alarm
15484	// (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cw-alarm.html)
15485	// is the only supported resource type.
15486	//
15487	// Type is a required field
15488	Type *string `type:"string" required:"true"`
15489}
15490
15491// String returns the string representation
15492func (s RollbackTrigger) String() string {
15493	return awsutil.Prettify(s)
15494}
15495
15496// GoString returns the string representation
15497func (s RollbackTrigger) GoString() string {
15498	return s.String()
15499}
15500
15501// Validate inspects the fields of the type to determine if they are valid.
15502func (s *RollbackTrigger) Validate() error {
15503	invalidParams := request.ErrInvalidParams{Context: "RollbackTrigger"}
15504	if s.Arn == nil {
15505		invalidParams.Add(request.NewErrParamRequired("Arn"))
15506	}
15507	if s.Type == nil {
15508		invalidParams.Add(request.NewErrParamRequired("Type"))
15509	}
15510
15511	if invalidParams.Len() > 0 {
15512		return invalidParams
15513	}
15514	return nil
15515}
15516
15517// SetArn sets the Arn field's value.
15518func (s *RollbackTrigger) SetArn(v string) *RollbackTrigger {
15519	s.Arn = &v
15520	return s
15521}
15522
15523// SetType sets the Type field's value.
15524func (s *RollbackTrigger) SetType(v string) *RollbackTrigger {
15525	s.Type = &v
15526	return s
15527}
15528
15529// The input for the SetStackPolicy action.
15530type SetStackPolicyInput struct {
15531	_ struct{} `type:"structure"`
15532
15533	// The name or unique stack ID that you want to associate a policy with.
15534	//
15535	// StackName is a required field
15536	StackName *string `type:"string" required:"true"`
15537
15538	// Structure containing the stack policy body. For more information, go to Prevent
15539	// Updates to Stack Resources (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/protect-stack-resources.html)
15540	// in the CloudFormation User Guide. You can specify either the StackPolicyBody
15541	// or the StackPolicyURL parameter, but not both.
15542	StackPolicyBody *string `min:"1" type:"string"`
15543
15544	// Location of a file containing the stack policy. The URL must point to a policy
15545	// (maximum size: 16 KB) located in an S3 bucket in the same Region as the stack.
15546	// You can specify either the StackPolicyBody or the StackPolicyURL parameter,
15547	// but not both.
15548	StackPolicyURL *string `min:"1" type:"string"`
15549}
15550
15551// String returns the string representation
15552func (s SetStackPolicyInput) String() string {
15553	return awsutil.Prettify(s)
15554}
15555
15556// GoString returns the string representation
15557func (s SetStackPolicyInput) GoString() string {
15558	return s.String()
15559}
15560
15561// Validate inspects the fields of the type to determine if they are valid.
15562func (s *SetStackPolicyInput) Validate() error {
15563	invalidParams := request.ErrInvalidParams{Context: "SetStackPolicyInput"}
15564	if s.StackName == nil {
15565		invalidParams.Add(request.NewErrParamRequired("StackName"))
15566	}
15567	if s.StackPolicyBody != nil && len(*s.StackPolicyBody) < 1 {
15568		invalidParams.Add(request.NewErrParamMinLen("StackPolicyBody", 1))
15569	}
15570	if s.StackPolicyURL != nil && len(*s.StackPolicyURL) < 1 {
15571		invalidParams.Add(request.NewErrParamMinLen("StackPolicyURL", 1))
15572	}
15573
15574	if invalidParams.Len() > 0 {
15575		return invalidParams
15576	}
15577	return nil
15578}
15579
15580// SetStackName sets the StackName field's value.
15581func (s *SetStackPolicyInput) SetStackName(v string) *SetStackPolicyInput {
15582	s.StackName = &v
15583	return s
15584}
15585
15586// SetStackPolicyBody sets the StackPolicyBody field's value.
15587func (s *SetStackPolicyInput) SetStackPolicyBody(v string) *SetStackPolicyInput {
15588	s.StackPolicyBody = &v
15589	return s
15590}
15591
15592// SetStackPolicyURL sets the StackPolicyURL field's value.
15593func (s *SetStackPolicyInput) SetStackPolicyURL(v string) *SetStackPolicyInput {
15594	s.StackPolicyURL = &v
15595	return s
15596}
15597
15598type SetStackPolicyOutput struct {
15599	_ struct{} `type:"structure"`
15600}
15601
15602// String returns the string representation
15603func (s SetStackPolicyOutput) String() string {
15604	return awsutil.Prettify(s)
15605}
15606
15607// GoString returns the string representation
15608func (s SetStackPolicyOutput) GoString() string {
15609	return s.String()
15610}
15611
15612type SetTypeConfigurationInput struct {
15613	_ struct{} `type:"structure"`
15614
15615	// The configuration data for the extension, in this account and region.
15616	//
15617	// The configuration data must be formatted as JSON, and validate against the
15618	// schema returned in the ConfigurationSchema response element of API_DescribeType
15619	// (AWSCloudFormation/latest/APIReference/API_DescribeType.html). For more information,
15620	// 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)
15621	// in the CloudFormation CLI User Guide.
15622	//
15623	// Configuration is a required field
15624	Configuration *string `min:"1" type:"string" required:"true"`
15625
15626	// An alias by which to refer to this extension configuration data.
15627	//
15628	// Conditional: Specifying a configuration alias is required when setting a
15629	// configuration for a resource type extension.
15630	ConfigurationAlias *string `min:"1" type:"string"`
15631
15632	// The type of extension.
15633	//
15634	// Conditional: You must specify ConfigurationArn, or Type and TypeName.
15635	Type *string `type:"string" enum:"ThirdPartyType"`
15636
15637	// The Amazon Resource Name (ARN) for the extension, in this account and region.
15638	//
15639	// For public extensions, this will be the ARN assigned when you activate the
15640	// type (https://docs.aws.amazon.com/AWSCloudFormation/latest/APIReference/API_ActivateType.html)
15641	// in this account and region. For private extensions, this will be the ARN
15642	// assigned when you register the type (https://docs.aws.amazon.com/AWSCloudFormation/latest/APIReference/API_RegisterType.html)
15643	// in this account and region.
15644	//
15645	// Do not include the extension versions suffix at the end of the ARN. You can
15646	// set the configuration for an extension, but not for a specific extension
15647	// version.
15648	TypeArn *string `type:"string"`
15649
15650	// The name of the extension.
15651	//
15652	// Conditional: You must specify ConfigurationArn, or Type and TypeName.
15653	TypeName *string `min:"10" type:"string"`
15654}
15655
15656// String returns the string representation
15657func (s SetTypeConfigurationInput) String() string {
15658	return awsutil.Prettify(s)
15659}
15660
15661// GoString returns the string representation
15662func (s SetTypeConfigurationInput) GoString() string {
15663	return s.String()
15664}
15665
15666// Validate inspects the fields of the type to determine if they are valid.
15667func (s *SetTypeConfigurationInput) Validate() error {
15668	invalidParams := request.ErrInvalidParams{Context: "SetTypeConfigurationInput"}
15669	if s.Configuration == nil {
15670		invalidParams.Add(request.NewErrParamRequired("Configuration"))
15671	}
15672	if s.Configuration != nil && len(*s.Configuration) < 1 {
15673		invalidParams.Add(request.NewErrParamMinLen("Configuration", 1))
15674	}
15675	if s.ConfigurationAlias != nil && len(*s.ConfigurationAlias) < 1 {
15676		invalidParams.Add(request.NewErrParamMinLen("ConfigurationAlias", 1))
15677	}
15678	if s.TypeName != nil && len(*s.TypeName) < 10 {
15679		invalidParams.Add(request.NewErrParamMinLen("TypeName", 10))
15680	}
15681
15682	if invalidParams.Len() > 0 {
15683		return invalidParams
15684	}
15685	return nil
15686}
15687
15688// SetConfiguration sets the Configuration field's value.
15689func (s *SetTypeConfigurationInput) SetConfiguration(v string) *SetTypeConfigurationInput {
15690	s.Configuration = &v
15691	return s
15692}
15693
15694// SetConfigurationAlias sets the ConfigurationAlias field's value.
15695func (s *SetTypeConfigurationInput) SetConfigurationAlias(v string) *SetTypeConfigurationInput {
15696	s.ConfigurationAlias = &v
15697	return s
15698}
15699
15700// SetType sets the Type field's value.
15701func (s *SetTypeConfigurationInput) SetType(v string) *SetTypeConfigurationInput {
15702	s.Type = &v
15703	return s
15704}
15705
15706// SetTypeArn sets the TypeArn field's value.
15707func (s *SetTypeConfigurationInput) SetTypeArn(v string) *SetTypeConfigurationInput {
15708	s.TypeArn = &v
15709	return s
15710}
15711
15712// SetTypeName sets the TypeName field's value.
15713func (s *SetTypeConfigurationInput) SetTypeName(v string) *SetTypeConfigurationInput {
15714	s.TypeName = &v
15715	return s
15716}
15717
15718type SetTypeConfigurationOutput struct {
15719	_ struct{} `type:"structure"`
15720
15721	// The Amazon Resource Name (ARN) for the configuration data, in this account
15722	// and region.
15723	//
15724	// Conditional: You must specify ConfigurationArn, or Type and TypeName.
15725	ConfigurationArn *string `type:"string"`
15726}
15727
15728// String returns the string representation
15729func (s SetTypeConfigurationOutput) String() string {
15730	return awsutil.Prettify(s)
15731}
15732
15733// GoString returns the string representation
15734func (s SetTypeConfigurationOutput) GoString() string {
15735	return s.String()
15736}
15737
15738// SetConfigurationArn sets the ConfigurationArn field's value.
15739func (s *SetTypeConfigurationOutput) SetConfigurationArn(v string) *SetTypeConfigurationOutput {
15740	s.ConfigurationArn = &v
15741	return s
15742}
15743
15744type SetTypeDefaultVersionInput struct {
15745	_ struct{} `type:"structure"`
15746
15747	// The Amazon Resource Name (ARN) of the extension for which you want version
15748	// summary information.
15749	//
15750	// Conditional: You must specify either TypeName and Type, or Arn.
15751	Arn *string `type:"string"`
15752
15753	// The kind of extension.
15754	//
15755	// Conditional: You must specify either TypeName and Type, or Arn.
15756	Type *string `type:"string" enum:"RegistryType"`
15757
15758	// The name of the extension.
15759	//
15760	// Conditional: You must specify either TypeName and Type, or Arn.
15761	TypeName *string `min:"10" type:"string"`
15762
15763	// The ID of a specific version of the extension. The version ID is the value
15764	// at the end of the Amazon Resource Name (ARN) assigned to the extension version
15765	// when it is registered.
15766	VersionId *string `min:"1" type:"string"`
15767}
15768
15769// String returns the string representation
15770func (s SetTypeDefaultVersionInput) String() string {
15771	return awsutil.Prettify(s)
15772}
15773
15774// GoString returns the string representation
15775func (s SetTypeDefaultVersionInput) GoString() string {
15776	return s.String()
15777}
15778
15779// Validate inspects the fields of the type to determine if they are valid.
15780func (s *SetTypeDefaultVersionInput) Validate() error {
15781	invalidParams := request.ErrInvalidParams{Context: "SetTypeDefaultVersionInput"}
15782	if s.TypeName != nil && len(*s.TypeName) < 10 {
15783		invalidParams.Add(request.NewErrParamMinLen("TypeName", 10))
15784	}
15785	if s.VersionId != nil && len(*s.VersionId) < 1 {
15786		invalidParams.Add(request.NewErrParamMinLen("VersionId", 1))
15787	}
15788
15789	if invalidParams.Len() > 0 {
15790		return invalidParams
15791	}
15792	return nil
15793}
15794
15795// SetArn sets the Arn field's value.
15796func (s *SetTypeDefaultVersionInput) SetArn(v string) *SetTypeDefaultVersionInput {
15797	s.Arn = &v
15798	return s
15799}
15800
15801// SetType sets the Type field's value.
15802func (s *SetTypeDefaultVersionInput) SetType(v string) *SetTypeDefaultVersionInput {
15803	s.Type = &v
15804	return s
15805}
15806
15807// SetTypeName sets the TypeName field's value.
15808func (s *SetTypeDefaultVersionInput) SetTypeName(v string) *SetTypeDefaultVersionInput {
15809	s.TypeName = &v
15810	return s
15811}
15812
15813// SetVersionId sets the VersionId field's value.
15814func (s *SetTypeDefaultVersionInput) SetVersionId(v string) *SetTypeDefaultVersionInput {
15815	s.VersionId = &v
15816	return s
15817}
15818
15819type SetTypeDefaultVersionOutput struct {
15820	_ struct{} `type:"structure"`
15821}
15822
15823// String returns the string representation
15824func (s SetTypeDefaultVersionOutput) String() string {
15825	return awsutil.Prettify(s)
15826}
15827
15828// GoString returns the string representation
15829func (s SetTypeDefaultVersionOutput) GoString() string {
15830	return s.String()
15831}
15832
15833// The input for the SignalResource action.
15834type SignalResourceInput struct {
15835	_ struct{} `type:"structure"`
15836
15837	// The logical ID of the resource that you want to signal. The logical ID is
15838	// the name of the resource that given in the template.
15839	//
15840	// LogicalResourceId is a required field
15841	LogicalResourceId *string `type:"string" required:"true"`
15842
15843	// The stack name or unique stack ID that includes the resource that you want
15844	// to signal.
15845	//
15846	// StackName is a required field
15847	StackName *string `min:"1" type:"string" required:"true"`
15848
15849	// The status of the signal, which is either success or failure. A failure signal
15850	// causes CloudFormation to immediately fail the stack creation or update.
15851	//
15852	// Status is a required field
15853	Status *string `type:"string" required:"true" enum:"ResourceSignalStatus"`
15854
15855	// A unique ID of the signal. When you signal Amazon EC2 instances or Auto Scaling
15856	// groups, specify the instance ID that you are signaling as the unique ID.
15857	// If you send multiple signals to a single resource (such as signaling a wait
15858	// condition), each signal requires a different unique ID.
15859	//
15860	// UniqueId is a required field
15861	UniqueId *string `min:"1" type:"string" required:"true"`
15862}
15863
15864// String returns the string representation
15865func (s SignalResourceInput) String() string {
15866	return awsutil.Prettify(s)
15867}
15868
15869// GoString returns the string representation
15870func (s SignalResourceInput) GoString() string {
15871	return s.String()
15872}
15873
15874// Validate inspects the fields of the type to determine if they are valid.
15875func (s *SignalResourceInput) Validate() error {
15876	invalidParams := request.ErrInvalidParams{Context: "SignalResourceInput"}
15877	if s.LogicalResourceId == nil {
15878		invalidParams.Add(request.NewErrParamRequired("LogicalResourceId"))
15879	}
15880	if s.StackName == nil {
15881		invalidParams.Add(request.NewErrParamRequired("StackName"))
15882	}
15883	if s.StackName != nil && len(*s.StackName) < 1 {
15884		invalidParams.Add(request.NewErrParamMinLen("StackName", 1))
15885	}
15886	if s.Status == nil {
15887		invalidParams.Add(request.NewErrParamRequired("Status"))
15888	}
15889	if s.UniqueId == nil {
15890		invalidParams.Add(request.NewErrParamRequired("UniqueId"))
15891	}
15892	if s.UniqueId != nil && len(*s.UniqueId) < 1 {
15893		invalidParams.Add(request.NewErrParamMinLen("UniqueId", 1))
15894	}
15895
15896	if invalidParams.Len() > 0 {
15897		return invalidParams
15898	}
15899	return nil
15900}
15901
15902// SetLogicalResourceId sets the LogicalResourceId field's value.
15903func (s *SignalResourceInput) SetLogicalResourceId(v string) *SignalResourceInput {
15904	s.LogicalResourceId = &v
15905	return s
15906}
15907
15908// SetStackName sets the StackName field's value.
15909func (s *SignalResourceInput) SetStackName(v string) *SignalResourceInput {
15910	s.StackName = &v
15911	return s
15912}
15913
15914// SetStatus sets the Status field's value.
15915func (s *SignalResourceInput) SetStatus(v string) *SignalResourceInput {
15916	s.Status = &v
15917	return s
15918}
15919
15920// SetUniqueId sets the UniqueId field's value.
15921func (s *SignalResourceInput) SetUniqueId(v string) *SignalResourceInput {
15922	s.UniqueId = &v
15923	return s
15924}
15925
15926type SignalResourceOutput struct {
15927	_ struct{} `type:"structure"`
15928}
15929
15930// String returns the string representation
15931func (s SignalResourceOutput) String() string {
15932	return awsutil.Prettify(s)
15933}
15934
15935// GoString returns the string representation
15936func (s SignalResourceOutput) GoString() string {
15937	return s.String()
15938}
15939
15940// The Stack data type.
15941type Stack struct {
15942	_ struct{} `type:"structure"`
15943
15944	// The capabilities allowed in the stack.
15945	Capabilities []*string `type:"list"`
15946
15947	// The unique ID of the change set.
15948	ChangeSetId *string `min:"1" type:"string"`
15949
15950	// The time at which the stack was created.
15951	//
15952	// CreationTime is a required field
15953	CreationTime *time.Time `type:"timestamp" required:"true"`
15954
15955	// The time the stack was deleted.
15956	DeletionTime *time.Time `type:"timestamp"`
15957
15958	// A user-defined description associated with the stack.
15959	Description *string `min:"1" type:"string"`
15960
15961	// Boolean to enable or disable rollback on stack creation failures:
15962	//
15963	//    * true: disable rollback
15964	//
15965	//    * false: enable rollback
15966	DisableRollback *bool `type:"boolean"`
15967
15968	// Information on whether a stack's actual configuration differs, or has drifted,
15969	// from it's expected configuration, as defined in the stack template and any
15970	// values specified as template parameters. For more information, see Detecting
15971	// Unregulated Configuration Changes to Stacks and Resources (http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-stack-drift.html).
15972	DriftInformation *StackDriftInformation `type:"structure"`
15973
15974	// Whether termination protection is enabled for the stack.
15975	//
15976	// For nested stacks (http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-nested-stacks.html),
15977	// termination protection is set on the root stack and cannot be changed directly
15978	// on the nested stack. For more information, see Protecting a Stack From Being
15979	// Deleted (http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-protect-stacks.html)
15980	// in the CloudFormation User Guide.
15981	EnableTerminationProtection *bool `type:"boolean"`
15982
15983	// The time the stack was last updated. This field will only be returned if
15984	// the stack has been updated at least once.
15985	LastUpdatedTime *time.Time `type:"timestamp"`
15986
15987	// SNS topic ARNs to which stack related events are published.
15988	NotificationARNs []*string `type:"list"`
15989
15990	// A list of output structures.
15991	Outputs []*Output `type:"list"`
15992
15993	// A list of Parameter structures.
15994	Parameters []*Parameter `type:"list"`
15995
15996	// For nested stacks--stacks created as resources for another stack--the stack
15997	// ID of the direct parent of this stack. For the first level of nested stacks,
15998	// the root stack is also the parent stack.
15999	//
16000	// For more information, see Working with Nested Stacks (http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-nested-stacks.html)
16001	// in the CloudFormation User Guide.
16002	ParentId *string `type:"string"`
16003
16004	// The Amazon Resource Name (ARN) of an Identity and Access Management (IAM)
16005	// role that is associated with the stack. During a stack operation, CloudFormation
16006	// uses this role's credentials to make calls on your behalf.
16007	RoleARN *string `min:"20" type:"string"`
16008
16009	// The rollback triggers for CloudFormation to monitor during stack creation
16010	// and updating operations, and for the specified monitoring period afterwards.
16011	RollbackConfiguration *RollbackConfiguration `type:"structure"`
16012
16013	// For nested stacks--stacks created as resources for another stack--the stack
16014	// ID of the top-level stack to which the nested stack ultimately belongs.
16015	//
16016	// For more information, see Working with Nested Stacks (http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-nested-stacks.html)
16017	// in the CloudFormation User Guide.
16018	RootId *string `type:"string"`
16019
16020	// Unique identifier of the stack.
16021	StackId *string `type:"string"`
16022
16023	// The name associated with the stack.
16024	//
16025	// StackName is a required field
16026	StackName *string `type:"string" required:"true"`
16027
16028	// Current status of the stack.
16029	//
16030	// StackStatus is a required field
16031	StackStatus *string `type:"string" required:"true" enum:"StackStatus"`
16032
16033	// Success/failure message associated with the stack status.
16034	StackStatusReason *string `type:"string"`
16035
16036	// A list of Tags that specify information about the stack.
16037	Tags []*Tag `type:"list"`
16038
16039	// The amount of time within which stack creation should complete.
16040	TimeoutInMinutes *int64 `min:"1" type:"integer"`
16041}
16042
16043// String returns the string representation
16044func (s Stack) String() string {
16045	return awsutil.Prettify(s)
16046}
16047
16048// GoString returns the string representation
16049func (s Stack) GoString() string {
16050	return s.String()
16051}
16052
16053// SetCapabilities sets the Capabilities field's value.
16054func (s *Stack) SetCapabilities(v []*string) *Stack {
16055	s.Capabilities = v
16056	return s
16057}
16058
16059// SetChangeSetId sets the ChangeSetId field's value.
16060func (s *Stack) SetChangeSetId(v string) *Stack {
16061	s.ChangeSetId = &v
16062	return s
16063}
16064
16065// SetCreationTime sets the CreationTime field's value.
16066func (s *Stack) SetCreationTime(v time.Time) *Stack {
16067	s.CreationTime = &v
16068	return s
16069}
16070
16071// SetDeletionTime sets the DeletionTime field's value.
16072func (s *Stack) SetDeletionTime(v time.Time) *Stack {
16073	s.DeletionTime = &v
16074	return s
16075}
16076
16077// SetDescription sets the Description field's value.
16078func (s *Stack) SetDescription(v string) *Stack {
16079	s.Description = &v
16080	return s
16081}
16082
16083// SetDisableRollback sets the DisableRollback field's value.
16084func (s *Stack) SetDisableRollback(v bool) *Stack {
16085	s.DisableRollback = &v
16086	return s
16087}
16088
16089// SetDriftInformation sets the DriftInformation field's value.
16090func (s *Stack) SetDriftInformation(v *StackDriftInformation) *Stack {
16091	s.DriftInformation = v
16092	return s
16093}
16094
16095// SetEnableTerminationProtection sets the EnableTerminationProtection field's value.
16096func (s *Stack) SetEnableTerminationProtection(v bool) *Stack {
16097	s.EnableTerminationProtection = &v
16098	return s
16099}
16100
16101// SetLastUpdatedTime sets the LastUpdatedTime field's value.
16102func (s *Stack) SetLastUpdatedTime(v time.Time) *Stack {
16103	s.LastUpdatedTime = &v
16104	return s
16105}
16106
16107// SetNotificationARNs sets the NotificationARNs field's value.
16108func (s *Stack) SetNotificationARNs(v []*string) *Stack {
16109	s.NotificationARNs = v
16110	return s
16111}
16112
16113// SetOutputs sets the Outputs field's value.
16114func (s *Stack) SetOutputs(v []*Output) *Stack {
16115	s.Outputs = v
16116	return s
16117}
16118
16119// SetParameters sets the Parameters field's value.
16120func (s *Stack) SetParameters(v []*Parameter) *Stack {
16121	s.Parameters = v
16122	return s
16123}
16124
16125// SetParentId sets the ParentId field's value.
16126func (s *Stack) SetParentId(v string) *Stack {
16127	s.ParentId = &v
16128	return s
16129}
16130
16131// SetRoleARN sets the RoleARN field's value.
16132func (s *Stack) SetRoleARN(v string) *Stack {
16133	s.RoleARN = &v
16134	return s
16135}
16136
16137// SetRollbackConfiguration sets the RollbackConfiguration field's value.
16138func (s *Stack) SetRollbackConfiguration(v *RollbackConfiguration) *Stack {
16139	s.RollbackConfiguration = v
16140	return s
16141}
16142
16143// SetRootId sets the RootId field's value.
16144func (s *Stack) SetRootId(v string) *Stack {
16145	s.RootId = &v
16146	return s
16147}
16148
16149// SetStackId sets the StackId field's value.
16150func (s *Stack) SetStackId(v string) *Stack {
16151	s.StackId = &v
16152	return s
16153}
16154
16155// SetStackName sets the StackName field's value.
16156func (s *Stack) SetStackName(v string) *Stack {
16157	s.StackName = &v
16158	return s
16159}
16160
16161// SetStackStatus sets the StackStatus field's value.
16162func (s *Stack) SetStackStatus(v string) *Stack {
16163	s.StackStatus = &v
16164	return s
16165}
16166
16167// SetStackStatusReason sets the StackStatusReason field's value.
16168func (s *Stack) SetStackStatusReason(v string) *Stack {
16169	s.StackStatusReason = &v
16170	return s
16171}
16172
16173// SetTags sets the Tags field's value.
16174func (s *Stack) SetTags(v []*Tag) *Stack {
16175	s.Tags = v
16176	return s
16177}
16178
16179// SetTimeoutInMinutes sets the TimeoutInMinutes field's value.
16180func (s *Stack) SetTimeoutInMinutes(v int64) *Stack {
16181	s.TimeoutInMinutes = &v
16182	return s
16183}
16184
16185// Contains information about whether the stack's actual configuration differs,
16186// or has drifted, from its expected configuration, as defined in the stack
16187// template and any values specified as template parameters. A stack is considered
16188// to have drifted if one or more of its resources have drifted.
16189type StackDriftInformation struct {
16190	_ struct{} `type:"structure"`
16191
16192	// Most recent time when a drift detection operation was initiated on the stack,
16193	// or any of its individual resources that support drift detection.
16194	LastCheckTimestamp *time.Time `type:"timestamp"`
16195
16196	// Status of the stack's actual configuration compared to its expected template
16197	// configuration.
16198	//
16199	//    * DRIFTED: The stack differs from its expected template configuration.
16200	//    A stack is considered to have drifted if one or more of its resources
16201	//    have drifted.
16202	//
16203	//    * NOT_CHECKED: CloudFormation has not checked if the stack differs from
16204	//    its expected template configuration.
16205	//
16206	//    * IN_SYNC: The stack's actual configuration matches its expected template
16207	//    configuration.
16208	//
16209	//    * UNKNOWN: This value is reserved for future use.
16210	//
16211	// StackDriftStatus is a required field
16212	StackDriftStatus *string `type:"string" required:"true" enum:"StackDriftStatus"`
16213}
16214
16215// String returns the string representation
16216func (s StackDriftInformation) String() string {
16217	return awsutil.Prettify(s)
16218}
16219
16220// GoString returns the string representation
16221func (s StackDriftInformation) GoString() string {
16222	return s.String()
16223}
16224
16225// SetLastCheckTimestamp sets the LastCheckTimestamp field's value.
16226func (s *StackDriftInformation) SetLastCheckTimestamp(v time.Time) *StackDriftInformation {
16227	s.LastCheckTimestamp = &v
16228	return s
16229}
16230
16231// SetStackDriftStatus sets the StackDriftStatus field's value.
16232func (s *StackDriftInformation) SetStackDriftStatus(v string) *StackDriftInformation {
16233	s.StackDriftStatus = &v
16234	return s
16235}
16236
16237// Contains information about whether the stack's actual configuration differs,
16238// or has drifted, from its expected configuration, as defined in the stack
16239// template and any values specified as template parameters. A stack is considered
16240// to have drifted if one or more of its resources have drifted.
16241type StackDriftInformationSummary struct {
16242	_ struct{} `type:"structure"`
16243
16244	// Most recent time when a drift detection operation was initiated on the stack,
16245	// or any of its individual resources that support drift detection.
16246	LastCheckTimestamp *time.Time `type:"timestamp"`
16247
16248	// Status of the stack's actual configuration compared to its expected template
16249	// configuration.
16250	//
16251	//    * DRIFTED: The stack differs from its expected template configuration.
16252	//    A stack is considered to have drifted if one or more of its resources
16253	//    have drifted.
16254	//
16255	//    * NOT_CHECKED: CloudFormation has not checked if the stack differs from
16256	//    its expected template configuration.
16257	//
16258	//    * IN_SYNC: The stack's actual configuration matches its expected template
16259	//    configuration.
16260	//
16261	//    * UNKNOWN: This value is reserved for future use.
16262	//
16263	// StackDriftStatus is a required field
16264	StackDriftStatus *string `type:"string" required:"true" enum:"StackDriftStatus"`
16265}
16266
16267// String returns the string representation
16268func (s StackDriftInformationSummary) String() string {
16269	return awsutil.Prettify(s)
16270}
16271
16272// GoString returns the string representation
16273func (s StackDriftInformationSummary) GoString() string {
16274	return s.String()
16275}
16276
16277// SetLastCheckTimestamp sets the LastCheckTimestamp field's value.
16278func (s *StackDriftInformationSummary) SetLastCheckTimestamp(v time.Time) *StackDriftInformationSummary {
16279	s.LastCheckTimestamp = &v
16280	return s
16281}
16282
16283// SetStackDriftStatus sets the StackDriftStatus field's value.
16284func (s *StackDriftInformationSummary) SetStackDriftStatus(v string) *StackDriftInformationSummary {
16285	s.StackDriftStatus = &v
16286	return s
16287}
16288
16289// The StackEvent data type.
16290type StackEvent struct {
16291	_ struct{} `type:"structure"`
16292
16293	// The token passed to the operation that generated this event.
16294	//
16295	// All events triggered by a given stack operation are assigned the same client
16296	// request token, which you can use to track operations. For example, if you
16297	// execute a CreateStack operation with the token token1, then all the StackEvents
16298	// generated by that operation will have ClientRequestToken set as token1.
16299	//
16300	// In the console, stack operations display the client request token on the
16301	// Events tab. Stack operations that are initiated from the console use the
16302	// token format Console-StackOperation-ID, which helps you easily identify the
16303	// stack operation . For example, if you create a stack using the console, each
16304	// stack event would be assigned the same token in the following format: Console-CreateStack-7f59c3cf-00d2-40c7-b2ff-e75db0987002.
16305	ClientRequestToken *string `min:"1" type:"string"`
16306
16307	// The unique ID of this event.
16308	//
16309	// EventId is a required field
16310	EventId *string `type:"string" required:"true"`
16311
16312	// The logical name of the resource specified in the template.
16313	LogicalResourceId *string `type:"string"`
16314
16315	// The name or unique identifier associated with the physical instance of the
16316	// resource.
16317	PhysicalResourceId *string `type:"string"`
16318
16319	// BLOB of the properties used to create the resource.
16320	ResourceProperties *string `type:"string"`
16321
16322	// Current status of the resource.
16323	ResourceStatus *string `type:"string" enum:"ResourceStatus"`
16324
16325	// Success/failure message associated with the resource.
16326	ResourceStatusReason *string `type:"string"`
16327
16328	// Type of resource. (For more information, go to Amazon Web Services Resource
16329	// Types Reference (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-template-resource-type-ref.html)
16330	// in the CloudFormation User Guide.)
16331	ResourceType *string `min:"1" type:"string"`
16332
16333	// The unique ID name of the instance of the stack.
16334	//
16335	// StackId is a required field
16336	StackId *string `type:"string" required:"true"`
16337
16338	// The name associated with a stack.
16339	//
16340	// StackName is a required field
16341	StackName *string `type:"string" required:"true"`
16342
16343	// Time the status was updated.
16344	//
16345	// Timestamp is a required field
16346	Timestamp *time.Time `type:"timestamp" required:"true"`
16347}
16348
16349// String returns the string representation
16350func (s StackEvent) String() string {
16351	return awsutil.Prettify(s)
16352}
16353
16354// GoString returns the string representation
16355func (s StackEvent) GoString() string {
16356	return s.String()
16357}
16358
16359// SetClientRequestToken sets the ClientRequestToken field's value.
16360func (s *StackEvent) SetClientRequestToken(v string) *StackEvent {
16361	s.ClientRequestToken = &v
16362	return s
16363}
16364
16365// SetEventId sets the EventId field's value.
16366func (s *StackEvent) SetEventId(v string) *StackEvent {
16367	s.EventId = &v
16368	return s
16369}
16370
16371// SetLogicalResourceId sets the LogicalResourceId field's value.
16372func (s *StackEvent) SetLogicalResourceId(v string) *StackEvent {
16373	s.LogicalResourceId = &v
16374	return s
16375}
16376
16377// SetPhysicalResourceId sets the PhysicalResourceId field's value.
16378func (s *StackEvent) SetPhysicalResourceId(v string) *StackEvent {
16379	s.PhysicalResourceId = &v
16380	return s
16381}
16382
16383// SetResourceProperties sets the ResourceProperties field's value.
16384func (s *StackEvent) SetResourceProperties(v string) *StackEvent {
16385	s.ResourceProperties = &v
16386	return s
16387}
16388
16389// SetResourceStatus sets the ResourceStatus field's value.
16390func (s *StackEvent) SetResourceStatus(v string) *StackEvent {
16391	s.ResourceStatus = &v
16392	return s
16393}
16394
16395// SetResourceStatusReason sets the ResourceStatusReason field's value.
16396func (s *StackEvent) SetResourceStatusReason(v string) *StackEvent {
16397	s.ResourceStatusReason = &v
16398	return s
16399}
16400
16401// SetResourceType sets the ResourceType field's value.
16402func (s *StackEvent) SetResourceType(v string) *StackEvent {
16403	s.ResourceType = &v
16404	return s
16405}
16406
16407// SetStackId sets the StackId field's value.
16408func (s *StackEvent) SetStackId(v string) *StackEvent {
16409	s.StackId = &v
16410	return s
16411}
16412
16413// SetStackName sets the StackName field's value.
16414func (s *StackEvent) SetStackName(v string) *StackEvent {
16415	s.StackName = &v
16416	return s
16417}
16418
16419// SetTimestamp sets the Timestamp field's value.
16420func (s *StackEvent) SetTimestamp(v time.Time) *StackEvent {
16421	s.Timestamp = &v
16422	return s
16423}
16424
16425// An CloudFormation stack, in a specific account and Region, that's part of
16426// a stack set operation. A stack instance is a reference to an attempted or
16427// actual stack in a given account within a given Region. A stack instance can
16428// exist without a stack—for example, if the stack couldn't be created for
16429// some reason. A stack instance is associated with only one stack set. Each
16430// stack instance contains the ID of its associated stack set, as well as the
16431// ID of the actual stack and the stack status.
16432type StackInstance struct {
16433	_ struct{} `type:"structure"`
16434
16435	// [Self-managed permissions] The name of the Amazon Web Services account that
16436	// the stack instance is associated with.
16437	Account *string `type:"string"`
16438
16439	// Status of the stack instance's actual configuration compared to the expected
16440	// template and parameter configuration of the stack set to which it belongs.
16441	//
16442	//    * DRIFTED: The stack differs from the expected template and parameter
16443	//    configuration of the stack set to which it belongs. A stack instance is
16444	//    considered to have drifted if one or more of the resources in the associated
16445	//    stack have drifted.
16446	//
16447	//    * NOT_CHECKED: CloudFormation has not checked if the stack instance differs
16448	//    from its expected stack set configuration.
16449	//
16450	//    * IN_SYNC: The stack instance's actual configuration matches its expected
16451	//    stack set configuration.
16452	//
16453	//    * UNKNOWN: This value is reserved for future use.
16454	DriftStatus *string `type:"string" enum:"StackDriftStatus"`
16455
16456	// Most recent time when CloudFormation performed a drift detection operation
16457	// on the stack instance. This value will be NULL for any stack instance on
16458	// which drift detection has not yet been performed.
16459	LastDriftCheckTimestamp *time.Time `type:"timestamp"`
16460
16461	// [Service-managed permissions] The organization root ID or organizational
16462	// unit (OU) IDs that you specified for DeploymentTargets (https://docs.aws.amazon.com/AWSCloudFormation/latest/APIReference/API_DeploymentTargets.html).
16463	OrganizationalUnitId *string `type:"string"`
16464
16465	// A list of parameters from the stack set template whose values have been overridden
16466	// in this stack instance.
16467	ParameterOverrides []*Parameter `type:"list"`
16468
16469	// The name of the Amazon Web Services Region that the stack instance is associated
16470	// with.
16471	Region *string `type:"string"`
16472
16473	// The ID of the stack instance.
16474	StackId *string `type:"string"`
16475
16476	// The detailed status of the stack instance.
16477	StackInstanceStatus *StackInstanceComprehensiveStatus `type:"structure"`
16478
16479	// The name or unique ID of the stack set that the stack instance is associated
16480	// with.
16481	StackSetId *string `type:"string"`
16482
16483	// The status of the stack instance, in terms of its synchronization with its
16484	// associated stack set.
16485	//
16486	//    * INOPERABLE: A DeleteStackInstances operation has failed and left the
16487	//    stack in an unstable state. Stacks in this state are excluded from further
16488	//    UpdateStackSet operations. You might need to perform a DeleteStackInstances
16489	//    operation, with RetainStacks set to true, to delete the stack instance,
16490	//    and then delete the stack manually.
16491	//
16492	//    * OUTDATED: The stack isn't currently up to date with the stack set because:
16493	//    The associated stack failed during a CreateStackSet or UpdateStackSet
16494	//    operation. The stack was part of a CreateStackSet or UpdateStackSet operation
16495	//    that failed or was stopped before the stack was created or updated.
16496	//
16497	//    * CURRENT: The stack is currently up to date with the stack set.
16498	Status *string `type:"string" enum:"StackInstanceStatus"`
16499
16500	// The explanation for the specific status code that is assigned to this stack
16501	// instance.
16502	StatusReason *string `type:"string"`
16503}
16504
16505// String returns the string representation
16506func (s StackInstance) String() string {
16507	return awsutil.Prettify(s)
16508}
16509
16510// GoString returns the string representation
16511func (s StackInstance) GoString() string {
16512	return s.String()
16513}
16514
16515// SetAccount sets the Account field's value.
16516func (s *StackInstance) SetAccount(v string) *StackInstance {
16517	s.Account = &v
16518	return s
16519}
16520
16521// SetDriftStatus sets the DriftStatus field's value.
16522func (s *StackInstance) SetDriftStatus(v string) *StackInstance {
16523	s.DriftStatus = &v
16524	return s
16525}
16526
16527// SetLastDriftCheckTimestamp sets the LastDriftCheckTimestamp field's value.
16528func (s *StackInstance) SetLastDriftCheckTimestamp(v time.Time) *StackInstance {
16529	s.LastDriftCheckTimestamp = &v
16530	return s
16531}
16532
16533// SetOrganizationalUnitId sets the OrganizationalUnitId field's value.
16534func (s *StackInstance) SetOrganizationalUnitId(v string) *StackInstance {
16535	s.OrganizationalUnitId = &v
16536	return s
16537}
16538
16539// SetParameterOverrides sets the ParameterOverrides field's value.
16540func (s *StackInstance) SetParameterOverrides(v []*Parameter) *StackInstance {
16541	s.ParameterOverrides = v
16542	return s
16543}
16544
16545// SetRegion sets the Region field's value.
16546func (s *StackInstance) SetRegion(v string) *StackInstance {
16547	s.Region = &v
16548	return s
16549}
16550
16551// SetStackId sets the StackId field's value.
16552func (s *StackInstance) SetStackId(v string) *StackInstance {
16553	s.StackId = &v
16554	return s
16555}
16556
16557// SetStackInstanceStatus sets the StackInstanceStatus field's value.
16558func (s *StackInstance) SetStackInstanceStatus(v *StackInstanceComprehensiveStatus) *StackInstance {
16559	s.StackInstanceStatus = v
16560	return s
16561}
16562
16563// SetStackSetId sets the StackSetId field's value.
16564func (s *StackInstance) SetStackSetId(v string) *StackInstance {
16565	s.StackSetId = &v
16566	return s
16567}
16568
16569// SetStatus sets the Status field's value.
16570func (s *StackInstance) SetStatus(v string) *StackInstance {
16571	s.Status = &v
16572	return s
16573}
16574
16575// SetStatusReason sets the StatusReason field's value.
16576func (s *StackInstance) SetStatusReason(v string) *StackInstance {
16577	s.StatusReason = &v
16578	return s
16579}
16580
16581// The detailed status of the stack instance.
16582type StackInstanceComprehensiveStatus struct {
16583	_ struct{} `type:"structure"`
16584
16585	//    * CANCELLED: The operation in the specified account and Region has been
16586	//    cancelled. This is either because a user has stopped the stack set operation,
16587	//    or because the failure tolerance of the stack set operation has been exceeded.
16588	//
16589	//    * FAILED: The operation in the specified account and Region failed. If
16590	//    the stack set operation fails in enough accounts within a Region, the
16591	//    failure tolerance for the stack set operation as a whole might be exceeded.
16592	//
16593	//    * INOPERABLE: A DeleteStackInstances operation has failed and left the
16594	//    stack in an unstable state. Stacks in this state are excluded from further
16595	//    UpdateStackSet operations. You might need to perform a DeleteStackInstances
16596	//    operation, with RetainStacks set to true, to delete the stack instance,
16597	//    and then delete the stack manually.
16598	//
16599	//    * PENDING: The operation in the specified account and Region has yet to
16600	//    start.
16601	//
16602	//    * RUNNING: The operation in the specified account and Region is currently
16603	//    in progress.
16604	//
16605	//    * SUCCEEDED: The operation in the specified account and Region completed
16606	//    successfully.
16607	DetailedStatus *string `type:"string" enum:"StackInstanceDetailedStatus"`
16608}
16609
16610// String returns the string representation
16611func (s StackInstanceComprehensiveStatus) String() string {
16612	return awsutil.Prettify(s)
16613}
16614
16615// GoString returns the string representation
16616func (s StackInstanceComprehensiveStatus) GoString() string {
16617	return s.String()
16618}
16619
16620// SetDetailedStatus sets the DetailedStatus field's value.
16621func (s *StackInstanceComprehensiveStatus) SetDetailedStatus(v string) *StackInstanceComprehensiveStatus {
16622	s.DetailedStatus = &v
16623	return s
16624}
16625
16626// The status that stack instances are filtered by.
16627type StackInstanceFilter struct {
16628	_ struct{} `type:"structure"`
16629
16630	// The type of filter to apply.
16631	Name *string `type:"string" enum:"StackInstanceFilterName"`
16632
16633	// The status to filter by.
16634	Values *string `min:"6" type:"string"`
16635}
16636
16637// String returns the string representation
16638func (s StackInstanceFilter) String() string {
16639	return awsutil.Prettify(s)
16640}
16641
16642// GoString returns the string representation
16643func (s StackInstanceFilter) GoString() string {
16644	return s.String()
16645}
16646
16647// Validate inspects the fields of the type to determine if they are valid.
16648func (s *StackInstanceFilter) Validate() error {
16649	invalidParams := request.ErrInvalidParams{Context: "StackInstanceFilter"}
16650	if s.Values != nil && len(*s.Values) < 6 {
16651		invalidParams.Add(request.NewErrParamMinLen("Values", 6))
16652	}
16653
16654	if invalidParams.Len() > 0 {
16655		return invalidParams
16656	}
16657	return nil
16658}
16659
16660// SetName sets the Name field's value.
16661func (s *StackInstanceFilter) SetName(v string) *StackInstanceFilter {
16662	s.Name = &v
16663	return s
16664}
16665
16666// SetValues sets the Values field's value.
16667func (s *StackInstanceFilter) SetValues(v string) *StackInstanceFilter {
16668	s.Values = &v
16669	return s
16670}
16671
16672// The structure that contains summary information about a stack instance.
16673type StackInstanceSummary struct {
16674	_ struct{} `type:"structure"`
16675
16676	// [Self-managed permissions] The name of the Amazon Web Services account that
16677	// the stack instance is associated with.
16678	Account *string `type:"string"`
16679
16680	// Status of the stack instance's actual configuration compared to the expected
16681	// template and parameter configuration of the stack set to which it belongs.
16682	//
16683	//    * DRIFTED: The stack differs from the expected template and parameter
16684	//    configuration of the stack set to which it belongs. A stack instance is
16685	//    considered to have drifted if one or more of the resources in the associated
16686	//    stack have drifted.
16687	//
16688	//    * NOT_CHECKED: CloudFormation has not checked if the stack instance differs
16689	//    from its expected stack set configuration.
16690	//
16691	//    * IN_SYNC: The stack instance's actual configuration matches its expected
16692	//    stack set configuration.
16693	//
16694	//    * UNKNOWN: This value is reserved for future use.
16695	DriftStatus *string `type:"string" enum:"StackDriftStatus"`
16696
16697	// Most recent time when CloudFormation performed a drift detection operation
16698	// on the stack instance. This value will be NULL for any stack instance on
16699	// which drift detection has not yet been performed.
16700	LastDriftCheckTimestamp *time.Time `type:"timestamp"`
16701
16702	// [Service-managed permissions] The organization root ID or organizational
16703	// unit (OU) IDs that you specified for DeploymentTargets (https://docs.aws.amazon.com/AWSCloudFormation/latest/APIReference/API_DeploymentTargets.html).
16704	OrganizationalUnitId *string `type:"string"`
16705
16706	// The name of the Amazon Web Services Region that the stack instance is associated
16707	// with.
16708	Region *string `type:"string"`
16709
16710	// The ID of the stack instance.
16711	StackId *string `type:"string"`
16712
16713	// The detailed status of the stack instance.
16714	StackInstanceStatus *StackInstanceComprehensiveStatus `type:"structure"`
16715
16716	// The name or unique ID of the stack set that the stack instance is associated
16717	// with.
16718	StackSetId *string `type:"string"`
16719
16720	// The status of the stack instance, in terms of its synchronization with its
16721	// associated stack set.
16722	//
16723	//    * INOPERABLE: A DeleteStackInstances operation has failed and left the
16724	//    stack in an unstable state. Stacks in this state are excluded from further
16725	//    UpdateStackSet operations. You might need to perform a DeleteStackInstances
16726	//    operation, with RetainStacks set to true, to delete the stack instance,
16727	//    and then delete the stack manually.
16728	//
16729	//    * OUTDATED: The stack isn't currently up to date with the stack set because:
16730	//    The associated stack failed during a CreateStackSet or UpdateStackSet
16731	//    operation. The stack was part of a CreateStackSet or UpdateStackSet operation
16732	//    that failed or was stopped before the stack was created or updated.
16733	//
16734	//    * CURRENT: The stack is currently up to date with the stack set.
16735	Status *string `type:"string" enum:"StackInstanceStatus"`
16736
16737	// The explanation for the specific status code assigned to this stack instance.
16738	StatusReason *string `type:"string"`
16739}
16740
16741// String returns the string representation
16742func (s StackInstanceSummary) String() string {
16743	return awsutil.Prettify(s)
16744}
16745
16746// GoString returns the string representation
16747func (s StackInstanceSummary) GoString() string {
16748	return s.String()
16749}
16750
16751// SetAccount sets the Account field's value.
16752func (s *StackInstanceSummary) SetAccount(v string) *StackInstanceSummary {
16753	s.Account = &v
16754	return s
16755}
16756
16757// SetDriftStatus sets the DriftStatus field's value.
16758func (s *StackInstanceSummary) SetDriftStatus(v string) *StackInstanceSummary {
16759	s.DriftStatus = &v
16760	return s
16761}
16762
16763// SetLastDriftCheckTimestamp sets the LastDriftCheckTimestamp field's value.
16764func (s *StackInstanceSummary) SetLastDriftCheckTimestamp(v time.Time) *StackInstanceSummary {
16765	s.LastDriftCheckTimestamp = &v
16766	return s
16767}
16768
16769// SetOrganizationalUnitId sets the OrganizationalUnitId field's value.
16770func (s *StackInstanceSummary) SetOrganizationalUnitId(v string) *StackInstanceSummary {
16771	s.OrganizationalUnitId = &v
16772	return s
16773}
16774
16775// SetRegion sets the Region field's value.
16776func (s *StackInstanceSummary) SetRegion(v string) *StackInstanceSummary {
16777	s.Region = &v
16778	return s
16779}
16780
16781// SetStackId sets the StackId field's value.
16782func (s *StackInstanceSummary) SetStackId(v string) *StackInstanceSummary {
16783	s.StackId = &v
16784	return s
16785}
16786
16787// SetStackInstanceStatus sets the StackInstanceStatus field's value.
16788func (s *StackInstanceSummary) SetStackInstanceStatus(v *StackInstanceComprehensiveStatus) *StackInstanceSummary {
16789	s.StackInstanceStatus = v
16790	return s
16791}
16792
16793// SetStackSetId sets the StackSetId field's value.
16794func (s *StackInstanceSummary) SetStackSetId(v string) *StackInstanceSummary {
16795	s.StackSetId = &v
16796	return s
16797}
16798
16799// SetStatus sets the Status field's value.
16800func (s *StackInstanceSummary) SetStatus(v string) *StackInstanceSummary {
16801	s.Status = &v
16802	return s
16803}
16804
16805// SetStatusReason sets the StatusReason field's value.
16806func (s *StackInstanceSummary) SetStatusReason(v string) *StackInstanceSummary {
16807	s.StatusReason = &v
16808	return s
16809}
16810
16811// The StackResource data type.
16812type StackResource struct {
16813	_ struct{} `type:"structure"`
16814
16815	// User defined description associated with the resource.
16816	Description *string `min:"1" type:"string"`
16817
16818	// Information about whether the resource's actual configuration differs, or
16819	// has drifted, from its expected configuration, as defined in the stack template
16820	// and any values specified as template parameters. For more information, see
16821	// Detecting Unregulated Configuration Changes to Stacks and Resources (http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-stack-drift.html).
16822	DriftInformation *StackResourceDriftInformation `type:"structure"`
16823
16824	// The logical name of the resource specified in the template.
16825	//
16826	// LogicalResourceId is a required field
16827	LogicalResourceId *string `type:"string" required:"true"`
16828
16829	// Contains information about the module from which the resource was created,
16830	// if the resource was created from a module included in the stack template.
16831	ModuleInfo *ModuleInfo `type:"structure"`
16832
16833	// The name or unique identifier that corresponds to a physical instance ID
16834	// of a resource supported by CloudFormation.
16835	PhysicalResourceId *string `type:"string"`
16836
16837	// Current status of the resource.
16838	//
16839	// ResourceStatus is a required field
16840	ResourceStatus *string `type:"string" required:"true" enum:"ResourceStatus"`
16841
16842	// Success/failure message associated with the resource.
16843	ResourceStatusReason *string `type:"string"`
16844
16845	// Type of resource. (For more information, go to Amazon Web Services Resource
16846	// Types Reference (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-template-resource-type-ref.html)
16847	// in the CloudFormation User Guide.)
16848	//
16849	// ResourceType is a required field
16850	ResourceType *string `min:"1" type:"string" required:"true"`
16851
16852	// Unique identifier of the stack.
16853	StackId *string `type:"string"`
16854
16855	// The name associated with the stack.
16856	StackName *string `type:"string"`
16857
16858	// Time the status was updated.
16859	//
16860	// Timestamp is a required field
16861	Timestamp *time.Time `type:"timestamp" required:"true"`
16862}
16863
16864// String returns the string representation
16865func (s StackResource) String() string {
16866	return awsutil.Prettify(s)
16867}
16868
16869// GoString returns the string representation
16870func (s StackResource) GoString() string {
16871	return s.String()
16872}
16873
16874// SetDescription sets the Description field's value.
16875func (s *StackResource) SetDescription(v string) *StackResource {
16876	s.Description = &v
16877	return s
16878}
16879
16880// SetDriftInformation sets the DriftInformation field's value.
16881func (s *StackResource) SetDriftInformation(v *StackResourceDriftInformation) *StackResource {
16882	s.DriftInformation = v
16883	return s
16884}
16885
16886// SetLogicalResourceId sets the LogicalResourceId field's value.
16887func (s *StackResource) SetLogicalResourceId(v string) *StackResource {
16888	s.LogicalResourceId = &v
16889	return s
16890}
16891
16892// SetModuleInfo sets the ModuleInfo field's value.
16893func (s *StackResource) SetModuleInfo(v *ModuleInfo) *StackResource {
16894	s.ModuleInfo = v
16895	return s
16896}
16897
16898// SetPhysicalResourceId sets the PhysicalResourceId field's value.
16899func (s *StackResource) SetPhysicalResourceId(v string) *StackResource {
16900	s.PhysicalResourceId = &v
16901	return s
16902}
16903
16904// SetResourceStatus sets the ResourceStatus field's value.
16905func (s *StackResource) SetResourceStatus(v string) *StackResource {
16906	s.ResourceStatus = &v
16907	return s
16908}
16909
16910// SetResourceStatusReason sets the ResourceStatusReason field's value.
16911func (s *StackResource) SetResourceStatusReason(v string) *StackResource {
16912	s.ResourceStatusReason = &v
16913	return s
16914}
16915
16916// SetResourceType sets the ResourceType field's value.
16917func (s *StackResource) SetResourceType(v string) *StackResource {
16918	s.ResourceType = &v
16919	return s
16920}
16921
16922// SetStackId sets the StackId field's value.
16923func (s *StackResource) SetStackId(v string) *StackResource {
16924	s.StackId = &v
16925	return s
16926}
16927
16928// SetStackName sets the StackName field's value.
16929func (s *StackResource) SetStackName(v string) *StackResource {
16930	s.StackName = &v
16931	return s
16932}
16933
16934// SetTimestamp sets the Timestamp field's value.
16935func (s *StackResource) SetTimestamp(v time.Time) *StackResource {
16936	s.Timestamp = &v
16937	return s
16938}
16939
16940// Contains detailed information about the specified stack resource.
16941type StackResourceDetail struct {
16942	_ struct{} `type:"structure"`
16943
16944	// User defined description associated with the resource.
16945	Description *string `min:"1" type:"string"`
16946
16947	// Information about whether the resource's actual configuration differs, or
16948	// has drifted, from its expected configuration, as defined in the stack template
16949	// and any values specified as template parameters. For more information, see
16950	// Detecting Unregulated Configuration Changes to Stacks and Resources (http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-stack-drift.html).
16951	DriftInformation *StackResourceDriftInformation `type:"structure"`
16952
16953	// Time the status was updated.
16954	//
16955	// LastUpdatedTimestamp is a required field
16956	LastUpdatedTimestamp *time.Time `type:"timestamp" required:"true"`
16957
16958	// The logical name of the resource specified in the template.
16959	//
16960	// LogicalResourceId is a required field
16961	LogicalResourceId *string `type:"string" required:"true"`
16962
16963	// The content of the Metadata attribute declared for the resource. For more
16964	// information, see Metadata Attribute (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-metadata.html)
16965	// in the CloudFormation User Guide.
16966	Metadata *string `type:"string"`
16967
16968	// Contains information about the module from which the resource was created,
16969	// if the resource was created from a module included in the stack template.
16970	ModuleInfo *ModuleInfo `type:"structure"`
16971
16972	// The name or unique identifier that corresponds to a physical instance ID
16973	// of a resource supported by CloudFormation.
16974	PhysicalResourceId *string `type:"string"`
16975
16976	// Current status of the resource.
16977	//
16978	// ResourceStatus is a required field
16979	ResourceStatus *string `type:"string" required:"true" enum:"ResourceStatus"`
16980
16981	// Success/failure message associated with the resource.
16982	ResourceStatusReason *string `type:"string"`
16983
16984	// Type of resource. ((For more information, go to Amazon Web Services Resource
16985	// Types Reference (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-template-resource-type-ref.html)
16986	// in the CloudFormation User Guide.)
16987	//
16988	// ResourceType is a required field
16989	ResourceType *string `min:"1" type:"string" required:"true"`
16990
16991	// Unique identifier of the stack.
16992	StackId *string `type:"string"`
16993
16994	// The name associated with the stack.
16995	StackName *string `type:"string"`
16996}
16997
16998// String returns the string representation
16999func (s StackResourceDetail) String() string {
17000	return awsutil.Prettify(s)
17001}
17002
17003// GoString returns the string representation
17004func (s StackResourceDetail) GoString() string {
17005	return s.String()
17006}
17007
17008// SetDescription sets the Description field's value.
17009func (s *StackResourceDetail) SetDescription(v string) *StackResourceDetail {
17010	s.Description = &v
17011	return s
17012}
17013
17014// SetDriftInformation sets the DriftInformation field's value.
17015func (s *StackResourceDetail) SetDriftInformation(v *StackResourceDriftInformation) *StackResourceDetail {
17016	s.DriftInformation = v
17017	return s
17018}
17019
17020// SetLastUpdatedTimestamp sets the LastUpdatedTimestamp field's value.
17021func (s *StackResourceDetail) SetLastUpdatedTimestamp(v time.Time) *StackResourceDetail {
17022	s.LastUpdatedTimestamp = &v
17023	return s
17024}
17025
17026// SetLogicalResourceId sets the LogicalResourceId field's value.
17027func (s *StackResourceDetail) SetLogicalResourceId(v string) *StackResourceDetail {
17028	s.LogicalResourceId = &v
17029	return s
17030}
17031
17032// SetMetadata sets the Metadata field's value.
17033func (s *StackResourceDetail) SetMetadata(v string) *StackResourceDetail {
17034	s.Metadata = &v
17035	return s
17036}
17037
17038// SetModuleInfo sets the ModuleInfo field's value.
17039func (s *StackResourceDetail) SetModuleInfo(v *ModuleInfo) *StackResourceDetail {
17040	s.ModuleInfo = v
17041	return s
17042}
17043
17044// SetPhysicalResourceId sets the PhysicalResourceId field's value.
17045func (s *StackResourceDetail) SetPhysicalResourceId(v string) *StackResourceDetail {
17046	s.PhysicalResourceId = &v
17047	return s
17048}
17049
17050// SetResourceStatus sets the ResourceStatus field's value.
17051func (s *StackResourceDetail) SetResourceStatus(v string) *StackResourceDetail {
17052	s.ResourceStatus = &v
17053	return s
17054}
17055
17056// SetResourceStatusReason sets the ResourceStatusReason field's value.
17057func (s *StackResourceDetail) SetResourceStatusReason(v string) *StackResourceDetail {
17058	s.ResourceStatusReason = &v
17059	return s
17060}
17061
17062// SetResourceType sets the ResourceType field's value.
17063func (s *StackResourceDetail) SetResourceType(v string) *StackResourceDetail {
17064	s.ResourceType = &v
17065	return s
17066}
17067
17068// SetStackId sets the StackId field's value.
17069func (s *StackResourceDetail) SetStackId(v string) *StackResourceDetail {
17070	s.StackId = &v
17071	return s
17072}
17073
17074// SetStackName sets the StackName field's value.
17075func (s *StackResourceDetail) SetStackName(v string) *StackResourceDetail {
17076	s.StackName = &v
17077	return s
17078}
17079
17080// Contains the drift information for a resource that has been checked for drift.
17081// This includes actual and expected property values for resources in which
17082// CloudFormation has detected drift. Only resource properties explicitly defined
17083// in the stack template are checked for drift. For more information, see Detecting
17084// Unregulated Configuration Changes to Stacks and Resources (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-stack-drift.html).
17085//
17086// Resources that do not currently support drift detection cannot be checked.
17087// For a list of resources that support drift detection, see Resources that
17088// Support Drift Detection (http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-stack-drift-resource-list.html).
17089//
17090// Use DetectStackResourceDrift to detect drift on individual resources, or
17091// DetectStackDrift to detect drift on all resources in a given stack that support
17092// drift detection.
17093type StackResourceDrift struct {
17094	_ struct{} `type:"structure"`
17095
17096	// A JSON structure containing the actual property values of the stack resource.
17097	//
17098	// For resources whose StackResourceDriftStatus is DELETED, this structure will
17099	// not be present.
17100	ActualProperties *string `type:"string"`
17101
17102	// A JSON structure containing the expected property values of the stack resource,
17103	// as defined in the stack template and any values specified as template parameters.
17104	//
17105	// For resources whose StackResourceDriftStatus is DELETED, this structure will
17106	// not be present.
17107	ExpectedProperties *string `type:"string"`
17108
17109	// The logical name of the resource specified in the template.
17110	//
17111	// LogicalResourceId is a required field
17112	LogicalResourceId *string `type:"string" required:"true"`
17113
17114	// Contains information about the module from which the resource was created,
17115	// if the resource was created from a module included in the stack template.
17116	ModuleInfo *ModuleInfo `type:"structure"`
17117
17118	// The name or unique identifier that corresponds to a physical instance ID
17119	// of a resource supported by CloudFormation.
17120	PhysicalResourceId *string `type:"string"`
17121
17122	// Context information that enables CloudFormation to uniquely identify a resource.
17123	// CloudFormation uses context key-value pairs in cases where a resource's logical
17124	// and physical IDs are not enough to uniquely identify that resource. Each
17125	// context key-value pair specifies a unique resource that contains the targeted
17126	// resource.
17127	PhysicalResourceIdContext []*PhysicalResourceIdContextKeyValuePair `type:"list"`
17128
17129	// A collection of the resource properties whose actual values differ from their
17130	// expected values. These will be present only for resources whose StackResourceDriftStatus
17131	// is MODIFIED.
17132	PropertyDifferences []*PropertyDifference `type:"list"`
17133
17134	// The type of the resource.
17135	//
17136	// ResourceType is a required field
17137	ResourceType *string `min:"1" type:"string" required:"true"`
17138
17139	// The ID of the stack.
17140	//
17141	// StackId is a required field
17142	StackId *string `type:"string" required:"true"`
17143
17144	// Status of the resource's actual configuration compared to its expected configuration
17145	//
17146	//    * DELETED: The resource differs from its expected template configuration
17147	//    because the resource has been deleted.
17148	//
17149	//    * MODIFIED: One or more resource properties differ from their expected
17150	//    values (as defined in the stack template and any values specified as template
17151	//    parameters).
17152	//
17153	//    * IN_SYNC: The resources's actual configuration matches its expected template
17154	//    configuration.
17155	//
17156	//    * NOT_CHECKED: CloudFormation does not currently return this value.
17157	//
17158	// StackResourceDriftStatus is a required field
17159	StackResourceDriftStatus *string `type:"string" required:"true" enum:"StackResourceDriftStatus"`
17160
17161	// Time at which CloudFormation performed drift detection on the stack resource.
17162	//
17163	// Timestamp is a required field
17164	Timestamp *time.Time `type:"timestamp" required:"true"`
17165}
17166
17167// String returns the string representation
17168func (s StackResourceDrift) String() string {
17169	return awsutil.Prettify(s)
17170}
17171
17172// GoString returns the string representation
17173func (s StackResourceDrift) GoString() string {
17174	return s.String()
17175}
17176
17177// SetActualProperties sets the ActualProperties field's value.
17178func (s *StackResourceDrift) SetActualProperties(v string) *StackResourceDrift {
17179	s.ActualProperties = &v
17180	return s
17181}
17182
17183// SetExpectedProperties sets the ExpectedProperties field's value.
17184func (s *StackResourceDrift) SetExpectedProperties(v string) *StackResourceDrift {
17185	s.ExpectedProperties = &v
17186	return s
17187}
17188
17189// SetLogicalResourceId sets the LogicalResourceId field's value.
17190func (s *StackResourceDrift) SetLogicalResourceId(v string) *StackResourceDrift {
17191	s.LogicalResourceId = &v
17192	return s
17193}
17194
17195// SetModuleInfo sets the ModuleInfo field's value.
17196func (s *StackResourceDrift) SetModuleInfo(v *ModuleInfo) *StackResourceDrift {
17197	s.ModuleInfo = v
17198	return s
17199}
17200
17201// SetPhysicalResourceId sets the PhysicalResourceId field's value.
17202func (s *StackResourceDrift) SetPhysicalResourceId(v string) *StackResourceDrift {
17203	s.PhysicalResourceId = &v
17204	return s
17205}
17206
17207// SetPhysicalResourceIdContext sets the PhysicalResourceIdContext field's value.
17208func (s *StackResourceDrift) SetPhysicalResourceIdContext(v []*PhysicalResourceIdContextKeyValuePair) *StackResourceDrift {
17209	s.PhysicalResourceIdContext = v
17210	return s
17211}
17212
17213// SetPropertyDifferences sets the PropertyDifferences field's value.
17214func (s *StackResourceDrift) SetPropertyDifferences(v []*PropertyDifference) *StackResourceDrift {
17215	s.PropertyDifferences = v
17216	return s
17217}
17218
17219// SetResourceType sets the ResourceType field's value.
17220func (s *StackResourceDrift) SetResourceType(v string) *StackResourceDrift {
17221	s.ResourceType = &v
17222	return s
17223}
17224
17225// SetStackId sets the StackId field's value.
17226func (s *StackResourceDrift) SetStackId(v string) *StackResourceDrift {
17227	s.StackId = &v
17228	return s
17229}
17230
17231// SetStackResourceDriftStatus sets the StackResourceDriftStatus field's value.
17232func (s *StackResourceDrift) SetStackResourceDriftStatus(v string) *StackResourceDrift {
17233	s.StackResourceDriftStatus = &v
17234	return s
17235}
17236
17237// SetTimestamp sets the Timestamp field's value.
17238func (s *StackResourceDrift) SetTimestamp(v time.Time) *StackResourceDrift {
17239	s.Timestamp = &v
17240	return s
17241}
17242
17243// Contains information about whether the resource's actual configuration differs,
17244// or has drifted, from its expected configuration.
17245type StackResourceDriftInformation struct {
17246	_ struct{} `type:"structure"`
17247
17248	// When CloudFormation last checked if the resource had drifted from its expected
17249	// configuration.
17250	LastCheckTimestamp *time.Time `type:"timestamp"`
17251
17252	// Status of the resource's actual configuration compared to its expected configuration
17253	//
17254	//    * DELETED: The resource differs from its expected configuration in that
17255	//    it has been deleted.
17256	//
17257	//    * MODIFIED: The resource differs from its expected configuration.
17258	//
17259	//    * NOT_CHECKED: CloudFormation has not checked if the resource differs
17260	//    from its expected configuration. Any resources that do not currently support
17261	//    drift detection have a status of NOT_CHECKED. For more information, see
17262	//    Resources that Support Drift Detection (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-stack-drift-resource-list.html).
17263	//
17264	//    * IN_SYNC: The resources's actual configuration matches its expected configuration.
17265	//
17266	// StackResourceDriftStatus is a required field
17267	StackResourceDriftStatus *string `type:"string" required:"true" enum:"StackResourceDriftStatus"`
17268}
17269
17270// String returns the string representation
17271func (s StackResourceDriftInformation) String() string {
17272	return awsutil.Prettify(s)
17273}
17274
17275// GoString returns the string representation
17276func (s StackResourceDriftInformation) GoString() string {
17277	return s.String()
17278}
17279
17280// SetLastCheckTimestamp sets the LastCheckTimestamp field's value.
17281func (s *StackResourceDriftInformation) SetLastCheckTimestamp(v time.Time) *StackResourceDriftInformation {
17282	s.LastCheckTimestamp = &v
17283	return s
17284}
17285
17286// SetStackResourceDriftStatus sets the StackResourceDriftStatus field's value.
17287func (s *StackResourceDriftInformation) SetStackResourceDriftStatus(v string) *StackResourceDriftInformation {
17288	s.StackResourceDriftStatus = &v
17289	return s
17290}
17291
17292// Summarizes information about whether the resource's actual configuration
17293// differs, or has drifted, from its expected configuration.
17294type StackResourceDriftInformationSummary struct {
17295	_ struct{} `type:"structure"`
17296
17297	// When CloudFormation last checked if the resource had drifted from its expected
17298	// configuration.
17299	LastCheckTimestamp *time.Time `type:"timestamp"`
17300
17301	// Status of the resource's actual configuration compared to its expected configuration
17302	//
17303	//    * DELETED: The resource differs from its expected configuration in that
17304	//    it has been deleted.
17305	//
17306	//    * MODIFIED: The resource differs from its expected configuration.
17307	//
17308	//    * NOT_CHECKED: CloudFormation has not checked if the resource differs
17309	//    from its expected configuration. Any resources that do not currently support
17310	//    drift detection have a status of NOT_CHECKED. For more information, see
17311	//    Resources that Support Drift Detection (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-stack-drift-resource-list.html).
17312	//    If you performed an ContinueUpdateRollback operation on a stack, any resources
17313	//    included in ResourcesToSkip will also have a status of NOT_CHECKED. For
17314	//    more information on skipping resources during rollback operations, see
17315	//    Continue Rolling Back an Update (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-continueupdaterollback.html)
17316	//    in the CloudFormation User Guide.
17317	//
17318	//    * IN_SYNC: The resources's actual configuration matches its expected configuration.
17319	//
17320	// StackResourceDriftStatus is a required field
17321	StackResourceDriftStatus *string `type:"string" required:"true" enum:"StackResourceDriftStatus"`
17322}
17323
17324// String returns the string representation
17325func (s StackResourceDriftInformationSummary) String() string {
17326	return awsutil.Prettify(s)
17327}
17328
17329// GoString returns the string representation
17330func (s StackResourceDriftInformationSummary) GoString() string {
17331	return s.String()
17332}
17333
17334// SetLastCheckTimestamp sets the LastCheckTimestamp field's value.
17335func (s *StackResourceDriftInformationSummary) SetLastCheckTimestamp(v time.Time) *StackResourceDriftInformationSummary {
17336	s.LastCheckTimestamp = &v
17337	return s
17338}
17339
17340// SetStackResourceDriftStatus sets the StackResourceDriftStatus field's value.
17341func (s *StackResourceDriftInformationSummary) SetStackResourceDriftStatus(v string) *StackResourceDriftInformationSummary {
17342	s.StackResourceDriftStatus = &v
17343	return s
17344}
17345
17346// Contains high-level information about the specified stack resource.
17347type StackResourceSummary struct {
17348	_ struct{} `type:"structure"`
17349
17350	// Information about whether the resource's actual configuration differs, or
17351	// has drifted, from its expected configuration, as defined in the stack template
17352	// and any values specified as template parameters. For more information, see
17353	// Detecting Unregulated Configuration Changes to Stacks and Resources (http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-stack-drift.html).
17354	DriftInformation *StackResourceDriftInformationSummary `type:"structure"`
17355
17356	// Time the status was updated.
17357	//
17358	// LastUpdatedTimestamp is a required field
17359	LastUpdatedTimestamp *time.Time `type:"timestamp" required:"true"`
17360
17361	// The logical name of the resource specified in the template.
17362	//
17363	// LogicalResourceId is a required field
17364	LogicalResourceId *string `type:"string" required:"true"`
17365
17366	// Contains information about the module from which the resource was created,
17367	// if the resource was created from a module included in the stack template.
17368	ModuleInfo *ModuleInfo `type:"structure"`
17369
17370	// The name or unique identifier that corresponds to a physical instance ID
17371	// of the resource.
17372	PhysicalResourceId *string `type:"string"`
17373
17374	// Current status of the resource.
17375	//
17376	// ResourceStatus is a required field
17377	ResourceStatus *string `type:"string" required:"true" enum:"ResourceStatus"`
17378
17379	// Success/failure message associated with the resource.
17380	ResourceStatusReason *string `type:"string"`
17381
17382	// Type of resource. (For more information, go to Amazon Web Services Resource
17383	// Types Reference (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-template-resource-type-ref.html)
17384	// in the CloudFormation User Guide.)
17385	//
17386	// ResourceType is a required field
17387	ResourceType *string `min:"1" type:"string" required:"true"`
17388}
17389
17390// String returns the string representation
17391func (s StackResourceSummary) String() string {
17392	return awsutil.Prettify(s)
17393}
17394
17395// GoString returns the string representation
17396func (s StackResourceSummary) GoString() string {
17397	return s.String()
17398}
17399
17400// SetDriftInformation sets the DriftInformation field's value.
17401func (s *StackResourceSummary) SetDriftInformation(v *StackResourceDriftInformationSummary) *StackResourceSummary {
17402	s.DriftInformation = v
17403	return s
17404}
17405
17406// SetLastUpdatedTimestamp sets the LastUpdatedTimestamp field's value.
17407func (s *StackResourceSummary) SetLastUpdatedTimestamp(v time.Time) *StackResourceSummary {
17408	s.LastUpdatedTimestamp = &v
17409	return s
17410}
17411
17412// SetLogicalResourceId sets the LogicalResourceId field's value.
17413func (s *StackResourceSummary) SetLogicalResourceId(v string) *StackResourceSummary {
17414	s.LogicalResourceId = &v
17415	return s
17416}
17417
17418// SetModuleInfo sets the ModuleInfo field's value.
17419func (s *StackResourceSummary) SetModuleInfo(v *ModuleInfo) *StackResourceSummary {
17420	s.ModuleInfo = v
17421	return s
17422}
17423
17424// SetPhysicalResourceId sets the PhysicalResourceId field's value.
17425func (s *StackResourceSummary) SetPhysicalResourceId(v string) *StackResourceSummary {
17426	s.PhysicalResourceId = &v
17427	return s
17428}
17429
17430// SetResourceStatus sets the ResourceStatus field's value.
17431func (s *StackResourceSummary) SetResourceStatus(v string) *StackResourceSummary {
17432	s.ResourceStatus = &v
17433	return s
17434}
17435
17436// SetResourceStatusReason sets the ResourceStatusReason field's value.
17437func (s *StackResourceSummary) SetResourceStatusReason(v string) *StackResourceSummary {
17438	s.ResourceStatusReason = &v
17439	return s
17440}
17441
17442// SetResourceType sets the ResourceType field's value.
17443func (s *StackResourceSummary) SetResourceType(v string) *StackResourceSummary {
17444	s.ResourceType = &v
17445	return s
17446}
17447
17448// A structure that contains information about a stack set. A stack set enables
17449// you to provision stacks into Amazon Web Services accounts and across Regions
17450// by using a single CloudFormation template. In the stack set, you specify
17451// the template to use, as well as any parameters and capabilities that the
17452// template requires.
17453type StackSet struct {
17454	_ struct{} `type:"structure"`
17455
17456	// The Amazon Resource Number (ARN) of the IAM role used to create or update
17457	// the stack set.
17458	//
17459	// Use customized administrator roles to control which users or groups can manage
17460	// specific stack sets within the same administrator account. For more information,
17461	// see Prerequisites: Granting Permissions for Stack Set Operations (http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/stacksets-prereqs.html)
17462	// in the CloudFormation User Guide.
17463	AdministrationRoleARN *string `min:"20" type:"string"`
17464
17465	// [Service-managed permissions] Describes whether StackSets automatically deploys
17466	// to Organizations accounts that are added to a target organization or organizational
17467	// unit (OU).
17468	AutoDeployment *AutoDeployment `type:"structure"`
17469
17470	// The capabilities that are allowed in the stack set. Some stack set templates
17471	// might include resources that can affect permissions in your Amazon Web Services
17472	// account—for example, by creating new Identity and Access Management (IAM)
17473	// users. For more information, see Acknowledging IAM Resources in CloudFormation
17474	// Templates. (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-iam-template.html#capabilities)
17475	Capabilities []*string `type:"list"`
17476
17477	// A description of the stack set that you specify when the stack set is created
17478	// or updated.
17479	Description *string `min:"1" type:"string"`
17480
17481	// The name of the IAM execution role used to create or update the stack set.
17482	//
17483	// Use customized execution roles to control which stack resources users and
17484	// groups can include in their stack sets.
17485	ExecutionRoleName *string `min:"1" type:"string"`
17486
17487	// [Service-managed permissions] The organization root ID or organizational
17488	// unit (OU) IDs that you specified for DeploymentTargets (https://docs.aws.amazon.com/AWSCloudFormation/latest/APIReference/API_DeploymentTargets.html).
17489	OrganizationalUnitIds []*string `type:"list"`
17490
17491	// A list of input parameters for a stack set.
17492	Parameters []*Parameter `type:"list"`
17493
17494	// Describes how the IAM roles required for stack set operations are created.
17495	//
17496	//    * With self-managed permissions, you must create the administrator and
17497	//    execution roles required to deploy to target accounts. For more information,
17498	//    see Grant Self-Managed Stack Set Permissions (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/stacksets-prereqs-self-managed.html).
17499	//
17500	//    * With service-managed permissions, StackSets automatically creates the
17501	//    IAM roles required to deploy to accounts managed by Organizations. For
17502	//    more information, see Grant Service-Managed Stack Set Permissions (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/stacksets-prereqs-service-managed.html).
17503	PermissionModel *string `type:"string" enum:"PermissionModels"`
17504
17505	// The Amazon Resource Number (ARN) of the stack set.
17506	StackSetARN *string `type:"string"`
17507
17508	// Detailed information about the drift status of the stack set.
17509	//
17510	// For stack sets, contains information about the last completed drift operation
17511	// performed on the stack set. Information about drift operations currently
17512	// in progress is not included.
17513	StackSetDriftDetectionDetails *StackSetDriftDetectionDetails `type:"structure"`
17514
17515	// The ID of the stack set.
17516	StackSetId *string `type:"string"`
17517
17518	// The name that's associated with the stack set.
17519	StackSetName *string `type:"string"`
17520
17521	// The status of the stack set.
17522	Status *string `type:"string" enum:"StackSetStatus"`
17523
17524	// A list of tags that specify information about the stack set. A maximum number
17525	// of 50 tags can be specified.
17526	Tags []*Tag `type:"list"`
17527
17528	// The structure that contains the body of the template that was used to create
17529	// or update the stack set.
17530	TemplateBody *string `min:"1" type:"string"`
17531}
17532
17533// String returns the string representation
17534func (s StackSet) String() string {
17535	return awsutil.Prettify(s)
17536}
17537
17538// GoString returns the string representation
17539func (s StackSet) GoString() string {
17540	return s.String()
17541}
17542
17543// SetAdministrationRoleARN sets the AdministrationRoleARN field's value.
17544func (s *StackSet) SetAdministrationRoleARN(v string) *StackSet {
17545	s.AdministrationRoleARN = &v
17546	return s
17547}
17548
17549// SetAutoDeployment sets the AutoDeployment field's value.
17550func (s *StackSet) SetAutoDeployment(v *AutoDeployment) *StackSet {
17551	s.AutoDeployment = v
17552	return s
17553}
17554
17555// SetCapabilities sets the Capabilities field's value.
17556func (s *StackSet) SetCapabilities(v []*string) *StackSet {
17557	s.Capabilities = v
17558	return s
17559}
17560
17561// SetDescription sets the Description field's value.
17562func (s *StackSet) SetDescription(v string) *StackSet {
17563	s.Description = &v
17564	return s
17565}
17566
17567// SetExecutionRoleName sets the ExecutionRoleName field's value.
17568func (s *StackSet) SetExecutionRoleName(v string) *StackSet {
17569	s.ExecutionRoleName = &v
17570	return s
17571}
17572
17573// SetOrganizationalUnitIds sets the OrganizationalUnitIds field's value.
17574func (s *StackSet) SetOrganizationalUnitIds(v []*string) *StackSet {
17575	s.OrganizationalUnitIds = v
17576	return s
17577}
17578
17579// SetParameters sets the Parameters field's value.
17580func (s *StackSet) SetParameters(v []*Parameter) *StackSet {
17581	s.Parameters = v
17582	return s
17583}
17584
17585// SetPermissionModel sets the PermissionModel field's value.
17586func (s *StackSet) SetPermissionModel(v string) *StackSet {
17587	s.PermissionModel = &v
17588	return s
17589}
17590
17591// SetStackSetARN sets the StackSetARN field's value.
17592func (s *StackSet) SetStackSetARN(v string) *StackSet {
17593	s.StackSetARN = &v
17594	return s
17595}
17596
17597// SetStackSetDriftDetectionDetails sets the StackSetDriftDetectionDetails field's value.
17598func (s *StackSet) SetStackSetDriftDetectionDetails(v *StackSetDriftDetectionDetails) *StackSet {
17599	s.StackSetDriftDetectionDetails = v
17600	return s
17601}
17602
17603// SetStackSetId sets the StackSetId field's value.
17604func (s *StackSet) SetStackSetId(v string) *StackSet {
17605	s.StackSetId = &v
17606	return s
17607}
17608
17609// SetStackSetName sets the StackSetName field's value.
17610func (s *StackSet) SetStackSetName(v string) *StackSet {
17611	s.StackSetName = &v
17612	return s
17613}
17614
17615// SetStatus sets the Status field's value.
17616func (s *StackSet) SetStatus(v string) *StackSet {
17617	s.Status = &v
17618	return s
17619}
17620
17621// SetTags sets the Tags field's value.
17622func (s *StackSet) SetTags(v []*Tag) *StackSet {
17623	s.Tags = v
17624	return s
17625}
17626
17627// SetTemplateBody sets the TemplateBody field's value.
17628func (s *StackSet) SetTemplateBody(v string) *StackSet {
17629	s.TemplateBody = &v
17630	return s
17631}
17632
17633// Detailed information about the drift status of the stack set.
17634//
17635// For stack sets, contains information about the last completed drift operation
17636// performed on the stack set. Information about drift operations in-progress
17637// is not included.
17638//
17639// For stack set operations, includes information about drift operations currently
17640// being performed on the stack set.
17641//
17642// For more information, see Detecting Unmanaged Changes in Stack Sets (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/stacksets-drift.html)
17643// in the CloudFormation User Guide.
17644type StackSetDriftDetectionDetails struct {
17645	_ struct{} `type:"structure"`
17646
17647	// The status of the stack set drift detection operation.
17648	//
17649	//    * COMPLETED: The drift detection operation completed without failing on
17650	//    any stack instances.
17651	//
17652	//    * FAILED: The drift detection operation exceeded the specified failure
17653	//    tolerance.
17654	//
17655	//    * PARTIAL_SUCCESS: The drift detection operation completed without exceeding
17656	//    the failure tolerance for the operation.
17657	//
17658	//    * IN_PROGRESS: The drift detection operation is currently being performed.
17659	//
17660	//    * STOPPED: The user has cancelled the drift detection operation.
17661	DriftDetectionStatus *string `type:"string" enum:"StackSetDriftDetectionStatus"`
17662
17663	// Status of the stack set's actual configuration compared to its expected template
17664	// and parameter configuration. A stack set is considered to have drifted if
17665	// one or more of its stack instances have drifted from their expected template
17666	// and parameter configuration.
17667	//
17668	//    * DRIFTED: One or more of the stack instances belonging to the stack set
17669	//    stack differs from the expected template and parameter configuration.
17670	//    A stack instance is considered to have drifted if one or more of the resources
17671	//    in the associated stack have drifted.
17672	//
17673	//    * NOT_CHECKED: CloudFormation has not checked the stack set for drift.
17674	//
17675	//    * IN_SYNC: All of the stack instances belonging to the stack set stack
17676	//    match from the expected template and parameter configuration.
17677	DriftStatus *string `type:"string" enum:"StackSetDriftStatus"`
17678
17679	// The number of stack instances that have drifted from the expected template
17680	// and parameter configuration of the stack set. A stack instance is considered
17681	// to have drifted if one or more of the resources in the associated stack do
17682	// not match their expected configuration.
17683	DriftedStackInstancesCount *int64 `type:"integer"`
17684
17685	// The number of stack instances for which the drift detection operation failed.
17686	FailedStackInstancesCount *int64 `type:"integer"`
17687
17688	// The number of stack instances that are currently being checked for drift.
17689	InProgressStackInstancesCount *int64 `type:"integer"`
17690
17691	// The number of stack instances which match the expected template and parameter
17692	// configuration of the stack set.
17693	InSyncStackInstancesCount *int64 `type:"integer"`
17694
17695	// Most recent time when CloudFormation performed a drift detection operation
17696	// on the stack set. This value will be NULL for any stack set on which drift
17697	// detection has not yet been performed.
17698	LastDriftCheckTimestamp *time.Time `type:"timestamp"`
17699
17700	// The total number of stack instances belonging to this stack set.
17701	//
17702	// The total number of stack instances is equal to the total of:
17703	//
17704	//    * Stack instances that match the stack set configuration.
17705	//
17706	//    * Stack instances that have drifted from the stack set configuration.
17707	//
17708	//    * Stack instances where the drift detection operation has failed.
17709	//
17710	//    * Stack instances currently being checked for drift.
17711	TotalStackInstancesCount *int64 `type:"integer"`
17712}
17713
17714// String returns the string representation
17715func (s StackSetDriftDetectionDetails) String() string {
17716	return awsutil.Prettify(s)
17717}
17718
17719// GoString returns the string representation
17720func (s StackSetDriftDetectionDetails) GoString() string {
17721	return s.String()
17722}
17723
17724// SetDriftDetectionStatus sets the DriftDetectionStatus field's value.
17725func (s *StackSetDriftDetectionDetails) SetDriftDetectionStatus(v string) *StackSetDriftDetectionDetails {
17726	s.DriftDetectionStatus = &v
17727	return s
17728}
17729
17730// SetDriftStatus sets the DriftStatus field's value.
17731func (s *StackSetDriftDetectionDetails) SetDriftStatus(v string) *StackSetDriftDetectionDetails {
17732	s.DriftStatus = &v
17733	return s
17734}
17735
17736// SetDriftedStackInstancesCount sets the DriftedStackInstancesCount field's value.
17737func (s *StackSetDriftDetectionDetails) SetDriftedStackInstancesCount(v int64) *StackSetDriftDetectionDetails {
17738	s.DriftedStackInstancesCount = &v
17739	return s
17740}
17741
17742// SetFailedStackInstancesCount sets the FailedStackInstancesCount field's value.
17743func (s *StackSetDriftDetectionDetails) SetFailedStackInstancesCount(v int64) *StackSetDriftDetectionDetails {
17744	s.FailedStackInstancesCount = &v
17745	return s
17746}
17747
17748// SetInProgressStackInstancesCount sets the InProgressStackInstancesCount field's value.
17749func (s *StackSetDriftDetectionDetails) SetInProgressStackInstancesCount(v int64) *StackSetDriftDetectionDetails {
17750	s.InProgressStackInstancesCount = &v
17751	return s
17752}
17753
17754// SetInSyncStackInstancesCount sets the InSyncStackInstancesCount field's value.
17755func (s *StackSetDriftDetectionDetails) SetInSyncStackInstancesCount(v int64) *StackSetDriftDetectionDetails {
17756	s.InSyncStackInstancesCount = &v
17757	return s
17758}
17759
17760// SetLastDriftCheckTimestamp sets the LastDriftCheckTimestamp field's value.
17761func (s *StackSetDriftDetectionDetails) SetLastDriftCheckTimestamp(v time.Time) *StackSetDriftDetectionDetails {
17762	s.LastDriftCheckTimestamp = &v
17763	return s
17764}
17765
17766// SetTotalStackInstancesCount sets the TotalStackInstancesCount field's value.
17767func (s *StackSetDriftDetectionDetails) SetTotalStackInstancesCount(v int64) *StackSetDriftDetectionDetails {
17768	s.TotalStackInstancesCount = &v
17769	return s
17770}
17771
17772// The structure that contains information about a stack set operation.
17773type StackSetOperation struct {
17774	_ struct{} `type:"structure"`
17775
17776	// The type of stack set operation: CREATE, UPDATE, or DELETE. Create and delete
17777	// operations affect only the specified stack set instances that are associated
17778	// with the specified stack set. Update operations affect both the stack set
17779	// itself, as well as all associated stack set instances.
17780	Action *string `type:"string" enum:"StackSetOperationAction"`
17781
17782	// The Amazon Resource Number (ARN) of the IAM role used to perform this stack
17783	// set operation.
17784	//
17785	// Use customized administrator roles to control which users or groups can manage
17786	// specific stack sets within the same administrator account. For more information,
17787	// see Define Permissions for Multiple Administrators (http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/stacksets-prereqs.html)
17788	// in the CloudFormation User Guide.
17789	AdministrationRoleARN *string `min:"20" type:"string"`
17790
17791	// The time at which the operation was initiated. Note that the creation times
17792	// for the stack set operation might differ from the creation time of the individual
17793	// stacks themselves. This is because CloudFormation needs to perform preparatory
17794	// work for the operation, such as dispatching the work to the requested Regions,
17795	// before actually creating the first stacks.
17796	CreationTimestamp *time.Time `type:"timestamp"`
17797
17798	// [Service-managed permissions] The Organizations accounts affected by the
17799	// stack operation.
17800	DeploymentTargets *DeploymentTargets `type:"structure"`
17801
17802	// The time at which the stack set operation ended, across all accounts and
17803	// Regions specified. Note that this doesn't necessarily mean that the stack
17804	// set operation was successful, or even attempted, in each account or Region.
17805	EndTimestamp *time.Time `type:"timestamp"`
17806
17807	// The name of the IAM execution role used to create or update the stack set.
17808	//
17809	// Use customized execution roles to control which stack resources users and
17810	// groups can include in their stack sets.
17811	ExecutionRoleName *string `min:"1" type:"string"`
17812
17813	// The unique ID of a stack set operation.
17814	OperationId *string `min:"1" type:"string"`
17815
17816	// The preferences for how CloudFormation performs this stack set operation.
17817	OperationPreferences *StackSetOperationPreferences `type:"structure"`
17818
17819	// For stack set operations of action type DELETE, specifies whether to remove
17820	// the stack instances from the specified stack set, but doesn't delete the
17821	// stacks. You can't reassociate a retained stack, or add an existing, saved
17822	// stack to a new stack set.
17823	RetainStacks *bool `type:"boolean"`
17824
17825	// Detailed information about the drift status of the stack set. This includes
17826	// information about drift operations currently being performed on the stack
17827	// set.
17828	//
17829	// this information will only be present for stack set operations whose Action
17830	// type is DETECT_DRIFT.
17831	//
17832	// For more information, see Detecting Unmanaged Changes in Stack Sets (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/stacksets-drift.html)
17833	// in the CloudFormation User Guide.
17834	StackSetDriftDetectionDetails *StackSetDriftDetectionDetails `type:"structure"`
17835
17836	// The ID of the stack set.
17837	StackSetId *string `type:"string"`
17838
17839	// The status of the operation.
17840	//
17841	//    * FAILED: The operation exceeded the specified failure tolerance. The
17842	//    failure tolerance value that you've set for an operation is applied for
17843	//    each Region during stack create and update operations. If the number of
17844	//    failed stacks within a Region exceeds the failure tolerance, the status
17845	//    of the operation in the Region is set to FAILED. This in turn sets the
17846	//    status of the operation as a whole to FAILED, and CloudFormation cancels
17847	//    the operation in any remaining Regions.
17848	//
17849	//    * QUEUED: [Service-managed permissions] For automatic deployments that
17850	//    require a sequence of operations, the operation is queued to be performed.
17851	//    For more information, see the stack set operation status codes (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/stacksets-concepts.html#stackset-status-codes)
17852	//    in the CloudFormation User Guide.
17853	//
17854	//    * RUNNING: The operation is currently being performed.
17855	//
17856	//    * STOPPED: The user has cancelled the operation.
17857	//
17858	//    * STOPPING: The operation is in the process of stopping, at user request.
17859	//
17860	//    * SUCCEEDED: The operation completed creating or updating all the specified
17861	//    stacks without exceeding the failure tolerance for the operation.
17862	Status *string `type:"string" enum:"StackSetOperationStatus"`
17863}
17864
17865// String returns the string representation
17866func (s StackSetOperation) String() string {
17867	return awsutil.Prettify(s)
17868}
17869
17870// GoString returns the string representation
17871func (s StackSetOperation) GoString() string {
17872	return s.String()
17873}
17874
17875// SetAction sets the Action field's value.
17876func (s *StackSetOperation) SetAction(v string) *StackSetOperation {
17877	s.Action = &v
17878	return s
17879}
17880
17881// SetAdministrationRoleARN sets the AdministrationRoleARN field's value.
17882func (s *StackSetOperation) SetAdministrationRoleARN(v string) *StackSetOperation {
17883	s.AdministrationRoleARN = &v
17884	return s
17885}
17886
17887// SetCreationTimestamp sets the CreationTimestamp field's value.
17888func (s *StackSetOperation) SetCreationTimestamp(v time.Time) *StackSetOperation {
17889	s.CreationTimestamp = &v
17890	return s
17891}
17892
17893// SetDeploymentTargets sets the DeploymentTargets field's value.
17894func (s *StackSetOperation) SetDeploymentTargets(v *DeploymentTargets) *StackSetOperation {
17895	s.DeploymentTargets = v
17896	return s
17897}
17898
17899// SetEndTimestamp sets the EndTimestamp field's value.
17900func (s *StackSetOperation) SetEndTimestamp(v time.Time) *StackSetOperation {
17901	s.EndTimestamp = &v
17902	return s
17903}
17904
17905// SetExecutionRoleName sets the ExecutionRoleName field's value.
17906func (s *StackSetOperation) SetExecutionRoleName(v string) *StackSetOperation {
17907	s.ExecutionRoleName = &v
17908	return s
17909}
17910
17911// SetOperationId sets the OperationId field's value.
17912func (s *StackSetOperation) SetOperationId(v string) *StackSetOperation {
17913	s.OperationId = &v
17914	return s
17915}
17916
17917// SetOperationPreferences sets the OperationPreferences field's value.
17918func (s *StackSetOperation) SetOperationPreferences(v *StackSetOperationPreferences) *StackSetOperation {
17919	s.OperationPreferences = v
17920	return s
17921}
17922
17923// SetRetainStacks sets the RetainStacks field's value.
17924func (s *StackSetOperation) SetRetainStacks(v bool) *StackSetOperation {
17925	s.RetainStacks = &v
17926	return s
17927}
17928
17929// SetStackSetDriftDetectionDetails sets the StackSetDriftDetectionDetails field's value.
17930func (s *StackSetOperation) SetStackSetDriftDetectionDetails(v *StackSetDriftDetectionDetails) *StackSetOperation {
17931	s.StackSetDriftDetectionDetails = v
17932	return s
17933}
17934
17935// SetStackSetId sets the StackSetId field's value.
17936func (s *StackSetOperation) SetStackSetId(v string) *StackSetOperation {
17937	s.StackSetId = &v
17938	return s
17939}
17940
17941// SetStatus sets the Status field's value.
17942func (s *StackSetOperation) SetStatus(v string) *StackSetOperation {
17943	s.Status = &v
17944	return s
17945}
17946
17947// The user-specified preferences for how CloudFormation performs a stack set
17948// operation.
17949//
17950// For more information on maximum concurrent accounts and failure tolerance,
17951// see Stack set operation options (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/stacksets-concepts.html#stackset-ops-options).
17952type StackSetOperationPreferences struct {
17953	_ struct{} `type:"structure"`
17954
17955	// The number of accounts, per Region, for which this operation can fail before
17956	// CloudFormation stops the operation in that Region. If the operation is stopped
17957	// in a Region, CloudFormation doesn't attempt the operation in any subsequent
17958	// Regions.
17959	//
17960	// Conditional: You must specify either FailureToleranceCount or FailureTolerancePercentage
17961	// (but not both).
17962	//
17963	// By default, 0 is specified.
17964	FailureToleranceCount *int64 `type:"integer"`
17965
17966	// The percentage of accounts, per Region, for which this stack operation can
17967	// fail before CloudFormation stops the operation in that Region. If the operation
17968	// is stopped in a Region, CloudFormation doesn't attempt the operation in any
17969	// subsequent Regions.
17970	//
17971	// When calculating the number of accounts based on the specified percentage,
17972	// CloudFormation rounds down to the next whole number.
17973	//
17974	// Conditional: You must specify either FailureToleranceCount or FailureTolerancePercentage,
17975	// but not both.
17976	//
17977	// By default, 0 is specified.
17978	FailureTolerancePercentage *int64 `type:"integer"`
17979
17980	// The maximum number of accounts in which to perform this operation at one
17981	// time. This is dependent on the value of FailureToleranceCount. MaxConcurrentCount
17982	// is at most one more than the FailureToleranceCount.
17983	//
17984	// Note that this setting lets you specify the maximum for operations. For large
17985	// deployments, under certain circumstances the actual number of accounts acted
17986	// upon concurrently may be lower due to service throttling.
17987	//
17988	// Conditional: You must specify either MaxConcurrentCount or MaxConcurrentPercentage,
17989	// but not both.
17990	//
17991	// By default, 1 is specified.
17992	MaxConcurrentCount *int64 `min:"1" type:"integer"`
17993
17994	// The maximum percentage of accounts in which to perform this operation at
17995	// one time.
17996	//
17997	// When calculating the number of accounts based on the specified percentage,
17998	// CloudFormation rounds down to the next whole number. This is true except
17999	// in cases where rounding down would result is zero. In this case, CloudFormation
18000	// sets the number as one instead.
18001	//
18002	// Note that this setting lets you specify the maximum for operations. For large
18003	// deployments, under certain circumstances the actual number of accounts acted
18004	// upon concurrently may be lower due to service throttling.
18005	//
18006	// Conditional: You must specify either MaxConcurrentCount or MaxConcurrentPercentage,
18007	// but not both.
18008	//
18009	// By default, 1 is specified.
18010	MaxConcurrentPercentage *int64 `min:"1" type:"integer"`
18011
18012	// The concurrency type of deploying StackSets operations in Regions, could
18013	// be in parallel or one Region at a time.
18014	RegionConcurrencyType *string `type:"string" enum:"RegionConcurrencyType"`
18015
18016	// The order of the Regions in where you want to perform the stack operation.
18017	RegionOrder []*string `type:"list"`
18018}
18019
18020// String returns the string representation
18021func (s StackSetOperationPreferences) String() string {
18022	return awsutil.Prettify(s)
18023}
18024
18025// GoString returns the string representation
18026func (s StackSetOperationPreferences) GoString() string {
18027	return s.String()
18028}
18029
18030// Validate inspects the fields of the type to determine if they are valid.
18031func (s *StackSetOperationPreferences) Validate() error {
18032	invalidParams := request.ErrInvalidParams{Context: "StackSetOperationPreferences"}
18033	if s.MaxConcurrentCount != nil && *s.MaxConcurrentCount < 1 {
18034		invalidParams.Add(request.NewErrParamMinValue("MaxConcurrentCount", 1))
18035	}
18036	if s.MaxConcurrentPercentage != nil && *s.MaxConcurrentPercentage < 1 {
18037		invalidParams.Add(request.NewErrParamMinValue("MaxConcurrentPercentage", 1))
18038	}
18039
18040	if invalidParams.Len() > 0 {
18041		return invalidParams
18042	}
18043	return nil
18044}
18045
18046// SetFailureToleranceCount sets the FailureToleranceCount field's value.
18047func (s *StackSetOperationPreferences) SetFailureToleranceCount(v int64) *StackSetOperationPreferences {
18048	s.FailureToleranceCount = &v
18049	return s
18050}
18051
18052// SetFailureTolerancePercentage sets the FailureTolerancePercentage field's value.
18053func (s *StackSetOperationPreferences) SetFailureTolerancePercentage(v int64) *StackSetOperationPreferences {
18054	s.FailureTolerancePercentage = &v
18055	return s
18056}
18057
18058// SetMaxConcurrentCount sets the MaxConcurrentCount field's value.
18059func (s *StackSetOperationPreferences) SetMaxConcurrentCount(v int64) *StackSetOperationPreferences {
18060	s.MaxConcurrentCount = &v
18061	return s
18062}
18063
18064// SetMaxConcurrentPercentage sets the MaxConcurrentPercentage field's value.
18065func (s *StackSetOperationPreferences) SetMaxConcurrentPercentage(v int64) *StackSetOperationPreferences {
18066	s.MaxConcurrentPercentage = &v
18067	return s
18068}
18069
18070// SetRegionConcurrencyType sets the RegionConcurrencyType field's value.
18071func (s *StackSetOperationPreferences) SetRegionConcurrencyType(v string) *StackSetOperationPreferences {
18072	s.RegionConcurrencyType = &v
18073	return s
18074}
18075
18076// SetRegionOrder sets the RegionOrder field's value.
18077func (s *StackSetOperationPreferences) SetRegionOrder(v []*string) *StackSetOperationPreferences {
18078	s.RegionOrder = v
18079	return s
18080}
18081
18082// The structure that contains information about a specified operation's results
18083// for a given account in a given Region.
18084type StackSetOperationResultSummary struct {
18085	_ struct{} `type:"structure"`
18086
18087	// [Self-managed permissions] The name of the Amazon Web Services account for
18088	// this operation result.
18089	Account *string `type:"string"`
18090
18091	// The results of the account gate function CloudFormation invokes, if present,
18092	// before proceeding with stack set operations in an account
18093	AccountGateResult *AccountGateResult `type:"structure"`
18094
18095	// [Service-managed permissions] The organization root ID or organizational
18096	// unit (OU) IDs that you specified for DeploymentTargets (https://docs.aws.amazon.com/AWSCloudFormation/latest/APIReference/API_DeploymentTargets.html).
18097	OrganizationalUnitId *string `type:"string"`
18098
18099	// The name of the Amazon Web Services Region for this operation result.
18100	Region *string `type:"string"`
18101
18102	// The result status of the stack set operation for the given account in the
18103	// given Region.
18104	//
18105	//    * CANCELLED: The operation in the specified account and Region has been
18106	//    cancelled. This is either because a user has stopped the stack set operation,
18107	//    or because the failure tolerance of the stack set operation has been exceeded.
18108	//
18109	//    * FAILED: The operation in the specified account and Region failed. If
18110	//    the stack set operation fails in enough accounts within a Region, the
18111	//    failure tolerance for the stack set operation as a whole might be exceeded.
18112	//
18113	//    * RUNNING: The operation in the specified account and Region is currently
18114	//    in progress.
18115	//
18116	//    * PENDING: The operation in the specified account and Region has yet to
18117	//    start.
18118	//
18119	//    * SUCCEEDED: The operation in the specified account and Region completed
18120	//    successfully.
18121	Status *string `type:"string" enum:"StackSetOperationResultStatus"`
18122
18123	// The reason for the assigned result status.
18124	StatusReason *string `type:"string"`
18125}
18126
18127// String returns the string representation
18128func (s StackSetOperationResultSummary) String() string {
18129	return awsutil.Prettify(s)
18130}
18131
18132// GoString returns the string representation
18133func (s StackSetOperationResultSummary) GoString() string {
18134	return s.String()
18135}
18136
18137// SetAccount sets the Account field's value.
18138func (s *StackSetOperationResultSummary) SetAccount(v string) *StackSetOperationResultSummary {
18139	s.Account = &v
18140	return s
18141}
18142
18143// SetAccountGateResult sets the AccountGateResult field's value.
18144func (s *StackSetOperationResultSummary) SetAccountGateResult(v *AccountGateResult) *StackSetOperationResultSummary {
18145	s.AccountGateResult = v
18146	return s
18147}
18148
18149// SetOrganizationalUnitId sets the OrganizationalUnitId field's value.
18150func (s *StackSetOperationResultSummary) SetOrganizationalUnitId(v string) *StackSetOperationResultSummary {
18151	s.OrganizationalUnitId = &v
18152	return s
18153}
18154
18155// SetRegion sets the Region field's value.
18156func (s *StackSetOperationResultSummary) SetRegion(v string) *StackSetOperationResultSummary {
18157	s.Region = &v
18158	return s
18159}
18160
18161// SetStatus sets the Status field's value.
18162func (s *StackSetOperationResultSummary) SetStatus(v string) *StackSetOperationResultSummary {
18163	s.Status = &v
18164	return s
18165}
18166
18167// SetStatusReason sets the StatusReason field's value.
18168func (s *StackSetOperationResultSummary) SetStatusReason(v string) *StackSetOperationResultSummary {
18169	s.StatusReason = &v
18170	return s
18171}
18172
18173// The structures that contain summary information about the specified operation.
18174type StackSetOperationSummary struct {
18175	_ struct{} `type:"structure"`
18176
18177	// The type of operation: CREATE, UPDATE, or DELETE. Create and delete operations
18178	// affect only the specified stack instances that are associated with the specified
18179	// stack set. Update operations affect both the stack set itself as well as
18180	// all associated stack set instances.
18181	Action *string `type:"string" enum:"StackSetOperationAction"`
18182
18183	// The time at which the operation was initiated. Note that the creation times
18184	// for the stack set operation might differ from the creation time of the individual
18185	// stacks themselves. This is because CloudFormation needs to perform preparatory
18186	// work for the operation, such as dispatching the work to the requested Regions,
18187	// before actually creating the first stacks.
18188	CreationTimestamp *time.Time `type:"timestamp"`
18189
18190	// The time at which the stack set operation ended, across all accounts and
18191	// Regions specified. Note that this doesn't necessarily mean that the stack
18192	// set operation was successful, or even attempted, in each account or Region.
18193	EndTimestamp *time.Time `type:"timestamp"`
18194
18195	// The unique ID of the stack set operation.
18196	OperationId *string `min:"1" type:"string"`
18197
18198	// The overall status of the operation.
18199	//
18200	//    * FAILED: The operation exceeded the specified failure tolerance. The
18201	//    failure tolerance value that you've set for an operation is applied for
18202	//    each Region during stack create and update operations. If the number of
18203	//    failed stacks within a Region exceeds the failure tolerance, the status
18204	//    of the operation in the Region is set to FAILED. This in turn sets the
18205	//    status of the operation as a whole to FAILED, and CloudFormation cancels
18206	//    the operation in any remaining Regions.
18207	//
18208	//    * QUEUED: [Service-managed permissions] For automatic deployments that
18209	//    require a sequence of operations, the operation is queued to be performed.
18210	//    For more information, see the stack set operation status codes (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/stacksets-concepts.html#stackset-status-codes)
18211	//    in the CloudFormation User Guide.
18212	//
18213	//    * RUNNING: The operation is currently being performed.
18214	//
18215	//    * STOPPED: The user has cancelled the operation.
18216	//
18217	//    * STOPPING: The operation is in the process of stopping, at user request.
18218	//
18219	//    * SUCCEEDED: The operation completed creating or updating all the specified
18220	//    stacks without exceeding the failure tolerance for the operation.
18221	Status *string `type:"string" enum:"StackSetOperationStatus"`
18222}
18223
18224// String returns the string representation
18225func (s StackSetOperationSummary) String() string {
18226	return awsutil.Prettify(s)
18227}
18228
18229// GoString returns the string representation
18230func (s StackSetOperationSummary) GoString() string {
18231	return s.String()
18232}
18233
18234// SetAction sets the Action field's value.
18235func (s *StackSetOperationSummary) SetAction(v string) *StackSetOperationSummary {
18236	s.Action = &v
18237	return s
18238}
18239
18240// SetCreationTimestamp sets the CreationTimestamp field's value.
18241func (s *StackSetOperationSummary) SetCreationTimestamp(v time.Time) *StackSetOperationSummary {
18242	s.CreationTimestamp = &v
18243	return s
18244}
18245
18246// SetEndTimestamp sets the EndTimestamp field's value.
18247func (s *StackSetOperationSummary) SetEndTimestamp(v time.Time) *StackSetOperationSummary {
18248	s.EndTimestamp = &v
18249	return s
18250}
18251
18252// SetOperationId sets the OperationId field's value.
18253func (s *StackSetOperationSummary) SetOperationId(v string) *StackSetOperationSummary {
18254	s.OperationId = &v
18255	return s
18256}
18257
18258// SetStatus sets the Status field's value.
18259func (s *StackSetOperationSummary) SetStatus(v string) *StackSetOperationSummary {
18260	s.Status = &v
18261	return s
18262}
18263
18264// The structures that contain summary information about the specified stack
18265// set.
18266type StackSetSummary struct {
18267	_ struct{} `type:"structure"`
18268
18269	// [Service-managed permissions] Describes whether StackSets automatically deploys
18270	// to Organizations accounts that are added to a target organizational unit
18271	// (OU).
18272	AutoDeployment *AutoDeployment `type:"structure"`
18273
18274	// A description of the stack set that you specify when the stack set is created
18275	// or updated.
18276	Description *string `min:"1" type:"string"`
18277
18278	// Status of the stack set's actual configuration compared to its expected template
18279	// and parameter configuration. A stack set is considered to have drifted if
18280	// one or more of its stack instances have drifted from their expected template
18281	// and parameter configuration.
18282	//
18283	//    * DRIFTED: One or more of the stack instances belonging to the stack set
18284	//    stack differs from the expected template and parameter configuration.
18285	//    A stack instance is considered to have drifted if one or more of the resources
18286	//    in the associated stack have drifted.
18287	//
18288	//    * NOT_CHECKED: CloudFormation has not checked the stack set for drift.
18289	//
18290	//    * IN_SYNC: All of the stack instances belonging to the stack set stack
18291	//    match from the expected template and parameter configuration.
18292	//
18293	//    * UNKNOWN: This value is reserved for future use.
18294	DriftStatus *string `type:"string" enum:"StackDriftStatus"`
18295
18296	// Most recent time when CloudFormation performed a drift detection operation
18297	// on the stack set. This value will be NULL for any stack set on which drift
18298	// detection has not yet been performed.
18299	LastDriftCheckTimestamp *time.Time `type:"timestamp"`
18300
18301	// Describes how the IAM roles required for stack set operations are created.
18302	//
18303	//    * With self-managed permissions, you must create the administrator and
18304	//    execution roles required to deploy to target accounts. For more information,
18305	//    see Grant Self-Managed Stack Set Permissions (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/stacksets-prereqs-self-managed.html).
18306	//
18307	//    * With service-managed permissions, StackSets automatically creates the
18308	//    IAM roles required to deploy to accounts managed by Organizations. For
18309	//    more information, see Grant Service-Managed Stack Set Permissions (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/stacksets-prereqs-service-managed.html).
18310	PermissionModel *string `type:"string" enum:"PermissionModels"`
18311
18312	// The ID of the stack set.
18313	StackSetId *string `type:"string"`
18314
18315	// The name of the stack set.
18316	StackSetName *string `type:"string"`
18317
18318	// The status of the stack set.
18319	Status *string `type:"string" enum:"StackSetStatus"`
18320}
18321
18322// String returns the string representation
18323func (s StackSetSummary) String() string {
18324	return awsutil.Prettify(s)
18325}
18326
18327// GoString returns the string representation
18328func (s StackSetSummary) GoString() string {
18329	return s.String()
18330}
18331
18332// SetAutoDeployment sets the AutoDeployment field's value.
18333func (s *StackSetSummary) SetAutoDeployment(v *AutoDeployment) *StackSetSummary {
18334	s.AutoDeployment = v
18335	return s
18336}
18337
18338// SetDescription sets the Description field's value.
18339func (s *StackSetSummary) SetDescription(v string) *StackSetSummary {
18340	s.Description = &v
18341	return s
18342}
18343
18344// SetDriftStatus sets the DriftStatus field's value.
18345func (s *StackSetSummary) SetDriftStatus(v string) *StackSetSummary {
18346	s.DriftStatus = &v
18347	return s
18348}
18349
18350// SetLastDriftCheckTimestamp sets the LastDriftCheckTimestamp field's value.
18351func (s *StackSetSummary) SetLastDriftCheckTimestamp(v time.Time) *StackSetSummary {
18352	s.LastDriftCheckTimestamp = &v
18353	return s
18354}
18355
18356// SetPermissionModel sets the PermissionModel field's value.
18357func (s *StackSetSummary) SetPermissionModel(v string) *StackSetSummary {
18358	s.PermissionModel = &v
18359	return s
18360}
18361
18362// SetStackSetId sets the StackSetId field's value.
18363func (s *StackSetSummary) SetStackSetId(v string) *StackSetSummary {
18364	s.StackSetId = &v
18365	return s
18366}
18367
18368// SetStackSetName sets the StackSetName field's value.
18369func (s *StackSetSummary) SetStackSetName(v string) *StackSetSummary {
18370	s.StackSetName = &v
18371	return s
18372}
18373
18374// SetStatus sets the Status field's value.
18375func (s *StackSetSummary) SetStatus(v string) *StackSetSummary {
18376	s.Status = &v
18377	return s
18378}
18379
18380// The StackSummary Data Type
18381type StackSummary struct {
18382	_ struct{} `type:"structure"`
18383
18384	// The time the stack was created.
18385	//
18386	// CreationTime is a required field
18387	CreationTime *time.Time `type:"timestamp" required:"true"`
18388
18389	// The time the stack was deleted.
18390	DeletionTime *time.Time `type:"timestamp"`
18391
18392	// Summarizes information on whether a stack's actual configuration differs,
18393	// or has drifted, from it's expected configuration, as defined in the stack
18394	// template and any values specified as template parameters. For more information,
18395	// see Detecting Unregulated Configuration Changes to Stacks and Resources (http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-stack-drift.html).
18396	DriftInformation *StackDriftInformationSummary `type:"structure"`
18397
18398	// The time the stack was last updated. This field will only be returned if
18399	// the stack has been updated at least once.
18400	LastUpdatedTime *time.Time `type:"timestamp"`
18401
18402	// For nested stacks--stacks created as resources for another stack--the stack
18403	// ID of the direct parent of this stack. For the first level of nested stacks,
18404	// the root stack is also the parent stack.
18405	//
18406	// For more information, see Working with Nested Stacks (http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-nested-stacks.html)
18407	// in the CloudFormation User Guide.
18408	ParentId *string `type:"string"`
18409
18410	// For nested stacks--stacks created as resources for another stack--the stack
18411	// ID of the top-level stack to which the nested stack ultimately belongs.
18412	//
18413	// For more information, see Working with Nested Stacks (http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-nested-stacks.html)
18414	// in the CloudFormation User Guide.
18415	RootId *string `type:"string"`
18416
18417	// Unique stack identifier.
18418	StackId *string `type:"string"`
18419
18420	// The name associated with the stack.
18421	//
18422	// StackName is a required field
18423	StackName *string `type:"string" required:"true"`
18424
18425	// The current status of the stack.
18426	//
18427	// StackStatus is a required field
18428	StackStatus *string `type:"string" required:"true" enum:"StackStatus"`
18429
18430	// Success/Failure message associated with the stack status.
18431	StackStatusReason *string `type:"string"`
18432
18433	// The template description of the template used to create the stack.
18434	TemplateDescription *string `type:"string"`
18435}
18436
18437// String returns the string representation
18438func (s StackSummary) String() string {
18439	return awsutil.Prettify(s)
18440}
18441
18442// GoString returns the string representation
18443func (s StackSummary) GoString() string {
18444	return s.String()
18445}
18446
18447// SetCreationTime sets the CreationTime field's value.
18448func (s *StackSummary) SetCreationTime(v time.Time) *StackSummary {
18449	s.CreationTime = &v
18450	return s
18451}
18452
18453// SetDeletionTime sets the DeletionTime field's value.
18454func (s *StackSummary) SetDeletionTime(v time.Time) *StackSummary {
18455	s.DeletionTime = &v
18456	return s
18457}
18458
18459// SetDriftInformation sets the DriftInformation field's value.
18460func (s *StackSummary) SetDriftInformation(v *StackDriftInformationSummary) *StackSummary {
18461	s.DriftInformation = v
18462	return s
18463}
18464
18465// SetLastUpdatedTime sets the LastUpdatedTime field's value.
18466func (s *StackSummary) SetLastUpdatedTime(v time.Time) *StackSummary {
18467	s.LastUpdatedTime = &v
18468	return s
18469}
18470
18471// SetParentId sets the ParentId field's value.
18472func (s *StackSummary) SetParentId(v string) *StackSummary {
18473	s.ParentId = &v
18474	return s
18475}
18476
18477// SetRootId sets the RootId field's value.
18478func (s *StackSummary) SetRootId(v string) *StackSummary {
18479	s.RootId = &v
18480	return s
18481}
18482
18483// SetStackId sets the StackId field's value.
18484func (s *StackSummary) SetStackId(v string) *StackSummary {
18485	s.StackId = &v
18486	return s
18487}
18488
18489// SetStackName sets the StackName field's value.
18490func (s *StackSummary) SetStackName(v string) *StackSummary {
18491	s.StackName = &v
18492	return s
18493}
18494
18495// SetStackStatus sets the StackStatus field's value.
18496func (s *StackSummary) SetStackStatus(v string) *StackSummary {
18497	s.StackStatus = &v
18498	return s
18499}
18500
18501// SetStackStatusReason sets the StackStatusReason field's value.
18502func (s *StackSummary) SetStackStatusReason(v string) *StackSummary {
18503	s.StackStatusReason = &v
18504	return s
18505}
18506
18507// SetTemplateDescription sets the TemplateDescription field's value.
18508func (s *StackSummary) SetTemplateDescription(v string) *StackSummary {
18509	s.TemplateDescription = &v
18510	return s
18511}
18512
18513type StopStackSetOperationInput struct {
18514	_ struct{} `type:"structure"`
18515
18516	// [Service-managed permissions] Specifies whether you are acting as an account
18517	// administrator in the organization's management account or as a delegated
18518	// administrator in a member account.
18519	//
18520	// By default, SELF is specified. Use SELF for stack sets with self-managed
18521	// permissions.
18522	//
18523	//    * If you are signed in to the management account, specify SELF.
18524	//
18525	//    * If you are signed in to a delegated administrator account, specify DELEGATED_ADMIN.
18526	//    Your Amazon Web Services account must be registered as a delegated administrator
18527	//    in the management account. For more information, see Register a delegated
18528	//    administrator (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/stacksets-orgs-delegated-admin.html)
18529	//    in the CloudFormation User Guide.
18530	CallAs *string `type:"string" enum:"CallAs"`
18531
18532	// The ID of the stack operation.
18533	//
18534	// OperationId is a required field
18535	OperationId *string `min:"1" type:"string" required:"true"`
18536
18537	// The name or unique ID of the stack set that you want to stop the operation
18538	// for.
18539	//
18540	// StackSetName is a required field
18541	StackSetName *string `type:"string" required:"true"`
18542}
18543
18544// String returns the string representation
18545func (s StopStackSetOperationInput) String() string {
18546	return awsutil.Prettify(s)
18547}
18548
18549// GoString returns the string representation
18550func (s StopStackSetOperationInput) GoString() string {
18551	return s.String()
18552}
18553
18554// Validate inspects the fields of the type to determine if they are valid.
18555func (s *StopStackSetOperationInput) Validate() error {
18556	invalidParams := request.ErrInvalidParams{Context: "StopStackSetOperationInput"}
18557	if s.OperationId == nil {
18558		invalidParams.Add(request.NewErrParamRequired("OperationId"))
18559	}
18560	if s.OperationId != nil && len(*s.OperationId) < 1 {
18561		invalidParams.Add(request.NewErrParamMinLen("OperationId", 1))
18562	}
18563	if s.StackSetName == nil {
18564		invalidParams.Add(request.NewErrParamRequired("StackSetName"))
18565	}
18566
18567	if invalidParams.Len() > 0 {
18568		return invalidParams
18569	}
18570	return nil
18571}
18572
18573// SetCallAs sets the CallAs field's value.
18574func (s *StopStackSetOperationInput) SetCallAs(v string) *StopStackSetOperationInput {
18575	s.CallAs = &v
18576	return s
18577}
18578
18579// SetOperationId sets the OperationId field's value.
18580func (s *StopStackSetOperationInput) SetOperationId(v string) *StopStackSetOperationInput {
18581	s.OperationId = &v
18582	return s
18583}
18584
18585// SetStackSetName sets the StackSetName field's value.
18586func (s *StopStackSetOperationInput) SetStackSetName(v string) *StopStackSetOperationInput {
18587	s.StackSetName = &v
18588	return s
18589}
18590
18591type StopStackSetOperationOutput struct {
18592	_ struct{} `type:"structure"`
18593}
18594
18595// String returns the string representation
18596func (s StopStackSetOperationOutput) String() string {
18597	return awsutil.Prettify(s)
18598}
18599
18600// GoString returns the string representation
18601func (s StopStackSetOperationOutput) GoString() string {
18602	return s.String()
18603}
18604
18605// The Tag type enables you to specify a key-value pair that can be used to
18606// store information about an CloudFormation stack.
18607type Tag struct {
18608	_ struct{} `type:"structure"`
18609
18610	// Required. A string used to identify this tag. You can specify a maximum of
18611	// 128 characters for a tag key. Tags owned by Amazon Web Services (Amazon Web
18612	// Services) have the reserved prefix: aws:.
18613	//
18614	// Key is a required field
18615	Key *string `min:"1" type:"string" required:"true"`
18616
18617	// Required. A string containing the value for this tag. You can specify a maximum
18618	// of 256 characters for a tag value.
18619	//
18620	// Value is a required field
18621	Value *string `min:"1" type:"string" required:"true"`
18622}
18623
18624// String returns the string representation
18625func (s Tag) String() string {
18626	return awsutil.Prettify(s)
18627}
18628
18629// GoString returns the string representation
18630func (s Tag) GoString() string {
18631	return s.String()
18632}
18633
18634// Validate inspects the fields of the type to determine if they are valid.
18635func (s *Tag) Validate() error {
18636	invalidParams := request.ErrInvalidParams{Context: "Tag"}
18637	if s.Key == nil {
18638		invalidParams.Add(request.NewErrParamRequired("Key"))
18639	}
18640	if s.Key != nil && len(*s.Key) < 1 {
18641		invalidParams.Add(request.NewErrParamMinLen("Key", 1))
18642	}
18643	if s.Value == nil {
18644		invalidParams.Add(request.NewErrParamRequired("Value"))
18645	}
18646	if s.Value != nil && len(*s.Value) < 1 {
18647		invalidParams.Add(request.NewErrParamMinLen("Value", 1))
18648	}
18649
18650	if invalidParams.Len() > 0 {
18651		return invalidParams
18652	}
18653	return nil
18654}
18655
18656// SetKey sets the Key field's value.
18657func (s *Tag) SetKey(v string) *Tag {
18658	s.Key = &v
18659	return s
18660}
18661
18662// SetValue sets the Value field's value.
18663func (s *Tag) SetValue(v string) *Tag {
18664	s.Value = &v
18665	return s
18666}
18667
18668// The TemplateParameter data type.
18669type TemplateParameter struct {
18670	_ struct{} `type:"structure"`
18671
18672	// The default value associated with the parameter.
18673	DefaultValue *string `type:"string"`
18674
18675	// User defined description associated with the parameter.
18676	Description *string `min:"1" type:"string"`
18677
18678	// Flag indicating whether the parameter should be displayed as plain text in
18679	// logs and UIs.
18680	NoEcho *bool `type:"boolean"`
18681
18682	// The name associated with the parameter.
18683	ParameterKey *string `type:"string"`
18684}
18685
18686// String returns the string representation
18687func (s TemplateParameter) String() string {
18688	return awsutil.Prettify(s)
18689}
18690
18691// GoString returns the string representation
18692func (s TemplateParameter) GoString() string {
18693	return s.String()
18694}
18695
18696// SetDefaultValue sets the DefaultValue field's value.
18697func (s *TemplateParameter) SetDefaultValue(v string) *TemplateParameter {
18698	s.DefaultValue = &v
18699	return s
18700}
18701
18702// SetDescription sets the Description field's value.
18703func (s *TemplateParameter) SetDescription(v string) *TemplateParameter {
18704	s.Description = &v
18705	return s
18706}
18707
18708// SetNoEcho sets the NoEcho field's value.
18709func (s *TemplateParameter) SetNoEcho(v bool) *TemplateParameter {
18710	s.NoEcho = &v
18711	return s
18712}
18713
18714// SetParameterKey sets the ParameterKey field's value.
18715func (s *TemplateParameter) SetParameterKey(v string) *TemplateParameter {
18716	s.ParameterKey = &v
18717	return s
18718}
18719
18720type TestTypeInput struct {
18721	_ struct{} `type:"structure"`
18722
18723	// The Amazon Resource Number (ARN) of the extension.
18724	//
18725	// Conditional: You must specify Arn, or TypeName and Type.
18726	Arn *string `type:"string"`
18727
18728	// The S3 bucket to which CloudFormation delivers the contract test execution
18729	// logs.
18730	//
18731	// CloudFormation delivers the logs by the time contract testing has completed
18732	// and the extension has been assigned a test type status of PASSED or FAILED.
18733	//
18734	// The user calling TestType must be able to access items in the specified S3
18735	// bucket. Specifically, the user needs the following permissions:
18736	//
18737	//    * GetObject
18738	//
18739	//    * PutObject
18740	//
18741	// For more information, see Actions, Resources, and Condition Keys for Amazon
18742	// S3 (https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazons3.html)
18743	// in the Amazon Web Services Identity and Access Management User Guide.
18744	LogDeliveryBucket *string `min:"3" type:"string"`
18745
18746	// The type of the extension to test.
18747	//
18748	// Conditional: You must specify Arn, or TypeName and Type.
18749	Type *string `type:"string" enum:"ThirdPartyType"`
18750
18751	// The name of the extension to test.
18752	//
18753	// Conditional: You must specify Arn, or TypeName and Type.
18754	TypeName *string `min:"10" type:"string"`
18755
18756	// The version of the extension to test.
18757	//
18758	// You can specify the version id with either Arn, or with TypeName and Type.
18759	//
18760	// If you do not specify a version, CloudFormation uses the default version
18761	// of the extension in this account and region for testing.
18762	VersionId *string `min:"1" type:"string"`
18763}
18764
18765// String returns the string representation
18766func (s TestTypeInput) String() string {
18767	return awsutil.Prettify(s)
18768}
18769
18770// GoString returns the string representation
18771func (s TestTypeInput) GoString() string {
18772	return s.String()
18773}
18774
18775// Validate inspects the fields of the type to determine if they are valid.
18776func (s *TestTypeInput) Validate() error {
18777	invalidParams := request.ErrInvalidParams{Context: "TestTypeInput"}
18778	if s.LogDeliveryBucket != nil && len(*s.LogDeliveryBucket) < 3 {
18779		invalidParams.Add(request.NewErrParamMinLen("LogDeliveryBucket", 3))
18780	}
18781	if s.TypeName != nil && len(*s.TypeName) < 10 {
18782		invalidParams.Add(request.NewErrParamMinLen("TypeName", 10))
18783	}
18784	if s.VersionId != nil && len(*s.VersionId) < 1 {
18785		invalidParams.Add(request.NewErrParamMinLen("VersionId", 1))
18786	}
18787
18788	if invalidParams.Len() > 0 {
18789		return invalidParams
18790	}
18791	return nil
18792}
18793
18794// SetArn sets the Arn field's value.
18795func (s *TestTypeInput) SetArn(v string) *TestTypeInput {
18796	s.Arn = &v
18797	return s
18798}
18799
18800// SetLogDeliveryBucket sets the LogDeliveryBucket field's value.
18801func (s *TestTypeInput) SetLogDeliveryBucket(v string) *TestTypeInput {
18802	s.LogDeliveryBucket = &v
18803	return s
18804}
18805
18806// SetType sets the Type field's value.
18807func (s *TestTypeInput) SetType(v string) *TestTypeInput {
18808	s.Type = &v
18809	return s
18810}
18811
18812// SetTypeName sets the TypeName field's value.
18813func (s *TestTypeInput) SetTypeName(v string) *TestTypeInput {
18814	s.TypeName = &v
18815	return s
18816}
18817
18818// SetVersionId sets the VersionId field's value.
18819func (s *TestTypeInput) SetVersionId(v string) *TestTypeInput {
18820	s.VersionId = &v
18821	return s
18822}
18823
18824type TestTypeOutput struct {
18825	_ struct{} `type:"structure"`
18826
18827	// The Amazon Resource Number (ARN) of the extension.
18828	TypeVersionArn *string `type:"string"`
18829}
18830
18831// String returns the string representation
18832func (s TestTypeOutput) String() string {
18833	return awsutil.Prettify(s)
18834}
18835
18836// GoString returns the string representation
18837func (s TestTypeOutput) GoString() string {
18838	return s.String()
18839}
18840
18841// SetTypeVersionArn sets the TypeVersionArn field's value.
18842func (s *TestTypeOutput) SetTypeVersionArn(v string) *TestTypeOutput {
18843	s.TypeVersionArn = &v
18844	return s
18845}
18846
18847// Detailed information concerning the specification of a CloudFormation extension
18848// in a given account and region.
18849//
18850// For more information, see Configuring extensions at the account level (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/registry-register.html#registry-set-configuration)
18851// in the CloudFormation User Guide.
18852type TypeConfigurationDetails struct {
18853	_ struct{} `type:"structure"`
18854
18855	// The alias specified for this configuration, if one was specified when the
18856	// configuration was set.
18857	Alias *string `min:"1" type:"string"`
18858
18859	// The Amazon Resource Name (ARN) for the configuration data, in this account
18860	// and region.
18861	Arn *string `type:"string"`
18862
18863	// A JSON string specifying the configuration data for the extension, in this
18864	// account and region.
18865	//
18866	// If a configuration has not been set for a specified extension, CloudFormation
18867	// returns {}.
18868	Configuration *string `min:"1" type:"string"`
18869
18870	// Whether or not this configuration data is the default configuration for the
18871	// extension.
18872	IsDefaultConfiguration *bool `type:"boolean"`
18873
18874	// When the configuration data was last updated for this extension.
18875	//
18876	// If a configuration has not been set for a specified extension, CloudFormation
18877	// returns null.
18878	LastUpdated *time.Time `type:"timestamp"`
18879
18880	// The Amazon Resource Name (ARN) for the extension, in this account and region.
18881	//
18882	// For public extensions, this will be the ARN assigned when you activate the
18883	// type (https://docs.aws.amazon.com/AWSCloudFormation/latest/APIReference/API_ActivateType.html)
18884	// in this account and region. For private extensions, this will be the ARN
18885	// assigned when you register the type (https://docs.aws.amazon.com/AWSCloudFormation/latest/APIReference/API_RegisterType.html)
18886	// in this account and region.
18887	TypeArn *string `type:"string"`
18888
18889	// The name of the extension.
18890	TypeName *string `min:"10" type:"string"`
18891}
18892
18893// String returns the string representation
18894func (s TypeConfigurationDetails) String() string {
18895	return awsutil.Prettify(s)
18896}
18897
18898// GoString returns the string representation
18899func (s TypeConfigurationDetails) GoString() string {
18900	return s.String()
18901}
18902
18903// SetAlias sets the Alias field's value.
18904func (s *TypeConfigurationDetails) SetAlias(v string) *TypeConfigurationDetails {
18905	s.Alias = &v
18906	return s
18907}
18908
18909// SetArn sets the Arn field's value.
18910func (s *TypeConfigurationDetails) SetArn(v string) *TypeConfigurationDetails {
18911	s.Arn = &v
18912	return s
18913}
18914
18915// SetConfiguration sets the Configuration field's value.
18916func (s *TypeConfigurationDetails) SetConfiguration(v string) *TypeConfigurationDetails {
18917	s.Configuration = &v
18918	return s
18919}
18920
18921// SetIsDefaultConfiguration sets the IsDefaultConfiguration field's value.
18922func (s *TypeConfigurationDetails) SetIsDefaultConfiguration(v bool) *TypeConfigurationDetails {
18923	s.IsDefaultConfiguration = &v
18924	return s
18925}
18926
18927// SetLastUpdated sets the LastUpdated field's value.
18928func (s *TypeConfigurationDetails) SetLastUpdated(v time.Time) *TypeConfigurationDetails {
18929	s.LastUpdated = &v
18930	return s
18931}
18932
18933// SetTypeArn sets the TypeArn field's value.
18934func (s *TypeConfigurationDetails) SetTypeArn(v string) *TypeConfigurationDetails {
18935	s.TypeArn = &v
18936	return s
18937}
18938
18939// SetTypeName sets the TypeName field's value.
18940func (s *TypeConfigurationDetails) SetTypeName(v string) *TypeConfigurationDetails {
18941	s.TypeName = &v
18942	return s
18943}
18944
18945// Identifying information for the configuration of a CloudFormation extension.
18946type TypeConfigurationIdentifier struct {
18947	_ struct{} `type:"structure"`
18948
18949	// The type of extension.
18950	Type *string `type:"string" enum:"ThirdPartyType"`
18951
18952	// The Amazon Resource Name (ARN) for the extension, in this account and region.
18953	//
18954	// For public extensions, this will be the ARN assigned when you activate the
18955	// type (https://docs.aws.amazon.com/AWSCloudFormation/latest/APIReference/API_ActivateType.html)
18956	// in this account and region. For private extensions, this will be the ARN
18957	// assigned when you register the type (https://docs.aws.amazon.com/AWSCloudFormation/latest/APIReference/API_RegisterType.html)
18958	// in this account and region.
18959	TypeArn *string `type:"string"`
18960
18961	// The alias specified for this configuration, if one was specified when the
18962	// configuration was set.
18963	TypeConfigurationAlias *string `min:"1" type:"string"`
18964
18965	// The Amazon Resource Name (ARN) for the configuration, in this account and
18966	// region.
18967	TypeConfigurationArn *string `type:"string"`
18968
18969	// The name of the extension type to which this configuration applies.
18970	TypeName *string `min:"10" type:"string"`
18971}
18972
18973// String returns the string representation
18974func (s TypeConfigurationIdentifier) String() string {
18975	return awsutil.Prettify(s)
18976}
18977
18978// GoString returns the string representation
18979func (s TypeConfigurationIdentifier) GoString() string {
18980	return s.String()
18981}
18982
18983// Validate inspects the fields of the type to determine if they are valid.
18984func (s *TypeConfigurationIdentifier) Validate() error {
18985	invalidParams := request.ErrInvalidParams{Context: "TypeConfigurationIdentifier"}
18986	if s.TypeConfigurationAlias != nil && len(*s.TypeConfigurationAlias) < 1 {
18987		invalidParams.Add(request.NewErrParamMinLen("TypeConfigurationAlias", 1))
18988	}
18989	if s.TypeName != nil && len(*s.TypeName) < 10 {
18990		invalidParams.Add(request.NewErrParamMinLen("TypeName", 10))
18991	}
18992
18993	if invalidParams.Len() > 0 {
18994		return invalidParams
18995	}
18996	return nil
18997}
18998
18999// SetType sets the Type field's value.
19000func (s *TypeConfigurationIdentifier) SetType(v string) *TypeConfigurationIdentifier {
19001	s.Type = &v
19002	return s
19003}
19004
19005// SetTypeArn sets the TypeArn field's value.
19006func (s *TypeConfigurationIdentifier) SetTypeArn(v string) *TypeConfigurationIdentifier {
19007	s.TypeArn = &v
19008	return s
19009}
19010
19011// SetTypeConfigurationAlias sets the TypeConfigurationAlias field's value.
19012func (s *TypeConfigurationIdentifier) SetTypeConfigurationAlias(v string) *TypeConfigurationIdentifier {
19013	s.TypeConfigurationAlias = &v
19014	return s
19015}
19016
19017// SetTypeConfigurationArn sets the TypeConfigurationArn field's value.
19018func (s *TypeConfigurationIdentifier) SetTypeConfigurationArn(v string) *TypeConfigurationIdentifier {
19019	s.TypeConfigurationArn = &v
19020	return s
19021}
19022
19023// SetTypeName sets the TypeName field's value.
19024func (s *TypeConfigurationIdentifier) SetTypeName(v string) *TypeConfigurationIdentifier {
19025	s.TypeName = &v
19026	return s
19027}
19028
19029// Filter criteria to use in determining which extensions to return.
19030type TypeFilters struct {
19031	_ struct{} `type:"structure"`
19032
19033	// The category of extensions to return.
19034	//
19035	//    * REGISTERED: Private extensions that have been registered for this account
19036	//    and region.
19037	//
19038	//    * ACTIVATED: Public extensions that have been activated for this account
19039	//    and region.
19040	//
19041	//    * THIRD-PARTY: Extensions available for use from publishers other than
19042	//    Amazon. This includes: Private extensions registered in the account. Public
19043	//    extensions from publishers other than Amazon, whether activated or not.
19044	//
19045	//    * AWS-TYPES: Extensions available for use from Amazon.
19046	Category *string `type:"string" enum:"Category"`
19047
19048	// The id of the publisher of the extension.
19049	//
19050	// Extensions published by Amazon are not assigned a publisher ID. Use the AWS-TYPES
19051	// category to specify a list of types published by Amazon.
19052	PublisherId *string `min:"1" type:"string"`
19053
19054	// A prefix to use as a filter for results.
19055	TypeNamePrefix *string `min:"1" type:"string"`
19056}
19057
19058// String returns the string representation
19059func (s TypeFilters) String() string {
19060	return awsutil.Prettify(s)
19061}
19062
19063// GoString returns the string representation
19064func (s TypeFilters) GoString() string {
19065	return s.String()
19066}
19067
19068// Validate inspects the fields of the type to determine if they are valid.
19069func (s *TypeFilters) Validate() error {
19070	invalidParams := request.ErrInvalidParams{Context: "TypeFilters"}
19071	if s.PublisherId != nil && len(*s.PublisherId) < 1 {
19072		invalidParams.Add(request.NewErrParamMinLen("PublisherId", 1))
19073	}
19074	if s.TypeNamePrefix != nil && len(*s.TypeNamePrefix) < 1 {
19075		invalidParams.Add(request.NewErrParamMinLen("TypeNamePrefix", 1))
19076	}
19077
19078	if invalidParams.Len() > 0 {
19079		return invalidParams
19080	}
19081	return nil
19082}
19083
19084// SetCategory sets the Category field's value.
19085func (s *TypeFilters) SetCategory(v string) *TypeFilters {
19086	s.Category = &v
19087	return s
19088}
19089
19090// SetPublisherId sets the PublisherId field's value.
19091func (s *TypeFilters) SetPublisherId(v string) *TypeFilters {
19092	s.PublisherId = &v
19093	return s
19094}
19095
19096// SetTypeNamePrefix sets the TypeNamePrefix field's value.
19097func (s *TypeFilters) SetTypeNamePrefix(v string) *TypeFilters {
19098	s.TypeNamePrefix = &v
19099	return s
19100}
19101
19102// Contains summary information about the specified CloudFormation extension.
19103type TypeSummary struct {
19104	_ struct{} `type:"structure"`
19105
19106	// The ID of the default version of the extension. The default version is used
19107	// when the extension version is not specified.
19108	//
19109	// This applies only to private extensions you have registered in your account.
19110	// For public extensions, both those provided by Amazon and published by third
19111	// parties, CloudFormation returns null. For more information, see RegisterType
19112	// (https://docs.aws.amazon.com/AWSCloudFormation/latest/APIReference/API_RegisterType.html).
19113	//
19114	// To set the default version of an extension, use SetTypeDefaultVersion .
19115	DefaultVersionId *string `min:"1" type:"string"`
19116
19117	// The description of the extension.
19118	Description *string `min:"1" type:"string"`
19119
19120	// Whether or not the extension is activated for this account and region.
19121	//
19122	// This applies only to third-party public extensions. Extensions published
19123	// by Amazon are activated by default.
19124	IsActivated *bool `type:"boolean"`
19125
19126	// When the specified extension version was registered. This applies only to:
19127	//
19128	//    * Private extensions you have registered in your account. For more information,
19129	//    see RegisterType (https://docs.aws.amazon.com/AWSCloudFormation/latest/APIReference/API_RegisterType.html).
19130	//
19131	//    * Public extensions you have activated in your account with auto-update
19132	//    specified. For more information, see ActivateType (https://docs.aws.amazon.com/AWSCloudFormation/latest/APIReference/API_ActivateType.html).
19133	//
19134	// For all other extension types, CloudFormation returns null.
19135	LastUpdated *time.Time `type:"timestamp"`
19136
19137	// For public extensions that have been activated for this account and region,
19138	// the latest version of the public extension that is available. For any extensions
19139	// other than activated third-arty extensions, CloudFormation returns null.
19140	//
19141	// How you specified AutoUpdate when enabling the extension affects whether
19142	// CloudFormation automatically updates the extention in this account and region
19143	// when a new version is released. For more information, see Setting CloudFormation
19144	// to automatically use new versions of extensions (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/registry-public.html#registry-public-enable-auto)
19145	// in the CloudFormation User Guide.
19146	LatestPublicVersion *string `min:"5" type:"string"`
19147
19148	// For public extensions that have been activated for this account and region,
19149	// the type name of the public extension.
19150	//
19151	// If you specified a TypeNameAlias when enabling the extension in this account
19152	// and region, CloudFormation treats that alias as the extension's type name
19153	// within the account and region, not the type name of the public extension.
19154	// 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)
19155	// in the CloudFormation User Guide.
19156	OriginalTypeName *string `min:"10" type:"string"`
19157
19158	// For public extensions that have been activated for this account and region,
19159	// the version of the public extension to be used for CloudFormation operations
19160	// in this account and region.
19161	//
19162	// How you specified AutoUpdate when enabling the extension affects whether
19163	// CloudFormation automatically updates the extention in this account and region
19164	// when a new version is released. For more information, see Setting CloudFormation
19165	// to automatically use new versions of extensions (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/registry-public.html#registry-public-enable-auto)
19166	// in the CloudFormation User Guide.
19167	PublicVersionNumber *string `min:"5" type:"string"`
19168
19169	// The ID of the extension publisher, if the extension is published by a third
19170	// party. Extensions published by Amazon do not return a publisher ID.
19171	PublisherId *string `min:"1" type:"string"`
19172
19173	// The service used to verify the publisher identity.
19174	//
19175	// For more information, see Registering your account to publish CloudFormation
19176	// extensions (https://docs.aws.amazon.com/cloudformation-cli/latest/userguide/publish-extension.html)
19177	// in the CFN-CLI User Guide for Extension Development.
19178	PublisherIdentity *string `type:"string" enum:"IdentityProvider"`
19179
19180	// The publisher name, as defined in the public profile for that publisher in
19181	// the service used to verify the publisher identity.
19182	PublisherName *string `min:"1" type:"string"`
19183
19184	// The kind of extension.
19185	Type *string `type:"string" enum:"RegistryType"`
19186
19187	// The Amazon Resource Name (ARN) of the extension.
19188	TypeArn *string `type:"string"`
19189
19190	// The name of the extension.
19191	//
19192	// If you specified a TypeNameAlias when you activate this extension (https://docs.aws.amazon.com/AWSCloudFormation/latest/APIReference/API_ActivateType.html)
19193	// in your account and region, CloudFormation considers that alias as the type
19194	// name.
19195	TypeName *string `min:"10" type:"string"`
19196}
19197
19198// String returns the string representation
19199func (s TypeSummary) String() string {
19200	return awsutil.Prettify(s)
19201}
19202
19203// GoString returns the string representation
19204func (s TypeSummary) GoString() string {
19205	return s.String()
19206}
19207
19208// SetDefaultVersionId sets the DefaultVersionId field's value.
19209func (s *TypeSummary) SetDefaultVersionId(v string) *TypeSummary {
19210	s.DefaultVersionId = &v
19211	return s
19212}
19213
19214// SetDescription sets the Description field's value.
19215func (s *TypeSummary) SetDescription(v string) *TypeSummary {
19216	s.Description = &v
19217	return s
19218}
19219
19220// SetIsActivated sets the IsActivated field's value.
19221func (s *TypeSummary) SetIsActivated(v bool) *TypeSummary {
19222	s.IsActivated = &v
19223	return s
19224}
19225
19226// SetLastUpdated sets the LastUpdated field's value.
19227func (s *TypeSummary) SetLastUpdated(v time.Time) *TypeSummary {
19228	s.LastUpdated = &v
19229	return s
19230}
19231
19232// SetLatestPublicVersion sets the LatestPublicVersion field's value.
19233func (s *TypeSummary) SetLatestPublicVersion(v string) *TypeSummary {
19234	s.LatestPublicVersion = &v
19235	return s
19236}
19237
19238// SetOriginalTypeName sets the OriginalTypeName field's value.
19239func (s *TypeSummary) SetOriginalTypeName(v string) *TypeSummary {
19240	s.OriginalTypeName = &v
19241	return s
19242}
19243
19244// SetPublicVersionNumber sets the PublicVersionNumber field's value.
19245func (s *TypeSummary) SetPublicVersionNumber(v string) *TypeSummary {
19246	s.PublicVersionNumber = &v
19247	return s
19248}
19249
19250// SetPublisherId sets the PublisherId field's value.
19251func (s *TypeSummary) SetPublisherId(v string) *TypeSummary {
19252	s.PublisherId = &v
19253	return s
19254}
19255
19256// SetPublisherIdentity sets the PublisherIdentity field's value.
19257func (s *TypeSummary) SetPublisherIdentity(v string) *TypeSummary {
19258	s.PublisherIdentity = &v
19259	return s
19260}
19261
19262// SetPublisherName sets the PublisherName field's value.
19263func (s *TypeSummary) SetPublisherName(v string) *TypeSummary {
19264	s.PublisherName = &v
19265	return s
19266}
19267
19268// SetType sets the Type field's value.
19269func (s *TypeSummary) SetType(v string) *TypeSummary {
19270	s.Type = &v
19271	return s
19272}
19273
19274// SetTypeArn sets the TypeArn field's value.
19275func (s *TypeSummary) SetTypeArn(v string) *TypeSummary {
19276	s.TypeArn = &v
19277	return s
19278}
19279
19280// SetTypeName sets the TypeName field's value.
19281func (s *TypeSummary) SetTypeName(v string) *TypeSummary {
19282	s.TypeName = &v
19283	return s
19284}
19285
19286// Contains summary information about a specific version of a CloudFormation
19287// extension.
19288type TypeVersionSummary struct {
19289	_ struct{} `type:"structure"`
19290
19291	// The Amazon Resource Name (ARN) of the extension version.
19292	Arn *string `type:"string"`
19293
19294	// The description of the extension version.
19295	Description *string `min:"1" type:"string"`
19296
19297	// Whether the specified extension version is set as the default version.
19298	//
19299	// This applies only to private extensions you have registered in your account,
19300	// and extensions published by Amazon. For public third-party extensions, whether
19301	// or not they are activated in your account, CloudFormation returns null.
19302	IsDefaultVersion *bool `type:"boolean"`
19303
19304	// For public extensions that have been activated for this account and region,
19305	// the version of the public extension to be used for CloudFormation operations
19306	// in this account and region. For any extensions other than activated third-arty
19307	// extensions, CloudFormation returns null.
19308	//
19309	// How you specified AutoUpdate when enabling the extension affects whether
19310	// CloudFormation automatically updates the extention in this account and region
19311	// when a new version is released. For more information, see Setting CloudFormation
19312	// to automatically use new versions of extensions (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/registry-public.html#registry-public-enable-auto)
19313	// in the CloudFormation User Guide.
19314	PublicVersionNumber *string `min:"5" type:"string"`
19315
19316	// When the version was registered.
19317	TimeCreated *time.Time `type:"timestamp"`
19318
19319	// The kind of extension.
19320	Type *string `type:"string" enum:"RegistryType"`
19321
19322	// The name of the extension.
19323	TypeName *string `min:"10" type:"string"`
19324
19325	// The ID of a specific version of the extension. The version ID is the value
19326	// at the end of the Amazon Resource Name (ARN) assigned to the extension version
19327	// when it is registered.
19328	VersionId *string `min:"1" type:"string"`
19329}
19330
19331// String returns the string representation
19332func (s TypeVersionSummary) String() string {
19333	return awsutil.Prettify(s)
19334}
19335
19336// GoString returns the string representation
19337func (s TypeVersionSummary) GoString() string {
19338	return s.String()
19339}
19340
19341// SetArn sets the Arn field's value.
19342func (s *TypeVersionSummary) SetArn(v string) *TypeVersionSummary {
19343	s.Arn = &v
19344	return s
19345}
19346
19347// SetDescription sets the Description field's value.
19348func (s *TypeVersionSummary) SetDescription(v string) *TypeVersionSummary {
19349	s.Description = &v
19350	return s
19351}
19352
19353// SetIsDefaultVersion sets the IsDefaultVersion field's value.
19354func (s *TypeVersionSummary) SetIsDefaultVersion(v bool) *TypeVersionSummary {
19355	s.IsDefaultVersion = &v
19356	return s
19357}
19358
19359// SetPublicVersionNumber sets the PublicVersionNumber field's value.
19360func (s *TypeVersionSummary) SetPublicVersionNumber(v string) *TypeVersionSummary {
19361	s.PublicVersionNumber = &v
19362	return s
19363}
19364
19365// SetTimeCreated sets the TimeCreated field's value.
19366func (s *TypeVersionSummary) SetTimeCreated(v time.Time) *TypeVersionSummary {
19367	s.TimeCreated = &v
19368	return s
19369}
19370
19371// SetType sets the Type field's value.
19372func (s *TypeVersionSummary) SetType(v string) *TypeVersionSummary {
19373	s.Type = &v
19374	return s
19375}
19376
19377// SetTypeName sets the TypeName field's value.
19378func (s *TypeVersionSummary) SetTypeName(v string) *TypeVersionSummary {
19379	s.TypeName = &v
19380	return s
19381}
19382
19383// SetVersionId sets the VersionId field's value.
19384func (s *TypeVersionSummary) SetVersionId(v string) *TypeVersionSummary {
19385	s.VersionId = &v
19386	return s
19387}
19388
19389// The input for an UpdateStack action.
19390type UpdateStackInput struct {
19391	_ struct{} `type:"structure"`
19392
19393	// In some cases, you must explicitly acknowledge that your stack template contains
19394	// certain capabilities in order for CloudFormation to update the stack.
19395	//
19396	//    * CAPABILITY_IAM and CAPABILITY_NAMED_IAM Some stack templates might include
19397	//    resources that can affect permissions in your Amazon Web Services account;
19398	//    for example, by creating new Identity and Access Management (IAM) users.
19399	//    For those stacks, you must explicitly acknowledge this by specifying one
19400	//    of these capabilities. The following IAM resources require you to specify
19401	//    either the CAPABILITY_IAM or CAPABILITY_NAMED_IAM capability. If you have
19402	//    IAM resources, you can specify either capability. If you have IAM resources
19403	//    with custom names, you must specify CAPABILITY_NAMED_IAM. If you don't
19404	//    specify either of these capabilities, CloudFormation returns an InsufficientCapabilities
19405	//    error. If your stack template contains these resources, we recommend that
19406	//    you review all permissions associated with them and edit their permissions
19407	//    if necessary. AWS::IAM::AccessKey (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iam-accesskey.html)
19408	//    AWS::IAM::Group (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iam-group.html)
19409	//    AWS::IAM::InstanceProfile (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iam-instanceprofile.html)
19410	//    AWS::IAM::Policy (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iam-policy.html)
19411	//    AWS::IAM::Role (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iam-role.html)
19412	//    AWS::IAM::User (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iam-user.html)
19413	//    AWS::IAM::UserToGroupAddition (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iam-addusertogroup.html)
19414	//    For more information, see Acknowledging IAM Resources in CloudFormation
19415	//    Templates (http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-iam-template.html#capabilities).
19416	//
19417	//    * CAPABILITY_AUTO_EXPAND Some template contain macros. Macros perform
19418	//    custom processing on templates; this can include simple actions like find-and-replace
19419	//    operations, all the way to extensive transformations of entire templates.
19420	//    Because of this, users typically create a change set from the processed
19421	//    template, so that they can review the changes resulting from the macros
19422	//    before actually updating the stack. If your stack template contains one
19423	//    or more macros, and you choose to update a stack directly from the processed
19424	//    template, without first reviewing the resulting changes in a change set,
19425	//    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)
19426	//    and AWS::Serverless (http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/transform-aws-serverless.html)
19427	//    transforms, which are macros hosted by CloudFormation. If you want to
19428	//    update a stack from a stack template that contains macros and nested stacks,
19429	//    you must update the stack directly from the template using this capability.
19430	//    You should only update stacks directly from a stack template that contains
19431	//    macros if you know what processing the macro performs. Each macro relies
19432	//    on an underlying Lambda service function for processing stack templates.
19433	//    Be aware that the Lambda function owner can update the function operation
19434	//    without CloudFormation being notified. For more information, see Using
19435	//    CloudFormation Macros to Perform Custom Processing on Templates (http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/template-macros.html).
19436	Capabilities []*string `type:"list"`
19437
19438	// A unique identifier for this UpdateStack request. Specify this token if you
19439	// plan to retry requests so that CloudFormation knows that you're not attempting
19440	// to update a stack with the same name. You might retry UpdateStack requests
19441	// to ensure that CloudFormation successfully received them.
19442	//
19443	// All events triggered by a given stack operation are assigned the same client
19444	// request token, which you can use to track operations. For example, if you
19445	// execute a CreateStack operation with the token token1, then all the StackEvents
19446	// generated by that operation will have ClientRequestToken set as token1.
19447	//
19448	// In the console, stack operations display the client request token on the
19449	// Events tab. Stack operations that are initiated from the console use the
19450	// token format Console-StackOperation-ID, which helps you easily identify the
19451	// stack operation . For example, if you create a stack using the console, each
19452	// stack event would be assigned the same token in the following format: Console-CreateStack-7f59c3cf-00d2-40c7-b2ff-e75db0987002.
19453	ClientRequestToken *string `min:"1" type:"string"`
19454
19455	// Preserve the state of previously provisioned resources when an operation
19456	// fails.
19457	//
19458	// Default: False
19459	DisableRollback *bool `type:"boolean"`
19460
19461	// Amazon Simple Notification Service topic Amazon Resource Names (ARNs) that
19462	// CloudFormation associates with the stack. Specify an empty list to remove
19463	// all notification topics.
19464	NotificationARNs []*string `type:"list"`
19465
19466	// A list of Parameter structures that specify input parameters for the stack.
19467	// For more information, see the Parameter (https://docs.aws.amazon.com/AWSCloudFormation/latest/APIReference/API_Parameter.html)
19468	// data type.
19469	Parameters []*Parameter `type:"list"`
19470
19471	// The template resource types that you have permissions to work with for this
19472	// update stack action, such as AWS::EC2::Instance, AWS::EC2::*, or Custom::MyCustomInstance.
19473	//
19474	// If the list of resource types doesn't include a resource that you're updating,
19475	// the stack update fails. By default, CloudFormation grants permissions to
19476	// all resource types. Identity and Access Management (IAM) uses this parameter
19477	// for CloudFormation-specific condition keys in IAM policies. For more information,
19478	// see Controlling Access with Identity and Access Management (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-iam-template.html).
19479	ResourceTypes []*string `type:"list"`
19480
19481	// The Amazon Resource Name (ARN) of an Identity and Access Management (IAM)
19482	// role that CloudFormation assumes to update the stack. CloudFormation uses
19483	// the role's credentials to make calls on your behalf. CloudFormation always
19484	// uses this role for all future operations on the stack. As long as users have
19485	// permission to operate on the stack, CloudFormation uses this role even if
19486	// the users don't have permission to pass it. Ensure that the role grants least
19487	// privilege.
19488	//
19489	// If you don't specify a value, CloudFormation uses the role that was previously
19490	// associated with the stack. If no role is available, CloudFormation uses a
19491	// temporary session that is generated from your user credentials.
19492	RoleARN *string `min:"20" type:"string"`
19493
19494	// The rollback triggers for CloudFormation to monitor during stack creation
19495	// and updating operations, and for the specified monitoring period afterwards.
19496	RollbackConfiguration *RollbackConfiguration `type:"structure"`
19497
19498	// The name or unique stack ID of the stack to update.
19499	//
19500	// StackName is a required field
19501	StackName *string `type:"string" required:"true"`
19502
19503	// Structure containing a new stack policy body. You can specify either the
19504	// StackPolicyBody or the StackPolicyURL parameter, but not both.
19505	//
19506	// You might update the stack policy, for example, in order to protect a new
19507	// resource that you created during a stack update. If you do not specify a
19508	// stack policy, the current policy that is associated with the stack is unchanged.
19509	StackPolicyBody *string `min:"1" type:"string"`
19510
19511	// Structure containing the temporary overriding stack policy body. You can
19512	// specify either the StackPolicyDuringUpdateBody or the StackPolicyDuringUpdateURL
19513	// parameter, but not both.
19514	//
19515	// If you want to update protected resources, specify a temporary overriding
19516	// stack policy during this update. If you do not specify a stack policy, the
19517	// current policy that is associated with the stack will be used.
19518	StackPolicyDuringUpdateBody *string `min:"1" type:"string"`
19519
19520	// Location of a file containing the temporary overriding stack policy. The
19521	// URL must point to a policy (max size: 16KB) located in an S3 bucket in the
19522	// same Region as the stack. You can specify either the StackPolicyDuringUpdateBody
19523	// or the StackPolicyDuringUpdateURL parameter, but not both.
19524	//
19525	// If you want to update protected resources, specify a temporary overriding
19526	// stack policy during this update. If you do not specify a stack policy, the
19527	// current policy that is associated with the stack will be used.
19528	StackPolicyDuringUpdateURL *string `min:"1" type:"string"`
19529
19530	// Location of a file containing the updated stack policy. The URL must point
19531	// to a policy (max size: 16KB) located in an S3 bucket in the same Region as
19532	// the stack. You can specify either the StackPolicyBody or the StackPolicyURL
19533	// parameter, but not both.
19534	//
19535	// You might update the stack policy, for example, in order to protect a new
19536	// resource that you created during a stack update. If you do not specify a
19537	// stack policy, the current policy that is associated with the stack is unchanged.
19538	StackPolicyURL *string `min:"1" type:"string"`
19539
19540	// Key-value pairs to associate with this stack. CloudFormation also propagates
19541	// these tags to supported resources in the stack. You can specify a maximum
19542	// number of 50 tags.
19543	//
19544	// If you don't specify this parameter, CloudFormation doesn't modify the stack's
19545	// tags. If you specify an empty value, CloudFormation removes all associated
19546	// tags.
19547	Tags []*Tag `type:"list"`
19548
19549	// Structure containing the template body with a minimum length of 1 byte and
19550	// a maximum length of 51,200 bytes. (For more information, go to Template Anatomy
19551	// (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/template-anatomy.html)
19552	// in the CloudFormation User Guide.)
19553	//
19554	// Conditional: You must specify only one of the following parameters: TemplateBody,
19555	// TemplateURL, or set the UsePreviousTemplate to true.
19556	TemplateBody *string `min:"1" type:"string"`
19557
19558	// Location of file containing the template body. The URL must point to a template
19559	// that is located in an Amazon S3 bucket or a Systems Manager document. For
19560	// more information, go to Template Anatomy (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/template-anatomy.html)
19561	// in the CloudFormation User Guide.
19562	//
19563	// Conditional: You must specify only one of the following parameters: TemplateBody,
19564	// TemplateURL, or set the UsePreviousTemplate to true.
19565	TemplateURL *string `min:"1" type:"string"`
19566
19567	// Reuse the existing template that is associated with the stack that you are
19568	// updating.
19569	//
19570	// Conditional: You must specify only one of the following parameters: TemplateBody,
19571	// TemplateURL, or set the UsePreviousTemplate to true.
19572	UsePreviousTemplate *bool `type:"boolean"`
19573}
19574
19575// String returns the string representation
19576func (s UpdateStackInput) String() string {
19577	return awsutil.Prettify(s)
19578}
19579
19580// GoString returns the string representation
19581func (s UpdateStackInput) GoString() string {
19582	return s.String()
19583}
19584
19585// Validate inspects the fields of the type to determine if they are valid.
19586func (s *UpdateStackInput) Validate() error {
19587	invalidParams := request.ErrInvalidParams{Context: "UpdateStackInput"}
19588	if s.ClientRequestToken != nil && len(*s.ClientRequestToken) < 1 {
19589		invalidParams.Add(request.NewErrParamMinLen("ClientRequestToken", 1))
19590	}
19591	if s.RoleARN != nil && len(*s.RoleARN) < 20 {
19592		invalidParams.Add(request.NewErrParamMinLen("RoleARN", 20))
19593	}
19594	if s.StackName == nil {
19595		invalidParams.Add(request.NewErrParamRequired("StackName"))
19596	}
19597	if s.StackPolicyBody != nil && len(*s.StackPolicyBody) < 1 {
19598		invalidParams.Add(request.NewErrParamMinLen("StackPolicyBody", 1))
19599	}
19600	if s.StackPolicyDuringUpdateBody != nil && len(*s.StackPolicyDuringUpdateBody) < 1 {
19601		invalidParams.Add(request.NewErrParamMinLen("StackPolicyDuringUpdateBody", 1))
19602	}
19603	if s.StackPolicyDuringUpdateURL != nil && len(*s.StackPolicyDuringUpdateURL) < 1 {
19604		invalidParams.Add(request.NewErrParamMinLen("StackPolicyDuringUpdateURL", 1))
19605	}
19606	if s.StackPolicyURL != nil && len(*s.StackPolicyURL) < 1 {
19607		invalidParams.Add(request.NewErrParamMinLen("StackPolicyURL", 1))
19608	}
19609	if s.TemplateBody != nil && len(*s.TemplateBody) < 1 {
19610		invalidParams.Add(request.NewErrParamMinLen("TemplateBody", 1))
19611	}
19612	if s.TemplateURL != nil && len(*s.TemplateURL) < 1 {
19613		invalidParams.Add(request.NewErrParamMinLen("TemplateURL", 1))
19614	}
19615	if s.RollbackConfiguration != nil {
19616		if err := s.RollbackConfiguration.Validate(); err != nil {
19617			invalidParams.AddNested("RollbackConfiguration", err.(request.ErrInvalidParams))
19618		}
19619	}
19620	if s.Tags != nil {
19621		for i, v := range s.Tags {
19622			if v == nil {
19623				continue
19624			}
19625			if err := v.Validate(); err != nil {
19626				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Tags", i), err.(request.ErrInvalidParams))
19627			}
19628		}
19629	}
19630
19631	if invalidParams.Len() > 0 {
19632		return invalidParams
19633	}
19634	return nil
19635}
19636
19637// SetCapabilities sets the Capabilities field's value.
19638func (s *UpdateStackInput) SetCapabilities(v []*string) *UpdateStackInput {
19639	s.Capabilities = v
19640	return s
19641}
19642
19643// SetClientRequestToken sets the ClientRequestToken field's value.
19644func (s *UpdateStackInput) SetClientRequestToken(v string) *UpdateStackInput {
19645	s.ClientRequestToken = &v
19646	return s
19647}
19648
19649// SetDisableRollback sets the DisableRollback field's value.
19650func (s *UpdateStackInput) SetDisableRollback(v bool) *UpdateStackInput {
19651	s.DisableRollback = &v
19652	return s
19653}
19654
19655// SetNotificationARNs sets the NotificationARNs field's value.
19656func (s *UpdateStackInput) SetNotificationARNs(v []*string) *UpdateStackInput {
19657	s.NotificationARNs = v
19658	return s
19659}
19660
19661// SetParameters sets the Parameters field's value.
19662func (s *UpdateStackInput) SetParameters(v []*Parameter) *UpdateStackInput {
19663	s.Parameters = v
19664	return s
19665}
19666
19667// SetResourceTypes sets the ResourceTypes field's value.
19668func (s *UpdateStackInput) SetResourceTypes(v []*string) *UpdateStackInput {
19669	s.ResourceTypes = v
19670	return s
19671}
19672
19673// SetRoleARN sets the RoleARN field's value.
19674func (s *UpdateStackInput) SetRoleARN(v string) *UpdateStackInput {
19675	s.RoleARN = &v
19676	return s
19677}
19678
19679// SetRollbackConfiguration sets the RollbackConfiguration field's value.
19680func (s *UpdateStackInput) SetRollbackConfiguration(v *RollbackConfiguration) *UpdateStackInput {
19681	s.RollbackConfiguration = v
19682	return s
19683}
19684
19685// SetStackName sets the StackName field's value.
19686func (s *UpdateStackInput) SetStackName(v string) *UpdateStackInput {
19687	s.StackName = &v
19688	return s
19689}
19690
19691// SetStackPolicyBody sets the StackPolicyBody field's value.
19692func (s *UpdateStackInput) SetStackPolicyBody(v string) *UpdateStackInput {
19693	s.StackPolicyBody = &v
19694	return s
19695}
19696
19697// SetStackPolicyDuringUpdateBody sets the StackPolicyDuringUpdateBody field's value.
19698func (s *UpdateStackInput) SetStackPolicyDuringUpdateBody(v string) *UpdateStackInput {
19699	s.StackPolicyDuringUpdateBody = &v
19700	return s
19701}
19702
19703// SetStackPolicyDuringUpdateURL sets the StackPolicyDuringUpdateURL field's value.
19704func (s *UpdateStackInput) SetStackPolicyDuringUpdateURL(v string) *UpdateStackInput {
19705	s.StackPolicyDuringUpdateURL = &v
19706	return s
19707}
19708
19709// SetStackPolicyURL sets the StackPolicyURL field's value.
19710func (s *UpdateStackInput) SetStackPolicyURL(v string) *UpdateStackInput {
19711	s.StackPolicyURL = &v
19712	return s
19713}
19714
19715// SetTags sets the Tags field's value.
19716func (s *UpdateStackInput) SetTags(v []*Tag) *UpdateStackInput {
19717	s.Tags = v
19718	return s
19719}
19720
19721// SetTemplateBody sets the TemplateBody field's value.
19722func (s *UpdateStackInput) SetTemplateBody(v string) *UpdateStackInput {
19723	s.TemplateBody = &v
19724	return s
19725}
19726
19727// SetTemplateURL sets the TemplateURL field's value.
19728func (s *UpdateStackInput) SetTemplateURL(v string) *UpdateStackInput {
19729	s.TemplateURL = &v
19730	return s
19731}
19732
19733// SetUsePreviousTemplate sets the UsePreviousTemplate field's value.
19734func (s *UpdateStackInput) SetUsePreviousTemplate(v bool) *UpdateStackInput {
19735	s.UsePreviousTemplate = &v
19736	return s
19737}
19738
19739type UpdateStackInstancesInput struct {
19740	_ struct{} `type:"structure"`
19741
19742	// [Self-managed permissions] The names of one or more Amazon Web Services accounts
19743	// for which you want to update parameter values for stack instances. The overridden
19744	// parameter values will be applied to all stack instances in the specified
19745	// accounts and Regions.
19746	//
19747	// You can specify Accounts or DeploymentTargets, but not both.
19748	Accounts []*string `type:"list"`
19749
19750	// [Service-managed permissions] Specifies whether you are acting as an account
19751	// administrator in the organization's management account or as a delegated
19752	// administrator in a member account.
19753	//
19754	// By default, SELF is specified. Use SELF for stack sets with self-managed
19755	// permissions.
19756	//
19757	//    * If you are signed in to the management account, specify SELF.
19758	//
19759	//    * If you are signed in to a delegated administrator account, specify DELEGATED_ADMIN.
19760	//    Your Amazon Web Services account must be registered as a delegated administrator
19761	//    in the management account. For more information, see Register a delegated
19762	//    administrator (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/stacksets-orgs-delegated-admin.html)
19763	//    in the CloudFormation User Guide.
19764	CallAs *string `type:"string" enum:"CallAs"`
19765
19766	// [Service-managed permissions] The Organizations accounts for which you want
19767	// to update parameter values for stack instances. If your update targets OUs,
19768	// the overridden parameter values only apply to the accounts that are currently
19769	// in the target OUs and their child OUs. Accounts added to the target OUs and
19770	// their child OUs in the future won't use the overridden values.
19771	//
19772	// You can specify Accounts or DeploymentTargets, but not both.
19773	DeploymentTargets *DeploymentTargets `type:"structure"`
19774
19775	// The unique identifier for this stack set operation.
19776	//
19777	// The operation ID also functions as an idempotency token, to ensure that CloudFormation
19778	// performs the stack set operation only once, even if you retry the request
19779	// multiple times. You might retry stack set operation requests to ensure that
19780	// CloudFormation successfully received them.
19781	//
19782	// If you don't specify an operation ID, the SDK generates one automatically.
19783	OperationId *string `min:"1" type:"string" idempotencyToken:"true"`
19784
19785	// Preferences for how CloudFormation performs this stack set operation.
19786	OperationPreferences *StackSetOperationPreferences `type:"structure"`
19787
19788	// A list of input parameters whose values you want to update for the specified
19789	// stack instances.
19790	//
19791	// Any overridden parameter values will be applied to all stack instances in
19792	// the specified accounts and Regions. When specifying parameters and their
19793	// values, be aware of how CloudFormation sets parameter values during stack
19794	// instance update operations:
19795	//
19796	//    * To override the current value for a parameter, include the parameter
19797	//    and specify its value.
19798	//
19799	//    * To leave an overridden parameter set to its present value, include the
19800	//    parameter and specify UsePreviousValue as true. (You cannot specify both
19801	//    a value and set UsePreviousValue to true.)
19802	//
19803	//    * To set an overridden parameter back to the value specified in the stack
19804	//    set, specify a parameter list but do not include the parameter in the
19805	//    list.
19806	//
19807	//    * To leave all parameters set to their present values, do not specify
19808	//    this property at all.
19809	//
19810	// During stack set updates, any parameter values overridden for a stack instance
19811	// are not updated, but retain their overridden value.
19812	//
19813	// You can only override the parameter values that are specified in the stack
19814	// set; to add or delete a parameter itself, use UpdateStackSet to update the
19815	// stack set template. If you add a parameter to a template, before you can
19816	// override the parameter value specified in the stack set you must first use
19817	// UpdateStackSet (https://docs.aws.amazon.com/AWSCloudFormation/latest/APIReference/API_UpdateStackSet.html)
19818	// to update all stack instances with the updated template and parameter value
19819	// specified in the stack set. Once a stack instance has been updated with the
19820	// new parameter, you can then override the parameter value using UpdateStackInstances.
19821	ParameterOverrides []*Parameter `type:"list"`
19822
19823	// The names of one or more Regions in which you want to update parameter values
19824	// for stack instances. The overridden parameter values will be applied to all
19825	// stack instances in the specified accounts and Regions.
19826	//
19827	// Regions is a required field
19828	Regions []*string `type:"list" required:"true"`
19829
19830	// The name or unique ID of the stack set associated with the stack instances.
19831	//
19832	// StackSetName is a required field
19833	StackSetName *string `type:"string" required:"true"`
19834}
19835
19836// String returns the string representation
19837func (s UpdateStackInstancesInput) String() string {
19838	return awsutil.Prettify(s)
19839}
19840
19841// GoString returns the string representation
19842func (s UpdateStackInstancesInput) GoString() string {
19843	return s.String()
19844}
19845
19846// Validate inspects the fields of the type to determine if they are valid.
19847func (s *UpdateStackInstancesInput) Validate() error {
19848	invalidParams := request.ErrInvalidParams{Context: "UpdateStackInstancesInput"}
19849	if s.OperationId != nil && len(*s.OperationId) < 1 {
19850		invalidParams.Add(request.NewErrParamMinLen("OperationId", 1))
19851	}
19852	if s.Regions == nil {
19853		invalidParams.Add(request.NewErrParamRequired("Regions"))
19854	}
19855	if s.StackSetName == nil {
19856		invalidParams.Add(request.NewErrParamRequired("StackSetName"))
19857	}
19858	if s.DeploymentTargets != nil {
19859		if err := s.DeploymentTargets.Validate(); err != nil {
19860			invalidParams.AddNested("DeploymentTargets", err.(request.ErrInvalidParams))
19861		}
19862	}
19863	if s.OperationPreferences != nil {
19864		if err := s.OperationPreferences.Validate(); err != nil {
19865			invalidParams.AddNested("OperationPreferences", err.(request.ErrInvalidParams))
19866		}
19867	}
19868
19869	if invalidParams.Len() > 0 {
19870		return invalidParams
19871	}
19872	return nil
19873}
19874
19875// SetAccounts sets the Accounts field's value.
19876func (s *UpdateStackInstancesInput) SetAccounts(v []*string) *UpdateStackInstancesInput {
19877	s.Accounts = v
19878	return s
19879}
19880
19881// SetCallAs sets the CallAs field's value.
19882func (s *UpdateStackInstancesInput) SetCallAs(v string) *UpdateStackInstancesInput {
19883	s.CallAs = &v
19884	return s
19885}
19886
19887// SetDeploymentTargets sets the DeploymentTargets field's value.
19888func (s *UpdateStackInstancesInput) SetDeploymentTargets(v *DeploymentTargets) *UpdateStackInstancesInput {
19889	s.DeploymentTargets = v
19890	return s
19891}
19892
19893// SetOperationId sets the OperationId field's value.
19894func (s *UpdateStackInstancesInput) SetOperationId(v string) *UpdateStackInstancesInput {
19895	s.OperationId = &v
19896	return s
19897}
19898
19899// SetOperationPreferences sets the OperationPreferences field's value.
19900func (s *UpdateStackInstancesInput) SetOperationPreferences(v *StackSetOperationPreferences) *UpdateStackInstancesInput {
19901	s.OperationPreferences = v
19902	return s
19903}
19904
19905// SetParameterOverrides sets the ParameterOverrides field's value.
19906func (s *UpdateStackInstancesInput) SetParameterOverrides(v []*Parameter) *UpdateStackInstancesInput {
19907	s.ParameterOverrides = v
19908	return s
19909}
19910
19911// SetRegions sets the Regions field's value.
19912func (s *UpdateStackInstancesInput) SetRegions(v []*string) *UpdateStackInstancesInput {
19913	s.Regions = v
19914	return s
19915}
19916
19917// SetStackSetName sets the StackSetName field's value.
19918func (s *UpdateStackInstancesInput) SetStackSetName(v string) *UpdateStackInstancesInput {
19919	s.StackSetName = &v
19920	return s
19921}
19922
19923type UpdateStackInstancesOutput struct {
19924	_ struct{} `type:"structure"`
19925
19926	// The unique identifier for this stack set operation.
19927	OperationId *string `min:"1" type:"string"`
19928}
19929
19930// String returns the string representation
19931func (s UpdateStackInstancesOutput) String() string {
19932	return awsutil.Prettify(s)
19933}
19934
19935// GoString returns the string representation
19936func (s UpdateStackInstancesOutput) GoString() string {
19937	return s.String()
19938}
19939
19940// SetOperationId sets the OperationId field's value.
19941func (s *UpdateStackInstancesOutput) SetOperationId(v string) *UpdateStackInstancesOutput {
19942	s.OperationId = &v
19943	return s
19944}
19945
19946// The output for an UpdateStack action.
19947type UpdateStackOutput struct {
19948	_ struct{} `type:"structure"`
19949
19950	// Unique identifier of the stack.
19951	StackId *string `type:"string"`
19952}
19953
19954// String returns the string representation
19955func (s UpdateStackOutput) String() string {
19956	return awsutil.Prettify(s)
19957}
19958
19959// GoString returns the string representation
19960func (s UpdateStackOutput) GoString() string {
19961	return s.String()
19962}
19963
19964// SetStackId sets the StackId field's value.
19965func (s *UpdateStackOutput) SetStackId(v string) *UpdateStackOutput {
19966	s.StackId = &v
19967	return s
19968}
19969
19970type UpdateStackSetInput struct {
19971	_ struct{} `type:"structure"`
19972
19973	// [Self-managed permissions] The accounts in which to update associated stack
19974	// instances. If you specify accounts, you must also specify the Regions in
19975	// which to update stack set instances.
19976	//
19977	// To update all the stack instances associated with this stack set, do not
19978	// specify the Accounts or Regions properties.
19979	//
19980	// If the stack set update includes changes to the template (that is, if the
19981	// TemplateBody or TemplateURL properties are specified), or the Parameters
19982	// property, CloudFormation marks all stack instances with a status of OUTDATED
19983	// prior to updating the stack instances in the specified accounts and Regions.
19984	// If the stack set update does not include changes to the template or parameters,
19985	// CloudFormation updates the stack instances in the specified accounts and
19986	// Regions, while leaving all other stack instances with their existing stack
19987	// instance status.
19988	Accounts []*string `type:"list"`
19989
19990	// The Amazon Resource Number (ARN) of the IAM role to use to update this stack
19991	// set.
19992	//
19993	// Specify an IAM role only if you are using customized administrator roles
19994	// to control which users or groups can manage specific stack sets within the
19995	// same administrator account. For more information, see Granting Permissions
19996	// for Stack Set Operations (http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/stacksets-prereqs.html)
19997	// in the CloudFormation User Guide.
19998	//
19999	// If you specified a customized administrator role when you created the stack
20000	// set, you must specify a customized administrator role, even if it is the
20001	// same customized administrator role used with this stack set previously.
20002	AdministrationRoleARN *string `min:"20" type:"string"`
20003
20004	// [Service-managed permissions] Describes whether StackSets automatically deploys
20005	// to Organizations accounts that are added to a target organization or organizational
20006	// unit (OU).
20007	//
20008	// If you specify AutoDeployment, do not specify DeploymentTargets or Regions.
20009	AutoDeployment *AutoDeployment `type:"structure"`
20010
20011	// [Service-managed permissions] Specifies whether you are acting as an account
20012	// administrator in the organization's management account or as a delegated
20013	// administrator in a member account.
20014	//
20015	// By default, SELF is specified. Use SELF for stack sets with self-managed
20016	// permissions.
20017	//
20018	//    * If you are signed in to the management account, specify SELF.
20019	//
20020	//    * If you are signed in to a delegated administrator account, specify DELEGATED_ADMIN.
20021	//    Your Amazon Web Services account must be registered as a delegated administrator
20022	//    in the management account. For more information, see Register a delegated
20023	//    administrator (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/stacksets-orgs-delegated-admin.html)
20024	//    in the CloudFormation User Guide.
20025	CallAs *string `type:"string" enum:"CallAs"`
20026
20027	// In some cases, you must explicitly acknowledge that your stack template contains
20028	// certain capabilities in order for CloudFormation to update the stack set
20029	// and its associated stack instances.
20030	//
20031	//    * CAPABILITY_IAM and CAPABILITY_NAMED_IAM Some stack templates might include
20032	//    resources that can affect permissions in your Amazon Web Services account;
20033	//    for example, by creating new Identity and Access Management (IAM) users.
20034	//    For those stacks sets, you must explicitly acknowledge this by specifying
20035	//    one of these capabilities. The following IAM resources require you to
20036	//    specify either the CAPABILITY_IAM or CAPABILITY_NAMED_IAM capability.
20037	//    If you have IAM resources, you can specify either capability. If you have
20038	//    IAM resources with custom names, you must specify CAPABILITY_NAMED_IAM.
20039	//    If you don't specify either of these capabilities, CloudFormation returns
20040	//    an InsufficientCapabilities error. If your stack template contains these
20041	//    resources, we recommend that you review all permissions associated with
20042	//    them and edit their permissions if necessary. AWS::IAM::AccessKey (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iam-accesskey.html)
20043	//    AWS::IAM::Group (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iam-group.html)
20044	//    AWS::IAM::InstanceProfile (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iam-instanceprofile.html)
20045	//    AWS::IAM::Policy (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iam-policy.html)
20046	//    AWS::IAM::Role (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iam-role.html)
20047	//    AWS::IAM::User (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iam-user.html)
20048	//    AWS::IAM::UserToGroupAddition (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iam-addusertogroup.html)
20049	//    For more information, see Acknowledging IAM Resources in CloudFormation
20050	//    Templates (http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-iam-template.html#capabilities).
20051	//
20052	//    * CAPABILITY_AUTO_EXPAND Some templates reference macros. If your stack
20053	//    set template references one or more macros, you must update the stack
20054	//    set directly from the processed template, without first reviewing the
20055	//    resulting changes in a change set. To update the stack set directly, you
20056	//    must acknowledge this capability. For more information, see Using CloudFormation
20057	//    Macros to Perform Custom Processing on Templates (http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/template-macros.html).
20058	//    Stack sets with service-managed permissions do not currently support the
20059	//    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)
20060	//    and AWS::Serverless (http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/transform-aws-serverless.html)
20061	//    transforms, which are macros hosted by CloudFormation.) Even if you specify
20062	//    this capability for a stack set with service-managed permissions, if you
20063	//    reference a macro in your template the stack set operation will fail.
20064	Capabilities []*string `type:"list"`
20065
20066	// [Service-managed permissions] The Organizations accounts in which to update
20067	// associated stack instances.
20068	//
20069	// To update all the stack instances associated with this stack set, do not
20070	// specify DeploymentTargets or Regions.
20071	//
20072	// If the stack set update includes changes to the template (that is, if TemplateBody
20073	// or TemplateURL is specified), or the Parameters, CloudFormation marks all
20074	// stack instances with a status of OUTDATED prior to updating the stack instances
20075	// in the specified accounts and Regions. If the stack set update does not include
20076	// changes to the template or parameters, CloudFormation updates the stack instances
20077	// in the specified accounts and Regions, while leaving all other stack instances
20078	// with their existing stack instance status.
20079	DeploymentTargets *DeploymentTargets `type:"structure"`
20080
20081	// A brief description of updates that you are making.
20082	Description *string `min:"1" type:"string"`
20083
20084	// The name of the IAM execution role to use to update the stack set. If you
20085	// do not specify an execution role, CloudFormation uses the AWSCloudFormationStackSetExecutionRole
20086	// role for the stack set operation.
20087	//
20088	// Specify an IAM role only if you are using customized execution roles to control
20089	// which stack resources users and groups can include in their stack sets.
20090	//
20091	// If you specify a customized execution role, CloudFormation uses that role
20092	// to update the stack. If you do not specify a customized execution role, CloudFormation
20093	// performs the update using the role previously associated with the stack set,
20094	// so long as you have permissions to perform operations on the stack set.
20095	ExecutionRoleName *string `min:"1" type:"string"`
20096
20097	// The unique ID for this stack set operation.
20098	//
20099	// The operation ID also functions as an idempotency token, to ensure that CloudFormation
20100	// performs the stack set operation only once, even if you retry the request
20101	// multiple times. You might retry stack set operation requests to ensure that
20102	// CloudFormation successfully received them.
20103	//
20104	// If you don't specify an operation ID, CloudFormation generates one automatically.
20105	//
20106	// Repeating this stack set operation with a new operation ID retries all stack
20107	// instances whose status is OUTDATED.
20108	OperationId *string `min:"1" type:"string" idempotencyToken:"true"`
20109
20110	// Preferences for how CloudFormation performs this stack set operation.
20111	OperationPreferences *StackSetOperationPreferences `type:"structure"`
20112
20113	// A list of input parameters for the stack set template.
20114	Parameters []*Parameter `type:"list"`
20115
20116	// Describes how the IAM roles required for stack set operations are created.
20117	// You cannot modify PermissionModel if there are stack instances associated
20118	// with your stack set.
20119	//
20120	//    * With self-managed permissions, you must create the administrator and
20121	//    execution roles required to deploy to target accounts. For more information,
20122	//    see Grant Self-Managed Stack Set Permissions (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/stacksets-prereqs-self-managed.html).
20123	//
20124	//    * With service-managed permissions, StackSets automatically creates the
20125	//    IAM roles required to deploy to accounts managed by Organizations. For
20126	//    more information, see Grant Service-Managed Stack Set Permissions (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/stacksets-prereqs-service-managed.html).
20127	PermissionModel *string `type:"string" enum:"PermissionModels"`
20128
20129	// The Regions in which to update associated stack instances. If you specify
20130	// Regions, you must also specify accounts in which to update stack set instances.
20131	//
20132	// To update all the stack instances associated with this stack set, do not
20133	// specify the Accounts or Regions properties.
20134	//
20135	// If the stack set update includes changes to the template (that is, if the
20136	// TemplateBody or TemplateURL properties are specified), or the Parameters
20137	// property, CloudFormation marks all stack instances with a status of OUTDATED
20138	// prior to updating the stack instances in the specified accounts and Regions.
20139	// If the stack set update does not include changes to the template or parameters,
20140	// CloudFormation updates the stack instances in the specified accounts and
20141	// Regions, while leaving all other stack instances with their existing stack
20142	// instance status.
20143	Regions []*string `type:"list"`
20144
20145	// The name or unique ID of the stack set that you want to update.
20146	//
20147	// StackSetName is a required field
20148	StackSetName *string `type:"string" required:"true"`
20149
20150	// The key-value pairs to associate with this stack set and the stacks created
20151	// from it. CloudFormation also propagates these tags to supported resources
20152	// that are created in the stacks. You can specify a maximum number of 50 tags.
20153	//
20154	// If you specify tags for this parameter, those tags replace any list of tags
20155	// that are currently associated with this stack set. This means:
20156	//
20157	//    * If you don't specify this parameter, CloudFormation doesn't modify the
20158	//    stack's tags.
20159	//
20160	//    * If you specify any tags using this parameter, you must specify all the
20161	//    tags that you want associated with this stack set, even tags you've specifed
20162	//    before (for example, when creating the stack set or during a previous
20163	//    update of the stack set.). Any tags that you don't include in the updated
20164	//    list of tags are removed from the stack set, and therefore from the stacks
20165	//    and resources as well.
20166	//
20167	//    * If you specify an empty value, CloudFormation removes all currently
20168	//    associated tags.
20169	//
20170	// If you specify new tags as part of an UpdateStackSet action, CloudFormation
20171	// checks to see if you have the required IAM permission to tag resources. If
20172	// you omit tags that are currently associated with the stack set from the list
20173	// of tags you specify, CloudFormation assumes that you want to remove those
20174	// tags from the stack set, and checks to see if you have permission to untag
20175	// resources. If you don't have the necessary permission(s), the entire UpdateStackSet
20176	// action fails with an access denied error, and the stack set is not updated.
20177	Tags []*Tag `type:"list"`
20178
20179	// The structure that contains the template body, with a minimum length of 1
20180	// byte and a maximum length of 51,200 bytes. For more information, see Template
20181	// Anatomy (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/template-anatomy.html)
20182	// in the CloudFormation User Guide.
20183	//
20184	// Conditional: You must specify only one of the following parameters: TemplateBody
20185	// or TemplateURL—or set UsePreviousTemplate to true.
20186	TemplateBody *string `min:"1" type:"string"`
20187
20188	// The location of the file that contains the template body. The URL must point
20189	// to a template (maximum size: 460,800 bytes) that is located in an Amazon
20190	// S3 bucket or a Systems Manager document. For more information, see Template
20191	// Anatomy (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/template-anatomy.html)
20192	// in the CloudFormation User Guide.
20193	//
20194	// Conditional: You must specify only one of the following parameters: TemplateBody
20195	// or TemplateURL—or set UsePreviousTemplate to true.
20196	TemplateURL *string `min:"1" type:"string"`
20197
20198	// Use the existing template that's associated with the stack set that you're
20199	// updating.
20200	//
20201	// Conditional: You must specify only one of the following parameters: TemplateBody
20202	// or TemplateURL—or set UsePreviousTemplate to true.
20203	UsePreviousTemplate *bool `type:"boolean"`
20204}
20205
20206// String returns the string representation
20207func (s UpdateStackSetInput) String() string {
20208	return awsutil.Prettify(s)
20209}
20210
20211// GoString returns the string representation
20212func (s UpdateStackSetInput) GoString() string {
20213	return s.String()
20214}
20215
20216// Validate inspects the fields of the type to determine if they are valid.
20217func (s *UpdateStackSetInput) Validate() error {
20218	invalidParams := request.ErrInvalidParams{Context: "UpdateStackSetInput"}
20219	if s.AdministrationRoleARN != nil && len(*s.AdministrationRoleARN) < 20 {
20220		invalidParams.Add(request.NewErrParamMinLen("AdministrationRoleARN", 20))
20221	}
20222	if s.Description != nil && len(*s.Description) < 1 {
20223		invalidParams.Add(request.NewErrParamMinLen("Description", 1))
20224	}
20225	if s.ExecutionRoleName != nil && len(*s.ExecutionRoleName) < 1 {
20226		invalidParams.Add(request.NewErrParamMinLen("ExecutionRoleName", 1))
20227	}
20228	if s.OperationId != nil && len(*s.OperationId) < 1 {
20229		invalidParams.Add(request.NewErrParamMinLen("OperationId", 1))
20230	}
20231	if s.StackSetName == nil {
20232		invalidParams.Add(request.NewErrParamRequired("StackSetName"))
20233	}
20234	if s.TemplateBody != nil && len(*s.TemplateBody) < 1 {
20235		invalidParams.Add(request.NewErrParamMinLen("TemplateBody", 1))
20236	}
20237	if s.TemplateURL != nil && len(*s.TemplateURL) < 1 {
20238		invalidParams.Add(request.NewErrParamMinLen("TemplateURL", 1))
20239	}
20240	if s.DeploymentTargets != nil {
20241		if err := s.DeploymentTargets.Validate(); err != nil {
20242			invalidParams.AddNested("DeploymentTargets", err.(request.ErrInvalidParams))
20243		}
20244	}
20245	if s.OperationPreferences != nil {
20246		if err := s.OperationPreferences.Validate(); err != nil {
20247			invalidParams.AddNested("OperationPreferences", err.(request.ErrInvalidParams))
20248		}
20249	}
20250	if s.Tags != nil {
20251		for i, v := range s.Tags {
20252			if v == nil {
20253				continue
20254			}
20255			if err := v.Validate(); err != nil {
20256				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Tags", i), err.(request.ErrInvalidParams))
20257			}
20258		}
20259	}
20260
20261	if invalidParams.Len() > 0 {
20262		return invalidParams
20263	}
20264	return nil
20265}
20266
20267// SetAccounts sets the Accounts field's value.
20268func (s *UpdateStackSetInput) SetAccounts(v []*string) *UpdateStackSetInput {
20269	s.Accounts = v
20270	return s
20271}
20272
20273// SetAdministrationRoleARN sets the AdministrationRoleARN field's value.
20274func (s *UpdateStackSetInput) SetAdministrationRoleARN(v string) *UpdateStackSetInput {
20275	s.AdministrationRoleARN = &v
20276	return s
20277}
20278
20279// SetAutoDeployment sets the AutoDeployment field's value.
20280func (s *UpdateStackSetInput) SetAutoDeployment(v *AutoDeployment) *UpdateStackSetInput {
20281	s.AutoDeployment = v
20282	return s
20283}
20284
20285// SetCallAs sets the CallAs field's value.
20286func (s *UpdateStackSetInput) SetCallAs(v string) *UpdateStackSetInput {
20287	s.CallAs = &v
20288	return s
20289}
20290
20291// SetCapabilities sets the Capabilities field's value.
20292func (s *UpdateStackSetInput) SetCapabilities(v []*string) *UpdateStackSetInput {
20293	s.Capabilities = v
20294	return s
20295}
20296
20297// SetDeploymentTargets sets the DeploymentTargets field's value.
20298func (s *UpdateStackSetInput) SetDeploymentTargets(v *DeploymentTargets) *UpdateStackSetInput {
20299	s.DeploymentTargets = v
20300	return s
20301}
20302
20303// SetDescription sets the Description field's value.
20304func (s *UpdateStackSetInput) SetDescription(v string) *UpdateStackSetInput {
20305	s.Description = &v
20306	return s
20307}
20308
20309// SetExecutionRoleName sets the ExecutionRoleName field's value.
20310func (s *UpdateStackSetInput) SetExecutionRoleName(v string) *UpdateStackSetInput {
20311	s.ExecutionRoleName = &v
20312	return s
20313}
20314
20315// SetOperationId sets the OperationId field's value.
20316func (s *UpdateStackSetInput) SetOperationId(v string) *UpdateStackSetInput {
20317	s.OperationId = &v
20318	return s
20319}
20320
20321// SetOperationPreferences sets the OperationPreferences field's value.
20322func (s *UpdateStackSetInput) SetOperationPreferences(v *StackSetOperationPreferences) *UpdateStackSetInput {
20323	s.OperationPreferences = v
20324	return s
20325}
20326
20327// SetParameters sets the Parameters field's value.
20328func (s *UpdateStackSetInput) SetParameters(v []*Parameter) *UpdateStackSetInput {
20329	s.Parameters = v
20330	return s
20331}
20332
20333// SetPermissionModel sets the PermissionModel field's value.
20334func (s *UpdateStackSetInput) SetPermissionModel(v string) *UpdateStackSetInput {
20335	s.PermissionModel = &v
20336	return s
20337}
20338
20339// SetRegions sets the Regions field's value.
20340func (s *UpdateStackSetInput) SetRegions(v []*string) *UpdateStackSetInput {
20341	s.Regions = v
20342	return s
20343}
20344
20345// SetStackSetName sets the StackSetName field's value.
20346func (s *UpdateStackSetInput) SetStackSetName(v string) *UpdateStackSetInput {
20347	s.StackSetName = &v
20348	return s
20349}
20350
20351// SetTags sets the Tags field's value.
20352func (s *UpdateStackSetInput) SetTags(v []*Tag) *UpdateStackSetInput {
20353	s.Tags = v
20354	return s
20355}
20356
20357// SetTemplateBody sets the TemplateBody field's value.
20358func (s *UpdateStackSetInput) SetTemplateBody(v string) *UpdateStackSetInput {
20359	s.TemplateBody = &v
20360	return s
20361}
20362
20363// SetTemplateURL sets the TemplateURL field's value.
20364func (s *UpdateStackSetInput) SetTemplateURL(v string) *UpdateStackSetInput {
20365	s.TemplateURL = &v
20366	return s
20367}
20368
20369// SetUsePreviousTemplate sets the UsePreviousTemplate field's value.
20370func (s *UpdateStackSetInput) SetUsePreviousTemplate(v bool) *UpdateStackSetInput {
20371	s.UsePreviousTemplate = &v
20372	return s
20373}
20374
20375type UpdateStackSetOutput struct {
20376	_ struct{} `type:"structure"`
20377
20378	// The unique ID for this stack set operation.
20379	OperationId *string `min:"1" type:"string"`
20380}
20381
20382// String returns the string representation
20383func (s UpdateStackSetOutput) String() string {
20384	return awsutil.Prettify(s)
20385}
20386
20387// GoString returns the string representation
20388func (s UpdateStackSetOutput) GoString() string {
20389	return s.String()
20390}
20391
20392// SetOperationId sets the OperationId field's value.
20393func (s *UpdateStackSetOutput) SetOperationId(v string) *UpdateStackSetOutput {
20394	s.OperationId = &v
20395	return s
20396}
20397
20398type UpdateTerminationProtectionInput struct {
20399	_ struct{} `type:"structure"`
20400
20401	// Whether to enable termination protection on the specified stack.
20402	//
20403	// EnableTerminationProtection is a required field
20404	EnableTerminationProtection *bool `type:"boolean" required:"true"`
20405
20406	// The name or unique ID of the stack for which you want to set termination
20407	// protection.
20408	//
20409	// StackName is a required field
20410	StackName *string `min:"1" type:"string" required:"true"`
20411}
20412
20413// String returns the string representation
20414func (s UpdateTerminationProtectionInput) String() string {
20415	return awsutil.Prettify(s)
20416}
20417
20418// GoString returns the string representation
20419func (s UpdateTerminationProtectionInput) GoString() string {
20420	return s.String()
20421}
20422
20423// Validate inspects the fields of the type to determine if they are valid.
20424func (s *UpdateTerminationProtectionInput) Validate() error {
20425	invalidParams := request.ErrInvalidParams{Context: "UpdateTerminationProtectionInput"}
20426	if s.EnableTerminationProtection == nil {
20427		invalidParams.Add(request.NewErrParamRequired("EnableTerminationProtection"))
20428	}
20429	if s.StackName == nil {
20430		invalidParams.Add(request.NewErrParamRequired("StackName"))
20431	}
20432	if s.StackName != nil && len(*s.StackName) < 1 {
20433		invalidParams.Add(request.NewErrParamMinLen("StackName", 1))
20434	}
20435
20436	if invalidParams.Len() > 0 {
20437		return invalidParams
20438	}
20439	return nil
20440}
20441
20442// SetEnableTerminationProtection sets the EnableTerminationProtection field's value.
20443func (s *UpdateTerminationProtectionInput) SetEnableTerminationProtection(v bool) *UpdateTerminationProtectionInput {
20444	s.EnableTerminationProtection = &v
20445	return s
20446}
20447
20448// SetStackName sets the StackName field's value.
20449func (s *UpdateTerminationProtectionInput) SetStackName(v string) *UpdateTerminationProtectionInput {
20450	s.StackName = &v
20451	return s
20452}
20453
20454type UpdateTerminationProtectionOutput struct {
20455	_ struct{} `type:"structure"`
20456
20457	// The unique ID of the stack.
20458	StackId *string `type:"string"`
20459}
20460
20461// String returns the string representation
20462func (s UpdateTerminationProtectionOutput) String() string {
20463	return awsutil.Prettify(s)
20464}
20465
20466// GoString returns the string representation
20467func (s UpdateTerminationProtectionOutput) GoString() string {
20468	return s.String()
20469}
20470
20471// SetStackId sets the StackId field's value.
20472func (s *UpdateTerminationProtectionOutput) SetStackId(v string) *UpdateTerminationProtectionOutput {
20473	s.StackId = &v
20474	return s
20475}
20476
20477// The input for ValidateTemplate action.
20478type ValidateTemplateInput struct {
20479	_ struct{} `type:"structure"`
20480
20481	// Structure containing the template body with a minimum length of 1 byte and
20482	// a maximum length of 51,200 bytes. For more information, go to Template Anatomy
20483	// (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/template-anatomy.html)
20484	// in the CloudFormation User Guide.
20485	//
20486	// Conditional: You must pass TemplateURL or TemplateBody. If both are passed,
20487	// only TemplateBody is used.
20488	TemplateBody *string `min:"1" type:"string"`
20489
20490	// Location of file containing the template body. The URL must point to a template
20491	// (max size: 460,800 bytes) that is located in an Amazon S3 bucket or a Systems
20492	// Manager document. For more information, go to Template Anatomy (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/template-anatomy.html)
20493	// in the CloudFormation User Guide.
20494	//
20495	// Conditional: You must pass TemplateURL or TemplateBody. If both are passed,
20496	// only TemplateBody is used.
20497	TemplateURL *string `min:"1" type:"string"`
20498}
20499
20500// String returns the string representation
20501func (s ValidateTemplateInput) String() string {
20502	return awsutil.Prettify(s)
20503}
20504
20505// GoString returns the string representation
20506func (s ValidateTemplateInput) GoString() string {
20507	return s.String()
20508}
20509
20510// Validate inspects the fields of the type to determine if they are valid.
20511func (s *ValidateTemplateInput) Validate() error {
20512	invalidParams := request.ErrInvalidParams{Context: "ValidateTemplateInput"}
20513	if s.TemplateBody != nil && len(*s.TemplateBody) < 1 {
20514		invalidParams.Add(request.NewErrParamMinLen("TemplateBody", 1))
20515	}
20516	if s.TemplateURL != nil && len(*s.TemplateURL) < 1 {
20517		invalidParams.Add(request.NewErrParamMinLen("TemplateURL", 1))
20518	}
20519
20520	if invalidParams.Len() > 0 {
20521		return invalidParams
20522	}
20523	return nil
20524}
20525
20526// SetTemplateBody sets the TemplateBody field's value.
20527func (s *ValidateTemplateInput) SetTemplateBody(v string) *ValidateTemplateInput {
20528	s.TemplateBody = &v
20529	return s
20530}
20531
20532// SetTemplateURL sets the TemplateURL field's value.
20533func (s *ValidateTemplateInput) SetTemplateURL(v string) *ValidateTemplateInput {
20534	s.TemplateURL = &v
20535	return s
20536}
20537
20538// The output for ValidateTemplate action.
20539type ValidateTemplateOutput struct {
20540	_ struct{} `type:"structure"`
20541
20542	// The capabilities found within the template. If your template contains IAM
20543	// resources, you must specify the CAPABILITY_IAM or CAPABILITY_NAMED_IAM value
20544	// for this parameter when you use the CreateStack or UpdateStack actions with
20545	// your template; otherwise, those actions return an InsufficientCapabilities
20546	// error.
20547	//
20548	// For more information, see Acknowledging IAM Resources in CloudFormation Templates
20549	// (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-iam-template.html#capabilities).
20550	Capabilities []*string `type:"list"`
20551
20552	// The list of resources that generated the values in the Capabilities response
20553	// element.
20554	CapabilitiesReason *string `type:"string"`
20555
20556	// A list of the transforms that are declared in the template.
20557	DeclaredTransforms []*string `type:"list"`
20558
20559	// The description found within the template.
20560	Description *string `min:"1" type:"string"`
20561
20562	// A list of TemplateParameter structures.
20563	Parameters []*TemplateParameter `type:"list"`
20564}
20565
20566// String returns the string representation
20567func (s ValidateTemplateOutput) String() string {
20568	return awsutil.Prettify(s)
20569}
20570
20571// GoString returns the string representation
20572func (s ValidateTemplateOutput) GoString() string {
20573	return s.String()
20574}
20575
20576// SetCapabilities sets the Capabilities field's value.
20577func (s *ValidateTemplateOutput) SetCapabilities(v []*string) *ValidateTemplateOutput {
20578	s.Capabilities = v
20579	return s
20580}
20581
20582// SetCapabilitiesReason sets the CapabilitiesReason field's value.
20583func (s *ValidateTemplateOutput) SetCapabilitiesReason(v string) *ValidateTemplateOutput {
20584	s.CapabilitiesReason = &v
20585	return s
20586}
20587
20588// SetDeclaredTransforms sets the DeclaredTransforms field's value.
20589func (s *ValidateTemplateOutput) SetDeclaredTransforms(v []*string) *ValidateTemplateOutput {
20590	s.DeclaredTransforms = v
20591	return s
20592}
20593
20594// SetDescription sets the Description field's value.
20595func (s *ValidateTemplateOutput) SetDescription(v string) *ValidateTemplateOutput {
20596	s.Description = &v
20597	return s
20598}
20599
20600// SetParameters sets the Parameters field's value.
20601func (s *ValidateTemplateOutput) SetParameters(v []*TemplateParameter) *ValidateTemplateOutput {
20602	s.Parameters = v
20603	return s
20604}
20605
20606const (
20607	// AccountGateStatusSucceeded is a AccountGateStatus enum value
20608	AccountGateStatusSucceeded = "SUCCEEDED"
20609
20610	// AccountGateStatusFailed is a AccountGateStatus enum value
20611	AccountGateStatusFailed = "FAILED"
20612
20613	// AccountGateStatusSkipped is a AccountGateStatus enum value
20614	AccountGateStatusSkipped = "SKIPPED"
20615)
20616
20617// AccountGateStatus_Values returns all elements of the AccountGateStatus enum
20618func AccountGateStatus_Values() []string {
20619	return []string{
20620		AccountGateStatusSucceeded,
20621		AccountGateStatusFailed,
20622		AccountGateStatusSkipped,
20623	}
20624}
20625
20626const (
20627	// CallAsSelf is a CallAs enum value
20628	CallAsSelf = "SELF"
20629
20630	// CallAsDelegatedAdmin is a CallAs enum value
20631	CallAsDelegatedAdmin = "DELEGATED_ADMIN"
20632)
20633
20634// CallAs_Values returns all elements of the CallAs enum
20635func CallAs_Values() []string {
20636	return []string{
20637		CallAsSelf,
20638		CallAsDelegatedAdmin,
20639	}
20640}
20641
20642const (
20643	// CapabilityCapabilityIam is a Capability enum value
20644	CapabilityCapabilityIam = "CAPABILITY_IAM"
20645
20646	// CapabilityCapabilityNamedIam is a Capability enum value
20647	CapabilityCapabilityNamedIam = "CAPABILITY_NAMED_IAM"
20648
20649	// CapabilityCapabilityAutoExpand is a Capability enum value
20650	CapabilityCapabilityAutoExpand = "CAPABILITY_AUTO_EXPAND"
20651)
20652
20653// Capability_Values returns all elements of the Capability enum
20654func Capability_Values() []string {
20655	return []string{
20656		CapabilityCapabilityIam,
20657		CapabilityCapabilityNamedIam,
20658		CapabilityCapabilityAutoExpand,
20659	}
20660}
20661
20662const (
20663	// CategoryRegistered is a Category enum value
20664	CategoryRegistered = "REGISTERED"
20665
20666	// CategoryActivated is a Category enum value
20667	CategoryActivated = "ACTIVATED"
20668
20669	// CategoryThirdParty is a Category enum value
20670	CategoryThirdParty = "THIRD_PARTY"
20671
20672	// CategoryAwsTypes is a Category enum value
20673	CategoryAwsTypes = "AWS_TYPES"
20674)
20675
20676// Category_Values returns all elements of the Category enum
20677func Category_Values() []string {
20678	return []string{
20679		CategoryRegistered,
20680		CategoryActivated,
20681		CategoryThirdParty,
20682		CategoryAwsTypes,
20683	}
20684}
20685
20686const (
20687	// ChangeActionAdd is a ChangeAction enum value
20688	ChangeActionAdd = "Add"
20689
20690	// ChangeActionModify is a ChangeAction enum value
20691	ChangeActionModify = "Modify"
20692
20693	// ChangeActionRemove is a ChangeAction enum value
20694	ChangeActionRemove = "Remove"
20695
20696	// ChangeActionImport is a ChangeAction enum value
20697	ChangeActionImport = "Import"
20698
20699	// ChangeActionDynamic is a ChangeAction enum value
20700	ChangeActionDynamic = "Dynamic"
20701)
20702
20703// ChangeAction_Values returns all elements of the ChangeAction enum
20704func ChangeAction_Values() []string {
20705	return []string{
20706		ChangeActionAdd,
20707		ChangeActionModify,
20708		ChangeActionRemove,
20709		ChangeActionImport,
20710		ChangeActionDynamic,
20711	}
20712}
20713
20714const (
20715	// ChangeSetStatusCreatePending is a ChangeSetStatus enum value
20716	ChangeSetStatusCreatePending = "CREATE_PENDING"
20717
20718	// ChangeSetStatusCreateInProgress is a ChangeSetStatus enum value
20719	ChangeSetStatusCreateInProgress = "CREATE_IN_PROGRESS"
20720
20721	// ChangeSetStatusCreateComplete is a ChangeSetStatus enum value
20722	ChangeSetStatusCreateComplete = "CREATE_COMPLETE"
20723
20724	// ChangeSetStatusDeletePending is a ChangeSetStatus enum value
20725	ChangeSetStatusDeletePending = "DELETE_PENDING"
20726
20727	// ChangeSetStatusDeleteInProgress is a ChangeSetStatus enum value
20728	ChangeSetStatusDeleteInProgress = "DELETE_IN_PROGRESS"
20729
20730	// ChangeSetStatusDeleteComplete is a ChangeSetStatus enum value
20731	ChangeSetStatusDeleteComplete = "DELETE_COMPLETE"
20732
20733	// ChangeSetStatusDeleteFailed is a ChangeSetStatus enum value
20734	ChangeSetStatusDeleteFailed = "DELETE_FAILED"
20735
20736	// ChangeSetStatusFailed is a ChangeSetStatus enum value
20737	ChangeSetStatusFailed = "FAILED"
20738)
20739
20740// ChangeSetStatus_Values returns all elements of the ChangeSetStatus enum
20741func ChangeSetStatus_Values() []string {
20742	return []string{
20743		ChangeSetStatusCreatePending,
20744		ChangeSetStatusCreateInProgress,
20745		ChangeSetStatusCreateComplete,
20746		ChangeSetStatusDeletePending,
20747		ChangeSetStatusDeleteInProgress,
20748		ChangeSetStatusDeleteComplete,
20749		ChangeSetStatusDeleteFailed,
20750		ChangeSetStatusFailed,
20751	}
20752}
20753
20754const (
20755	// ChangeSetTypeCreate is a ChangeSetType enum value
20756	ChangeSetTypeCreate = "CREATE"
20757
20758	// ChangeSetTypeUpdate is a ChangeSetType enum value
20759	ChangeSetTypeUpdate = "UPDATE"
20760
20761	// ChangeSetTypeImport is a ChangeSetType enum value
20762	ChangeSetTypeImport = "IMPORT"
20763)
20764
20765// ChangeSetType_Values returns all elements of the ChangeSetType enum
20766func ChangeSetType_Values() []string {
20767	return []string{
20768		ChangeSetTypeCreate,
20769		ChangeSetTypeUpdate,
20770		ChangeSetTypeImport,
20771	}
20772}
20773
20774const (
20775	// ChangeSourceResourceReference is a ChangeSource enum value
20776	ChangeSourceResourceReference = "ResourceReference"
20777
20778	// ChangeSourceParameterReference is a ChangeSource enum value
20779	ChangeSourceParameterReference = "ParameterReference"
20780
20781	// ChangeSourceResourceAttribute is a ChangeSource enum value
20782	ChangeSourceResourceAttribute = "ResourceAttribute"
20783
20784	// ChangeSourceDirectModification is a ChangeSource enum value
20785	ChangeSourceDirectModification = "DirectModification"
20786
20787	// ChangeSourceAutomatic is a ChangeSource enum value
20788	ChangeSourceAutomatic = "Automatic"
20789)
20790
20791// ChangeSource_Values returns all elements of the ChangeSource enum
20792func ChangeSource_Values() []string {
20793	return []string{
20794		ChangeSourceResourceReference,
20795		ChangeSourceParameterReference,
20796		ChangeSourceResourceAttribute,
20797		ChangeSourceDirectModification,
20798		ChangeSourceAutomatic,
20799	}
20800}
20801
20802const (
20803	// ChangeTypeResource is a ChangeType enum value
20804	ChangeTypeResource = "Resource"
20805)
20806
20807// ChangeType_Values returns all elements of the ChangeType enum
20808func ChangeType_Values() []string {
20809	return []string{
20810		ChangeTypeResource,
20811	}
20812}
20813
20814const (
20815	// DeprecatedStatusLive is a DeprecatedStatus enum value
20816	DeprecatedStatusLive = "LIVE"
20817
20818	// DeprecatedStatusDeprecated is a DeprecatedStatus enum value
20819	DeprecatedStatusDeprecated = "DEPRECATED"
20820)
20821
20822// DeprecatedStatus_Values returns all elements of the DeprecatedStatus enum
20823func DeprecatedStatus_Values() []string {
20824	return []string{
20825		DeprecatedStatusLive,
20826		DeprecatedStatusDeprecated,
20827	}
20828}
20829
20830const (
20831	// DifferenceTypeAdd is a DifferenceType enum value
20832	DifferenceTypeAdd = "ADD"
20833
20834	// DifferenceTypeRemove is a DifferenceType enum value
20835	DifferenceTypeRemove = "REMOVE"
20836
20837	// DifferenceTypeNotEqual is a DifferenceType enum value
20838	DifferenceTypeNotEqual = "NOT_EQUAL"
20839)
20840
20841// DifferenceType_Values returns all elements of the DifferenceType enum
20842func DifferenceType_Values() []string {
20843	return []string{
20844		DifferenceTypeAdd,
20845		DifferenceTypeRemove,
20846		DifferenceTypeNotEqual,
20847	}
20848}
20849
20850const (
20851	// EvaluationTypeStatic is a EvaluationType enum value
20852	EvaluationTypeStatic = "Static"
20853
20854	// EvaluationTypeDynamic is a EvaluationType enum value
20855	EvaluationTypeDynamic = "Dynamic"
20856)
20857
20858// EvaluationType_Values returns all elements of the EvaluationType enum
20859func EvaluationType_Values() []string {
20860	return []string{
20861		EvaluationTypeStatic,
20862		EvaluationTypeDynamic,
20863	}
20864}
20865
20866const (
20867	// ExecutionStatusUnavailable is a ExecutionStatus enum value
20868	ExecutionStatusUnavailable = "UNAVAILABLE"
20869
20870	// ExecutionStatusAvailable is a ExecutionStatus enum value
20871	ExecutionStatusAvailable = "AVAILABLE"
20872
20873	// ExecutionStatusExecuteInProgress is a ExecutionStatus enum value
20874	ExecutionStatusExecuteInProgress = "EXECUTE_IN_PROGRESS"
20875
20876	// ExecutionStatusExecuteComplete is a ExecutionStatus enum value
20877	ExecutionStatusExecuteComplete = "EXECUTE_COMPLETE"
20878
20879	// ExecutionStatusExecuteFailed is a ExecutionStatus enum value
20880	ExecutionStatusExecuteFailed = "EXECUTE_FAILED"
20881
20882	// ExecutionStatusObsolete is a ExecutionStatus enum value
20883	ExecutionStatusObsolete = "OBSOLETE"
20884)
20885
20886// ExecutionStatus_Values returns all elements of the ExecutionStatus enum
20887func ExecutionStatus_Values() []string {
20888	return []string{
20889		ExecutionStatusUnavailable,
20890		ExecutionStatusAvailable,
20891		ExecutionStatusExecuteInProgress,
20892		ExecutionStatusExecuteComplete,
20893		ExecutionStatusExecuteFailed,
20894		ExecutionStatusObsolete,
20895	}
20896}
20897
20898const (
20899	// HandlerErrorCodeNotUpdatable is a HandlerErrorCode enum value
20900	HandlerErrorCodeNotUpdatable = "NotUpdatable"
20901
20902	// HandlerErrorCodeInvalidRequest is a HandlerErrorCode enum value
20903	HandlerErrorCodeInvalidRequest = "InvalidRequest"
20904
20905	// HandlerErrorCodeAccessDenied is a HandlerErrorCode enum value
20906	HandlerErrorCodeAccessDenied = "AccessDenied"
20907
20908	// HandlerErrorCodeInvalidCredentials is a HandlerErrorCode enum value
20909	HandlerErrorCodeInvalidCredentials = "InvalidCredentials"
20910
20911	// HandlerErrorCodeAlreadyExists is a HandlerErrorCode enum value
20912	HandlerErrorCodeAlreadyExists = "AlreadyExists"
20913
20914	// HandlerErrorCodeNotFound is a HandlerErrorCode enum value
20915	HandlerErrorCodeNotFound = "NotFound"
20916
20917	// HandlerErrorCodeResourceConflict is a HandlerErrorCode enum value
20918	HandlerErrorCodeResourceConflict = "ResourceConflict"
20919
20920	// HandlerErrorCodeThrottling is a HandlerErrorCode enum value
20921	HandlerErrorCodeThrottling = "Throttling"
20922
20923	// HandlerErrorCodeServiceLimitExceeded is a HandlerErrorCode enum value
20924	HandlerErrorCodeServiceLimitExceeded = "ServiceLimitExceeded"
20925
20926	// HandlerErrorCodeNotStabilized is a HandlerErrorCode enum value
20927	HandlerErrorCodeNotStabilized = "NotStabilized"
20928
20929	// HandlerErrorCodeGeneralServiceException is a HandlerErrorCode enum value
20930	HandlerErrorCodeGeneralServiceException = "GeneralServiceException"
20931
20932	// HandlerErrorCodeServiceInternalError is a HandlerErrorCode enum value
20933	HandlerErrorCodeServiceInternalError = "ServiceInternalError"
20934
20935	// HandlerErrorCodeNetworkFailure is a HandlerErrorCode enum value
20936	HandlerErrorCodeNetworkFailure = "NetworkFailure"
20937
20938	// HandlerErrorCodeInternalFailure is a HandlerErrorCode enum value
20939	HandlerErrorCodeInternalFailure = "InternalFailure"
20940
20941	// HandlerErrorCodeInvalidTypeConfiguration is a HandlerErrorCode enum value
20942	HandlerErrorCodeInvalidTypeConfiguration = "InvalidTypeConfiguration"
20943)
20944
20945// HandlerErrorCode_Values returns all elements of the HandlerErrorCode enum
20946func HandlerErrorCode_Values() []string {
20947	return []string{
20948		HandlerErrorCodeNotUpdatable,
20949		HandlerErrorCodeInvalidRequest,
20950		HandlerErrorCodeAccessDenied,
20951		HandlerErrorCodeInvalidCredentials,
20952		HandlerErrorCodeAlreadyExists,
20953		HandlerErrorCodeNotFound,
20954		HandlerErrorCodeResourceConflict,
20955		HandlerErrorCodeThrottling,
20956		HandlerErrorCodeServiceLimitExceeded,
20957		HandlerErrorCodeNotStabilized,
20958		HandlerErrorCodeGeneralServiceException,
20959		HandlerErrorCodeServiceInternalError,
20960		HandlerErrorCodeNetworkFailure,
20961		HandlerErrorCodeInternalFailure,
20962		HandlerErrorCodeInvalidTypeConfiguration,
20963	}
20964}
20965
20966const (
20967	// IdentityProviderAwsMarketplace is a IdentityProvider enum value
20968	IdentityProviderAwsMarketplace = "AWS_Marketplace"
20969
20970	// IdentityProviderGitHub is a IdentityProvider enum value
20971	IdentityProviderGitHub = "GitHub"
20972
20973	// IdentityProviderBitbucket is a IdentityProvider enum value
20974	IdentityProviderBitbucket = "Bitbucket"
20975)
20976
20977// IdentityProvider_Values returns all elements of the IdentityProvider enum
20978func IdentityProvider_Values() []string {
20979	return []string{
20980		IdentityProviderAwsMarketplace,
20981		IdentityProviderGitHub,
20982		IdentityProviderBitbucket,
20983	}
20984}
20985
20986const (
20987	// OnFailureDoNothing is a OnFailure enum value
20988	OnFailureDoNothing = "DO_NOTHING"
20989
20990	// OnFailureRollback is a OnFailure enum value
20991	OnFailureRollback = "ROLLBACK"
20992
20993	// OnFailureDelete is a OnFailure enum value
20994	OnFailureDelete = "DELETE"
20995)
20996
20997// OnFailure_Values returns all elements of the OnFailure enum
20998func OnFailure_Values() []string {
20999	return []string{
21000		OnFailureDoNothing,
21001		OnFailureRollback,
21002		OnFailureDelete,
21003	}
21004}
21005
21006const (
21007	// OperationStatusPending is a OperationStatus enum value
21008	OperationStatusPending = "PENDING"
21009
21010	// OperationStatusInProgress is a OperationStatus enum value
21011	OperationStatusInProgress = "IN_PROGRESS"
21012
21013	// OperationStatusSuccess is a OperationStatus enum value
21014	OperationStatusSuccess = "SUCCESS"
21015
21016	// OperationStatusFailed is a OperationStatus enum value
21017	OperationStatusFailed = "FAILED"
21018)
21019
21020// OperationStatus_Values returns all elements of the OperationStatus enum
21021func OperationStatus_Values() []string {
21022	return []string{
21023		OperationStatusPending,
21024		OperationStatusInProgress,
21025		OperationStatusSuccess,
21026		OperationStatusFailed,
21027	}
21028}
21029
21030const (
21031	// PermissionModelsServiceManaged is a PermissionModels enum value
21032	PermissionModelsServiceManaged = "SERVICE_MANAGED"
21033
21034	// PermissionModelsSelfManaged is a PermissionModels enum value
21035	PermissionModelsSelfManaged = "SELF_MANAGED"
21036)
21037
21038// PermissionModels_Values returns all elements of the PermissionModels enum
21039func PermissionModels_Values() []string {
21040	return []string{
21041		PermissionModelsServiceManaged,
21042		PermissionModelsSelfManaged,
21043	}
21044}
21045
21046const (
21047	// ProvisioningTypeNonProvisionable is a ProvisioningType enum value
21048	ProvisioningTypeNonProvisionable = "NON_PROVISIONABLE"
21049
21050	// ProvisioningTypeImmutable is a ProvisioningType enum value
21051	ProvisioningTypeImmutable = "IMMUTABLE"
21052
21053	// ProvisioningTypeFullyMutable is a ProvisioningType enum value
21054	ProvisioningTypeFullyMutable = "FULLY_MUTABLE"
21055)
21056
21057// ProvisioningType_Values returns all elements of the ProvisioningType enum
21058func ProvisioningType_Values() []string {
21059	return []string{
21060		ProvisioningTypeNonProvisionable,
21061		ProvisioningTypeImmutable,
21062		ProvisioningTypeFullyMutable,
21063	}
21064}
21065
21066const (
21067	// PublisherStatusVerified is a PublisherStatus enum value
21068	PublisherStatusVerified = "VERIFIED"
21069
21070	// PublisherStatusUnverified is a PublisherStatus enum value
21071	PublisherStatusUnverified = "UNVERIFIED"
21072)
21073
21074// PublisherStatus_Values returns all elements of the PublisherStatus enum
21075func PublisherStatus_Values() []string {
21076	return []string{
21077		PublisherStatusVerified,
21078		PublisherStatusUnverified,
21079	}
21080}
21081
21082const (
21083	// RegionConcurrencyTypeSequential is a RegionConcurrencyType enum value
21084	RegionConcurrencyTypeSequential = "SEQUENTIAL"
21085
21086	// RegionConcurrencyTypeParallel is a RegionConcurrencyType enum value
21087	RegionConcurrencyTypeParallel = "PARALLEL"
21088)
21089
21090// RegionConcurrencyType_Values returns all elements of the RegionConcurrencyType enum
21091func RegionConcurrencyType_Values() []string {
21092	return []string{
21093		RegionConcurrencyTypeSequential,
21094		RegionConcurrencyTypeParallel,
21095	}
21096}
21097
21098const (
21099	// RegistrationStatusComplete is a RegistrationStatus enum value
21100	RegistrationStatusComplete = "COMPLETE"
21101
21102	// RegistrationStatusInProgress is a RegistrationStatus enum value
21103	RegistrationStatusInProgress = "IN_PROGRESS"
21104
21105	// RegistrationStatusFailed is a RegistrationStatus enum value
21106	RegistrationStatusFailed = "FAILED"
21107)
21108
21109// RegistrationStatus_Values returns all elements of the RegistrationStatus enum
21110func RegistrationStatus_Values() []string {
21111	return []string{
21112		RegistrationStatusComplete,
21113		RegistrationStatusInProgress,
21114		RegistrationStatusFailed,
21115	}
21116}
21117
21118const (
21119	// RegistryTypeResource is a RegistryType enum value
21120	RegistryTypeResource = "RESOURCE"
21121
21122	// RegistryTypeModule is a RegistryType enum value
21123	RegistryTypeModule = "MODULE"
21124)
21125
21126// RegistryType_Values returns all elements of the RegistryType enum
21127func RegistryType_Values() []string {
21128	return []string{
21129		RegistryTypeResource,
21130		RegistryTypeModule,
21131	}
21132}
21133
21134const (
21135	// ReplacementTrue is a Replacement enum value
21136	ReplacementTrue = "True"
21137
21138	// ReplacementFalse is a Replacement enum value
21139	ReplacementFalse = "False"
21140
21141	// ReplacementConditional is a Replacement enum value
21142	ReplacementConditional = "Conditional"
21143)
21144
21145// Replacement_Values returns all elements of the Replacement enum
21146func Replacement_Values() []string {
21147	return []string{
21148		ReplacementTrue,
21149		ReplacementFalse,
21150		ReplacementConditional,
21151	}
21152}
21153
21154const (
21155	// RequiresRecreationNever is a RequiresRecreation enum value
21156	RequiresRecreationNever = "Never"
21157
21158	// RequiresRecreationConditionally is a RequiresRecreation enum value
21159	RequiresRecreationConditionally = "Conditionally"
21160
21161	// RequiresRecreationAlways is a RequiresRecreation enum value
21162	RequiresRecreationAlways = "Always"
21163)
21164
21165// RequiresRecreation_Values returns all elements of the RequiresRecreation enum
21166func RequiresRecreation_Values() []string {
21167	return []string{
21168		RequiresRecreationNever,
21169		RequiresRecreationConditionally,
21170		RequiresRecreationAlways,
21171	}
21172}
21173
21174const (
21175	// ResourceAttributeProperties is a ResourceAttribute enum value
21176	ResourceAttributeProperties = "Properties"
21177
21178	// ResourceAttributeMetadata is a ResourceAttribute enum value
21179	ResourceAttributeMetadata = "Metadata"
21180
21181	// ResourceAttributeCreationPolicy is a ResourceAttribute enum value
21182	ResourceAttributeCreationPolicy = "CreationPolicy"
21183
21184	// ResourceAttributeUpdatePolicy is a ResourceAttribute enum value
21185	ResourceAttributeUpdatePolicy = "UpdatePolicy"
21186
21187	// ResourceAttributeDeletionPolicy is a ResourceAttribute enum value
21188	ResourceAttributeDeletionPolicy = "DeletionPolicy"
21189
21190	// ResourceAttributeTags is a ResourceAttribute enum value
21191	ResourceAttributeTags = "Tags"
21192)
21193
21194// ResourceAttribute_Values returns all elements of the ResourceAttribute enum
21195func ResourceAttribute_Values() []string {
21196	return []string{
21197		ResourceAttributeProperties,
21198		ResourceAttributeMetadata,
21199		ResourceAttributeCreationPolicy,
21200		ResourceAttributeUpdatePolicy,
21201		ResourceAttributeDeletionPolicy,
21202		ResourceAttributeTags,
21203	}
21204}
21205
21206const (
21207	// ResourceSignalStatusSuccess is a ResourceSignalStatus enum value
21208	ResourceSignalStatusSuccess = "SUCCESS"
21209
21210	// ResourceSignalStatusFailure is a ResourceSignalStatus enum value
21211	ResourceSignalStatusFailure = "FAILURE"
21212)
21213
21214// ResourceSignalStatus_Values returns all elements of the ResourceSignalStatus enum
21215func ResourceSignalStatus_Values() []string {
21216	return []string{
21217		ResourceSignalStatusSuccess,
21218		ResourceSignalStatusFailure,
21219	}
21220}
21221
21222const (
21223	// ResourceStatusCreateInProgress is a ResourceStatus enum value
21224	ResourceStatusCreateInProgress = "CREATE_IN_PROGRESS"
21225
21226	// ResourceStatusCreateFailed is a ResourceStatus enum value
21227	ResourceStatusCreateFailed = "CREATE_FAILED"
21228
21229	// ResourceStatusCreateComplete is a ResourceStatus enum value
21230	ResourceStatusCreateComplete = "CREATE_COMPLETE"
21231
21232	// ResourceStatusDeleteInProgress is a ResourceStatus enum value
21233	ResourceStatusDeleteInProgress = "DELETE_IN_PROGRESS"
21234
21235	// ResourceStatusDeleteFailed is a ResourceStatus enum value
21236	ResourceStatusDeleteFailed = "DELETE_FAILED"
21237
21238	// ResourceStatusDeleteComplete is a ResourceStatus enum value
21239	ResourceStatusDeleteComplete = "DELETE_COMPLETE"
21240
21241	// ResourceStatusDeleteSkipped is a ResourceStatus enum value
21242	ResourceStatusDeleteSkipped = "DELETE_SKIPPED"
21243
21244	// ResourceStatusUpdateInProgress is a ResourceStatus enum value
21245	ResourceStatusUpdateInProgress = "UPDATE_IN_PROGRESS"
21246
21247	// ResourceStatusUpdateFailed is a ResourceStatus enum value
21248	ResourceStatusUpdateFailed = "UPDATE_FAILED"
21249
21250	// ResourceStatusUpdateComplete is a ResourceStatus enum value
21251	ResourceStatusUpdateComplete = "UPDATE_COMPLETE"
21252
21253	// ResourceStatusImportFailed is a ResourceStatus enum value
21254	ResourceStatusImportFailed = "IMPORT_FAILED"
21255
21256	// ResourceStatusImportComplete is a ResourceStatus enum value
21257	ResourceStatusImportComplete = "IMPORT_COMPLETE"
21258
21259	// ResourceStatusImportInProgress is a ResourceStatus enum value
21260	ResourceStatusImportInProgress = "IMPORT_IN_PROGRESS"
21261
21262	// ResourceStatusImportRollbackInProgress is a ResourceStatus enum value
21263	ResourceStatusImportRollbackInProgress = "IMPORT_ROLLBACK_IN_PROGRESS"
21264
21265	// ResourceStatusImportRollbackFailed is a ResourceStatus enum value
21266	ResourceStatusImportRollbackFailed = "IMPORT_ROLLBACK_FAILED"
21267
21268	// ResourceStatusImportRollbackComplete is a ResourceStatus enum value
21269	ResourceStatusImportRollbackComplete = "IMPORT_ROLLBACK_COMPLETE"
21270
21271	// ResourceStatusUpdateRollbackInProgress is a ResourceStatus enum value
21272	ResourceStatusUpdateRollbackInProgress = "UPDATE_ROLLBACK_IN_PROGRESS"
21273
21274	// ResourceStatusUpdateRollbackComplete is a ResourceStatus enum value
21275	ResourceStatusUpdateRollbackComplete = "UPDATE_ROLLBACK_COMPLETE"
21276
21277	// ResourceStatusUpdateRollbackFailed is a ResourceStatus enum value
21278	ResourceStatusUpdateRollbackFailed = "UPDATE_ROLLBACK_FAILED"
21279
21280	// ResourceStatusRollbackInProgress is a ResourceStatus enum value
21281	ResourceStatusRollbackInProgress = "ROLLBACK_IN_PROGRESS"
21282
21283	// ResourceStatusRollbackComplete is a ResourceStatus enum value
21284	ResourceStatusRollbackComplete = "ROLLBACK_COMPLETE"
21285
21286	// ResourceStatusRollbackFailed is a ResourceStatus enum value
21287	ResourceStatusRollbackFailed = "ROLLBACK_FAILED"
21288)
21289
21290// ResourceStatus_Values returns all elements of the ResourceStatus enum
21291func ResourceStatus_Values() []string {
21292	return []string{
21293		ResourceStatusCreateInProgress,
21294		ResourceStatusCreateFailed,
21295		ResourceStatusCreateComplete,
21296		ResourceStatusDeleteInProgress,
21297		ResourceStatusDeleteFailed,
21298		ResourceStatusDeleteComplete,
21299		ResourceStatusDeleteSkipped,
21300		ResourceStatusUpdateInProgress,
21301		ResourceStatusUpdateFailed,
21302		ResourceStatusUpdateComplete,
21303		ResourceStatusImportFailed,
21304		ResourceStatusImportComplete,
21305		ResourceStatusImportInProgress,
21306		ResourceStatusImportRollbackInProgress,
21307		ResourceStatusImportRollbackFailed,
21308		ResourceStatusImportRollbackComplete,
21309		ResourceStatusUpdateRollbackInProgress,
21310		ResourceStatusUpdateRollbackComplete,
21311		ResourceStatusUpdateRollbackFailed,
21312		ResourceStatusRollbackInProgress,
21313		ResourceStatusRollbackComplete,
21314		ResourceStatusRollbackFailed,
21315	}
21316}
21317
21318const (
21319	// StackDriftDetectionStatusDetectionInProgress is a StackDriftDetectionStatus enum value
21320	StackDriftDetectionStatusDetectionInProgress = "DETECTION_IN_PROGRESS"
21321
21322	// StackDriftDetectionStatusDetectionFailed is a StackDriftDetectionStatus enum value
21323	StackDriftDetectionStatusDetectionFailed = "DETECTION_FAILED"
21324
21325	// StackDriftDetectionStatusDetectionComplete is a StackDriftDetectionStatus enum value
21326	StackDriftDetectionStatusDetectionComplete = "DETECTION_COMPLETE"
21327)
21328
21329// StackDriftDetectionStatus_Values returns all elements of the StackDriftDetectionStatus enum
21330func StackDriftDetectionStatus_Values() []string {
21331	return []string{
21332		StackDriftDetectionStatusDetectionInProgress,
21333		StackDriftDetectionStatusDetectionFailed,
21334		StackDriftDetectionStatusDetectionComplete,
21335	}
21336}
21337
21338const (
21339	// StackDriftStatusDrifted is a StackDriftStatus enum value
21340	StackDriftStatusDrifted = "DRIFTED"
21341
21342	// StackDriftStatusInSync is a StackDriftStatus enum value
21343	StackDriftStatusInSync = "IN_SYNC"
21344
21345	// StackDriftStatusUnknown is a StackDriftStatus enum value
21346	StackDriftStatusUnknown = "UNKNOWN"
21347
21348	// StackDriftStatusNotChecked is a StackDriftStatus enum value
21349	StackDriftStatusNotChecked = "NOT_CHECKED"
21350)
21351
21352// StackDriftStatus_Values returns all elements of the StackDriftStatus enum
21353func StackDriftStatus_Values() []string {
21354	return []string{
21355		StackDriftStatusDrifted,
21356		StackDriftStatusInSync,
21357		StackDriftStatusUnknown,
21358		StackDriftStatusNotChecked,
21359	}
21360}
21361
21362const (
21363	// StackInstanceDetailedStatusPending is a StackInstanceDetailedStatus enum value
21364	StackInstanceDetailedStatusPending = "PENDING"
21365
21366	// StackInstanceDetailedStatusRunning is a StackInstanceDetailedStatus enum value
21367	StackInstanceDetailedStatusRunning = "RUNNING"
21368
21369	// StackInstanceDetailedStatusSucceeded is a StackInstanceDetailedStatus enum value
21370	StackInstanceDetailedStatusSucceeded = "SUCCEEDED"
21371
21372	// StackInstanceDetailedStatusFailed is a StackInstanceDetailedStatus enum value
21373	StackInstanceDetailedStatusFailed = "FAILED"
21374
21375	// StackInstanceDetailedStatusCancelled is a StackInstanceDetailedStatus enum value
21376	StackInstanceDetailedStatusCancelled = "CANCELLED"
21377
21378	// StackInstanceDetailedStatusInoperable is a StackInstanceDetailedStatus enum value
21379	StackInstanceDetailedStatusInoperable = "INOPERABLE"
21380)
21381
21382// StackInstanceDetailedStatus_Values returns all elements of the StackInstanceDetailedStatus enum
21383func StackInstanceDetailedStatus_Values() []string {
21384	return []string{
21385		StackInstanceDetailedStatusPending,
21386		StackInstanceDetailedStatusRunning,
21387		StackInstanceDetailedStatusSucceeded,
21388		StackInstanceDetailedStatusFailed,
21389		StackInstanceDetailedStatusCancelled,
21390		StackInstanceDetailedStatusInoperable,
21391	}
21392}
21393
21394const (
21395	// StackInstanceFilterNameDetailedStatus is a StackInstanceFilterName enum value
21396	StackInstanceFilterNameDetailedStatus = "DETAILED_STATUS"
21397)
21398
21399// StackInstanceFilterName_Values returns all elements of the StackInstanceFilterName enum
21400func StackInstanceFilterName_Values() []string {
21401	return []string{
21402		StackInstanceFilterNameDetailedStatus,
21403	}
21404}
21405
21406const (
21407	// StackInstanceStatusCurrent is a StackInstanceStatus enum value
21408	StackInstanceStatusCurrent = "CURRENT"
21409
21410	// StackInstanceStatusOutdated is a StackInstanceStatus enum value
21411	StackInstanceStatusOutdated = "OUTDATED"
21412
21413	// StackInstanceStatusInoperable is a StackInstanceStatus enum value
21414	StackInstanceStatusInoperable = "INOPERABLE"
21415)
21416
21417// StackInstanceStatus_Values returns all elements of the StackInstanceStatus enum
21418func StackInstanceStatus_Values() []string {
21419	return []string{
21420		StackInstanceStatusCurrent,
21421		StackInstanceStatusOutdated,
21422		StackInstanceStatusInoperable,
21423	}
21424}
21425
21426const (
21427	// StackResourceDriftStatusInSync is a StackResourceDriftStatus enum value
21428	StackResourceDriftStatusInSync = "IN_SYNC"
21429
21430	// StackResourceDriftStatusModified is a StackResourceDriftStatus enum value
21431	StackResourceDriftStatusModified = "MODIFIED"
21432
21433	// StackResourceDriftStatusDeleted is a StackResourceDriftStatus enum value
21434	StackResourceDriftStatusDeleted = "DELETED"
21435
21436	// StackResourceDriftStatusNotChecked is a StackResourceDriftStatus enum value
21437	StackResourceDriftStatusNotChecked = "NOT_CHECKED"
21438)
21439
21440// StackResourceDriftStatus_Values returns all elements of the StackResourceDriftStatus enum
21441func StackResourceDriftStatus_Values() []string {
21442	return []string{
21443		StackResourceDriftStatusInSync,
21444		StackResourceDriftStatusModified,
21445		StackResourceDriftStatusDeleted,
21446		StackResourceDriftStatusNotChecked,
21447	}
21448}
21449
21450const (
21451	// StackSetDriftDetectionStatusCompleted is a StackSetDriftDetectionStatus enum value
21452	StackSetDriftDetectionStatusCompleted = "COMPLETED"
21453
21454	// StackSetDriftDetectionStatusFailed is a StackSetDriftDetectionStatus enum value
21455	StackSetDriftDetectionStatusFailed = "FAILED"
21456
21457	// StackSetDriftDetectionStatusPartialSuccess is a StackSetDriftDetectionStatus enum value
21458	StackSetDriftDetectionStatusPartialSuccess = "PARTIAL_SUCCESS"
21459
21460	// StackSetDriftDetectionStatusInProgress is a StackSetDriftDetectionStatus enum value
21461	StackSetDriftDetectionStatusInProgress = "IN_PROGRESS"
21462
21463	// StackSetDriftDetectionStatusStopped is a StackSetDriftDetectionStatus enum value
21464	StackSetDriftDetectionStatusStopped = "STOPPED"
21465)
21466
21467// StackSetDriftDetectionStatus_Values returns all elements of the StackSetDriftDetectionStatus enum
21468func StackSetDriftDetectionStatus_Values() []string {
21469	return []string{
21470		StackSetDriftDetectionStatusCompleted,
21471		StackSetDriftDetectionStatusFailed,
21472		StackSetDriftDetectionStatusPartialSuccess,
21473		StackSetDriftDetectionStatusInProgress,
21474		StackSetDriftDetectionStatusStopped,
21475	}
21476}
21477
21478const (
21479	// StackSetDriftStatusDrifted is a StackSetDriftStatus enum value
21480	StackSetDriftStatusDrifted = "DRIFTED"
21481
21482	// StackSetDriftStatusInSync is a StackSetDriftStatus enum value
21483	StackSetDriftStatusInSync = "IN_SYNC"
21484
21485	// StackSetDriftStatusNotChecked is a StackSetDriftStatus enum value
21486	StackSetDriftStatusNotChecked = "NOT_CHECKED"
21487)
21488
21489// StackSetDriftStatus_Values returns all elements of the StackSetDriftStatus enum
21490func StackSetDriftStatus_Values() []string {
21491	return []string{
21492		StackSetDriftStatusDrifted,
21493		StackSetDriftStatusInSync,
21494		StackSetDriftStatusNotChecked,
21495	}
21496}
21497
21498const (
21499	// StackSetOperationActionCreate is a StackSetOperationAction enum value
21500	StackSetOperationActionCreate = "CREATE"
21501
21502	// StackSetOperationActionUpdate is a StackSetOperationAction enum value
21503	StackSetOperationActionUpdate = "UPDATE"
21504
21505	// StackSetOperationActionDelete is a StackSetOperationAction enum value
21506	StackSetOperationActionDelete = "DELETE"
21507
21508	// StackSetOperationActionDetectDrift is a StackSetOperationAction enum value
21509	StackSetOperationActionDetectDrift = "DETECT_DRIFT"
21510)
21511
21512// StackSetOperationAction_Values returns all elements of the StackSetOperationAction enum
21513func StackSetOperationAction_Values() []string {
21514	return []string{
21515		StackSetOperationActionCreate,
21516		StackSetOperationActionUpdate,
21517		StackSetOperationActionDelete,
21518		StackSetOperationActionDetectDrift,
21519	}
21520}
21521
21522const (
21523	// StackSetOperationResultStatusPending is a StackSetOperationResultStatus enum value
21524	StackSetOperationResultStatusPending = "PENDING"
21525
21526	// StackSetOperationResultStatusRunning is a StackSetOperationResultStatus enum value
21527	StackSetOperationResultStatusRunning = "RUNNING"
21528
21529	// StackSetOperationResultStatusSucceeded is a StackSetOperationResultStatus enum value
21530	StackSetOperationResultStatusSucceeded = "SUCCEEDED"
21531
21532	// StackSetOperationResultStatusFailed is a StackSetOperationResultStatus enum value
21533	StackSetOperationResultStatusFailed = "FAILED"
21534
21535	// StackSetOperationResultStatusCancelled is a StackSetOperationResultStatus enum value
21536	StackSetOperationResultStatusCancelled = "CANCELLED"
21537)
21538
21539// StackSetOperationResultStatus_Values returns all elements of the StackSetOperationResultStatus enum
21540func StackSetOperationResultStatus_Values() []string {
21541	return []string{
21542		StackSetOperationResultStatusPending,
21543		StackSetOperationResultStatusRunning,
21544		StackSetOperationResultStatusSucceeded,
21545		StackSetOperationResultStatusFailed,
21546		StackSetOperationResultStatusCancelled,
21547	}
21548}
21549
21550const (
21551	// StackSetOperationStatusRunning is a StackSetOperationStatus enum value
21552	StackSetOperationStatusRunning = "RUNNING"
21553
21554	// StackSetOperationStatusSucceeded is a StackSetOperationStatus enum value
21555	StackSetOperationStatusSucceeded = "SUCCEEDED"
21556
21557	// StackSetOperationStatusFailed is a StackSetOperationStatus enum value
21558	StackSetOperationStatusFailed = "FAILED"
21559
21560	// StackSetOperationStatusStopping is a StackSetOperationStatus enum value
21561	StackSetOperationStatusStopping = "STOPPING"
21562
21563	// StackSetOperationStatusStopped is a StackSetOperationStatus enum value
21564	StackSetOperationStatusStopped = "STOPPED"
21565
21566	// StackSetOperationStatusQueued is a StackSetOperationStatus enum value
21567	StackSetOperationStatusQueued = "QUEUED"
21568)
21569
21570// StackSetOperationStatus_Values returns all elements of the StackSetOperationStatus enum
21571func StackSetOperationStatus_Values() []string {
21572	return []string{
21573		StackSetOperationStatusRunning,
21574		StackSetOperationStatusSucceeded,
21575		StackSetOperationStatusFailed,
21576		StackSetOperationStatusStopping,
21577		StackSetOperationStatusStopped,
21578		StackSetOperationStatusQueued,
21579	}
21580}
21581
21582const (
21583	// StackSetStatusActive is a StackSetStatus enum value
21584	StackSetStatusActive = "ACTIVE"
21585
21586	// StackSetStatusDeleted is a StackSetStatus enum value
21587	StackSetStatusDeleted = "DELETED"
21588)
21589
21590// StackSetStatus_Values returns all elements of the StackSetStatus enum
21591func StackSetStatus_Values() []string {
21592	return []string{
21593		StackSetStatusActive,
21594		StackSetStatusDeleted,
21595	}
21596}
21597
21598const (
21599	// StackStatusCreateInProgress is a StackStatus enum value
21600	StackStatusCreateInProgress = "CREATE_IN_PROGRESS"
21601
21602	// StackStatusCreateFailed is a StackStatus enum value
21603	StackStatusCreateFailed = "CREATE_FAILED"
21604
21605	// StackStatusCreateComplete is a StackStatus enum value
21606	StackStatusCreateComplete = "CREATE_COMPLETE"
21607
21608	// StackStatusRollbackInProgress is a StackStatus enum value
21609	StackStatusRollbackInProgress = "ROLLBACK_IN_PROGRESS"
21610
21611	// StackStatusRollbackFailed is a StackStatus enum value
21612	StackStatusRollbackFailed = "ROLLBACK_FAILED"
21613
21614	// StackStatusRollbackComplete is a StackStatus enum value
21615	StackStatusRollbackComplete = "ROLLBACK_COMPLETE"
21616
21617	// StackStatusDeleteInProgress is a StackStatus enum value
21618	StackStatusDeleteInProgress = "DELETE_IN_PROGRESS"
21619
21620	// StackStatusDeleteFailed is a StackStatus enum value
21621	StackStatusDeleteFailed = "DELETE_FAILED"
21622
21623	// StackStatusDeleteComplete is a StackStatus enum value
21624	StackStatusDeleteComplete = "DELETE_COMPLETE"
21625
21626	// StackStatusUpdateInProgress is a StackStatus enum value
21627	StackStatusUpdateInProgress = "UPDATE_IN_PROGRESS"
21628
21629	// StackStatusUpdateCompleteCleanupInProgress is a StackStatus enum value
21630	StackStatusUpdateCompleteCleanupInProgress = "UPDATE_COMPLETE_CLEANUP_IN_PROGRESS"
21631
21632	// StackStatusUpdateComplete is a StackStatus enum value
21633	StackStatusUpdateComplete = "UPDATE_COMPLETE"
21634
21635	// StackStatusUpdateFailed is a StackStatus enum value
21636	StackStatusUpdateFailed = "UPDATE_FAILED"
21637
21638	// StackStatusUpdateRollbackInProgress is a StackStatus enum value
21639	StackStatusUpdateRollbackInProgress = "UPDATE_ROLLBACK_IN_PROGRESS"
21640
21641	// StackStatusUpdateRollbackFailed is a StackStatus enum value
21642	StackStatusUpdateRollbackFailed = "UPDATE_ROLLBACK_FAILED"
21643
21644	// StackStatusUpdateRollbackCompleteCleanupInProgress is a StackStatus enum value
21645	StackStatusUpdateRollbackCompleteCleanupInProgress = "UPDATE_ROLLBACK_COMPLETE_CLEANUP_IN_PROGRESS"
21646
21647	// StackStatusUpdateRollbackComplete is a StackStatus enum value
21648	StackStatusUpdateRollbackComplete = "UPDATE_ROLLBACK_COMPLETE"
21649
21650	// StackStatusReviewInProgress is a StackStatus enum value
21651	StackStatusReviewInProgress = "REVIEW_IN_PROGRESS"
21652
21653	// StackStatusImportInProgress is a StackStatus enum value
21654	StackStatusImportInProgress = "IMPORT_IN_PROGRESS"
21655
21656	// StackStatusImportComplete is a StackStatus enum value
21657	StackStatusImportComplete = "IMPORT_COMPLETE"
21658
21659	// StackStatusImportRollbackInProgress is a StackStatus enum value
21660	StackStatusImportRollbackInProgress = "IMPORT_ROLLBACK_IN_PROGRESS"
21661
21662	// StackStatusImportRollbackFailed is a StackStatus enum value
21663	StackStatusImportRollbackFailed = "IMPORT_ROLLBACK_FAILED"
21664
21665	// StackStatusImportRollbackComplete is a StackStatus enum value
21666	StackStatusImportRollbackComplete = "IMPORT_ROLLBACK_COMPLETE"
21667)
21668
21669// StackStatus_Values returns all elements of the StackStatus enum
21670func StackStatus_Values() []string {
21671	return []string{
21672		StackStatusCreateInProgress,
21673		StackStatusCreateFailed,
21674		StackStatusCreateComplete,
21675		StackStatusRollbackInProgress,
21676		StackStatusRollbackFailed,
21677		StackStatusRollbackComplete,
21678		StackStatusDeleteInProgress,
21679		StackStatusDeleteFailed,
21680		StackStatusDeleteComplete,
21681		StackStatusUpdateInProgress,
21682		StackStatusUpdateCompleteCleanupInProgress,
21683		StackStatusUpdateComplete,
21684		StackStatusUpdateFailed,
21685		StackStatusUpdateRollbackInProgress,
21686		StackStatusUpdateRollbackFailed,
21687		StackStatusUpdateRollbackCompleteCleanupInProgress,
21688		StackStatusUpdateRollbackComplete,
21689		StackStatusReviewInProgress,
21690		StackStatusImportInProgress,
21691		StackStatusImportComplete,
21692		StackStatusImportRollbackInProgress,
21693		StackStatusImportRollbackFailed,
21694		StackStatusImportRollbackComplete,
21695	}
21696}
21697
21698const (
21699	// TemplateStageOriginal is a TemplateStage enum value
21700	TemplateStageOriginal = "Original"
21701
21702	// TemplateStageProcessed is a TemplateStage enum value
21703	TemplateStageProcessed = "Processed"
21704)
21705
21706// TemplateStage_Values returns all elements of the TemplateStage enum
21707func TemplateStage_Values() []string {
21708	return []string{
21709		TemplateStageOriginal,
21710		TemplateStageProcessed,
21711	}
21712}
21713
21714const (
21715	// ThirdPartyTypeResource is a ThirdPartyType enum value
21716	ThirdPartyTypeResource = "RESOURCE"
21717
21718	// ThirdPartyTypeModule is a ThirdPartyType enum value
21719	ThirdPartyTypeModule = "MODULE"
21720)
21721
21722// ThirdPartyType_Values returns all elements of the ThirdPartyType enum
21723func ThirdPartyType_Values() []string {
21724	return []string{
21725		ThirdPartyTypeResource,
21726		ThirdPartyTypeModule,
21727	}
21728}
21729
21730const (
21731	// TypeTestsStatusPassed is a TypeTestsStatus enum value
21732	TypeTestsStatusPassed = "PASSED"
21733
21734	// TypeTestsStatusFailed is a TypeTestsStatus enum value
21735	TypeTestsStatusFailed = "FAILED"
21736
21737	// TypeTestsStatusInProgress is a TypeTestsStatus enum value
21738	TypeTestsStatusInProgress = "IN_PROGRESS"
21739
21740	// TypeTestsStatusNotTested is a TypeTestsStatus enum value
21741	TypeTestsStatusNotTested = "NOT_TESTED"
21742)
21743
21744// TypeTestsStatus_Values returns all elements of the TypeTestsStatus enum
21745func TypeTestsStatus_Values() []string {
21746	return []string{
21747		TypeTestsStatusPassed,
21748		TypeTestsStatusFailed,
21749		TypeTestsStatusInProgress,
21750		TypeTestsStatusNotTested,
21751	}
21752}
21753
21754const (
21755	// VersionBumpMajor is a VersionBump enum value
21756	VersionBumpMajor = "MAJOR"
21757
21758	// VersionBumpMinor is a VersionBump enum value
21759	VersionBumpMinor = "MINOR"
21760)
21761
21762// VersionBump_Values returns all elements of the VersionBump enum
21763func VersionBump_Values() []string {
21764	return []string{
21765		VersionBumpMajor,
21766		VersionBumpMinor,
21767	}
21768}
21769
21770const (
21771	// VisibilityPublic is a Visibility enum value
21772	VisibilityPublic = "PUBLIC"
21773
21774	// VisibilityPrivate is a Visibility enum value
21775	VisibilityPrivate = "PRIVATE"
21776)
21777
21778// Visibility_Values returns all elements of the Visibility enum
21779func Visibility_Values() []string {
21780	return []string{
21781		VisibilityPublic,
21782		VisibilityPrivate,
21783	}
21784}
21785