1// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT.
2
3package cloudformation
4
5import (
6	"fmt"
7	"time"
8
9	"github.com/aws/aws-sdk-go/aws"
10	"github.com/aws/aws-sdk-go/aws/awsutil"
11	"github.com/aws/aws-sdk-go/aws/request"
12	"github.com/aws/aws-sdk-go/private/protocol"
13	"github.com/aws/aws-sdk-go/private/protocol/query"
14)
15
16const opCancelUpdateStack = "CancelUpdateStack"
17
18// CancelUpdateStackRequest generates a "aws/request.Request" representing the
19// client's request for the CancelUpdateStack operation. The "output" return
20// value will be populated with the request's response once the request completes
21// successfully.
22//
23// Use "Send" method on the returned Request to send the API call to the service.
24// the "output" return value is not valid until after Send returns without error.
25//
26// See CancelUpdateStack for more information on using the CancelUpdateStack
27// API call, and error handling.
28//
29// This method is useful when you want to inject custom logic or configuration
30// into the SDK's request lifecycle. Such as custom headers, or retry logic.
31//
32//
33//    // Example sending a request using the CancelUpdateStackRequest method.
34//    req, resp := client.CancelUpdateStackRequest(params)
35//
36//    err := req.Send()
37//    if err == nil { // resp is now filled
38//        fmt.Println(resp)
39//    }
40//
41// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/CancelUpdateStack
42func (c *CloudFormation) CancelUpdateStackRequest(input *CancelUpdateStackInput) (req *request.Request, output *CancelUpdateStackOutput) {
43	op := &request.Operation{
44		Name:       opCancelUpdateStack,
45		HTTPMethod: "POST",
46		HTTPPath:   "/",
47	}
48
49	if input == nil {
50		input = &CancelUpdateStackInput{}
51	}
52
53	output = &CancelUpdateStackOutput{}
54	req = c.newRequest(op, input, output)
55	req.Handlers.Unmarshal.Swap(query.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
56	return
57}
58
59// CancelUpdateStack API operation for AWS CloudFormation.
60//
61// Cancels an update on the specified stack. If the call completes successfully,
62// the stack rolls back the update and reverts to the previous stack configuration.
63//
64// You can cancel only stacks that are in the UPDATE_IN_PROGRESS state.
65//
66// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
67// with awserr.Error's Code and Message methods to get detailed information about
68// the error.
69//
70// See the AWS API reference guide for AWS CloudFormation's
71// API operation CancelUpdateStack for usage and error information.
72//
73// Returned Error Codes:
74//   * ErrCodeTokenAlreadyExistsException "TokenAlreadyExistsException"
75//   A client request token already exists.
76//
77// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/CancelUpdateStack
78func (c *CloudFormation) CancelUpdateStack(input *CancelUpdateStackInput) (*CancelUpdateStackOutput, error) {
79	req, out := c.CancelUpdateStackRequest(input)
80	return out, req.Send()
81}
82
83// CancelUpdateStackWithContext is the same as CancelUpdateStack with the addition of
84// the ability to pass a context and additional request options.
85//
86// See CancelUpdateStack for details on how to use this API operation.
87//
88// The context must be non-nil and will be used for request cancellation. If
89// the context is nil a panic will occur. In the future the SDK may create
90// sub-contexts for http.Requests. See https://golang.org/pkg/context/
91// for more information on using Contexts.
92func (c *CloudFormation) CancelUpdateStackWithContext(ctx aws.Context, input *CancelUpdateStackInput, opts ...request.Option) (*CancelUpdateStackOutput, error) {
93	req, out := c.CancelUpdateStackRequest(input)
94	req.SetContext(ctx)
95	req.ApplyOptions(opts...)
96	return out, req.Send()
97}
98
99const opContinueUpdateRollback = "ContinueUpdateRollback"
100
101// ContinueUpdateRollbackRequest generates a "aws/request.Request" representing the
102// client's request for the ContinueUpdateRollback operation. The "output" return
103// value will be populated with the request's response once the request completes
104// successfully.
105//
106// Use "Send" method on the returned Request to send the API call to the service.
107// the "output" return value is not valid until after Send returns without error.
108//
109// See ContinueUpdateRollback for more information on using the ContinueUpdateRollback
110// API call, and error handling.
111//
112// This method is useful when you want to inject custom logic or configuration
113// into the SDK's request lifecycle. Such as custom headers, or retry logic.
114//
115//
116//    // Example sending a request using the ContinueUpdateRollbackRequest method.
117//    req, resp := client.ContinueUpdateRollbackRequest(params)
118//
119//    err := req.Send()
120//    if err == nil { // resp is now filled
121//        fmt.Println(resp)
122//    }
123//
124// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/ContinueUpdateRollback
125func (c *CloudFormation) ContinueUpdateRollbackRequest(input *ContinueUpdateRollbackInput) (req *request.Request, output *ContinueUpdateRollbackOutput) {
126	op := &request.Operation{
127		Name:       opContinueUpdateRollback,
128		HTTPMethod: "POST",
129		HTTPPath:   "/",
130	}
131
132	if input == nil {
133		input = &ContinueUpdateRollbackInput{}
134	}
135
136	output = &ContinueUpdateRollbackOutput{}
137	req = c.newRequest(op, input, output)
138	req.Handlers.Unmarshal.Swap(query.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
139	return
140}
141
142// ContinueUpdateRollback API operation for AWS CloudFormation.
143//
144// For a specified stack that is in the UPDATE_ROLLBACK_FAILED state, continues
145// rolling it back to the UPDATE_ROLLBACK_COMPLETE state. Depending on the cause
146// of the failure, you can manually fix the error (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/troubleshooting.html#troubleshooting-errors-update-rollback-failed)
147// and continue the rollback. By continuing the rollback, you can return your
148// stack to a working state (the UPDATE_ROLLBACK_COMPLETE state), and then try
149// to update the stack again.
150//
151// A stack goes into the UPDATE_ROLLBACK_FAILED state when AWS CloudFormation
152// cannot roll back all changes after a failed stack update. For example, you
153// might have a stack that is rolling back to an old database instance that
154// was deleted outside of AWS CloudFormation. Because AWS CloudFormation doesn't
155// know the database was deleted, it assumes that the database instance still
156// exists and attempts to roll back to it, causing the update rollback to fail.
157//
158// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
159// with awserr.Error's Code and Message methods to get detailed information about
160// the error.
161//
162// See the AWS API reference guide for AWS CloudFormation's
163// API operation ContinueUpdateRollback for usage and error information.
164//
165// Returned Error Codes:
166//   * ErrCodeTokenAlreadyExistsException "TokenAlreadyExistsException"
167//   A client request token already exists.
168//
169// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/ContinueUpdateRollback
170func (c *CloudFormation) ContinueUpdateRollback(input *ContinueUpdateRollbackInput) (*ContinueUpdateRollbackOutput, error) {
171	req, out := c.ContinueUpdateRollbackRequest(input)
172	return out, req.Send()
173}
174
175// ContinueUpdateRollbackWithContext is the same as ContinueUpdateRollback with the addition of
176// the ability to pass a context and additional request options.
177//
178// See ContinueUpdateRollback for details on how to use this API operation.
179//
180// The context must be non-nil and will be used for request cancellation. If
181// the context is nil a panic will occur. In the future the SDK may create
182// sub-contexts for http.Requests. See https://golang.org/pkg/context/
183// for more information on using Contexts.
184func (c *CloudFormation) ContinueUpdateRollbackWithContext(ctx aws.Context, input *ContinueUpdateRollbackInput, opts ...request.Option) (*ContinueUpdateRollbackOutput, error) {
185	req, out := c.ContinueUpdateRollbackRequest(input)
186	req.SetContext(ctx)
187	req.ApplyOptions(opts...)
188	return out, req.Send()
189}
190
191const opCreateChangeSet = "CreateChangeSet"
192
193// CreateChangeSetRequest generates a "aws/request.Request" representing the
194// client's request for the CreateChangeSet operation. The "output" return
195// value will be populated with the request's response once the request completes
196// successfully.
197//
198// Use "Send" method on the returned Request to send the API call to the service.
199// the "output" return value is not valid until after Send returns without error.
200//
201// See CreateChangeSet for more information on using the CreateChangeSet
202// API call, and error handling.
203//
204// This method is useful when you want to inject custom logic or configuration
205// into the SDK's request lifecycle. Such as custom headers, or retry logic.
206//
207//
208//    // Example sending a request using the CreateChangeSetRequest method.
209//    req, resp := client.CreateChangeSetRequest(params)
210//
211//    err := req.Send()
212//    if err == nil { // resp is now filled
213//        fmt.Println(resp)
214//    }
215//
216// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/CreateChangeSet
217func (c *CloudFormation) CreateChangeSetRequest(input *CreateChangeSetInput) (req *request.Request, output *CreateChangeSetOutput) {
218	op := &request.Operation{
219		Name:       opCreateChangeSet,
220		HTTPMethod: "POST",
221		HTTPPath:   "/",
222	}
223
224	if input == nil {
225		input = &CreateChangeSetInput{}
226	}
227
228	output = &CreateChangeSetOutput{}
229	req = c.newRequest(op, input, output)
230	return
231}
232
233// CreateChangeSet API operation for AWS CloudFormation.
234//
235// Creates a list of changes that will be applied to a stack so that you can
236// review the changes before executing them. You can create a change set for
237// a stack that doesn't exist or an existing stack. If you create a change set
238// for a stack that doesn't exist, the change set shows all of the resources
239// that AWS CloudFormation will create. If you create a change set for an existing
240// stack, AWS CloudFormation compares the stack's information with the information
241// that you submit in the change set and lists the differences. Use change sets
242// to understand which resources AWS CloudFormation will create or change, and
243// how it will change resources in an existing stack, before you create or update
244// a stack.
245//
246// To create a change set for a stack that doesn't exist, for the ChangeSetType
247// parameter, specify CREATE. To create a change set for an existing stack,
248// specify UPDATE for the ChangeSetType parameter. To create a change set for
249// an import operation, specify IMPORT for the ChangeSetType parameter. After
250// the CreateChangeSet call successfully completes, AWS CloudFormation starts
251// creating the change set. To check the status of the change set or to review
252// it, use the DescribeChangeSet action.
253//
254// When you are satisfied with the changes the change set will make, execute
255// the change set by using the ExecuteChangeSet action. AWS CloudFormation doesn't
256// make changes until you execute the change set.
257//
258// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
259// with awserr.Error's Code and Message methods to get detailed information about
260// the error.
261//
262// See the AWS API reference guide for AWS CloudFormation's
263// API operation CreateChangeSet for usage and error information.
264//
265// Returned Error Codes:
266//   * ErrCodeAlreadyExistsException "AlreadyExistsException"
267//   The resource with the name requested already exists.
268//
269//   * ErrCodeInsufficientCapabilitiesException "InsufficientCapabilitiesException"
270//   The template contains resources with capabilities that weren't specified
271//   in the Capabilities parameter.
272//
273//   * ErrCodeLimitExceededException "LimitExceededException"
274//   The quota for the resource has already been reached.
275//
276//   For information on resource and stack limitations, see Limits (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/cloudformation-limits.html)
277//   in the AWS CloudFormation User Guide.
278//
279// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/CreateChangeSet
280func (c *CloudFormation) CreateChangeSet(input *CreateChangeSetInput) (*CreateChangeSetOutput, error) {
281	req, out := c.CreateChangeSetRequest(input)
282	return out, req.Send()
283}
284
285// CreateChangeSetWithContext is the same as CreateChangeSet with the addition of
286// the ability to pass a context and additional request options.
287//
288// See CreateChangeSet for details on how to use this API operation.
289//
290// The context must be non-nil and will be used for request cancellation. If
291// the context is nil a panic will occur. In the future the SDK may create
292// sub-contexts for http.Requests. See https://golang.org/pkg/context/
293// for more information on using Contexts.
294func (c *CloudFormation) CreateChangeSetWithContext(ctx aws.Context, input *CreateChangeSetInput, opts ...request.Option) (*CreateChangeSetOutput, error) {
295	req, out := c.CreateChangeSetRequest(input)
296	req.SetContext(ctx)
297	req.ApplyOptions(opts...)
298	return out, req.Send()
299}
300
301const opCreateStack = "CreateStack"
302
303// CreateStackRequest generates a "aws/request.Request" representing the
304// client's request for the CreateStack operation. The "output" return
305// value will be populated with the request's response once the request completes
306// successfully.
307//
308// Use "Send" method on the returned Request to send the API call to the service.
309// the "output" return value is not valid until after Send returns without error.
310//
311// See CreateStack for more information on using the CreateStack
312// API call, and error handling.
313//
314// This method is useful when you want to inject custom logic or configuration
315// into the SDK's request lifecycle. Such as custom headers, or retry logic.
316//
317//
318//    // Example sending a request using the CreateStackRequest method.
319//    req, resp := client.CreateStackRequest(params)
320//
321//    err := req.Send()
322//    if err == nil { // resp is now filled
323//        fmt.Println(resp)
324//    }
325//
326// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/CreateStack
327func (c *CloudFormation) CreateStackRequest(input *CreateStackInput) (req *request.Request, output *CreateStackOutput) {
328	op := &request.Operation{
329		Name:       opCreateStack,
330		HTTPMethod: "POST",
331		HTTPPath:   "/",
332	}
333
334	if input == nil {
335		input = &CreateStackInput{}
336	}
337
338	output = &CreateStackOutput{}
339	req = c.newRequest(op, input, output)
340	return
341}
342
343// CreateStack API operation for AWS CloudFormation.
344//
345// Creates a stack as specified in the template. After the call completes successfully,
346// the stack creation starts. You can check the status of the stack via the
347// DescribeStacks API.
348//
349// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
350// with awserr.Error's Code and Message methods to get detailed information about
351// the error.
352//
353// See the AWS API reference guide for AWS CloudFormation's
354// API operation CreateStack for usage and error information.
355//
356// Returned Error Codes:
357//   * ErrCodeLimitExceededException "LimitExceededException"
358//   The quota for the resource has already been reached.
359//
360//   For information on resource and stack limitations, see Limits (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/cloudformation-limits.html)
361//   in the AWS CloudFormation User Guide.
362//
363//   * ErrCodeAlreadyExistsException "AlreadyExistsException"
364//   The resource with the name requested already exists.
365//
366//   * ErrCodeTokenAlreadyExistsException "TokenAlreadyExistsException"
367//   A client request token already exists.
368//
369//   * ErrCodeInsufficientCapabilitiesException "InsufficientCapabilitiesException"
370//   The template contains resources with capabilities that weren't specified
371//   in the Capabilities parameter.
372//
373// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/CreateStack
374func (c *CloudFormation) CreateStack(input *CreateStackInput) (*CreateStackOutput, error) {
375	req, out := c.CreateStackRequest(input)
376	return out, req.Send()
377}
378
379// CreateStackWithContext is the same as CreateStack with the addition of
380// the ability to pass a context and additional request options.
381//
382// See CreateStack for details on how to use this API operation.
383//
384// The context must be non-nil and will be used for request cancellation. If
385// the context is nil a panic will occur. In the future the SDK may create
386// sub-contexts for http.Requests. See https://golang.org/pkg/context/
387// for more information on using Contexts.
388func (c *CloudFormation) CreateStackWithContext(ctx aws.Context, input *CreateStackInput, opts ...request.Option) (*CreateStackOutput, error) {
389	req, out := c.CreateStackRequest(input)
390	req.SetContext(ctx)
391	req.ApplyOptions(opts...)
392	return out, req.Send()
393}
394
395const opCreateStackInstances = "CreateStackInstances"
396
397// CreateStackInstancesRequest generates a "aws/request.Request" representing the
398// client's request for the CreateStackInstances operation. The "output" return
399// value will be populated with the request's response once the request completes
400// successfully.
401//
402// Use "Send" method on the returned Request to send the API call to the service.
403// the "output" return value is not valid until after Send returns without error.
404//
405// See CreateStackInstances for more information on using the CreateStackInstances
406// API call, and error handling.
407//
408// This method is useful when you want to inject custom logic or configuration
409// into the SDK's request lifecycle. Such as custom headers, or retry logic.
410//
411//
412//    // Example sending a request using the CreateStackInstancesRequest method.
413//    req, resp := client.CreateStackInstancesRequest(params)
414//
415//    err := req.Send()
416//    if err == nil { // resp is now filled
417//        fmt.Println(resp)
418//    }
419//
420// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/CreateStackInstances
421func (c *CloudFormation) CreateStackInstancesRequest(input *CreateStackInstancesInput) (req *request.Request, output *CreateStackInstancesOutput) {
422	op := &request.Operation{
423		Name:       opCreateStackInstances,
424		HTTPMethod: "POST",
425		HTTPPath:   "/",
426	}
427
428	if input == nil {
429		input = &CreateStackInstancesInput{}
430	}
431
432	output = &CreateStackInstancesOutput{}
433	req = c.newRequest(op, input, output)
434	return
435}
436
437// CreateStackInstances API operation for AWS CloudFormation.
438//
439// Creates stack instances for the specified accounts, within the specified
440// Regions. A stack instance refers to a stack in a specific account and Region.
441// You must specify at least one value for either Accounts or DeploymentTargets,
442// and you must specify at least one value for Regions.
443//
444// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
445// with awserr.Error's Code and Message methods to get detailed information about
446// the error.
447//
448// See the AWS API reference guide for AWS CloudFormation's
449// API operation CreateStackInstances for usage and error information.
450//
451// Returned Error Codes:
452//   * ErrCodeStackSetNotFoundException "StackSetNotFoundException"
453//   The specified stack set doesn't exist.
454//
455//   * ErrCodeOperationInProgressException "OperationInProgressException"
456//   Another operation is currently in progress for this stack set. Only one operation
457//   can be performed for a stack set at a given time.
458//
459//   * ErrCodeOperationIdAlreadyExistsException "OperationIdAlreadyExistsException"
460//   The specified operation ID already exists.
461//
462//   * ErrCodeStaleRequestException "StaleRequestException"
463//   Another operation has been performed on this stack set since the specified
464//   operation was performed.
465//
466//   * ErrCodeInvalidOperationException "InvalidOperationException"
467//   The specified operation isn't valid.
468//
469//   * ErrCodeLimitExceededException "LimitExceededException"
470//   The quota for the resource has already been reached.
471//
472//   For information on resource and stack limitations, see Limits (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/cloudformation-limits.html)
473//   in the AWS CloudFormation User Guide.
474//
475// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/CreateStackInstances
476func (c *CloudFormation) CreateStackInstances(input *CreateStackInstancesInput) (*CreateStackInstancesOutput, error) {
477	req, out := c.CreateStackInstancesRequest(input)
478	return out, req.Send()
479}
480
481// CreateStackInstancesWithContext is the same as CreateStackInstances with the addition of
482// the ability to pass a context and additional request options.
483//
484// See CreateStackInstances for details on how to use this API operation.
485//
486// The context must be non-nil and will be used for request cancellation. If
487// the context is nil a panic will occur. In the future the SDK may create
488// sub-contexts for http.Requests. See https://golang.org/pkg/context/
489// for more information on using Contexts.
490func (c *CloudFormation) CreateStackInstancesWithContext(ctx aws.Context, input *CreateStackInstancesInput, opts ...request.Option) (*CreateStackInstancesOutput, error) {
491	req, out := c.CreateStackInstancesRequest(input)
492	req.SetContext(ctx)
493	req.ApplyOptions(opts...)
494	return out, req.Send()
495}
496
497const opCreateStackSet = "CreateStackSet"
498
499// CreateStackSetRequest generates a "aws/request.Request" representing the
500// client's request for the CreateStackSet operation. The "output" return
501// value will be populated with the request's response once the request completes
502// successfully.
503//
504// Use "Send" method on the returned Request to send the API call to the service.
505// the "output" return value is not valid until after Send returns without error.
506//
507// See CreateStackSet for more information on using the CreateStackSet
508// API call, and error handling.
509//
510// This method is useful when you want to inject custom logic or configuration
511// into the SDK's request lifecycle. Such as custom headers, or retry logic.
512//
513//
514//    // Example sending a request using the CreateStackSetRequest method.
515//    req, resp := client.CreateStackSetRequest(params)
516//
517//    err := req.Send()
518//    if err == nil { // resp is now filled
519//        fmt.Println(resp)
520//    }
521//
522// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/CreateStackSet
523func (c *CloudFormation) CreateStackSetRequest(input *CreateStackSetInput) (req *request.Request, output *CreateStackSetOutput) {
524	op := &request.Operation{
525		Name:       opCreateStackSet,
526		HTTPMethod: "POST",
527		HTTPPath:   "/",
528	}
529
530	if input == nil {
531		input = &CreateStackSetInput{}
532	}
533
534	output = &CreateStackSetOutput{}
535	req = c.newRequest(op, input, output)
536	return
537}
538
539// CreateStackSet API operation for AWS CloudFormation.
540//
541// Creates a stack set.
542//
543// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
544// with awserr.Error's Code and Message methods to get detailed information about
545// the error.
546//
547// See the AWS API reference guide for AWS CloudFormation's
548// API operation CreateStackSet for usage and error information.
549//
550// Returned Error Codes:
551//   * ErrCodeNameAlreadyExistsException "NameAlreadyExistsException"
552//   The specified name is already in use.
553//
554//   * ErrCodeCreatedButModifiedException "CreatedButModifiedException"
555//   The specified resource exists, but has been changed.
556//
557//   * ErrCodeLimitExceededException "LimitExceededException"
558//   The quota for the resource has already been reached.
559//
560//   For information on resource and stack limitations, see Limits (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/cloudformation-limits.html)
561//   in the AWS CloudFormation User Guide.
562//
563// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/CreateStackSet
564func (c *CloudFormation) CreateStackSet(input *CreateStackSetInput) (*CreateStackSetOutput, error) {
565	req, out := c.CreateStackSetRequest(input)
566	return out, req.Send()
567}
568
569// CreateStackSetWithContext is the same as CreateStackSet with the addition of
570// the ability to pass a context and additional request options.
571//
572// See CreateStackSet for details on how to use this API operation.
573//
574// The context must be non-nil and will be used for request cancellation. If
575// the context is nil a panic will occur. In the future the SDK may create
576// sub-contexts for http.Requests. See https://golang.org/pkg/context/
577// for more information on using Contexts.
578func (c *CloudFormation) CreateStackSetWithContext(ctx aws.Context, input *CreateStackSetInput, opts ...request.Option) (*CreateStackSetOutput, error) {
579	req, out := c.CreateStackSetRequest(input)
580	req.SetContext(ctx)
581	req.ApplyOptions(opts...)
582	return out, req.Send()
583}
584
585const opDeleteChangeSet = "DeleteChangeSet"
586
587// DeleteChangeSetRequest generates a "aws/request.Request" representing the
588// client's request for the DeleteChangeSet operation. The "output" return
589// value will be populated with the request's response once the request completes
590// successfully.
591//
592// Use "Send" method on the returned Request to send the API call to the service.
593// the "output" return value is not valid until after Send returns without error.
594//
595// See DeleteChangeSet for more information on using the DeleteChangeSet
596// API call, and error handling.
597//
598// This method is useful when you want to inject custom logic or configuration
599// into the SDK's request lifecycle. Such as custom headers, or retry logic.
600//
601//
602//    // Example sending a request using the DeleteChangeSetRequest method.
603//    req, resp := client.DeleteChangeSetRequest(params)
604//
605//    err := req.Send()
606//    if err == nil { // resp is now filled
607//        fmt.Println(resp)
608//    }
609//
610// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/DeleteChangeSet
611func (c *CloudFormation) DeleteChangeSetRequest(input *DeleteChangeSetInput) (req *request.Request, output *DeleteChangeSetOutput) {
612	op := &request.Operation{
613		Name:       opDeleteChangeSet,
614		HTTPMethod: "POST",
615		HTTPPath:   "/",
616	}
617
618	if input == nil {
619		input = &DeleteChangeSetInput{}
620	}
621
622	output = &DeleteChangeSetOutput{}
623	req = c.newRequest(op, input, output)
624	req.Handlers.Unmarshal.Swap(query.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
625	return
626}
627
628// DeleteChangeSet API operation for AWS CloudFormation.
629//
630// Deletes the specified change set. Deleting change sets ensures that no one
631// executes the wrong change set.
632//
633// If the call successfully completes, AWS CloudFormation successfully deleted
634// the change set.
635//
636// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
637// with awserr.Error's Code and Message methods to get detailed information about
638// the error.
639//
640// See the AWS API reference guide for AWS CloudFormation's
641// API operation DeleteChangeSet for usage and error information.
642//
643// Returned Error Codes:
644//   * ErrCodeInvalidChangeSetStatusException "InvalidChangeSetStatus"
645//   The specified change set can't be used to update the stack. For example,
646//   the change set status might be CREATE_IN_PROGRESS, or the stack status might
647//   be UPDATE_IN_PROGRESS.
648//
649// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/DeleteChangeSet
650func (c *CloudFormation) DeleteChangeSet(input *DeleteChangeSetInput) (*DeleteChangeSetOutput, error) {
651	req, out := c.DeleteChangeSetRequest(input)
652	return out, req.Send()
653}
654
655// DeleteChangeSetWithContext is the same as DeleteChangeSet with the addition of
656// the ability to pass a context and additional request options.
657//
658// See DeleteChangeSet for details on how to use this API operation.
659//
660// The context must be non-nil and will be used for request cancellation. If
661// the context is nil a panic will occur. In the future the SDK may create
662// sub-contexts for http.Requests. See https://golang.org/pkg/context/
663// for more information on using Contexts.
664func (c *CloudFormation) DeleteChangeSetWithContext(ctx aws.Context, input *DeleteChangeSetInput, opts ...request.Option) (*DeleteChangeSetOutput, error) {
665	req, out := c.DeleteChangeSetRequest(input)
666	req.SetContext(ctx)
667	req.ApplyOptions(opts...)
668	return out, req.Send()
669}
670
671const opDeleteStack = "DeleteStack"
672
673// DeleteStackRequest generates a "aws/request.Request" representing the
674// client's request for the DeleteStack operation. The "output" return
675// value will be populated with the request's response once the request completes
676// successfully.
677//
678// Use "Send" method on the returned Request to send the API call to the service.
679// the "output" return value is not valid until after Send returns without error.
680//
681// See DeleteStack for more information on using the DeleteStack
682// API call, and error handling.
683//
684// This method is useful when you want to inject custom logic or configuration
685// into the SDK's request lifecycle. Such as custom headers, or retry logic.
686//
687//
688//    // Example sending a request using the DeleteStackRequest method.
689//    req, resp := client.DeleteStackRequest(params)
690//
691//    err := req.Send()
692//    if err == nil { // resp is now filled
693//        fmt.Println(resp)
694//    }
695//
696// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/DeleteStack
697func (c *CloudFormation) DeleteStackRequest(input *DeleteStackInput) (req *request.Request, output *DeleteStackOutput) {
698	op := &request.Operation{
699		Name:       opDeleteStack,
700		HTTPMethod: "POST",
701		HTTPPath:   "/",
702	}
703
704	if input == nil {
705		input = &DeleteStackInput{}
706	}
707
708	output = &DeleteStackOutput{}
709	req = c.newRequest(op, input, output)
710	req.Handlers.Unmarshal.Swap(query.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
711	return
712}
713
714// DeleteStack API operation for AWS CloudFormation.
715//
716// Deletes a specified stack. Once the call completes successfully, stack deletion
717// starts. Deleted stacks do not show up in the DescribeStacks API if the deletion
718// has been completed successfully.
719//
720// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
721// with awserr.Error's Code and Message methods to get detailed information about
722// the error.
723//
724// See the AWS API reference guide for AWS CloudFormation's
725// API operation DeleteStack for usage and error information.
726//
727// Returned Error Codes:
728//   * ErrCodeTokenAlreadyExistsException "TokenAlreadyExistsException"
729//   A client request token already exists.
730//
731// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/DeleteStack
732func (c *CloudFormation) DeleteStack(input *DeleteStackInput) (*DeleteStackOutput, error) {
733	req, out := c.DeleteStackRequest(input)
734	return out, req.Send()
735}
736
737// DeleteStackWithContext is the same as DeleteStack with the addition of
738// the ability to pass a context and additional request options.
739//
740// See DeleteStack for details on how to use this API operation.
741//
742// The context must be non-nil and will be used for request cancellation. If
743// the context is nil a panic will occur. In the future the SDK may create
744// sub-contexts for http.Requests. See https://golang.org/pkg/context/
745// for more information on using Contexts.
746func (c *CloudFormation) DeleteStackWithContext(ctx aws.Context, input *DeleteStackInput, opts ...request.Option) (*DeleteStackOutput, error) {
747	req, out := c.DeleteStackRequest(input)
748	req.SetContext(ctx)
749	req.ApplyOptions(opts...)
750	return out, req.Send()
751}
752
753const opDeleteStackInstances = "DeleteStackInstances"
754
755// DeleteStackInstancesRequest generates a "aws/request.Request" representing the
756// client's request for the DeleteStackInstances operation. The "output" return
757// value will be populated with the request's response once the request completes
758// successfully.
759//
760// Use "Send" method on the returned Request to send the API call to the service.
761// the "output" return value is not valid until after Send returns without error.
762//
763// See DeleteStackInstances for more information on using the DeleteStackInstances
764// API call, and error handling.
765//
766// This method is useful when you want to inject custom logic or configuration
767// into the SDK's request lifecycle. Such as custom headers, or retry logic.
768//
769//
770//    // Example sending a request using the DeleteStackInstancesRequest method.
771//    req, resp := client.DeleteStackInstancesRequest(params)
772//
773//    err := req.Send()
774//    if err == nil { // resp is now filled
775//        fmt.Println(resp)
776//    }
777//
778// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/DeleteStackInstances
779func (c *CloudFormation) DeleteStackInstancesRequest(input *DeleteStackInstancesInput) (req *request.Request, output *DeleteStackInstancesOutput) {
780	op := &request.Operation{
781		Name:       opDeleteStackInstances,
782		HTTPMethod: "POST",
783		HTTPPath:   "/",
784	}
785
786	if input == nil {
787		input = &DeleteStackInstancesInput{}
788	}
789
790	output = &DeleteStackInstancesOutput{}
791	req = c.newRequest(op, input, output)
792	return
793}
794
795// DeleteStackInstances API operation for AWS CloudFormation.
796//
797// Deletes stack instances for the specified accounts, in the specified Regions.
798//
799// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
800// with awserr.Error's Code and Message methods to get detailed information about
801// the error.
802//
803// See the AWS API reference guide for AWS CloudFormation's
804// API operation DeleteStackInstances for usage and error information.
805//
806// Returned Error Codes:
807//   * ErrCodeStackSetNotFoundException "StackSetNotFoundException"
808//   The specified stack set doesn't exist.
809//
810//   * ErrCodeOperationInProgressException "OperationInProgressException"
811//   Another operation is currently in progress for this stack set. Only one operation
812//   can be performed for a stack set at a given time.
813//
814//   * ErrCodeOperationIdAlreadyExistsException "OperationIdAlreadyExistsException"
815//   The specified operation ID already exists.
816//
817//   * ErrCodeStaleRequestException "StaleRequestException"
818//   Another operation has been performed on this stack set since the specified
819//   operation was performed.
820//
821//   * ErrCodeInvalidOperationException "InvalidOperationException"
822//   The specified operation isn't valid.
823//
824// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/DeleteStackInstances
825func (c *CloudFormation) DeleteStackInstances(input *DeleteStackInstancesInput) (*DeleteStackInstancesOutput, error) {
826	req, out := c.DeleteStackInstancesRequest(input)
827	return out, req.Send()
828}
829
830// DeleteStackInstancesWithContext is the same as DeleteStackInstances with the addition of
831// the ability to pass a context and additional request options.
832//
833// See DeleteStackInstances for details on how to use this API operation.
834//
835// The context must be non-nil and will be used for request cancellation. If
836// the context is nil a panic will occur. In the future the SDK may create
837// sub-contexts for http.Requests. See https://golang.org/pkg/context/
838// for more information on using Contexts.
839func (c *CloudFormation) DeleteStackInstancesWithContext(ctx aws.Context, input *DeleteStackInstancesInput, opts ...request.Option) (*DeleteStackInstancesOutput, error) {
840	req, out := c.DeleteStackInstancesRequest(input)
841	req.SetContext(ctx)
842	req.ApplyOptions(opts...)
843	return out, req.Send()
844}
845
846const opDeleteStackSet = "DeleteStackSet"
847
848// DeleteStackSetRequest generates a "aws/request.Request" representing the
849// client's request for the DeleteStackSet operation. The "output" return
850// value will be populated with the request's response once the request completes
851// successfully.
852//
853// Use "Send" method on the returned Request to send the API call to the service.
854// the "output" return value is not valid until after Send returns without error.
855//
856// See DeleteStackSet for more information on using the DeleteStackSet
857// API call, and error handling.
858//
859// This method is useful when you want to inject custom logic or configuration
860// into the SDK's request lifecycle. Such as custom headers, or retry logic.
861//
862//
863//    // Example sending a request using the DeleteStackSetRequest method.
864//    req, resp := client.DeleteStackSetRequest(params)
865//
866//    err := req.Send()
867//    if err == nil { // resp is now filled
868//        fmt.Println(resp)
869//    }
870//
871// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/DeleteStackSet
872func (c *CloudFormation) DeleteStackSetRequest(input *DeleteStackSetInput) (req *request.Request, output *DeleteStackSetOutput) {
873	op := &request.Operation{
874		Name:       opDeleteStackSet,
875		HTTPMethod: "POST",
876		HTTPPath:   "/",
877	}
878
879	if input == nil {
880		input = &DeleteStackSetInput{}
881	}
882
883	output = &DeleteStackSetOutput{}
884	req = c.newRequest(op, input, output)
885	req.Handlers.Unmarshal.Swap(query.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
886	return
887}
888
889// DeleteStackSet API operation for AWS CloudFormation.
890//
891// Deletes a stack set. Before you can delete a stack set, all of its member
892// stack instances must be deleted. For more information about how to do this,
893// see DeleteStackInstances.
894//
895// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
896// with awserr.Error's Code and Message methods to get detailed information about
897// the error.
898//
899// See the AWS API reference guide for AWS CloudFormation's
900// API operation DeleteStackSet for usage and error information.
901//
902// Returned Error Codes:
903//   * ErrCodeStackSetNotEmptyException "StackSetNotEmptyException"
904//   You can't yet delete this stack set, because it still contains one or more
905//   stack instances. Delete all stack instances from the stack set before deleting
906//   the stack set.
907//
908//   * ErrCodeOperationInProgressException "OperationInProgressException"
909//   Another operation is currently in progress for this stack set. Only one operation
910//   can be performed for a stack set at a given time.
911//
912// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/DeleteStackSet
913func (c *CloudFormation) DeleteStackSet(input *DeleteStackSetInput) (*DeleteStackSetOutput, error) {
914	req, out := c.DeleteStackSetRequest(input)
915	return out, req.Send()
916}
917
918// DeleteStackSetWithContext is the same as DeleteStackSet with the addition of
919// the ability to pass a context and additional request options.
920//
921// See DeleteStackSet for details on how to use this API operation.
922//
923// The context must be non-nil and will be used for request cancellation. If
924// the context is nil a panic will occur. In the future the SDK may create
925// sub-contexts for http.Requests. See https://golang.org/pkg/context/
926// for more information on using Contexts.
927func (c *CloudFormation) DeleteStackSetWithContext(ctx aws.Context, input *DeleteStackSetInput, opts ...request.Option) (*DeleteStackSetOutput, error) {
928	req, out := c.DeleteStackSetRequest(input)
929	req.SetContext(ctx)
930	req.ApplyOptions(opts...)
931	return out, req.Send()
932}
933
934const opDeregisterType = "DeregisterType"
935
936// DeregisterTypeRequest generates a "aws/request.Request" representing the
937// client's request for the DeregisterType operation. The "output" return
938// value will be populated with the request's response once the request completes
939// successfully.
940//
941// Use "Send" method on the returned Request to send the API call to the service.
942// the "output" return value is not valid until after Send returns without error.
943//
944// See DeregisterType for more information on using the DeregisterType
945// API call, and error handling.
946//
947// This method is useful when you want to inject custom logic or configuration
948// into the SDK's request lifecycle. Such as custom headers, or retry logic.
949//
950//
951//    // Example sending a request using the DeregisterTypeRequest method.
952//    req, resp := client.DeregisterTypeRequest(params)
953//
954//    err := req.Send()
955//    if err == nil { // resp is now filled
956//        fmt.Println(resp)
957//    }
958//
959// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/DeregisterType
960func (c *CloudFormation) DeregisterTypeRequest(input *DeregisterTypeInput) (req *request.Request, output *DeregisterTypeOutput) {
961	op := &request.Operation{
962		Name:       opDeregisterType,
963		HTTPMethod: "POST",
964		HTTPPath:   "/",
965	}
966
967	if input == nil {
968		input = &DeregisterTypeInput{}
969	}
970
971	output = &DeregisterTypeOutput{}
972	req = c.newRequest(op, input, output)
973	req.Handlers.Unmarshal.Swap(query.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
974	return
975}
976
977// DeregisterType API operation for AWS CloudFormation.
978//
979// Removes a type or type version from active use in the CloudFormation registry.
980// If a type or type version is deregistered, it cannot be used in CloudFormation
981// operations.
982//
983// To deregister a type, you must individually deregister all registered versions
984// of that type. If a type has only a single registered version, deregistering
985// that version results in the type itself being deregistered.
986//
987// You cannot deregister the default version of a type, unless it is the only
988// registered version of that type, in which case the type itself is deregistered
989// as well.
990//
991// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
992// with awserr.Error's Code and Message methods to get detailed information about
993// the error.
994//
995// See the AWS API reference guide for AWS CloudFormation's
996// API operation DeregisterType for usage and error information.
997//
998// Returned Error Codes:
999//   * ErrCodeCFNRegistryException "CFNRegistryException"
1000//   An error occurred during a CloudFormation registry operation.
1001//
1002//   * ErrCodeTypeNotFoundException "TypeNotFoundException"
1003//   The specified type does not exist in the CloudFormation registry.
1004//
1005// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/DeregisterType
1006func (c *CloudFormation) DeregisterType(input *DeregisterTypeInput) (*DeregisterTypeOutput, error) {
1007	req, out := c.DeregisterTypeRequest(input)
1008	return out, req.Send()
1009}
1010
1011// DeregisterTypeWithContext is the same as DeregisterType with the addition of
1012// the ability to pass a context and additional request options.
1013//
1014// See DeregisterType 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) DeregisterTypeWithContext(ctx aws.Context, input *DeregisterTypeInput, opts ...request.Option) (*DeregisterTypeOutput, error) {
1021	req, out := c.DeregisterTypeRequest(input)
1022	req.SetContext(ctx)
1023	req.ApplyOptions(opts...)
1024	return out, req.Send()
1025}
1026
1027const opDescribeAccountLimits = "DescribeAccountLimits"
1028
1029// DescribeAccountLimitsRequest generates a "aws/request.Request" representing the
1030// client's request for the DescribeAccountLimits 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 DescribeAccountLimits for more information on using the DescribeAccountLimits
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 DescribeAccountLimitsRequest method.
1045//    req, resp := client.DescribeAccountLimitsRequest(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/DescribeAccountLimits
1053func (c *CloudFormation) DescribeAccountLimitsRequest(input *DescribeAccountLimitsInput) (req *request.Request, output *DescribeAccountLimitsOutput) {
1054	op := &request.Operation{
1055		Name:       opDescribeAccountLimits,
1056		HTTPMethod: "POST",
1057		HTTPPath:   "/",
1058		Paginator: &request.Paginator{
1059			InputTokens:     []string{"NextToken"},
1060			OutputTokens:    []string{"NextToken"},
1061			LimitToken:      "",
1062			TruncationToken: "",
1063		},
1064	}
1065
1066	if input == nil {
1067		input = &DescribeAccountLimitsInput{}
1068	}
1069
1070	output = &DescribeAccountLimitsOutput{}
1071	req = c.newRequest(op, input, output)
1072	return
1073}
1074
1075// DescribeAccountLimits API operation for AWS CloudFormation.
1076//
1077// Retrieves your account's AWS CloudFormation limits, such as the maximum number
1078// of stacks that you can create in your account. For more information about
1079// account limits, see AWS CloudFormation Limits (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/cloudformation-limits.html)
1080// in the AWS CloudFormation User Guide.
1081//
1082// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1083// with awserr.Error's Code and Message methods to get detailed information about
1084// the error.
1085//
1086// See the AWS API reference guide for AWS CloudFormation's
1087// API operation DescribeAccountLimits for usage and error information.
1088// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/DescribeAccountLimits
1089func (c *CloudFormation) DescribeAccountLimits(input *DescribeAccountLimitsInput) (*DescribeAccountLimitsOutput, error) {
1090	req, out := c.DescribeAccountLimitsRequest(input)
1091	return out, req.Send()
1092}
1093
1094// DescribeAccountLimitsWithContext is the same as DescribeAccountLimits with the addition of
1095// the ability to pass a context and additional request options.
1096//
1097// See DescribeAccountLimits for details on how to use this API operation.
1098//
1099// The context must be non-nil and will be used for request cancellation. If
1100// the context is nil a panic will occur. In the future the SDK may create
1101// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1102// for more information on using Contexts.
1103func (c *CloudFormation) DescribeAccountLimitsWithContext(ctx aws.Context, input *DescribeAccountLimitsInput, opts ...request.Option) (*DescribeAccountLimitsOutput, error) {
1104	req, out := c.DescribeAccountLimitsRequest(input)
1105	req.SetContext(ctx)
1106	req.ApplyOptions(opts...)
1107	return out, req.Send()
1108}
1109
1110// DescribeAccountLimitsPages iterates over the pages of a DescribeAccountLimits operation,
1111// calling the "fn" function with the response data for each page. To stop
1112// iterating, return false from the fn function.
1113//
1114// See DescribeAccountLimits method for more information on how to use this operation.
1115//
1116// Note: This operation can generate multiple requests to a service.
1117//
1118//    // Example iterating over at most 3 pages of a DescribeAccountLimits operation.
1119//    pageNum := 0
1120//    err := client.DescribeAccountLimitsPages(params,
1121//        func(page *cloudformation.DescribeAccountLimitsOutput, lastPage bool) bool {
1122//            pageNum++
1123//            fmt.Println(page)
1124//            return pageNum <= 3
1125//        })
1126//
1127func (c *CloudFormation) DescribeAccountLimitsPages(input *DescribeAccountLimitsInput, fn func(*DescribeAccountLimitsOutput, bool) bool) error {
1128	return c.DescribeAccountLimitsPagesWithContext(aws.BackgroundContext(), input, fn)
1129}
1130
1131// DescribeAccountLimitsPagesWithContext same as DescribeAccountLimitsPages except
1132// it takes a Context and allows setting request options on the pages.
1133//
1134// The context must be non-nil and will be used for request cancellation. If
1135// the context is nil a panic will occur. In the future the SDK may create
1136// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1137// for more information on using Contexts.
1138func (c *CloudFormation) DescribeAccountLimitsPagesWithContext(ctx aws.Context, input *DescribeAccountLimitsInput, fn func(*DescribeAccountLimitsOutput, bool) bool, opts ...request.Option) error {
1139	p := request.Pagination{
1140		NewRequest: func() (*request.Request, error) {
1141			var inCpy *DescribeAccountLimitsInput
1142			if input != nil {
1143				tmp := *input
1144				inCpy = &tmp
1145			}
1146			req, _ := c.DescribeAccountLimitsRequest(inCpy)
1147			req.SetContext(ctx)
1148			req.ApplyOptions(opts...)
1149			return req, nil
1150		},
1151	}
1152
1153	for p.Next() {
1154		if !fn(p.Page().(*DescribeAccountLimitsOutput), !p.HasNextPage()) {
1155			break
1156		}
1157	}
1158
1159	return p.Err()
1160}
1161
1162const opDescribeChangeSet = "DescribeChangeSet"
1163
1164// DescribeChangeSetRequest generates a "aws/request.Request" representing the
1165// client's request for the DescribeChangeSet operation. The "output" return
1166// value will be populated with the request's response once the request completes
1167// successfully.
1168//
1169// Use "Send" method on the returned Request to send the API call to the service.
1170// the "output" return value is not valid until after Send returns without error.
1171//
1172// See DescribeChangeSet for more information on using the DescribeChangeSet
1173// API call, and error handling.
1174//
1175// This method is useful when you want to inject custom logic or configuration
1176// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1177//
1178//
1179//    // Example sending a request using the DescribeChangeSetRequest method.
1180//    req, resp := client.DescribeChangeSetRequest(params)
1181//
1182//    err := req.Send()
1183//    if err == nil { // resp is now filled
1184//        fmt.Println(resp)
1185//    }
1186//
1187// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/DescribeChangeSet
1188func (c *CloudFormation) DescribeChangeSetRequest(input *DescribeChangeSetInput) (req *request.Request, output *DescribeChangeSetOutput) {
1189	op := &request.Operation{
1190		Name:       opDescribeChangeSet,
1191		HTTPMethod: "POST",
1192		HTTPPath:   "/",
1193	}
1194
1195	if input == nil {
1196		input = &DescribeChangeSetInput{}
1197	}
1198
1199	output = &DescribeChangeSetOutput{}
1200	req = c.newRequest(op, input, output)
1201	return
1202}
1203
1204// DescribeChangeSet API operation for AWS CloudFormation.
1205//
1206// Returns the inputs for the change set and a list of changes that AWS CloudFormation
1207// will make if you execute the change set. For more information, see Updating
1208// Stacks Using Change Sets (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-changesets.html)
1209// in the AWS CloudFormation User Guide.
1210//
1211// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1212// with awserr.Error's Code and Message methods to get detailed information about
1213// the error.
1214//
1215// See the AWS API reference guide for AWS CloudFormation's
1216// API operation DescribeChangeSet for usage and error information.
1217//
1218// Returned Error Codes:
1219//   * ErrCodeChangeSetNotFoundException "ChangeSetNotFound"
1220//   The specified change set name or ID doesn't exit. To view valid change sets
1221//   for a stack, use the ListChangeSets action.
1222//
1223// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/DescribeChangeSet
1224func (c *CloudFormation) DescribeChangeSet(input *DescribeChangeSetInput) (*DescribeChangeSetOutput, error) {
1225	req, out := c.DescribeChangeSetRequest(input)
1226	return out, req.Send()
1227}
1228
1229// DescribeChangeSetWithContext is the same as DescribeChangeSet with the addition of
1230// the ability to pass a context and additional request options.
1231//
1232// See DescribeChangeSet for details on how to use this API operation.
1233//
1234// The context must be non-nil and will be used for request cancellation. If
1235// the context is nil a panic will occur. In the future the SDK may create
1236// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1237// for more information on using Contexts.
1238func (c *CloudFormation) DescribeChangeSetWithContext(ctx aws.Context, input *DescribeChangeSetInput, opts ...request.Option) (*DescribeChangeSetOutput, error) {
1239	req, out := c.DescribeChangeSetRequest(input)
1240	req.SetContext(ctx)
1241	req.ApplyOptions(opts...)
1242	return out, req.Send()
1243}
1244
1245const opDescribeStackDriftDetectionStatus = "DescribeStackDriftDetectionStatus"
1246
1247// DescribeStackDriftDetectionStatusRequest generates a "aws/request.Request" representing the
1248// client's request for the DescribeStackDriftDetectionStatus operation. The "output" return
1249// value will be populated with the request's response once the request completes
1250// successfully.
1251//
1252// Use "Send" method on the returned Request to send the API call to the service.
1253// the "output" return value is not valid until after Send returns without error.
1254//
1255// See DescribeStackDriftDetectionStatus for more information on using the DescribeStackDriftDetectionStatus
1256// API call, and error handling.
1257//
1258// This method is useful when you want to inject custom logic or configuration
1259// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1260//
1261//
1262//    // Example sending a request using the DescribeStackDriftDetectionStatusRequest method.
1263//    req, resp := client.DescribeStackDriftDetectionStatusRequest(params)
1264//
1265//    err := req.Send()
1266//    if err == nil { // resp is now filled
1267//        fmt.Println(resp)
1268//    }
1269//
1270// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/DescribeStackDriftDetectionStatus
1271func (c *CloudFormation) DescribeStackDriftDetectionStatusRequest(input *DescribeStackDriftDetectionStatusInput) (req *request.Request, output *DescribeStackDriftDetectionStatusOutput) {
1272	op := &request.Operation{
1273		Name:       opDescribeStackDriftDetectionStatus,
1274		HTTPMethod: "POST",
1275		HTTPPath:   "/",
1276	}
1277
1278	if input == nil {
1279		input = &DescribeStackDriftDetectionStatusInput{}
1280	}
1281
1282	output = &DescribeStackDriftDetectionStatusOutput{}
1283	req = c.newRequest(op, input, output)
1284	return
1285}
1286
1287// DescribeStackDriftDetectionStatus API operation for AWS CloudFormation.
1288//
1289// Returns information about a stack drift detection operation. A stack drift
1290// detection operation detects whether a stack's actual configuration differs,
1291// or has drifted, from it's expected configuration, as defined in the stack
1292// template and any values specified as template parameters. A stack is considered
1293// to have drifted if one or more of its resources have drifted. For more information
1294// on stack and resource drift, see Detecting Unregulated Configuration Changes
1295// to Stacks and Resources (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-stack-drift.html).
1296//
1297// Use DetectStackDrift to initiate a stack drift detection operation. DetectStackDrift
1298// returns a StackDriftDetectionId you can use to monitor the progress of the
1299// operation using DescribeStackDriftDetectionStatus. Once the drift detection
1300// operation has completed, use DescribeStackResourceDrifts to return drift
1301// information about the stack and its resources.
1302//
1303// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1304// with awserr.Error's Code and Message methods to get detailed information about
1305// the error.
1306//
1307// See the AWS API reference guide for AWS CloudFormation's
1308// API operation DescribeStackDriftDetectionStatus for usage and error information.
1309// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/DescribeStackDriftDetectionStatus
1310func (c *CloudFormation) DescribeStackDriftDetectionStatus(input *DescribeStackDriftDetectionStatusInput) (*DescribeStackDriftDetectionStatusOutput, error) {
1311	req, out := c.DescribeStackDriftDetectionStatusRequest(input)
1312	return out, req.Send()
1313}
1314
1315// DescribeStackDriftDetectionStatusWithContext is the same as DescribeStackDriftDetectionStatus with the addition of
1316// the ability to pass a context and additional request options.
1317//
1318// See DescribeStackDriftDetectionStatus for details on how to use this API operation.
1319//
1320// The context must be non-nil and will be used for request cancellation. If
1321// the context is nil a panic will occur. In the future the SDK may create
1322// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1323// for more information on using Contexts.
1324func (c *CloudFormation) DescribeStackDriftDetectionStatusWithContext(ctx aws.Context, input *DescribeStackDriftDetectionStatusInput, opts ...request.Option) (*DescribeStackDriftDetectionStatusOutput, error) {
1325	req, out := c.DescribeStackDriftDetectionStatusRequest(input)
1326	req.SetContext(ctx)
1327	req.ApplyOptions(opts...)
1328	return out, req.Send()
1329}
1330
1331const opDescribeStackEvents = "DescribeStackEvents"
1332
1333// DescribeStackEventsRequest generates a "aws/request.Request" representing the
1334// client's request for the DescribeStackEvents operation. The "output" return
1335// value will be populated with the request's response once the request completes
1336// successfully.
1337//
1338// Use "Send" method on the returned Request to send the API call to the service.
1339// the "output" return value is not valid until after Send returns without error.
1340//
1341// See DescribeStackEvents for more information on using the DescribeStackEvents
1342// API call, and error handling.
1343//
1344// This method is useful when you want to inject custom logic or configuration
1345// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1346//
1347//
1348//    // Example sending a request using the DescribeStackEventsRequest method.
1349//    req, resp := client.DescribeStackEventsRequest(params)
1350//
1351//    err := req.Send()
1352//    if err == nil { // resp is now filled
1353//        fmt.Println(resp)
1354//    }
1355//
1356// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/DescribeStackEvents
1357func (c *CloudFormation) DescribeStackEventsRequest(input *DescribeStackEventsInput) (req *request.Request, output *DescribeStackEventsOutput) {
1358	op := &request.Operation{
1359		Name:       opDescribeStackEvents,
1360		HTTPMethod: "POST",
1361		HTTPPath:   "/",
1362		Paginator: &request.Paginator{
1363			InputTokens:     []string{"NextToken"},
1364			OutputTokens:    []string{"NextToken"},
1365			LimitToken:      "",
1366			TruncationToken: "",
1367		},
1368	}
1369
1370	if input == nil {
1371		input = &DescribeStackEventsInput{}
1372	}
1373
1374	output = &DescribeStackEventsOutput{}
1375	req = c.newRequest(op, input, output)
1376	return
1377}
1378
1379// DescribeStackEvents API operation for AWS CloudFormation.
1380//
1381// Returns all stack related events for a specified stack in reverse chronological
1382// order. For more information about a stack's event history, go to Stacks (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/concept-stack.html)
1383// in the AWS CloudFormation User Guide.
1384//
1385// You can list events for stacks that have failed to create or have been deleted
1386// by specifying the unique stack identifier (stack ID).
1387//
1388// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1389// with awserr.Error's Code and Message methods to get detailed information about
1390// the error.
1391//
1392// See the AWS API reference guide for AWS CloudFormation's
1393// API operation DescribeStackEvents for usage and error information.
1394// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/DescribeStackEvents
1395func (c *CloudFormation) DescribeStackEvents(input *DescribeStackEventsInput) (*DescribeStackEventsOutput, error) {
1396	req, out := c.DescribeStackEventsRequest(input)
1397	return out, req.Send()
1398}
1399
1400// DescribeStackEventsWithContext is the same as DescribeStackEvents with the addition of
1401// the ability to pass a context and additional request options.
1402//
1403// See DescribeStackEvents for details on how to use this API operation.
1404//
1405// The context must be non-nil and will be used for request cancellation. If
1406// the context is nil a panic will occur. In the future the SDK may create
1407// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1408// for more information on using Contexts.
1409func (c *CloudFormation) DescribeStackEventsWithContext(ctx aws.Context, input *DescribeStackEventsInput, opts ...request.Option) (*DescribeStackEventsOutput, error) {
1410	req, out := c.DescribeStackEventsRequest(input)
1411	req.SetContext(ctx)
1412	req.ApplyOptions(opts...)
1413	return out, req.Send()
1414}
1415
1416// DescribeStackEventsPages iterates over the pages of a DescribeStackEvents operation,
1417// calling the "fn" function with the response data for each page. To stop
1418// iterating, return false from the fn function.
1419//
1420// See DescribeStackEvents method for more information on how to use this operation.
1421//
1422// Note: This operation can generate multiple requests to a service.
1423//
1424//    // Example iterating over at most 3 pages of a DescribeStackEvents operation.
1425//    pageNum := 0
1426//    err := client.DescribeStackEventsPages(params,
1427//        func(page *cloudformation.DescribeStackEventsOutput, lastPage bool) bool {
1428//            pageNum++
1429//            fmt.Println(page)
1430//            return pageNum <= 3
1431//        })
1432//
1433func (c *CloudFormation) DescribeStackEventsPages(input *DescribeStackEventsInput, fn func(*DescribeStackEventsOutput, bool) bool) error {
1434	return c.DescribeStackEventsPagesWithContext(aws.BackgroundContext(), input, fn)
1435}
1436
1437// DescribeStackEventsPagesWithContext same as DescribeStackEventsPages except
1438// it takes a Context and allows setting request options on the pages.
1439//
1440// The context must be non-nil and will be used for request cancellation. If
1441// the context is nil a panic will occur. In the future the SDK may create
1442// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1443// for more information on using Contexts.
1444func (c *CloudFormation) DescribeStackEventsPagesWithContext(ctx aws.Context, input *DescribeStackEventsInput, fn func(*DescribeStackEventsOutput, bool) bool, opts ...request.Option) error {
1445	p := request.Pagination{
1446		NewRequest: func() (*request.Request, error) {
1447			var inCpy *DescribeStackEventsInput
1448			if input != nil {
1449				tmp := *input
1450				inCpy = &tmp
1451			}
1452			req, _ := c.DescribeStackEventsRequest(inCpy)
1453			req.SetContext(ctx)
1454			req.ApplyOptions(opts...)
1455			return req, nil
1456		},
1457	}
1458
1459	for p.Next() {
1460		if !fn(p.Page().(*DescribeStackEventsOutput), !p.HasNextPage()) {
1461			break
1462		}
1463	}
1464
1465	return p.Err()
1466}
1467
1468const opDescribeStackInstance = "DescribeStackInstance"
1469
1470// DescribeStackInstanceRequest generates a "aws/request.Request" representing the
1471// client's request for the DescribeStackInstance operation. The "output" return
1472// value will be populated with the request's response once the request completes
1473// successfully.
1474//
1475// Use "Send" method on the returned Request to send the API call to the service.
1476// the "output" return value is not valid until after Send returns without error.
1477//
1478// See DescribeStackInstance for more information on using the DescribeStackInstance
1479// API call, and error handling.
1480//
1481// This method is useful when you want to inject custom logic or configuration
1482// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1483//
1484//
1485//    // Example sending a request using the DescribeStackInstanceRequest method.
1486//    req, resp := client.DescribeStackInstanceRequest(params)
1487//
1488//    err := req.Send()
1489//    if err == nil { // resp is now filled
1490//        fmt.Println(resp)
1491//    }
1492//
1493// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/DescribeStackInstance
1494func (c *CloudFormation) DescribeStackInstanceRequest(input *DescribeStackInstanceInput) (req *request.Request, output *DescribeStackInstanceOutput) {
1495	op := &request.Operation{
1496		Name:       opDescribeStackInstance,
1497		HTTPMethod: "POST",
1498		HTTPPath:   "/",
1499	}
1500
1501	if input == nil {
1502		input = &DescribeStackInstanceInput{}
1503	}
1504
1505	output = &DescribeStackInstanceOutput{}
1506	req = c.newRequest(op, input, output)
1507	return
1508}
1509
1510// DescribeStackInstance API operation for AWS CloudFormation.
1511//
1512// Returns the stack instance that's associated with the specified stack set,
1513// AWS account, and Region.
1514//
1515// For a list of stack instances that are associated with a specific stack set,
1516// use ListStackInstances.
1517//
1518// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1519// with awserr.Error's Code and Message methods to get detailed information about
1520// the error.
1521//
1522// See the AWS API reference guide for AWS CloudFormation's
1523// API operation DescribeStackInstance for usage and error information.
1524//
1525// Returned Error Codes:
1526//   * ErrCodeStackSetNotFoundException "StackSetNotFoundException"
1527//   The specified stack set doesn't exist.
1528//
1529//   * ErrCodeStackInstanceNotFoundException "StackInstanceNotFoundException"
1530//   The specified stack instance doesn't exist.
1531//
1532// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/DescribeStackInstance
1533func (c *CloudFormation) DescribeStackInstance(input *DescribeStackInstanceInput) (*DescribeStackInstanceOutput, error) {
1534	req, out := c.DescribeStackInstanceRequest(input)
1535	return out, req.Send()
1536}
1537
1538// DescribeStackInstanceWithContext is the same as DescribeStackInstance with the addition of
1539// the ability to pass a context and additional request options.
1540//
1541// See DescribeStackInstance for details on how to use this API operation.
1542//
1543// The context must be non-nil and will be used for request cancellation. If
1544// the context is nil a panic will occur. In the future the SDK may create
1545// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1546// for more information on using Contexts.
1547func (c *CloudFormation) DescribeStackInstanceWithContext(ctx aws.Context, input *DescribeStackInstanceInput, opts ...request.Option) (*DescribeStackInstanceOutput, error) {
1548	req, out := c.DescribeStackInstanceRequest(input)
1549	req.SetContext(ctx)
1550	req.ApplyOptions(opts...)
1551	return out, req.Send()
1552}
1553
1554const opDescribeStackResource = "DescribeStackResource"
1555
1556// DescribeStackResourceRequest generates a "aws/request.Request" representing the
1557// client's request for the DescribeStackResource operation. The "output" return
1558// value will be populated with the request's response once the request completes
1559// successfully.
1560//
1561// Use "Send" method on the returned Request to send the API call to the service.
1562// the "output" return value is not valid until after Send returns without error.
1563//
1564// See DescribeStackResource for more information on using the DescribeStackResource
1565// API call, and error handling.
1566//
1567// This method is useful when you want to inject custom logic or configuration
1568// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1569//
1570//
1571//    // Example sending a request using the DescribeStackResourceRequest method.
1572//    req, resp := client.DescribeStackResourceRequest(params)
1573//
1574//    err := req.Send()
1575//    if err == nil { // resp is now filled
1576//        fmt.Println(resp)
1577//    }
1578//
1579// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/DescribeStackResource
1580func (c *CloudFormation) DescribeStackResourceRequest(input *DescribeStackResourceInput) (req *request.Request, output *DescribeStackResourceOutput) {
1581	op := &request.Operation{
1582		Name:       opDescribeStackResource,
1583		HTTPMethod: "POST",
1584		HTTPPath:   "/",
1585	}
1586
1587	if input == nil {
1588		input = &DescribeStackResourceInput{}
1589	}
1590
1591	output = &DescribeStackResourceOutput{}
1592	req = c.newRequest(op, input, output)
1593	return
1594}
1595
1596// DescribeStackResource API operation for AWS CloudFormation.
1597//
1598// Returns a description of the specified resource in the specified stack.
1599//
1600// For deleted stacks, DescribeStackResource returns resource information for
1601// up to 90 days after the stack has been deleted.
1602//
1603// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1604// with awserr.Error's Code and Message methods to get detailed information about
1605// the error.
1606//
1607// See the AWS API reference guide for AWS CloudFormation's
1608// API operation DescribeStackResource for usage and error information.
1609// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/DescribeStackResource
1610func (c *CloudFormation) DescribeStackResource(input *DescribeStackResourceInput) (*DescribeStackResourceOutput, error) {
1611	req, out := c.DescribeStackResourceRequest(input)
1612	return out, req.Send()
1613}
1614
1615// DescribeStackResourceWithContext is the same as DescribeStackResource with the addition of
1616// the ability to pass a context and additional request options.
1617//
1618// See DescribeStackResource for details on how to use this API operation.
1619//
1620// The context must be non-nil and will be used for request cancellation. If
1621// the context is nil a panic will occur. In the future the SDK may create
1622// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1623// for more information on using Contexts.
1624func (c *CloudFormation) DescribeStackResourceWithContext(ctx aws.Context, input *DescribeStackResourceInput, opts ...request.Option) (*DescribeStackResourceOutput, error) {
1625	req, out := c.DescribeStackResourceRequest(input)
1626	req.SetContext(ctx)
1627	req.ApplyOptions(opts...)
1628	return out, req.Send()
1629}
1630
1631const opDescribeStackResourceDrifts = "DescribeStackResourceDrifts"
1632
1633// DescribeStackResourceDriftsRequest generates a "aws/request.Request" representing the
1634// client's request for the DescribeStackResourceDrifts operation. The "output" return
1635// value will be populated with the request's response once the request completes
1636// successfully.
1637//
1638// Use "Send" method on the returned Request to send the API call to the service.
1639// the "output" return value is not valid until after Send returns without error.
1640//
1641// See DescribeStackResourceDrifts for more information on using the DescribeStackResourceDrifts
1642// API call, and error handling.
1643//
1644// This method is useful when you want to inject custom logic or configuration
1645// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1646//
1647//
1648//    // Example sending a request using the DescribeStackResourceDriftsRequest method.
1649//    req, resp := client.DescribeStackResourceDriftsRequest(params)
1650//
1651//    err := req.Send()
1652//    if err == nil { // resp is now filled
1653//        fmt.Println(resp)
1654//    }
1655//
1656// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/DescribeStackResourceDrifts
1657func (c *CloudFormation) DescribeStackResourceDriftsRequest(input *DescribeStackResourceDriftsInput) (req *request.Request, output *DescribeStackResourceDriftsOutput) {
1658	op := &request.Operation{
1659		Name:       opDescribeStackResourceDrifts,
1660		HTTPMethod: "POST",
1661		HTTPPath:   "/",
1662		Paginator: &request.Paginator{
1663			InputTokens:     []string{"NextToken"},
1664			OutputTokens:    []string{"NextToken"},
1665			LimitToken:      "MaxResults",
1666			TruncationToken: "",
1667		},
1668	}
1669
1670	if input == nil {
1671		input = &DescribeStackResourceDriftsInput{}
1672	}
1673
1674	output = &DescribeStackResourceDriftsOutput{}
1675	req = c.newRequest(op, input, output)
1676	return
1677}
1678
1679// DescribeStackResourceDrifts API operation for AWS CloudFormation.
1680//
1681// Returns drift information for the resources that have been checked for drift
1682// in the specified stack. This includes actual and expected configuration values
1683// for resources where AWS CloudFormation detects configuration drift.
1684//
1685// For a given stack, there will be one StackResourceDrift for each stack resource
1686// that has been checked for drift. Resources that have not yet been checked
1687// for drift are not included. Resources that do not currently support drift
1688// detection are not checked, and so not included. For a list of resources that
1689// support drift detection, see Resources that Support Drift Detection (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-stack-drift-resource-list.html).
1690//
1691// Use DetectStackResourceDrift to detect drift on individual resources, or
1692// DetectStackDrift to detect drift on all supported resources for a given stack.
1693//
1694// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1695// with awserr.Error's Code and Message methods to get detailed information about
1696// the error.
1697//
1698// See the AWS API reference guide for AWS CloudFormation's
1699// API operation DescribeStackResourceDrifts for usage and error information.
1700// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/DescribeStackResourceDrifts
1701func (c *CloudFormation) DescribeStackResourceDrifts(input *DescribeStackResourceDriftsInput) (*DescribeStackResourceDriftsOutput, error) {
1702	req, out := c.DescribeStackResourceDriftsRequest(input)
1703	return out, req.Send()
1704}
1705
1706// DescribeStackResourceDriftsWithContext is the same as DescribeStackResourceDrifts with the addition of
1707// the ability to pass a context and additional request options.
1708//
1709// See DescribeStackResourceDrifts for details on how to use this API operation.
1710//
1711// The context must be non-nil and will be used for request cancellation. If
1712// the context is nil a panic will occur. In the future the SDK may create
1713// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1714// for more information on using Contexts.
1715func (c *CloudFormation) DescribeStackResourceDriftsWithContext(ctx aws.Context, input *DescribeStackResourceDriftsInput, opts ...request.Option) (*DescribeStackResourceDriftsOutput, error) {
1716	req, out := c.DescribeStackResourceDriftsRequest(input)
1717	req.SetContext(ctx)
1718	req.ApplyOptions(opts...)
1719	return out, req.Send()
1720}
1721
1722// DescribeStackResourceDriftsPages iterates over the pages of a DescribeStackResourceDrifts operation,
1723// calling the "fn" function with the response data for each page. To stop
1724// iterating, return false from the fn function.
1725//
1726// See DescribeStackResourceDrifts method for more information on how to use this operation.
1727//
1728// Note: This operation can generate multiple requests to a service.
1729//
1730//    // Example iterating over at most 3 pages of a DescribeStackResourceDrifts operation.
1731//    pageNum := 0
1732//    err := client.DescribeStackResourceDriftsPages(params,
1733//        func(page *cloudformation.DescribeStackResourceDriftsOutput, lastPage bool) bool {
1734//            pageNum++
1735//            fmt.Println(page)
1736//            return pageNum <= 3
1737//        })
1738//
1739func (c *CloudFormation) DescribeStackResourceDriftsPages(input *DescribeStackResourceDriftsInput, fn func(*DescribeStackResourceDriftsOutput, bool) bool) error {
1740	return c.DescribeStackResourceDriftsPagesWithContext(aws.BackgroundContext(), input, fn)
1741}
1742
1743// DescribeStackResourceDriftsPagesWithContext same as DescribeStackResourceDriftsPages except
1744// it takes a Context and allows setting request options on the pages.
1745//
1746// The context must be non-nil and will be used for request cancellation. If
1747// the context is nil a panic will occur. In the future the SDK may create
1748// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1749// for more information on using Contexts.
1750func (c *CloudFormation) DescribeStackResourceDriftsPagesWithContext(ctx aws.Context, input *DescribeStackResourceDriftsInput, fn func(*DescribeStackResourceDriftsOutput, bool) bool, opts ...request.Option) error {
1751	p := request.Pagination{
1752		NewRequest: func() (*request.Request, error) {
1753			var inCpy *DescribeStackResourceDriftsInput
1754			if input != nil {
1755				tmp := *input
1756				inCpy = &tmp
1757			}
1758			req, _ := c.DescribeStackResourceDriftsRequest(inCpy)
1759			req.SetContext(ctx)
1760			req.ApplyOptions(opts...)
1761			return req, nil
1762		},
1763	}
1764
1765	for p.Next() {
1766		if !fn(p.Page().(*DescribeStackResourceDriftsOutput), !p.HasNextPage()) {
1767			break
1768		}
1769	}
1770
1771	return p.Err()
1772}
1773
1774const opDescribeStackResources = "DescribeStackResources"
1775
1776// DescribeStackResourcesRequest generates a "aws/request.Request" representing the
1777// client's request for the DescribeStackResources operation. The "output" return
1778// value will be populated with the request's response once the request completes
1779// successfully.
1780//
1781// Use "Send" method on the returned Request to send the API call to the service.
1782// the "output" return value is not valid until after Send returns without error.
1783//
1784// See DescribeStackResources for more information on using the DescribeStackResources
1785// API call, and error handling.
1786//
1787// This method is useful when you want to inject custom logic or configuration
1788// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1789//
1790//
1791//    // Example sending a request using the DescribeStackResourcesRequest method.
1792//    req, resp := client.DescribeStackResourcesRequest(params)
1793//
1794//    err := req.Send()
1795//    if err == nil { // resp is now filled
1796//        fmt.Println(resp)
1797//    }
1798//
1799// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/DescribeStackResources
1800func (c *CloudFormation) DescribeStackResourcesRequest(input *DescribeStackResourcesInput) (req *request.Request, output *DescribeStackResourcesOutput) {
1801	op := &request.Operation{
1802		Name:       opDescribeStackResources,
1803		HTTPMethod: "POST",
1804		HTTPPath:   "/",
1805	}
1806
1807	if input == nil {
1808		input = &DescribeStackResourcesInput{}
1809	}
1810
1811	output = &DescribeStackResourcesOutput{}
1812	req = c.newRequest(op, input, output)
1813	return
1814}
1815
1816// DescribeStackResources API operation for AWS CloudFormation.
1817//
1818// Returns AWS resource descriptions for running and deleted stacks. If StackName
1819// is specified, all the associated resources that are part of the stack are
1820// returned. If PhysicalResourceId is specified, the associated resources of
1821// the stack that the resource belongs to are returned.
1822//
1823// Only the first 100 resources will be returned. If your stack has more resources
1824// than this, you should use ListStackResources instead.
1825//
1826// For deleted stacks, DescribeStackResources returns resource information for
1827// up to 90 days after the stack has been deleted.
1828//
1829// You must specify either StackName or PhysicalResourceId, but not both. In
1830// addition, you can specify LogicalResourceId to filter the returned result.
1831// For more information about resources, the LogicalResourceId and PhysicalResourceId,
1832// go to the AWS CloudFormation User Guide (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/).
1833//
1834// A ValidationError is returned if you specify both StackName and PhysicalResourceId
1835// in the same request.
1836//
1837// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1838// with awserr.Error's Code and Message methods to get detailed information about
1839// the error.
1840//
1841// See the AWS API reference guide for AWS CloudFormation's
1842// API operation DescribeStackResources for usage and error information.
1843// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/DescribeStackResources
1844func (c *CloudFormation) DescribeStackResources(input *DescribeStackResourcesInput) (*DescribeStackResourcesOutput, error) {
1845	req, out := c.DescribeStackResourcesRequest(input)
1846	return out, req.Send()
1847}
1848
1849// DescribeStackResourcesWithContext is the same as DescribeStackResources with the addition of
1850// the ability to pass a context and additional request options.
1851//
1852// See DescribeStackResources for details on how to use this API operation.
1853//
1854// The context must be non-nil and will be used for request cancellation. If
1855// the context is nil a panic will occur. In the future the SDK may create
1856// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1857// for more information on using Contexts.
1858func (c *CloudFormation) DescribeStackResourcesWithContext(ctx aws.Context, input *DescribeStackResourcesInput, opts ...request.Option) (*DescribeStackResourcesOutput, error) {
1859	req, out := c.DescribeStackResourcesRequest(input)
1860	req.SetContext(ctx)
1861	req.ApplyOptions(opts...)
1862	return out, req.Send()
1863}
1864
1865const opDescribeStackSet = "DescribeStackSet"
1866
1867// DescribeStackSetRequest generates a "aws/request.Request" representing the
1868// client's request for the DescribeStackSet operation. The "output" return
1869// value will be populated with the request's response once the request completes
1870// successfully.
1871//
1872// Use "Send" method on the returned Request to send the API call to the service.
1873// the "output" return value is not valid until after Send returns without error.
1874//
1875// See DescribeStackSet for more information on using the DescribeStackSet
1876// API call, and error handling.
1877//
1878// This method is useful when you want to inject custom logic or configuration
1879// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1880//
1881//
1882//    // Example sending a request using the DescribeStackSetRequest method.
1883//    req, resp := client.DescribeStackSetRequest(params)
1884//
1885//    err := req.Send()
1886//    if err == nil { // resp is now filled
1887//        fmt.Println(resp)
1888//    }
1889//
1890// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/DescribeStackSet
1891func (c *CloudFormation) DescribeStackSetRequest(input *DescribeStackSetInput) (req *request.Request, output *DescribeStackSetOutput) {
1892	op := &request.Operation{
1893		Name:       opDescribeStackSet,
1894		HTTPMethod: "POST",
1895		HTTPPath:   "/",
1896	}
1897
1898	if input == nil {
1899		input = &DescribeStackSetInput{}
1900	}
1901
1902	output = &DescribeStackSetOutput{}
1903	req = c.newRequest(op, input, output)
1904	return
1905}
1906
1907// DescribeStackSet API operation for AWS CloudFormation.
1908//
1909// Returns the description of the specified stack set.
1910//
1911// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1912// with awserr.Error's Code and Message methods to get detailed information about
1913// the error.
1914//
1915// See the AWS API reference guide for AWS CloudFormation's
1916// API operation DescribeStackSet for usage and error information.
1917//
1918// Returned Error Codes:
1919//   * ErrCodeStackSetNotFoundException "StackSetNotFoundException"
1920//   The specified stack set doesn't exist.
1921//
1922// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/DescribeStackSet
1923func (c *CloudFormation) DescribeStackSet(input *DescribeStackSetInput) (*DescribeStackSetOutput, error) {
1924	req, out := c.DescribeStackSetRequest(input)
1925	return out, req.Send()
1926}
1927
1928// DescribeStackSetWithContext is the same as DescribeStackSet with the addition of
1929// the ability to pass a context and additional request options.
1930//
1931// See DescribeStackSet for details on how to use this API operation.
1932//
1933// The context must be non-nil and will be used for request cancellation. If
1934// the context is nil a panic will occur. In the future the SDK may create
1935// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1936// for more information on using Contexts.
1937func (c *CloudFormation) DescribeStackSetWithContext(ctx aws.Context, input *DescribeStackSetInput, opts ...request.Option) (*DescribeStackSetOutput, error) {
1938	req, out := c.DescribeStackSetRequest(input)
1939	req.SetContext(ctx)
1940	req.ApplyOptions(opts...)
1941	return out, req.Send()
1942}
1943
1944const opDescribeStackSetOperation = "DescribeStackSetOperation"
1945
1946// DescribeStackSetOperationRequest generates a "aws/request.Request" representing the
1947// client's request for the DescribeStackSetOperation operation. The "output" return
1948// value will be populated with the request's response once the request completes
1949// successfully.
1950//
1951// Use "Send" method on the returned Request to send the API call to the service.
1952// the "output" return value is not valid until after Send returns without error.
1953//
1954// See DescribeStackSetOperation for more information on using the DescribeStackSetOperation
1955// API call, and error handling.
1956//
1957// This method is useful when you want to inject custom logic or configuration
1958// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1959//
1960//
1961//    // Example sending a request using the DescribeStackSetOperationRequest method.
1962//    req, resp := client.DescribeStackSetOperationRequest(params)
1963//
1964//    err := req.Send()
1965//    if err == nil { // resp is now filled
1966//        fmt.Println(resp)
1967//    }
1968//
1969// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/DescribeStackSetOperation
1970func (c *CloudFormation) DescribeStackSetOperationRequest(input *DescribeStackSetOperationInput) (req *request.Request, output *DescribeStackSetOperationOutput) {
1971	op := &request.Operation{
1972		Name:       opDescribeStackSetOperation,
1973		HTTPMethod: "POST",
1974		HTTPPath:   "/",
1975	}
1976
1977	if input == nil {
1978		input = &DescribeStackSetOperationInput{}
1979	}
1980
1981	output = &DescribeStackSetOperationOutput{}
1982	req = c.newRequest(op, input, output)
1983	return
1984}
1985
1986// DescribeStackSetOperation API operation for AWS CloudFormation.
1987//
1988// Returns the description of the specified stack set operation.
1989//
1990// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1991// with awserr.Error's Code and Message methods to get detailed information about
1992// the error.
1993//
1994// See the AWS API reference guide for AWS CloudFormation's
1995// API operation DescribeStackSetOperation for usage and error information.
1996//
1997// Returned Error Codes:
1998//   * ErrCodeStackSetNotFoundException "StackSetNotFoundException"
1999//   The specified stack set doesn't exist.
2000//
2001//   * ErrCodeOperationNotFoundException "OperationNotFoundException"
2002//   The specified ID refers to an operation that doesn't exist.
2003//
2004// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/DescribeStackSetOperation
2005func (c *CloudFormation) DescribeStackSetOperation(input *DescribeStackSetOperationInput) (*DescribeStackSetOperationOutput, error) {
2006	req, out := c.DescribeStackSetOperationRequest(input)
2007	return out, req.Send()
2008}
2009
2010// DescribeStackSetOperationWithContext is the same as DescribeStackSetOperation with the addition of
2011// the ability to pass a context and additional request options.
2012//
2013// See DescribeStackSetOperation for details on how to use this API operation.
2014//
2015// The context must be non-nil and will be used for request cancellation. If
2016// the context is nil a panic will occur. In the future the SDK may create
2017// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2018// for more information on using Contexts.
2019func (c *CloudFormation) DescribeStackSetOperationWithContext(ctx aws.Context, input *DescribeStackSetOperationInput, opts ...request.Option) (*DescribeStackSetOperationOutput, error) {
2020	req, out := c.DescribeStackSetOperationRequest(input)
2021	req.SetContext(ctx)
2022	req.ApplyOptions(opts...)
2023	return out, req.Send()
2024}
2025
2026const opDescribeStacks = "DescribeStacks"
2027
2028// DescribeStacksRequest generates a "aws/request.Request" representing the
2029// client's request for the DescribeStacks operation. The "output" return
2030// value will be populated with the request's response once the request completes
2031// successfully.
2032//
2033// Use "Send" method on the returned Request to send the API call to the service.
2034// the "output" return value is not valid until after Send returns without error.
2035//
2036// See DescribeStacks for more information on using the DescribeStacks
2037// API call, and error handling.
2038//
2039// This method is useful when you want to inject custom logic or configuration
2040// into the SDK's request lifecycle. Such as custom headers, or retry logic.
2041//
2042//
2043//    // Example sending a request using the DescribeStacksRequest method.
2044//    req, resp := client.DescribeStacksRequest(params)
2045//
2046//    err := req.Send()
2047//    if err == nil { // resp is now filled
2048//        fmt.Println(resp)
2049//    }
2050//
2051// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/DescribeStacks
2052func (c *CloudFormation) DescribeStacksRequest(input *DescribeStacksInput) (req *request.Request, output *DescribeStacksOutput) {
2053	op := &request.Operation{
2054		Name:       opDescribeStacks,
2055		HTTPMethod: "POST",
2056		HTTPPath:   "/",
2057		Paginator: &request.Paginator{
2058			InputTokens:     []string{"NextToken"},
2059			OutputTokens:    []string{"NextToken"},
2060			LimitToken:      "",
2061			TruncationToken: "",
2062		},
2063	}
2064
2065	if input == nil {
2066		input = &DescribeStacksInput{}
2067	}
2068
2069	output = &DescribeStacksOutput{}
2070	req = c.newRequest(op, input, output)
2071	return
2072}
2073
2074// DescribeStacks API operation for AWS CloudFormation.
2075//
2076// Returns the description for the specified stack; if no stack name was specified,
2077// then it returns the description for all the stacks created.
2078//
2079// If the stack does not exist, an AmazonCloudFormationException is returned.
2080//
2081// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
2082// with awserr.Error's Code and Message methods to get detailed information about
2083// the error.
2084//
2085// See the AWS API reference guide for AWS CloudFormation's
2086// API operation DescribeStacks for usage and error information.
2087// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/DescribeStacks
2088func (c *CloudFormation) DescribeStacks(input *DescribeStacksInput) (*DescribeStacksOutput, error) {
2089	req, out := c.DescribeStacksRequest(input)
2090	return out, req.Send()
2091}
2092
2093// DescribeStacksWithContext is the same as DescribeStacks with the addition of
2094// the ability to pass a context and additional request options.
2095//
2096// See DescribeStacks for details on how to use this API operation.
2097//
2098// The context must be non-nil and will be used for request cancellation. If
2099// the context is nil a panic will occur. In the future the SDK may create
2100// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2101// for more information on using Contexts.
2102func (c *CloudFormation) DescribeStacksWithContext(ctx aws.Context, input *DescribeStacksInput, opts ...request.Option) (*DescribeStacksOutput, error) {
2103	req, out := c.DescribeStacksRequest(input)
2104	req.SetContext(ctx)
2105	req.ApplyOptions(opts...)
2106	return out, req.Send()
2107}
2108
2109// DescribeStacksPages iterates over the pages of a DescribeStacks operation,
2110// calling the "fn" function with the response data for each page. To stop
2111// iterating, return false from the fn function.
2112//
2113// See DescribeStacks method for more information on how to use this operation.
2114//
2115// Note: This operation can generate multiple requests to a service.
2116//
2117//    // Example iterating over at most 3 pages of a DescribeStacks operation.
2118//    pageNum := 0
2119//    err := client.DescribeStacksPages(params,
2120//        func(page *cloudformation.DescribeStacksOutput, lastPage bool) bool {
2121//            pageNum++
2122//            fmt.Println(page)
2123//            return pageNum <= 3
2124//        })
2125//
2126func (c *CloudFormation) DescribeStacksPages(input *DescribeStacksInput, fn func(*DescribeStacksOutput, bool) bool) error {
2127	return c.DescribeStacksPagesWithContext(aws.BackgroundContext(), input, fn)
2128}
2129
2130// DescribeStacksPagesWithContext same as DescribeStacksPages except
2131// it takes a Context and allows setting request options on the pages.
2132//
2133// The context must be non-nil and will be used for request cancellation. If
2134// the context is nil a panic will occur. In the future the SDK may create
2135// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2136// for more information on using Contexts.
2137func (c *CloudFormation) DescribeStacksPagesWithContext(ctx aws.Context, input *DescribeStacksInput, fn func(*DescribeStacksOutput, bool) bool, opts ...request.Option) error {
2138	p := request.Pagination{
2139		NewRequest: func() (*request.Request, error) {
2140			var inCpy *DescribeStacksInput
2141			if input != nil {
2142				tmp := *input
2143				inCpy = &tmp
2144			}
2145			req, _ := c.DescribeStacksRequest(inCpy)
2146			req.SetContext(ctx)
2147			req.ApplyOptions(opts...)
2148			return req, nil
2149		},
2150	}
2151
2152	for p.Next() {
2153		if !fn(p.Page().(*DescribeStacksOutput), !p.HasNextPage()) {
2154			break
2155		}
2156	}
2157
2158	return p.Err()
2159}
2160
2161const opDescribeType = "DescribeType"
2162
2163// DescribeTypeRequest generates a "aws/request.Request" representing the
2164// client's request for the DescribeType operation. The "output" return
2165// value will be populated with the request's response once the request completes
2166// successfully.
2167//
2168// Use "Send" method on the returned Request to send the API call to the service.
2169// the "output" return value is not valid until after Send returns without error.
2170//
2171// See DescribeType for more information on using the DescribeType
2172// API call, and error handling.
2173//
2174// This method is useful when you want to inject custom logic or configuration
2175// into the SDK's request lifecycle. Such as custom headers, or retry logic.
2176//
2177//
2178//    // Example sending a request using the DescribeTypeRequest method.
2179//    req, resp := client.DescribeTypeRequest(params)
2180//
2181//    err := req.Send()
2182//    if err == nil { // resp is now filled
2183//        fmt.Println(resp)
2184//    }
2185//
2186// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/DescribeType
2187func (c *CloudFormation) DescribeTypeRequest(input *DescribeTypeInput) (req *request.Request, output *DescribeTypeOutput) {
2188	op := &request.Operation{
2189		Name:       opDescribeType,
2190		HTTPMethod: "POST",
2191		HTTPPath:   "/",
2192	}
2193
2194	if input == nil {
2195		input = &DescribeTypeInput{}
2196	}
2197
2198	output = &DescribeTypeOutput{}
2199	req = c.newRequest(op, input, output)
2200	return
2201}
2202
2203// DescribeType API operation for AWS CloudFormation.
2204//
2205// Returns detailed information about a type that has been registered.
2206//
2207// If you specify a VersionId, DescribeType returns information about that specific
2208// type version. Otherwise, it returns information about the default type version.
2209//
2210// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
2211// with awserr.Error's Code and Message methods to get detailed information about
2212// the error.
2213//
2214// See the AWS API reference guide for AWS CloudFormation's
2215// API operation DescribeType for usage and error information.
2216//
2217// Returned Error Codes:
2218//   * ErrCodeCFNRegistryException "CFNRegistryException"
2219//   An error occurred during a CloudFormation registry operation.
2220//
2221//   * ErrCodeTypeNotFoundException "TypeNotFoundException"
2222//   The specified type does not exist in the CloudFormation registry.
2223//
2224// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/DescribeType
2225func (c *CloudFormation) DescribeType(input *DescribeTypeInput) (*DescribeTypeOutput, error) {
2226	req, out := c.DescribeTypeRequest(input)
2227	return out, req.Send()
2228}
2229
2230// DescribeTypeWithContext is the same as DescribeType with the addition of
2231// the ability to pass a context and additional request options.
2232//
2233// See DescribeType for details on how to use this API operation.
2234//
2235// The context must be non-nil and will be used for request cancellation. If
2236// the context is nil a panic will occur. In the future the SDK may create
2237// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2238// for more information on using Contexts.
2239func (c *CloudFormation) DescribeTypeWithContext(ctx aws.Context, input *DescribeTypeInput, opts ...request.Option) (*DescribeTypeOutput, error) {
2240	req, out := c.DescribeTypeRequest(input)
2241	req.SetContext(ctx)
2242	req.ApplyOptions(opts...)
2243	return out, req.Send()
2244}
2245
2246const opDescribeTypeRegistration = "DescribeTypeRegistration"
2247
2248// DescribeTypeRegistrationRequest generates a "aws/request.Request" representing the
2249// client's request for the DescribeTypeRegistration operation. The "output" return
2250// value will be populated with the request's response once the request completes
2251// successfully.
2252//
2253// Use "Send" method on the returned Request to send the API call to the service.
2254// the "output" return value is not valid until after Send returns without error.
2255//
2256// See DescribeTypeRegistration for more information on using the DescribeTypeRegistration
2257// API call, and error handling.
2258//
2259// This method is useful when you want to inject custom logic or configuration
2260// into the SDK's request lifecycle. Such as custom headers, or retry logic.
2261//
2262//
2263//    // Example sending a request using the DescribeTypeRegistrationRequest method.
2264//    req, resp := client.DescribeTypeRegistrationRequest(params)
2265//
2266//    err := req.Send()
2267//    if err == nil { // resp is now filled
2268//        fmt.Println(resp)
2269//    }
2270//
2271// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/DescribeTypeRegistration
2272func (c *CloudFormation) DescribeTypeRegistrationRequest(input *DescribeTypeRegistrationInput) (req *request.Request, output *DescribeTypeRegistrationOutput) {
2273	op := &request.Operation{
2274		Name:       opDescribeTypeRegistration,
2275		HTTPMethod: "POST",
2276		HTTPPath:   "/",
2277	}
2278
2279	if input == nil {
2280		input = &DescribeTypeRegistrationInput{}
2281	}
2282
2283	output = &DescribeTypeRegistrationOutput{}
2284	req = c.newRequest(op, input, output)
2285	return
2286}
2287
2288// DescribeTypeRegistration API operation for AWS CloudFormation.
2289//
2290// Returns information about a type's registration, including its current status
2291// and type and version identifiers.
2292//
2293// When you initiate a registration request using RegisterType , you can then
2294// use DescribeTypeRegistration to monitor the progress of that registration
2295// request.
2296//
2297// Once the registration request has completed, use DescribeType to return detailed
2298// informaiton about a type.
2299//
2300// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
2301// with awserr.Error's Code and Message methods to get detailed information about
2302// the error.
2303//
2304// See the AWS API reference guide for AWS CloudFormation's
2305// API operation DescribeTypeRegistration for usage and error information.
2306//
2307// Returned Error Codes:
2308//   * ErrCodeCFNRegistryException "CFNRegistryException"
2309//   An error occurred during a CloudFormation registry operation.
2310//
2311// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/DescribeTypeRegistration
2312func (c *CloudFormation) DescribeTypeRegistration(input *DescribeTypeRegistrationInput) (*DescribeTypeRegistrationOutput, error) {
2313	req, out := c.DescribeTypeRegistrationRequest(input)
2314	return out, req.Send()
2315}
2316
2317// DescribeTypeRegistrationWithContext is the same as DescribeTypeRegistration with the addition of
2318// the ability to pass a context and additional request options.
2319//
2320// See DescribeTypeRegistration for details on how to use this API operation.
2321//
2322// The context must be non-nil and will be used for request cancellation. If
2323// the context is nil a panic will occur. In the future the SDK may create
2324// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2325// for more information on using Contexts.
2326func (c *CloudFormation) DescribeTypeRegistrationWithContext(ctx aws.Context, input *DescribeTypeRegistrationInput, opts ...request.Option) (*DescribeTypeRegistrationOutput, error) {
2327	req, out := c.DescribeTypeRegistrationRequest(input)
2328	req.SetContext(ctx)
2329	req.ApplyOptions(opts...)
2330	return out, req.Send()
2331}
2332
2333const opDetectStackDrift = "DetectStackDrift"
2334
2335// DetectStackDriftRequest generates a "aws/request.Request" representing the
2336// client's request for the DetectStackDrift operation. The "output" return
2337// value will be populated with the request's response once the request completes
2338// successfully.
2339//
2340// Use "Send" method on the returned Request to send the API call to the service.
2341// the "output" return value is not valid until after Send returns without error.
2342//
2343// See DetectStackDrift for more information on using the DetectStackDrift
2344// API call, and error handling.
2345//
2346// This method is useful when you want to inject custom logic or configuration
2347// into the SDK's request lifecycle. Such as custom headers, or retry logic.
2348//
2349//
2350//    // Example sending a request using the DetectStackDriftRequest method.
2351//    req, resp := client.DetectStackDriftRequest(params)
2352//
2353//    err := req.Send()
2354//    if err == nil { // resp is now filled
2355//        fmt.Println(resp)
2356//    }
2357//
2358// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/DetectStackDrift
2359func (c *CloudFormation) DetectStackDriftRequest(input *DetectStackDriftInput) (req *request.Request, output *DetectStackDriftOutput) {
2360	op := &request.Operation{
2361		Name:       opDetectStackDrift,
2362		HTTPMethod: "POST",
2363		HTTPPath:   "/",
2364	}
2365
2366	if input == nil {
2367		input = &DetectStackDriftInput{}
2368	}
2369
2370	output = &DetectStackDriftOutput{}
2371	req = c.newRequest(op, input, output)
2372	return
2373}
2374
2375// DetectStackDrift API operation for AWS CloudFormation.
2376//
2377// Detects whether a stack's actual configuration differs, or has drifted, from
2378// it's expected configuration, as defined in the stack template and any values
2379// specified as template parameters. For each resource in the stack that supports
2380// drift detection, AWS CloudFormation compares the actual configuration of
2381// the resource with its expected template configuration. Only resource properties
2382// explicitly defined in the stack template are checked for drift. A stack is
2383// considered to have drifted if one or more of its resources differ from their
2384// expected template configurations. For more information, see Detecting Unregulated
2385// Configuration Changes to Stacks and Resources (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-stack-drift.html).
2386//
2387// Use DetectStackDrift to detect drift on all supported resources for a given
2388// stack, or DetectStackResourceDrift to detect drift on individual resources.
2389//
2390// For a list of stack resources that currently support drift detection, see
2391// Resources that Support Drift Detection (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-stack-drift-resource-list.html).
2392//
2393// DetectStackDrift can take up to several minutes, depending on the number
2394// of resources contained within the stack. Use DescribeStackDriftDetectionStatus
2395// to monitor the progress of a detect stack drift operation. Once the drift
2396// detection operation has completed, use DescribeStackResourceDrifts to return
2397// drift information about the stack and its resources.
2398//
2399// When detecting drift on a stack, AWS CloudFormation does not detect drift
2400// on any nested stacks belonging to that stack. Perform DetectStackDrift directly
2401// on the nested stack itself.
2402//
2403// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
2404// with awserr.Error's Code and Message methods to get detailed information about
2405// the error.
2406//
2407// See the AWS API reference guide for AWS CloudFormation's
2408// API operation DetectStackDrift for usage and error information.
2409// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/DetectStackDrift
2410func (c *CloudFormation) DetectStackDrift(input *DetectStackDriftInput) (*DetectStackDriftOutput, error) {
2411	req, out := c.DetectStackDriftRequest(input)
2412	return out, req.Send()
2413}
2414
2415// DetectStackDriftWithContext is the same as DetectStackDrift with the addition of
2416// the ability to pass a context and additional request options.
2417//
2418// See DetectStackDrift for details on how to use this API operation.
2419//
2420// The context must be non-nil and will be used for request cancellation. If
2421// the context is nil a panic will occur. In the future the SDK may create
2422// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2423// for more information on using Contexts.
2424func (c *CloudFormation) DetectStackDriftWithContext(ctx aws.Context, input *DetectStackDriftInput, opts ...request.Option) (*DetectStackDriftOutput, error) {
2425	req, out := c.DetectStackDriftRequest(input)
2426	req.SetContext(ctx)
2427	req.ApplyOptions(opts...)
2428	return out, req.Send()
2429}
2430
2431const opDetectStackResourceDrift = "DetectStackResourceDrift"
2432
2433// DetectStackResourceDriftRequest generates a "aws/request.Request" representing the
2434// client's request for the DetectStackResourceDrift operation. The "output" return
2435// value will be populated with the request's response once the request completes
2436// successfully.
2437//
2438// Use "Send" method on the returned Request to send the API call to the service.
2439// the "output" return value is not valid until after Send returns without error.
2440//
2441// See DetectStackResourceDrift for more information on using the DetectStackResourceDrift
2442// API call, and error handling.
2443//
2444// This method is useful when you want to inject custom logic or configuration
2445// into the SDK's request lifecycle. Such as custom headers, or retry logic.
2446//
2447//
2448//    // Example sending a request using the DetectStackResourceDriftRequest method.
2449//    req, resp := client.DetectStackResourceDriftRequest(params)
2450//
2451//    err := req.Send()
2452//    if err == nil { // resp is now filled
2453//        fmt.Println(resp)
2454//    }
2455//
2456// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/DetectStackResourceDrift
2457func (c *CloudFormation) DetectStackResourceDriftRequest(input *DetectStackResourceDriftInput) (req *request.Request, output *DetectStackResourceDriftOutput) {
2458	op := &request.Operation{
2459		Name:       opDetectStackResourceDrift,
2460		HTTPMethod: "POST",
2461		HTTPPath:   "/",
2462	}
2463
2464	if input == nil {
2465		input = &DetectStackResourceDriftInput{}
2466	}
2467
2468	output = &DetectStackResourceDriftOutput{}
2469	req = c.newRequest(op, input, output)
2470	return
2471}
2472
2473// DetectStackResourceDrift API operation for AWS CloudFormation.
2474//
2475// Returns information about whether a resource's actual configuration differs,
2476// or has drifted, from it's expected configuration, as defined in the stack
2477// template and any values specified as template parameters. This information
2478// includes actual and expected property values for resources in which AWS CloudFormation
2479// detects drift. Only resource properties explicitly defined in the stack template
2480// are checked for drift. For more information about stack and resource drift,
2481// see Detecting Unregulated Configuration Changes to Stacks and Resources (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-stack-drift.html).
2482//
2483// Use DetectStackResourceDrift to detect drift on individual resources, or
2484// DetectStackDrift to detect drift on all resources in a given stack that support
2485// drift detection.
2486//
2487// Resources that do not currently support drift detection cannot be checked.
2488// For a list of resources that support drift detection, see Resources that
2489// Support Drift Detection (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-stack-drift-resource-list.html).
2490//
2491// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
2492// with awserr.Error's Code and Message methods to get detailed information about
2493// the error.
2494//
2495// See the AWS API reference guide for AWS CloudFormation's
2496// API operation DetectStackResourceDrift for usage and error information.
2497// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/DetectStackResourceDrift
2498func (c *CloudFormation) DetectStackResourceDrift(input *DetectStackResourceDriftInput) (*DetectStackResourceDriftOutput, error) {
2499	req, out := c.DetectStackResourceDriftRequest(input)
2500	return out, req.Send()
2501}
2502
2503// DetectStackResourceDriftWithContext is the same as DetectStackResourceDrift with the addition of
2504// the ability to pass a context and additional request options.
2505//
2506// See DetectStackResourceDrift for details on how to use this API operation.
2507//
2508// The context must be non-nil and will be used for request cancellation. If
2509// the context is nil a panic will occur. In the future the SDK may create
2510// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2511// for more information on using Contexts.
2512func (c *CloudFormation) DetectStackResourceDriftWithContext(ctx aws.Context, input *DetectStackResourceDriftInput, opts ...request.Option) (*DetectStackResourceDriftOutput, error) {
2513	req, out := c.DetectStackResourceDriftRequest(input)
2514	req.SetContext(ctx)
2515	req.ApplyOptions(opts...)
2516	return out, req.Send()
2517}
2518
2519const opDetectStackSetDrift = "DetectStackSetDrift"
2520
2521// DetectStackSetDriftRequest generates a "aws/request.Request" representing the
2522// client's request for the DetectStackSetDrift operation. The "output" return
2523// value will be populated with the request's response once the request completes
2524// successfully.
2525//
2526// Use "Send" method on the returned Request to send the API call to the service.
2527// the "output" return value is not valid until after Send returns without error.
2528//
2529// See DetectStackSetDrift for more information on using the DetectStackSetDrift
2530// API call, and error handling.
2531//
2532// This method is useful when you want to inject custom logic or configuration
2533// into the SDK's request lifecycle. Such as custom headers, or retry logic.
2534//
2535//
2536//    // Example sending a request using the DetectStackSetDriftRequest method.
2537//    req, resp := client.DetectStackSetDriftRequest(params)
2538//
2539//    err := req.Send()
2540//    if err == nil { // resp is now filled
2541//        fmt.Println(resp)
2542//    }
2543//
2544// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/DetectStackSetDrift
2545func (c *CloudFormation) DetectStackSetDriftRequest(input *DetectStackSetDriftInput) (req *request.Request, output *DetectStackSetDriftOutput) {
2546	op := &request.Operation{
2547		Name:       opDetectStackSetDrift,
2548		HTTPMethod: "POST",
2549		HTTPPath:   "/",
2550	}
2551
2552	if input == nil {
2553		input = &DetectStackSetDriftInput{}
2554	}
2555
2556	output = &DetectStackSetDriftOutput{}
2557	req = c.newRequest(op, input, output)
2558	return
2559}
2560
2561// DetectStackSetDrift API operation for AWS CloudFormation.
2562//
2563// Detect drift on a stack set. When CloudFormation performs drift detection
2564// on a stack set, it performs drift detection on the stack associated with
2565// each stack instance in the stack set. For more information, see How CloudFormation
2566// Performs Drift Detection on a Stack Set (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/stacksets-drift.html).
2567//
2568// DetectStackSetDrift returns the OperationId of the stack set drift detection
2569// operation. Use this operation id with DescribeStackSetOperation to monitor
2570// the progress of the drift detection operation. The drift detection operation
2571// may take some time, depending on the number of stack instances included in
2572// the stack set, as well as the number of resources included in each stack.
2573//
2574// Once the operation has completed, use the following actions to return drift
2575// information:
2576//
2577//    * Use DescribeStackSet to return detailed informaiton about the stack
2578//    set, including detailed information about the last completed drift operation
2579//    performed on the stack set. (Information about drift operations that are
2580//    in progress is not included.)
2581//
2582//    * Use ListStackInstances to return a list of stack instances belonging
2583//    to the stack set, including the drift status and last drift time checked
2584//    of each instance.
2585//
2586//    * Use DescribeStackInstance to return detailed information about a specific
2587//    stack instance, including its drift status and last drift time checked.
2588//
2589// For more information on performing a drift detection operation on a stack
2590// set, see Detecting Unmanaged Changes in Stack Sets (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/stacksets-drift.html).
2591//
2592// You can only run a single drift detection operation on a given stack set
2593// at one time.
2594//
2595// To stop a drift detection stack set operation, use StopStackSetOperation .
2596//
2597// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
2598// with awserr.Error's Code and Message methods to get detailed information about
2599// the error.
2600//
2601// See the AWS API reference guide for AWS CloudFormation's
2602// API operation DetectStackSetDrift for usage and error information.
2603//
2604// Returned Error Codes:
2605//   * ErrCodeInvalidOperationException "InvalidOperationException"
2606//   The specified operation isn't valid.
2607//
2608//   * ErrCodeOperationInProgressException "OperationInProgressException"
2609//   Another operation is currently in progress for this stack set. Only one operation
2610//   can be performed for a stack set at a given time.
2611//
2612//   * ErrCodeStackSetNotFoundException "StackSetNotFoundException"
2613//   The specified stack set doesn't exist.
2614//
2615// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/DetectStackSetDrift
2616func (c *CloudFormation) DetectStackSetDrift(input *DetectStackSetDriftInput) (*DetectStackSetDriftOutput, error) {
2617	req, out := c.DetectStackSetDriftRequest(input)
2618	return out, req.Send()
2619}
2620
2621// DetectStackSetDriftWithContext is the same as DetectStackSetDrift with the addition of
2622// the ability to pass a context and additional request options.
2623//
2624// See DetectStackSetDrift for details on how to use this API operation.
2625//
2626// The context must be non-nil and will be used for request cancellation. If
2627// the context is nil a panic will occur. In the future the SDK may create
2628// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2629// for more information on using Contexts.
2630func (c *CloudFormation) DetectStackSetDriftWithContext(ctx aws.Context, input *DetectStackSetDriftInput, opts ...request.Option) (*DetectStackSetDriftOutput, error) {
2631	req, out := c.DetectStackSetDriftRequest(input)
2632	req.SetContext(ctx)
2633	req.ApplyOptions(opts...)
2634	return out, req.Send()
2635}
2636
2637const opEstimateTemplateCost = "EstimateTemplateCost"
2638
2639// EstimateTemplateCostRequest generates a "aws/request.Request" representing the
2640// client's request for the EstimateTemplateCost operation. The "output" return
2641// value will be populated with the request's response once the request completes
2642// successfully.
2643//
2644// Use "Send" method on the returned Request to send the API call to the service.
2645// the "output" return value is not valid until after Send returns without error.
2646//
2647// See EstimateTemplateCost for more information on using the EstimateTemplateCost
2648// API call, and error handling.
2649//
2650// This method is useful when you want to inject custom logic or configuration
2651// into the SDK's request lifecycle. Such as custom headers, or retry logic.
2652//
2653//
2654//    // Example sending a request using the EstimateTemplateCostRequest method.
2655//    req, resp := client.EstimateTemplateCostRequest(params)
2656//
2657//    err := req.Send()
2658//    if err == nil { // resp is now filled
2659//        fmt.Println(resp)
2660//    }
2661//
2662// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/EstimateTemplateCost
2663func (c *CloudFormation) EstimateTemplateCostRequest(input *EstimateTemplateCostInput) (req *request.Request, output *EstimateTemplateCostOutput) {
2664	op := &request.Operation{
2665		Name:       opEstimateTemplateCost,
2666		HTTPMethod: "POST",
2667		HTTPPath:   "/",
2668	}
2669
2670	if input == nil {
2671		input = &EstimateTemplateCostInput{}
2672	}
2673
2674	output = &EstimateTemplateCostOutput{}
2675	req = c.newRequest(op, input, output)
2676	return
2677}
2678
2679// EstimateTemplateCost API operation for AWS CloudFormation.
2680//
2681// Returns the estimated monthly cost of a template. The return value is an
2682// AWS Simple Monthly Calculator URL with a query string that describes the
2683// resources required to run the template.
2684//
2685// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
2686// with awserr.Error's Code and Message methods to get detailed information about
2687// the error.
2688//
2689// See the AWS API reference guide for AWS CloudFormation's
2690// API operation EstimateTemplateCost for usage and error information.
2691// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/EstimateTemplateCost
2692func (c *CloudFormation) EstimateTemplateCost(input *EstimateTemplateCostInput) (*EstimateTemplateCostOutput, error) {
2693	req, out := c.EstimateTemplateCostRequest(input)
2694	return out, req.Send()
2695}
2696
2697// EstimateTemplateCostWithContext is the same as EstimateTemplateCost with the addition of
2698// the ability to pass a context and additional request options.
2699//
2700// See EstimateTemplateCost for details on how to use this API operation.
2701//
2702// The context must be non-nil and will be used for request cancellation. If
2703// the context is nil a panic will occur. In the future the SDK may create
2704// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2705// for more information on using Contexts.
2706func (c *CloudFormation) EstimateTemplateCostWithContext(ctx aws.Context, input *EstimateTemplateCostInput, opts ...request.Option) (*EstimateTemplateCostOutput, error) {
2707	req, out := c.EstimateTemplateCostRequest(input)
2708	req.SetContext(ctx)
2709	req.ApplyOptions(opts...)
2710	return out, req.Send()
2711}
2712
2713const opExecuteChangeSet = "ExecuteChangeSet"
2714
2715// ExecuteChangeSetRequest generates a "aws/request.Request" representing the
2716// client's request for the ExecuteChangeSet operation. The "output" return
2717// value will be populated with the request's response once the request completes
2718// successfully.
2719//
2720// Use "Send" method on the returned Request to send the API call to the service.
2721// the "output" return value is not valid until after Send returns without error.
2722//
2723// See ExecuteChangeSet for more information on using the ExecuteChangeSet
2724// API call, and error handling.
2725//
2726// This method is useful when you want to inject custom logic or configuration
2727// into the SDK's request lifecycle. Such as custom headers, or retry logic.
2728//
2729//
2730//    // Example sending a request using the ExecuteChangeSetRequest method.
2731//    req, resp := client.ExecuteChangeSetRequest(params)
2732//
2733//    err := req.Send()
2734//    if err == nil { // resp is now filled
2735//        fmt.Println(resp)
2736//    }
2737//
2738// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/ExecuteChangeSet
2739func (c *CloudFormation) ExecuteChangeSetRequest(input *ExecuteChangeSetInput) (req *request.Request, output *ExecuteChangeSetOutput) {
2740	op := &request.Operation{
2741		Name:       opExecuteChangeSet,
2742		HTTPMethod: "POST",
2743		HTTPPath:   "/",
2744	}
2745
2746	if input == nil {
2747		input = &ExecuteChangeSetInput{}
2748	}
2749
2750	output = &ExecuteChangeSetOutput{}
2751	req = c.newRequest(op, input, output)
2752	req.Handlers.Unmarshal.Swap(query.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
2753	return
2754}
2755
2756// ExecuteChangeSet API operation for AWS CloudFormation.
2757//
2758// Updates a stack using the input information that was provided when the specified
2759// change set was created. After the call successfully completes, AWS CloudFormation
2760// starts updating the stack. Use the DescribeStacks action to view the status
2761// of the update.
2762//
2763// When you execute a change set, AWS CloudFormation deletes all other change
2764// sets associated with the stack because they aren't valid for the updated
2765// stack.
2766//
2767// If a stack policy is associated with the stack, AWS CloudFormation enforces
2768// the policy during the update. You can't specify a temporary stack policy
2769// that overrides the current policy.
2770//
2771// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
2772// with awserr.Error's Code and Message methods to get detailed information about
2773// the error.
2774//
2775// See the AWS API reference guide for AWS CloudFormation's
2776// API operation ExecuteChangeSet for usage and error information.
2777//
2778// Returned Error Codes:
2779//   * ErrCodeInvalidChangeSetStatusException "InvalidChangeSetStatus"
2780//   The specified change set can't be used to update the stack. For example,
2781//   the change set status might be CREATE_IN_PROGRESS, or the stack status might
2782//   be UPDATE_IN_PROGRESS.
2783//
2784//   * ErrCodeChangeSetNotFoundException "ChangeSetNotFound"
2785//   The specified change set name or ID doesn't exit. To view valid change sets
2786//   for a stack, use the ListChangeSets action.
2787//
2788//   * ErrCodeInsufficientCapabilitiesException "InsufficientCapabilitiesException"
2789//   The template contains resources with capabilities that weren't specified
2790//   in the Capabilities parameter.
2791//
2792//   * ErrCodeTokenAlreadyExistsException "TokenAlreadyExistsException"
2793//   A client request token already exists.
2794//
2795// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/ExecuteChangeSet
2796func (c *CloudFormation) ExecuteChangeSet(input *ExecuteChangeSetInput) (*ExecuteChangeSetOutput, error) {
2797	req, out := c.ExecuteChangeSetRequest(input)
2798	return out, req.Send()
2799}
2800
2801// ExecuteChangeSetWithContext is the same as ExecuteChangeSet with the addition of
2802// the ability to pass a context and additional request options.
2803//
2804// See ExecuteChangeSet for details on how to use this API operation.
2805//
2806// The context must be non-nil and will be used for request cancellation. If
2807// the context is nil a panic will occur. In the future the SDK may create
2808// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2809// for more information on using Contexts.
2810func (c *CloudFormation) ExecuteChangeSetWithContext(ctx aws.Context, input *ExecuteChangeSetInput, opts ...request.Option) (*ExecuteChangeSetOutput, error) {
2811	req, out := c.ExecuteChangeSetRequest(input)
2812	req.SetContext(ctx)
2813	req.ApplyOptions(opts...)
2814	return out, req.Send()
2815}
2816
2817const opGetStackPolicy = "GetStackPolicy"
2818
2819// GetStackPolicyRequest generates a "aws/request.Request" representing the
2820// client's request for the GetStackPolicy operation. The "output" return
2821// value will be populated with the request's response once the request completes
2822// successfully.
2823//
2824// Use "Send" method on the returned Request to send the API call to the service.
2825// the "output" return value is not valid until after Send returns without error.
2826//
2827// See GetStackPolicy for more information on using the GetStackPolicy
2828// API call, and error handling.
2829//
2830// This method is useful when you want to inject custom logic or configuration
2831// into the SDK's request lifecycle. Such as custom headers, or retry logic.
2832//
2833//
2834//    // Example sending a request using the GetStackPolicyRequest method.
2835//    req, resp := client.GetStackPolicyRequest(params)
2836//
2837//    err := req.Send()
2838//    if err == nil { // resp is now filled
2839//        fmt.Println(resp)
2840//    }
2841//
2842// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/GetStackPolicy
2843func (c *CloudFormation) GetStackPolicyRequest(input *GetStackPolicyInput) (req *request.Request, output *GetStackPolicyOutput) {
2844	op := &request.Operation{
2845		Name:       opGetStackPolicy,
2846		HTTPMethod: "POST",
2847		HTTPPath:   "/",
2848	}
2849
2850	if input == nil {
2851		input = &GetStackPolicyInput{}
2852	}
2853
2854	output = &GetStackPolicyOutput{}
2855	req = c.newRequest(op, input, output)
2856	return
2857}
2858
2859// GetStackPolicy API operation for AWS CloudFormation.
2860//
2861// Returns the stack policy for a specified stack. If a stack doesn't have a
2862// policy, a null value is returned.
2863//
2864// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
2865// with awserr.Error's Code and Message methods to get detailed information about
2866// the error.
2867//
2868// See the AWS API reference guide for AWS CloudFormation's
2869// API operation GetStackPolicy for usage and error information.
2870// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/GetStackPolicy
2871func (c *CloudFormation) GetStackPolicy(input *GetStackPolicyInput) (*GetStackPolicyOutput, error) {
2872	req, out := c.GetStackPolicyRequest(input)
2873	return out, req.Send()
2874}
2875
2876// GetStackPolicyWithContext is the same as GetStackPolicy with the addition of
2877// the ability to pass a context and additional request options.
2878//
2879// See GetStackPolicy for details on how to use this API operation.
2880//
2881// The context must be non-nil and will be used for request cancellation. If
2882// the context is nil a panic will occur. In the future the SDK may create
2883// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2884// for more information on using Contexts.
2885func (c *CloudFormation) GetStackPolicyWithContext(ctx aws.Context, input *GetStackPolicyInput, opts ...request.Option) (*GetStackPolicyOutput, error) {
2886	req, out := c.GetStackPolicyRequest(input)
2887	req.SetContext(ctx)
2888	req.ApplyOptions(opts...)
2889	return out, req.Send()
2890}
2891
2892const opGetTemplate = "GetTemplate"
2893
2894// GetTemplateRequest generates a "aws/request.Request" representing the
2895// client's request for the GetTemplate operation. The "output" return
2896// value will be populated with the request's response once the request completes
2897// successfully.
2898//
2899// Use "Send" method on the returned Request to send the API call to the service.
2900// the "output" return value is not valid until after Send returns without error.
2901//
2902// See GetTemplate for more information on using the GetTemplate
2903// API call, and error handling.
2904//
2905// This method is useful when you want to inject custom logic or configuration
2906// into the SDK's request lifecycle. Such as custom headers, or retry logic.
2907//
2908//
2909//    // Example sending a request using the GetTemplateRequest method.
2910//    req, resp := client.GetTemplateRequest(params)
2911//
2912//    err := req.Send()
2913//    if err == nil { // resp is now filled
2914//        fmt.Println(resp)
2915//    }
2916//
2917// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/GetTemplate
2918func (c *CloudFormation) GetTemplateRequest(input *GetTemplateInput) (req *request.Request, output *GetTemplateOutput) {
2919	op := &request.Operation{
2920		Name:       opGetTemplate,
2921		HTTPMethod: "POST",
2922		HTTPPath:   "/",
2923	}
2924
2925	if input == nil {
2926		input = &GetTemplateInput{}
2927	}
2928
2929	output = &GetTemplateOutput{}
2930	req = c.newRequest(op, input, output)
2931	return
2932}
2933
2934// GetTemplate API operation for AWS CloudFormation.
2935//
2936// Returns the template body for a specified stack. You can get the template
2937// for running or deleted stacks.
2938//
2939// For deleted stacks, GetTemplate returns the template for up to 90 days after
2940// the stack has been deleted.
2941//
2942// If the template does not exist, a ValidationError is returned.
2943//
2944// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
2945// with awserr.Error's Code and Message methods to get detailed information about
2946// the error.
2947//
2948// See the AWS API reference guide for AWS CloudFormation's
2949// API operation GetTemplate for usage and error information.
2950//
2951// Returned Error Codes:
2952//   * ErrCodeChangeSetNotFoundException "ChangeSetNotFound"
2953//   The specified change set name or ID doesn't exit. To view valid change sets
2954//   for a stack, use the ListChangeSets action.
2955//
2956// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/GetTemplate
2957func (c *CloudFormation) GetTemplate(input *GetTemplateInput) (*GetTemplateOutput, error) {
2958	req, out := c.GetTemplateRequest(input)
2959	return out, req.Send()
2960}
2961
2962// GetTemplateWithContext is the same as GetTemplate with the addition of
2963// the ability to pass a context and additional request options.
2964//
2965// See GetTemplate for details on how to use this API operation.
2966//
2967// The context must be non-nil and will be used for request cancellation. If
2968// the context is nil a panic will occur. In the future the SDK may create
2969// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2970// for more information on using Contexts.
2971func (c *CloudFormation) GetTemplateWithContext(ctx aws.Context, input *GetTemplateInput, opts ...request.Option) (*GetTemplateOutput, error) {
2972	req, out := c.GetTemplateRequest(input)
2973	req.SetContext(ctx)
2974	req.ApplyOptions(opts...)
2975	return out, req.Send()
2976}
2977
2978const opGetTemplateSummary = "GetTemplateSummary"
2979
2980// GetTemplateSummaryRequest generates a "aws/request.Request" representing the
2981// client's request for the GetTemplateSummary operation. The "output" return
2982// value will be populated with the request's response once the request completes
2983// successfully.
2984//
2985// Use "Send" method on the returned Request to send the API call to the service.
2986// the "output" return value is not valid until after Send returns without error.
2987//
2988// See GetTemplateSummary for more information on using the GetTemplateSummary
2989// API call, and error handling.
2990//
2991// This method is useful when you want to inject custom logic or configuration
2992// into the SDK's request lifecycle. Such as custom headers, or retry logic.
2993//
2994//
2995//    // Example sending a request using the GetTemplateSummaryRequest method.
2996//    req, resp := client.GetTemplateSummaryRequest(params)
2997//
2998//    err := req.Send()
2999//    if err == nil { // resp is now filled
3000//        fmt.Println(resp)
3001//    }
3002//
3003// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/GetTemplateSummary
3004func (c *CloudFormation) GetTemplateSummaryRequest(input *GetTemplateSummaryInput) (req *request.Request, output *GetTemplateSummaryOutput) {
3005	op := &request.Operation{
3006		Name:       opGetTemplateSummary,
3007		HTTPMethod: "POST",
3008		HTTPPath:   "/",
3009	}
3010
3011	if input == nil {
3012		input = &GetTemplateSummaryInput{}
3013	}
3014
3015	output = &GetTemplateSummaryOutput{}
3016	req = c.newRequest(op, input, output)
3017	return
3018}
3019
3020// GetTemplateSummary API operation for AWS CloudFormation.
3021//
3022// Returns information about a new or existing template. The GetTemplateSummary
3023// action is useful for viewing parameter information, such as default parameter
3024// values and parameter types, before you create or update a stack or stack
3025// set.
3026//
3027// You can use the GetTemplateSummary action when you submit a template, or
3028// you can get template information for a stack set, or a running or deleted
3029// stack.
3030//
3031// For deleted stacks, GetTemplateSummary returns the template information for
3032// up to 90 days after the stack has been deleted. If the template does not
3033// exist, a ValidationError is returned.
3034//
3035// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
3036// with awserr.Error's Code and Message methods to get detailed information about
3037// the error.
3038//
3039// See the AWS API reference guide for AWS CloudFormation's
3040// API operation GetTemplateSummary for usage and error information.
3041//
3042// Returned Error Codes:
3043//   * ErrCodeStackSetNotFoundException "StackSetNotFoundException"
3044//   The specified stack set doesn't exist.
3045//
3046// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/GetTemplateSummary
3047func (c *CloudFormation) GetTemplateSummary(input *GetTemplateSummaryInput) (*GetTemplateSummaryOutput, error) {
3048	req, out := c.GetTemplateSummaryRequest(input)
3049	return out, req.Send()
3050}
3051
3052// GetTemplateSummaryWithContext is the same as GetTemplateSummary with the addition of
3053// the ability to pass a context and additional request options.
3054//
3055// See GetTemplateSummary for details on how to use this API operation.
3056//
3057// The context must be non-nil and will be used for request cancellation. If
3058// the context is nil a panic will occur. In the future the SDK may create
3059// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3060// for more information on using Contexts.
3061func (c *CloudFormation) GetTemplateSummaryWithContext(ctx aws.Context, input *GetTemplateSummaryInput, opts ...request.Option) (*GetTemplateSummaryOutput, error) {
3062	req, out := c.GetTemplateSummaryRequest(input)
3063	req.SetContext(ctx)
3064	req.ApplyOptions(opts...)
3065	return out, req.Send()
3066}
3067
3068const opListChangeSets = "ListChangeSets"
3069
3070// ListChangeSetsRequest generates a "aws/request.Request" representing the
3071// client's request for the ListChangeSets operation. The "output" return
3072// value will be populated with the request's response once the request completes
3073// successfully.
3074//
3075// Use "Send" method on the returned Request to send the API call to the service.
3076// the "output" return value is not valid until after Send returns without error.
3077//
3078// See ListChangeSets for more information on using the ListChangeSets
3079// API call, and error handling.
3080//
3081// This method is useful when you want to inject custom logic or configuration
3082// into the SDK's request lifecycle. Such as custom headers, or retry logic.
3083//
3084//
3085//    // Example sending a request using the ListChangeSetsRequest method.
3086//    req, resp := client.ListChangeSetsRequest(params)
3087//
3088//    err := req.Send()
3089//    if err == nil { // resp is now filled
3090//        fmt.Println(resp)
3091//    }
3092//
3093// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/ListChangeSets
3094func (c *CloudFormation) ListChangeSetsRequest(input *ListChangeSetsInput) (req *request.Request, output *ListChangeSetsOutput) {
3095	op := &request.Operation{
3096		Name:       opListChangeSets,
3097		HTTPMethod: "POST",
3098		HTTPPath:   "/",
3099		Paginator: &request.Paginator{
3100			InputTokens:     []string{"NextToken"},
3101			OutputTokens:    []string{"NextToken"},
3102			LimitToken:      "",
3103			TruncationToken: "",
3104		},
3105	}
3106
3107	if input == nil {
3108		input = &ListChangeSetsInput{}
3109	}
3110
3111	output = &ListChangeSetsOutput{}
3112	req = c.newRequest(op, input, output)
3113	return
3114}
3115
3116// ListChangeSets API operation for AWS CloudFormation.
3117//
3118// Returns the ID and status of each active change set for a stack. For example,
3119// AWS CloudFormation lists change sets that are in the CREATE_IN_PROGRESS or
3120// CREATE_PENDING state.
3121//
3122// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
3123// with awserr.Error's Code and Message methods to get detailed information about
3124// the error.
3125//
3126// See the AWS API reference guide for AWS CloudFormation's
3127// API operation ListChangeSets for usage and error information.
3128// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/ListChangeSets
3129func (c *CloudFormation) ListChangeSets(input *ListChangeSetsInput) (*ListChangeSetsOutput, error) {
3130	req, out := c.ListChangeSetsRequest(input)
3131	return out, req.Send()
3132}
3133
3134// ListChangeSetsWithContext is the same as ListChangeSets with the addition of
3135// the ability to pass a context and additional request options.
3136//
3137// See ListChangeSets for details on how to use this API operation.
3138//
3139// The context must be non-nil and will be used for request cancellation. If
3140// the context is nil a panic will occur. In the future the SDK may create
3141// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3142// for more information on using Contexts.
3143func (c *CloudFormation) ListChangeSetsWithContext(ctx aws.Context, input *ListChangeSetsInput, opts ...request.Option) (*ListChangeSetsOutput, error) {
3144	req, out := c.ListChangeSetsRequest(input)
3145	req.SetContext(ctx)
3146	req.ApplyOptions(opts...)
3147	return out, req.Send()
3148}
3149
3150// ListChangeSetsPages iterates over the pages of a ListChangeSets operation,
3151// calling the "fn" function with the response data for each page. To stop
3152// iterating, return false from the fn function.
3153//
3154// See ListChangeSets method for more information on how to use this operation.
3155//
3156// Note: This operation can generate multiple requests to a service.
3157//
3158//    // Example iterating over at most 3 pages of a ListChangeSets operation.
3159//    pageNum := 0
3160//    err := client.ListChangeSetsPages(params,
3161//        func(page *cloudformation.ListChangeSetsOutput, lastPage bool) bool {
3162//            pageNum++
3163//            fmt.Println(page)
3164//            return pageNum <= 3
3165//        })
3166//
3167func (c *CloudFormation) ListChangeSetsPages(input *ListChangeSetsInput, fn func(*ListChangeSetsOutput, bool) bool) error {
3168	return c.ListChangeSetsPagesWithContext(aws.BackgroundContext(), input, fn)
3169}
3170
3171// ListChangeSetsPagesWithContext same as ListChangeSetsPages except
3172// it takes a Context and allows setting request options on the pages.
3173//
3174// The context must be non-nil and will be used for request cancellation. If
3175// the context is nil a panic will occur. In the future the SDK may create
3176// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3177// for more information on using Contexts.
3178func (c *CloudFormation) ListChangeSetsPagesWithContext(ctx aws.Context, input *ListChangeSetsInput, fn func(*ListChangeSetsOutput, bool) bool, opts ...request.Option) error {
3179	p := request.Pagination{
3180		NewRequest: func() (*request.Request, error) {
3181			var inCpy *ListChangeSetsInput
3182			if input != nil {
3183				tmp := *input
3184				inCpy = &tmp
3185			}
3186			req, _ := c.ListChangeSetsRequest(inCpy)
3187			req.SetContext(ctx)
3188			req.ApplyOptions(opts...)
3189			return req, nil
3190		},
3191	}
3192
3193	for p.Next() {
3194		if !fn(p.Page().(*ListChangeSetsOutput), !p.HasNextPage()) {
3195			break
3196		}
3197	}
3198
3199	return p.Err()
3200}
3201
3202const opListExports = "ListExports"
3203
3204// ListExportsRequest generates a "aws/request.Request" representing the
3205// client's request for the ListExports operation. The "output" return
3206// value will be populated with the request's response once the request completes
3207// successfully.
3208//
3209// Use "Send" method on the returned Request to send the API call to the service.
3210// the "output" return value is not valid until after Send returns without error.
3211//
3212// See ListExports for more information on using the ListExports
3213// API call, and error handling.
3214//
3215// This method is useful when you want to inject custom logic or configuration
3216// into the SDK's request lifecycle. Such as custom headers, or retry logic.
3217//
3218//
3219//    // Example sending a request using the ListExportsRequest method.
3220//    req, resp := client.ListExportsRequest(params)
3221//
3222//    err := req.Send()
3223//    if err == nil { // resp is now filled
3224//        fmt.Println(resp)
3225//    }
3226//
3227// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/ListExports
3228func (c *CloudFormation) ListExportsRequest(input *ListExportsInput) (req *request.Request, output *ListExportsOutput) {
3229	op := &request.Operation{
3230		Name:       opListExports,
3231		HTTPMethod: "POST",
3232		HTTPPath:   "/",
3233		Paginator: &request.Paginator{
3234			InputTokens:     []string{"NextToken"},
3235			OutputTokens:    []string{"NextToken"},
3236			LimitToken:      "",
3237			TruncationToken: "",
3238		},
3239	}
3240
3241	if input == nil {
3242		input = &ListExportsInput{}
3243	}
3244
3245	output = &ListExportsOutput{}
3246	req = c.newRequest(op, input, output)
3247	return
3248}
3249
3250// ListExports API operation for AWS CloudFormation.
3251//
3252// Lists all exported output values in the account and Region in which you call
3253// this action. Use this action to see the exported output values that you can
3254// import into other stacks. To import values, use the Fn::ImportValue (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/intrinsic-function-reference-importvalue.html)
3255// function.
3256//
3257// For more information, see AWS CloudFormation Export Stack Output Values (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-stack-exports.html).
3258//
3259// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
3260// with awserr.Error's Code and Message methods to get detailed information about
3261// the error.
3262//
3263// See the AWS API reference guide for AWS CloudFormation's
3264// API operation ListExports for usage and error information.
3265// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/ListExports
3266func (c *CloudFormation) ListExports(input *ListExportsInput) (*ListExportsOutput, error) {
3267	req, out := c.ListExportsRequest(input)
3268	return out, req.Send()
3269}
3270
3271// ListExportsWithContext is the same as ListExports with the addition of
3272// the ability to pass a context and additional request options.
3273//
3274// See ListExports for details on how to use this API operation.
3275//
3276// The context must be non-nil and will be used for request cancellation. If
3277// the context is nil a panic will occur. In the future the SDK may create
3278// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3279// for more information on using Contexts.
3280func (c *CloudFormation) ListExportsWithContext(ctx aws.Context, input *ListExportsInput, opts ...request.Option) (*ListExportsOutput, error) {
3281	req, out := c.ListExportsRequest(input)
3282	req.SetContext(ctx)
3283	req.ApplyOptions(opts...)
3284	return out, req.Send()
3285}
3286
3287// ListExportsPages iterates over the pages of a ListExports operation,
3288// calling the "fn" function with the response data for each page. To stop
3289// iterating, return false from the fn function.
3290//
3291// See ListExports method for more information on how to use this operation.
3292//
3293// Note: This operation can generate multiple requests to a service.
3294//
3295//    // Example iterating over at most 3 pages of a ListExports operation.
3296//    pageNum := 0
3297//    err := client.ListExportsPages(params,
3298//        func(page *cloudformation.ListExportsOutput, lastPage bool) bool {
3299//            pageNum++
3300//            fmt.Println(page)
3301//            return pageNum <= 3
3302//        })
3303//
3304func (c *CloudFormation) ListExportsPages(input *ListExportsInput, fn func(*ListExportsOutput, bool) bool) error {
3305	return c.ListExportsPagesWithContext(aws.BackgroundContext(), input, fn)
3306}
3307
3308// ListExportsPagesWithContext same as ListExportsPages except
3309// it takes a Context and allows setting request options on the pages.
3310//
3311// The context must be non-nil and will be used for request cancellation. If
3312// the context is nil a panic will occur. In the future the SDK may create
3313// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3314// for more information on using Contexts.
3315func (c *CloudFormation) ListExportsPagesWithContext(ctx aws.Context, input *ListExportsInput, fn func(*ListExportsOutput, bool) bool, opts ...request.Option) error {
3316	p := request.Pagination{
3317		NewRequest: func() (*request.Request, error) {
3318			var inCpy *ListExportsInput
3319			if input != nil {
3320				tmp := *input
3321				inCpy = &tmp
3322			}
3323			req, _ := c.ListExportsRequest(inCpy)
3324			req.SetContext(ctx)
3325			req.ApplyOptions(opts...)
3326			return req, nil
3327		},
3328	}
3329
3330	for p.Next() {
3331		if !fn(p.Page().(*ListExportsOutput), !p.HasNextPage()) {
3332			break
3333		}
3334	}
3335
3336	return p.Err()
3337}
3338
3339const opListImports = "ListImports"
3340
3341// ListImportsRequest generates a "aws/request.Request" representing the
3342// client's request for the ListImports operation. The "output" return
3343// value will be populated with the request's response once the request completes
3344// successfully.
3345//
3346// Use "Send" method on the returned Request to send the API call to the service.
3347// the "output" return value is not valid until after Send returns without error.
3348//
3349// See ListImports for more information on using the ListImports
3350// API call, and error handling.
3351//
3352// This method is useful when you want to inject custom logic or configuration
3353// into the SDK's request lifecycle. Such as custom headers, or retry logic.
3354//
3355//
3356//    // Example sending a request using the ListImportsRequest method.
3357//    req, resp := client.ListImportsRequest(params)
3358//
3359//    err := req.Send()
3360//    if err == nil { // resp is now filled
3361//        fmt.Println(resp)
3362//    }
3363//
3364// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/ListImports
3365func (c *CloudFormation) ListImportsRequest(input *ListImportsInput) (req *request.Request, output *ListImportsOutput) {
3366	op := &request.Operation{
3367		Name:       opListImports,
3368		HTTPMethod: "POST",
3369		HTTPPath:   "/",
3370		Paginator: &request.Paginator{
3371			InputTokens:     []string{"NextToken"},
3372			OutputTokens:    []string{"NextToken"},
3373			LimitToken:      "",
3374			TruncationToken: "",
3375		},
3376	}
3377
3378	if input == nil {
3379		input = &ListImportsInput{}
3380	}
3381
3382	output = &ListImportsOutput{}
3383	req = c.newRequest(op, input, output)
3384	return
3385}
3386
3387// ListImports API operation for AWS CloudFormation.
3388//
3389// Lists all stacks that are importing an exported output value. To modify or
3390// remove an exported output value, first use this action to see which stacks
3391// are using it. To see the exported output values in your account, see ListExports.
3392//
3393// For more information about importing an exported output value, see the Fn::ImportValue
3394// (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/intrinsic-function-reference-importvalue.html)
3395// function.
3396//
3397// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
3398// with awserr.Error's Code and Message methods to get detailed information about
3399// the error.
3400//
3401// See the AWS API reference guide for AWS CloudFormation's
3402// API operation ListImports for usage and error information.
3403// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/ListImports
3404func (c *CloudFormation) ListImports(input *ListImportsInput) (*ListImportsOutput, error) {
3405	req, out := c.ListImportsRequest(input)
3406	return out, req.Send()
3407}
3408
3409// ListImportsWithContext is the same as ListImports with the addition of
3410// the ability to pass a context and additional request options.
3411//
3412// See ListImports for details on how to use this API operation.
3413//
3414// The context must be non-nil and will be used for request cancellation. If
3415// the context is nil a panic will occur. In the future the SDK may create
3416// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3417// for more information on using Contexts.
3418func (c *CloudFormation) ListImportsWithContext(ctx aws.Context, input *ListImportsInput, opts ...request.Option) (*ListImportsOutput, error) {
3419	req, out := c.ListImportsRequest(input)
3420	req.SetContext(ctx)
3421	req.ApplyOptions(opts...)
3422	return out, req.Send()
3423}
3424
3425// ListImportsPages iterates over the pages of a ListImports operation,
3426// calling the "fn" function with the response data for each page. To stop
3427// iterating, return false from the fn function.
3428//
3429// See ListImports method for more information on how to use this operation.
3430//
3431// Note: This operation can generate multiple requests to a service.
3432//
3433//    // Example iterating over at most 3 pages of a ListImports operation.
3434//    pageNum := 0
3435//    err := client.ListImportsPages(params,
3436//        func(page *cloudformation.ListImportsOutput, lastPage bool) bool {
3437//            pageNum++
3438//            fmt.Println(page)
3439//            return pageNum <= 3
3440//        })
3441//
3442func (c *CloudFormation) ListImportsPages(input *ListImportsInput, fn func(*ListImportsOutput, bool) bool) error {
3443	return c.ListImportsPagesWithContext(aws.BackgroundContext(), input, fn)
3444}
3445
3446// ListImportsPagesWithContext same as ListImportsPages except
3447// it takes a Context and allows setting request options on the pages.
3448//
3449// The context must be non-nil and will be used for request cancellation. If
3450// the context is nil a panic will occur. In the future the SDK may create
3451// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3452// for more information on using Contexts.
3453func (c *CloudFormation) ListImportsPagesWithContext(ctx aws.Context, input *ListImportsInput, fn func(*ListImportsOutput, bool) bool, opts ...request.Option) error {
3454	p := request.Pagination{
3455		NewRequest: func() (*request.Request, error) {
3456			var inCpy *ListImportsInput
3457			if input != nil {
3458				tmp := *input
3459				inCpy = &tmp
3460			}
3461			req, _ := c.ListImportsRequest(inCpy)
3462			req.SetContext(ctx)
3463			req.ApplyOptions(opts...)
3464			return req, nil
3465		},
3466	}
3467
3468	for p.Next() {
3469		if !fn(p.Page().(*ListImportsOutput), !p.HasNextPage()) {
3470			break
3471		}
3472	}
3473
3474	return p.Err()
3475}
3476
3477const opListStackInstances = "ListStackInstances"
3478
3479// ListStackInstancesRequest generates a "aws/request.Request" representing the
3480// client's request for the ListStackInstances operation. The "output" return
3481// value will be populated with the request's response once the request completes
3482// successfully.
3483//
3484// Use "Send" method on the returned Request to send the API call to the service.
3485// the "output" return value is not valid until after Send returns without error.
3486//
3487// See ListStackInstances for more information on using the ListStackInstances
3488// API call, and error handling.
3489//
3490// This method is useful when you want to inject custom logic or configuration
3491// into the SDK's request lifecycle. Such as custom headers, or retry logic.
3492//
3493//
3494//    // Example sending a request using the ListStackInstancesRequest method.
3495//    req, resp := client.ListStackInstancesRequest(params)
3496//
3497//    err := req.Send()
3498//    if err == nil { // resp is now filled
3499//        fmt.Println(resp)
3500//    }
3501//
3502// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/ListStackInstances
3503func (c *CloudFormation) ListStackInstancesRequest(input *ListStackInstancesInput) (req *request.Request, output *ListStackInstancesOutput) {
3504	op := &request.Operation{
3505		Name:       opListStackInstances,
3506		HTTPMethod: "POST",
3507		HTTPPath:   "/",
3508		Paginator: &request.Paginator{
3509			InputTokens:     []string{"NextToken"},
3510			OutputTokens:    []string{"NextToken"},
3511			LimitToken:      "MaxResults",
3512			TruncationToken: "",
3513		},
3514	}
3515
3516	if input == nil {
3517		input = &ListStackInstancesInput{}
3518	}
3519
3520	output = &ListStackInstancesOutput{}
3521	req = c.newRequest(op, input, output)
3522	return
3523}
3524
3525// ListStackInstances API operation for AWS CloudFormation.
3526//
3527// Returns summary information about stack instances that are associated with
3528// the specified stack set. You can filter for stack instances that are associated
3529// with a specific AWS account name or Region, or that have a specific status.
3530//
3531// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
3532// with awserr.Error's Code and Message methods to get detailed information about
3533// the error.
3534//
3535// See the AWS API reference guide for AWS CloudFormation's
3536// API operation ListStackInstances for usage and error information.
3537//
3538// Returned Error Codes:
3539//   * ErrCodeStackSetNotFoundException "StackSetNotFoundException"
3540//   The specified stack set doesn't exist.
3541//
3542// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/ListStackInstances
3543func (c *CloudFormation) ListStackInstances(input *ListStackInstancesInput) (*ListStackInstancesOutput, error) {
3544	req, out := c.ListStackInstancesRequest(input)
3545	return out, req.Send()
3546}
3547
3548// ListStackInstancesWithContext is the same as ListStackInstances with the addition of
3549// the ability to pass a context and additional request options.
3550//
3551// See ListStackInstances for details on how to use this API operation.
3552//
3553// The context must be non-nil and will be used for request cancellation. If
3554// the context is nil a panic will occur. In the future the SDK may create
3555// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3556// for more information on using Contexts.
3557func (c *CloudFormation) ListStackInstancesWithContext(ctx aws.Context, input *ListStackInstancesInput, opts ...request.Option) (*ListStackInstancesOutput, error) {
3558	req, out := c.ListStackInstancesRequest(input)
3559	req.SetContext(ctx)
3560	req.ApplyOptions(opts...)
3561	return out, req.Send()
3562}
3563
3564// ListStackInstancesPages iterates over the pages of a ListStackInstances operation,
3565// calling the "fn" function with the response data for each page. To stop
3566// iterating, return false from the fn function.
3567//
3568// See ListStackInstances method for more information on how to use this operation.
3569//
3570// Note: This operation can generate multiple requests to a service.
3571//
3572//    // Example iterating over at most 3 pages of a ListStackInstances operation.
3573//    pageNum := 0
3574//    err := client.ListStackInstancesPages(params,
3575//        func(page *cloudformation.ListStackInstancesOutput, lastPage bool) bool {
3576//            pageNum++
3577//            fmt.Println(page)
3578//            return pageNum <= 3
3579//        })
3580//
3581func (c *CloudFormation) ListStackInstancesPages(input *ListStackInstancesInput, fn func(*ListStackInstancesOutput, bool) bool) error {
3582	return c.ListStackInstancesPagesWithContext(aws.BackgroundContext(), input, fn)
3583}
3584
3585// ListStackInstancesPagesWithContext same as ListStackInstancesPages except
3586// it takes a Context and allows setting request options on the pages.
3587//
3588// The context must be non-nil and will be used for request cancellation. If
3589// the context is nil a panic will occur. In the future the SDK may create
3590// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3591// for more information on using Contexts.
3592func (c *CloudFormation) ListStackInstancesPagesWithContext(ctx aws.Context, input *ListStackInstancesInput, fn func(*ListStackInstancesOutput, bool) bool, opts ...request.Option) error {
3593	p := request.Pagination{
3594		NewRequest: func() (*request.Request, error) {
3595			var inCpy *ListStackInstancesInput
3596			if input != nil {
3597				tmp := *input
3598				inCpy = &tmp
3599			}
3600			req, _ := c.ListStackInstancesRequest(inCpy)
3601			req.SetContext(ctx)
3602			req.ApplyOptions(opts...)
3603			return req, nil
3604		},
3605	}
3606
3607	for p.Next() {
3608		if !fn(p.Page().(*ListStackInstancesOutput), !p.HasNextPage()) {
3609			break
3610		}
3611	}
3612
3613	return p.Err()
3614}
3615
3616const opListStackResources = "ListStackResources"
3617
3618// ListStackResourcesRequest generates a "aws/request.Request" representing the
3619// client's request for the ListStackResources operation. The "output" return
3620// value will be populated with the request's response once the request completes
3621// successfully.
3622//
3623// Use "Send" method on the returned Request to send the API call to the service.
3624// the "output" return value is not valid until after Send returns without error.
3625//
3626// See ListStackResources for more information on using the ListStackResources
3627// API call, and error handling.
3628//
3629// This method is useful when you want to inject custom logic or configuration
3630// into the SDK's request lifecycle. Such as custom headers, or retry logic.
3631//
3632//
3633//    // Example sending a request using the ListStackResourcesRequest method.
3634//    req, resp := client.ListStackResourcesRequest(params)
3635//
3636//    err := req.Send()
3637//    if err == nil { // resp is now filled
3638//        fmt.Println(resp)
3639//    }
3640//
3641// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/ListStackResources
3642func (c *CloudFormation) ListStackResourcesRequest(input *ListStackResourcesInput) (req *request.Request, output *ListStackResourcesOutput) {
3643	op := &request.Operation{
3644		Name:       opListStackResources,
3645		HTTPMethod: "POST",
3646		HTTPPath:   "/",
3647		Paginator: &request.Paginator{
3648			InputTokens:     []string{"NextToken"},
3649			OutputTokens:    []string{"NextToken"},
3650			LimitToken:      "",
3651			TruncationToken: "",
3652		},
3653	}
3654
3655	if input == nil {
3656		input = &ListStackResourcesInput{}
3657	}
3658
3659	output = &ListStackResourcesOutput{}
3660	req = c.newRequest(op, input, output)
3661	return
3662}
3663
3664// ListStackResources API operation for AWS CloudFormation.
3665//
3666// Returns descriptions of all resources of the specified stack.
3667//
3668// For deleted stacks, ListStackResources returns resource information for up
3669// to 90 days after the stack has been deleted.
3670//
3671// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
3672// with awserr.Error's Code and Message methods to get detailed information about
3673// the error.
3674//
3675// See the AWS API reference guide for AWS CloudFormation's
3676// API operation ListStackResources for usage and error information.
3677// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/ListStackResources
3678func (c *CloudFormation) ListStackResources(input *ListStackResourcesInput) (*ListStackResourcesOutput, error) {
3679	req, out := c.ListStackResourcesRequest(input)
3680	return out, req.Send()
3681}
3682
3683// ListStackResourcesWithContext is the same as ListStackResources with the addition of
3684// the ability to pass a context and additional request options.
3685//
3686// See ListStackResources for details on how to use this API operation.
3687//
3688// The context must be non-nil and will be used for request cancellation. If
3689// the context is nil a panic will occur. In the future the SDK may create
3690// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3691// for more information on using Contexts.
3692func (c *CloudFormation) ListStackResourcesWithContext(ctx aws.Context, input *ListStackResourcesInput, opts ...request.Option) (*ListStackResourcesOutput, error) {
3693	req, out := c.ListStackResourcesRequest(input)
3694	req.SetContext(ctx)
3695	req.ApplyOptions(opts...)
3696	return out, req.Send()
3697}
3698
3699// ListStackResourcesPages iterates over the pages of a ListStackResources operation,
3700// calling the "fn" function with the response data for each page. To stop
3701// iterating, return false from the fn function.
3702//
3703// See ListStackResources method for more information on how to use this operation.
3704//
3705// Note: This operation can generate multiple requests to a service.
3706//
3707//    // Example iterating over at most 3 pages of a ListStackResources operation.
3708//    pageNum := 0
3709//    err := client.ListStackResourcesPages(params,
3710//        func(page *cloudformation.ListStackResourcesOutput, lastPage bool) bool {
3711//            pageNum++
3712//            fmt.Println(page)
3713//            return pageNum <= 3
3714//        })
3715//
3716func (c *CloudFormation) ListStackResourcesPages(input *ListStackResourcesInput, fn func(*ListStackResourcesOutput, bool) bool) error {
3717	return c.ListStackResourcesPagesWithContext(aws.BackgroundContext(), input, fn)
3718}
3719
3720// ListStackResourcesPagesWithContext same as ListStackResourcesPages except
3721// it takes a Context and allows setting request options on the pages.
3722//
3723// The context must be non-nil and will be used for request cancellation. If
3724// the context is nil a panic will occur. In the future the SDK may create
3725// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3726// for more information on using Contexts.
3727func (c *CloudFormation) ListStackResourcesPagesWithContext(ctx aws.Context, input *ListStackResourcesInput, fn func(*ListStackResourcesOutput, bool) bool, opts ...request.Option) error {
3728	p := request.Pagination{
3729		NewRequest: func() (*request.Request, error) {
3730			var inCpy *ListStackResourcesInput
3731			if input != nil {
3732				tmp := *input
3733				inCpy = &tmp
3734			}
3735			req, _ := c.ListStackResourcesRequest(inCpy)
3736			req.SetContext(ctx)
3737			req.ApplyOptions(opts...)
3738			return req, nil
3739		},
3740	}
3741
3742	for p.Next() {
3743		if !fn(p.Page().(*ListStackResourcesOutput), !p.HasNextPage()) {
3744			break
3745		}
3746	}
3747
3748	return p.Err()
3749}
3750
3751const opListStackSetOperationResults = "ListStackSetOperationResults"
3752
3753// ListStackSetOperationResultsRequest generates a "aws/request.Request" representing the
3754// client's request for the ListStackSetOperationResults operation. The "output" return
3755// value will be populated with the request's response once the request completes
3756// successfully.
3757//
3758// Use "Send" method on the returned Request to send the API call to the service.
3759// the "output" return value is not valid until after Send returns without error.
3760//
3761// See ListStackSetOperationResults for more information on using the ListStackSetOperationResults
3762// API call, and error handling.
3763//
3764// This method is useful when you want to inject custom logic or configuration
3765// into the SDK's request lifecycle. Such as custom headers, or retry logic.
3766//
3767//
3768//    // Example sending a request using the ListStackSetOperationResultsRequest method.
3769//    req, resp := client.ListStackSetOperationResultsRequest(params)
3770//
3771//    err := req.Send()
3772//    if err == nil { // resp is now filled
3773//        fmt.Println(resp)
3774//    }
3775//
3776// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/ListStackSetOperationResults
3777func (c *CloudFormation) ListStackSetOperationResultsRequest(input *ListStackSetOperationResultsInput) (req *request.Request, output *ListStackSetOperationResultsOutput) {
3778	op := &request.Operation{
3779		Name:       opListStackSetOperationResults,
3780		HTTPMethod: "POST",
3781		HTTPPath:   "/",
3782		Paginator: &request.Paginator{
3783			InputTokens:     []string{"NextToken"},
3784			OutputTokens:    []string{"NextToken"},
3785			LimitToken:      "MaxResults",
3786			TruncationToken: "",
3787		},
3788	}
3789
3790	if input == nil {
3791		input = &ListStackSetOperationResultsInput{}
3792	}
3793
3794	output = &ListStackSetOperationResultsOutput{}
3795	req = c.newRequest(op, input, output)
3796	return
3797}
3798
3799// ListStackSetOperationResults API operation for AWS CloudFormation.
3800//
3801// Returns summary information about the results of a stack set operation.
3802//
3803// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
3804// with awserr.Error's Code and Message methods to get detailed information about
3805// the error.
3806//
3807// See the AWS API reference guide for AWS CloudFormation's
3808// API operation ListStackSetOperationResults for usage and error information.
3809//
3810// Returned Error Codes:
3811//   * ErrCodeStackSetNotFoundException "StackSetNotFoundException"
3812//   The specified stack set doesn't exist.
3813//
3814//   * ErrCodeOperationNotFoundException "OperationNotFoundException"
3815//   The specified ID refers to an operation that doesn't exist.
3816//
3817// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/ListStackSetOperationResults
3818func (c *CloudFormation) ListStackSetOperationResults(input *ListStackSetOperationResultsInput) (*ListStackSetOperationResultsOutput, error) {
3819	req, out := c.ListStackSetOperationResultsRequest(input)
3820	return out, req.Send()
3821}
3822
3823// ListStackSetOperationResultsWithContext is the same as ListStackSetOperationResults with the addition of
3824// the ability to pass a context and additional request options.
3825//
3826// See ListStackSetOperationResults for details on how to use this API operation.
3827//
3828// The context must be non-nil and will be used for request cancellation. If
3829// the context is nil a panic will occur. In the future the SDK may create
3830// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3831// for more information on using Contexts.
3832func (c *CloudFormation) ListStackSetOperationResultsWithContext(ctx aws.Context, input *ListStackSetOperationResultsInput, opts ...request.Option) (*ListStackSetOperationResultsOutput, error) {
3833	req, out := c.ListStackSetOperationResultsRequest(input)
3834	req.SetContext(ctx)
3835	req.ApplyOptions(opts...)
3836	return out, req.Send()
3837}
3838
3839// ListStackSetOperationResultsPages iterates over the pages of a ListStackSetOperationResults operation,
3840// calling the "fn" function with the response data for each page. To stop
3841// iterating, return false from the fn function.
3842//
3843// See ListStackSetOperationResults method for more information on how to use this operation.
3844//
3845// Note: This operation can generate multiple requests to a service.
3846//
3847//    // Example iterating over at most 3 pages of a ListStackSetOperationResults operation.
3848//    pageNum := 0
3849//    err := client.ListStackSetOperationResultsPages(params,
3850//        func(page *cloudformation.ListStackSetOperationResultsOutput, lastPage bool) bool {
3851//            pageNum++
3852//            fmt.Println(page)
3853//            return pageNum <= 3
3854//        })
3855//
3856func (c *CloudFormation) ListStackSetOperationResultsPages(input *ListStackSetOperationResultsInput, fn func(*ListStackSetOperationResultsOutput, bool) bool) error {
3857	return c.ListStackSetOperationResultsPagesWithContext(aws.BackgroundContext(), input, fn)
3858}
3859
3860// ListStackSetOperationResultsPagesWithContext same as ListStackSetOperationResultsPages except
3861// it takes a Context and allows setting request options on the pages.
3862//
3863// The context must be non-nil and will be used for request cancellation. If
3864// the context is nil a panic will occur. In the future the SDK may create
3865// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3866// for more information on using Contexts.
3867func (c *CloudFormation) ListStackSetOperationResultsPagesWithContext(ctx aws.Context, input *ListStackSetOperationResultsInput, fn func(*ListStackSetOperationResultsOutput, bool) bool, opts ...request.Option) error {
3868	p := request.Pagination{
3869		NewRequest: func() (*request.Request, error) {
3870			var inCpy *ListStackSetOperationResultsInput
3871			if input != nil {
3872				tmp := *input
3873				inCpy = &tmp
3874			}
3875			req, _ := c.ListStackSetOperationResultsRequest(inCpy)
3876			req.SetContext(ctx)
3877			req.ApplyOptions(opts...)
3878			return req, nil
3879		},
3880	}
3881
3882	for p.Next() {
3883		if !fn(p.Page().(*ListStackSetOperationResultsOutput), !p.HasNextPage()) {
3884			break
3885		}
3886	}
3887
3888	return p.Err()
3889}
3890
3891const opListStackSetOperations = "ListStackSetOperations"
3892
3893// ListStackSetOperationsRequest generates a "aws/request.Request" representing the
3894// client's request for the ListStackSetOperations operation. The "output" return
3895// value will be populated with the request's response once the request completes
3896// successfully.
3897//
3898// Use "Send" method on the returned Request to send the API call to the service.
3899// the "output" return value is not valid until after Send returns without error.
3900//
3901// See ListStackSetOperations for more information on using the ListStackSetOperations
3902// API call, and error handling.
3903//
3904// This method is useful when you want to inject custom logic or configuration
3905// into the SDK's request lifecycle. Such as custom headers, or retry logic.
3906//
3907//
3908//    // Example sending a request using the ListStackSetOperationsRequest method.
3909//    req, resp := client.ListStackSetOperationsRequest(params)
3910//
3911//    err := req.Send()
3912//    if err == nil { // resp is now filled
3913//        fmt.Println(resp)
3914//    }
3915//
3916// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/ListStackSetOperations
3917func (c *CloudFormation) ListStackSetOperationsRequest(input *ListStackSetOperationsInput) (req *request.Request, output *ListStackSetOperationsOutput) {
3918	op := &request.Operation{
3919		Name:       opListStackSetOperations,
3920		HTTPMethod: "POST",
3921		HTTPPath:   "/",
3922		Paginator: &request.Paginator{
3923			InputTokens:     []string{"NextToken"},
3924			OutputTokens:    []string{"NextToken"},
3925			LimitToken:      "MaxResults",
3926			TruncationToken: "",
3927		},
3928	}
3929
3930	if input == nil {
3931		input = &ListStackSetOperationsInput{}
3932	}
3933
3934	output = &ListStackSetOperationsOutput{}
3935	req = c.newRequest(op, input, output)
3936	return
3937}
3938
3939// ListStackSetOperations API operation for AWS CloudFormation.
3940//
3941// Returns summary information about operations performed on a stack set.
3942//
3943// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
3944// with awserr.Error's Code and Message methods to get detailed information about
3945// the error.
3946//
3947// See the AWS API reference guide for AWS CloudFormation's
3948// API operation ListStackSetOperations for usage and error information.
3949//
3950// Returned Error Codes:
3951//   * ErrCodeStackSetNotFoundException "StackSetNotFoundException"
3952//   The specified stack set doesn't exist.
3953//
3954// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/ListStackSetOperations
3955func (c *CloudFormation) ListStackSetOperations(input *ListStackSetOperationsInput) (*ListStackSetOperationsOutput, error) {
3956	req, out := c.ListStackSetOperationsRequest(input)
3957	return out, req.Send()
3958}
3959
3960// ListStackSetOperationsWithContext is the same as ListStackSetOperations with the addition of
3961// the ability to pass a context and additional request options.
3962//
3963// See ListStackSetOperations for details on how to use this API operation.
3964//
3965// The context must be non-nil and will be used for request cancellation. If
3966// the context is nil a panic will occur. In the future the SDK may create
3967// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3968// for more information on using Contexts.
3969func (c *CloudFormation) ListStackSetOperationsWithContext(ctx aws.Context, input *ListStackSetOperationsInput, opts ...request.Option) (*ListStackSetOperationsOutput, error) {
3970	req, out := c.ListStackSetOperationsRequest(input)
3971	req.SetContext(ctx)
3972	req.ApplyOptions(opts...)
3973	return out, req.Send()
3974}
3975
3976// ListStackSetOperationsPages iterates over the pages of a ListStackSetOperations operation,
3977// calling the "fn" function with the response data for each page. To stop
3978// iterating, return false from the fn function.
3979//
3980// See ListStackSetOperations method for more information on how to use this operation.
3981//
3982// Note: This operation can generate multiple requests to a service.
3983//
3984//    // Example iterating over at most 3 pages of a ListStackSetOperations operation.
3985//    pageNum := 0
3986//    err := client.ListStackSetOperationsPages(params,
3987//        func(page *cloudformation.ListStackSetOperationsOutput, lastPage bool) bool {
3988//            pageNum++
3989//            fmt.Println(page)
3990//            return pageNum <= 3
3991//        })
3992//
3993func (c *CloudFormation) ListStackSetOperationsPages(input *ListStackSetOperationsInput, fn func(*ListStackSetOperationsOutput, bool) bool) error {
3994	return c.ListStackSetOperationsPagesWithContext(aws.BackgroundContext(), input, fn)
3995}
3996
3997// ListStackSetOperationsPagesWithContext same as ListStackSetOperationsPages except
3998// it takes a Context and allows setting request options on the pages.
3999//
4000// The context must be non-nil and will be used for request cancellation. If
4001// the context is nil a panic will occur. In the future the SDK may create
4002// sub-contexts for http.Requests. See https://golang.org/pkg/context/
4003// for more information on using Contexts.
4004func (c *CloudFormation) ListStackSetOperationsPagesWithContext(ctx aws.Context, input *ListStackSetOperationsInput, fn func(*ListStackSetOperationsOutput, bool) bool, opts ...request.Option) error {
4005	p := request.Pagination{
4006		NewRequest: func() (*request.Request, error) {
4007			var inCpy *ListStackSetOperationsInput
4008			if input != nil {
4009				tmp := *input
4010				inCpy = &tmp
4011			}
4012			req, _ := c.ListStackSetOperationsRequest(inCpy)
4013			req.SetContext(ctx)
4014			req.ApplyOptions(opts...)
4015			return req, nil
4016		},
4017	}
4018
4019	for p.Next() {
4020		if !fn(p.Page().(*ListStackSetOperationsOutput), !p.HasNextPage()) {
4021			break
4022		}
4023	}
4024
4025	return p.Err()
4026}
4027
4028const opListStackSets = "ListStackSets"
4029
4030// ListStackSetsRequest generates a "aws/request.Request" representing the
4031// client's request for the ListStackSets operation. The "output" return
4032// value will be populated with the request's response once the request completes
4033// successfully.
4034//
4035// Use "Send" method on the returned Request to send the API call to the service.
4036// the "output" return value is not valid until after Send returns without error.
4037//
4038// See ListStackSets for more information on using the ListStackSets
4039// API call, and error handling.
4040//
4041// This method is useful when you want to inject custom logic or configuration
4042// into the SDK's request lifecycle. Such as custom headers, or retry logic.
4043//
4044//
4045//    // Example sending a request using the ListStackSetsRequest method.
4046//    req, resp := client.ListStackSetsRequest(params)
4047//
4048//    err := req.Send()
4049//    if err == nil { // resp is now filled
4050//        fmt.Println(resp)
4051//    }
4052//
4053// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/ListStackSets
4054func (c *CloudFormation) ListStackSetsRequest(input *ListStackSetsInput) (req *request.Request, output *ListStackSetsOutput) {
4055	op := &request.Operation{
4056		Name:       opListStackSets,
4057		HTTPMethod: "POST",
4058		HTTPPath:   "/",
4059		Paginator: &request.Paginator{
4060			InputTokens:     []string{"NextToken"},
4061			OutputTokens:    []string{"NextToken"},
4062			LimitToken:      "MaxResults",
4063			TruncationToken: "",
4064		},
4065	}
4066
4067	if input == nil {
4068		input = &ListStackSetsInput{}
4069	}
4070
4071	output = &ListStackSetsOutput{}
4072	req = c.newRequest(op, input, output)
4073	return
4074}
4075
4076// ListStackSets API operation for AWS CloudFormation.
4077//
4078// Returns summary information about stack sets that are associated with the
4079// user.
4080//
4081// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
4082// with awserr.Error's Code and Message methods to get detailed information about
4083// the error.
4084//
4085// See the AWS API reference guide for AWS CloudFormation's
4086// API operation ListStackSets for usage and error information.
4087// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/ListStackSets
4088func (c *CloudFormation) ListStackSets(input *ListStackSetsInput) (*ListStackSetsOutput, error) {
4089	req, out := c.ListStackSetsRequest(input)
4090	return out, req.Send()
4091}
4092
4093// ListStackSetsWithContext is the same as ListStackSets with the addition of
4094// the ability to pass a context and additional request options.
4095//
4096// See ListStackSets for details on how to use this API operation.
4097//
4098// The context must be non-nil and will be used for request cancellation. If
4099// the context is nil a panic will occur. In the future the SDK may create
4100// sub-contexts for http.Requests. See https://golang.org/pkg/context/
4101// for more information on using Contexts.
4102func (c *CloudFormation) ListStackSetsWithContext(ctx aws.Context, input *ListStackSetsInput, opts ...request.Option) (*ListStackSetsOutput, error) {
4103	req, out := c.ListStackSetsRequest(input)
4104	req.SetContext(ctx)
4105	req.ApplyOptions(opts...)
4106	return out, req.Send()
4107}
4108
4109// ListStackSetsPages iterates over the pages of a ListStackSets operation,
4110// calling the "fn" function with the response data for each page. To stop
4111// iterating, return false from the fn function.
4112//
4113// See ListStackSets method for more information on how to use this operation.
4114//
4115// Note: This operation can generate multiple requests to a service.
4116//
4117//    // Example iterating over at most 3 pages of a ListStackSets operation.
4118//    pageNum := 0
4119//    err := client.ListStackSetsPages(params,
4120//        func(page *cloudformation.ListStackSetsOutput, lastPage bool) bool {
4121//            pageNum++
4122//            fmt.Println(page)
4123//            return pageNum <= 3
4124//        })
4125//
4126func (c *CloudFormation) ListStackSetsPages(input *ListStackSetsInput, fn func(*ListStackSetsOutput, bool) bool) error {
4127	return c.ListStackSetsPagesWithContext(aws.BackgroundContext(), input, fn)
4128}
4129
4130// ListStackSetsPagesWithContext same as ListStackSetsPages except
4131// it takes a Context and allows setting request options on the pages.
4132//
4133// The context must be non-nil and will be used for request cancellation. If
4134// the context is nil a panic will occur. In the future the SDK may create
4135// sub-contexts for http.Requests. See https://golang.org/pkg/context/
4136// for more information on using Contexts.
4137func (c *CloudFormation) ListStackSetsPagesWithContext(ctx aws.Context, input *ListStackSetsInput, fn func(*ListStackSetsOutput, bool) bool, opts ...request.Option) error {
4138	p := request.Pagination{
4139		NewRequest: func() (*request.Request, error) {
4140			var inCpy *ListStackSetsInput
4141			if input != nil {
4142				tmp := *input
4143				inCpy = &tmp
4144			}
4145			req, _ := c.ListStackSetsRequest(inCpy)
4146			req.SetContext(ctx)
4147			req.ApplyOptions(opts...)
4148			return req, nil
4149		},
4150	}
4151
4152	for p.Next() {
4153		if !fn(p.Page().(*ListStackSetsOutput), !p.HasNextPage()) {
4154			break
4155		}
4156	}
4157
4158	return p.Err()
4159}
4160
4161const opListStacks = "ListStacks"
4162
4163// ListStacksRequest generates a "aws/request.Request" representing the
4164// client's request for the ListStacks operation. The "output" return
4165// value will be populated with the request's response once the request completes
4166// successfully.
4167//
4168// Use "Send" method on the returned Request to send the API call to the service.
4169// the "output" return value is not valid until after Send returns without error.
4170//
4171// See ListStacks for more information on using the ListStacks
4172// API call, and error handling.
4173//
4174// This method is useful when you want to inject custom logic or configuration
4175// into the SDK's request lifecycle. Such as custom headers, or retry logic.
4176//
4177//
4178//    // Example sending a request using the ListStacksRequest method.
4179//    req, resp := client.ListStacksRequest(params)
4180//
4181//    err := req.Send()
4182//    if err == nil { // resp is now filled
4183//        fmt.Println(resp)
4184//    }
4185//
4186// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/ListStacks
4187func (c *CloudFormation) ListStacksRequest(input *ListStacksInput) (req *request.Request, output *ListStacksOutput) {
4188	op := &request.Operation{
4189		Name:       opListStacks,
4190		HTTPMethod: "POST",
4191		HTTPPath:   "/",
4192		Paginator: &request.Paginator{
4193			InputTokens:     []string{"NextToken"},
4194			OutputTokens:    []string{"NextToken"},
4195			LimitToken:      "",
4196			TruncationToken: "",
4197		},
4198	}
4199
4200	if input == nil {
4201		input = &ListStacksInput{}
4202	}
4203
4204	output = &ListStacksOutput{}
4205	req = c.newRequest(op, input, output)
4206	return
4207}
4208
4209// ListStacks API operation for AWS CloudFormation.
4210//
4211// Returns the summary information for stacks whose status matches the specified
4212// StackStatusFilter. Summary information for stacks that have been deleted
4213// is kept for 90 days after the stack is deleted. If no StackStatusFilter is
4214// specified, summary information for all stacks is returned (including existing
4215// stacks and stacks that have been deleted).
4216//
4217// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
4218// with awserr.Error's Code and Message methods to get detailed information about
4219// the error.
4220//
4221// See the AWS API reference guide for AWS CloudFormation's
4222// API operation ListStacks for usage and error information.
4223// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/ListStacks
4224func (c *CloudFormation) ListStacks(input *ListStacksInput) (*ListStacksOutput, error) {
4225	req, out := c.ListStacksRequest(input)
4226	return out, req.Send()
4227}
4228
4229// ListStacksWithContext is the same as ListStacks with the addition of
4230// the ability to pass a context and additional request options.
4231//
4232// See ListStacks for details on how to use this API operation.
4233//
4234// The context must be non-nil and will be used for request cancellation. If
4235// the context is nil a panic will occur. In the future the SDK may create
4236// sub-contexts for http.Requests. See https://golang.org/pkg/context/
4237// for more information on using Contexts.
4238func (c *CloudFormation) ListStacksWithContext(ctx aws.Context, input *ListStacksInput, opts ...request.Option) (*ListStacksOutput, error) {
4239	req, out := c.ListStacksRequest(input)
4240	req.SetContext(ctx)
4241	req.ApplyOptions(opts...)
4242	return out, req.Send()
4243}
4244
4245// ListStacksPages iterates over the pages of a ListStacks operation,
4246// calling the "fn" function with the response data for each page. To stop
4247// iterating, return false from the fn function.
4248//
4249// See ListStacks method for more information on how to use this operation.
4250//
4251// Note: This operation can generate multiple requests to a service.
4252//
4253//    // Example iterating over at most 3 pages of a ListStacks operation.
4254//    pageNum := 0
4255//    err := client.ListStacksPages(params,
4256//        func(page *cloudformation.ListStacksOutput, lastPage bool) bool {
4257//            pageNum++
4258//            fmt.Println(page)
4259//            return pageNum <= 3
4260//        })
4261//
4262func (c *CloudFormation) ListStacksPages(input *ListStacksInput, fn func(*ListStacksOutput, bool) bool) error {
4263	return c.ListStacksPagesWithContext(aws.BackgroundContext(), input, fn)
4264}
4265
4266// ListStacksPagesWithContext same as ListStacksPages except
4267// it takes a Context and allows setting request options on the pages.
4268//
4269// The context must be non-nil and will be used for request cancellation. If
4270// the context is nil a panic will occur. In the future the SDK may create
4271// sub-contexts for http.Requests. See https://golang.org/pkg/context/
4272// for more information on using Contexts.
4273func (c *CloudFormation) ListStacksPagesWithContext(ctx aws.Context, input *ListStacksInput, fn func(*ListStacksOutput, bool) bool, opts ...request.Option) error {
4274	p := request.Pagination{
4275		NewRequest: func() (*request.Request, error) {
4276			var inCpy *ListStacksInput
4277			if input != nil {
4278				tmp := *input
4279				inCpy = &tmp
4280			}
4281			req, _ := c.ListStacksRequest(inCpy)
4282			req.SetContext(ctx)
4283			req.ApplyOptions(opts...)
4284			return req, nil
4285		},
4286	}
4287
4288	for p.Next() {
4289		if !fn(p.Page().(*ListStacksOutput), !p.HasNextPage()) {
4290			break
4291		}
4292	}
4293
4294	return p.Err()
4295}
4296
4297const opListTypeRegistrations = "ListTypeRegistrations"
4298
4299// ListTypeRegistrationsRequest generates a "aws/request.Request" representing the
4300// client's request for the ListTypeRegistrations operation. The "output" return
4301// value will be populated with the request's response once the request completes
4302// successfully.
4303//
4304// Use "Send" method on the returned Request to send the API call to the service.
4305// the "output" return value is not valid until after Send returns without error.
4306//
4307// See ListTypeRegistrations for more information on using the ListTypeRegistrations
4308// API call, and error handling.
4309//
4310// This method is useful when you want to inject custom logic or configuration
4311// into the SDK's request lifecycle. Such as custom headers, or retry logic.
4312//
4313//
4314//    // Example sending a request using the ListTypeRegistrationsRequest method.
4315//    req, resp := client.ListTypeRegistrationsRequest(params)
4316//
4317//    err := req.Send()
4318//    if err == nil { // resp is now filled
4319//        fmt.Println(resp)
4320//    }
4321//
4322// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/ListTypeRegistrations
4323func (c *CloudFormation) ListTypeRegistrationsRequest(input *ListTypeRegistrationsInput) (req *request.Request, output *ListTypeRegistrationsOutput) {
4324	op := &request.Operation{
4325		Name:       opListTypeRegistrations,
4326		HTTPMethod: "POST",
4327		HTTPPath:   "/",
4328		Paginator: &request.Paginator{
4329			InputTokens:     []string{"NextToken"},
4330			OutputTokens:    []string{"NextToken"},
4331			LimitToken:      "MaxResults",
4332			TruncationToken: "",
4333		},
4334	}
4335
4336	if input == nil {
4337		input = &ListTypeRegistrationsInput{}
4338	}
4339
4340	output = &ListTypeRegistrationsOutput{}
4341	req = c.newRequest(op, input, output)
4342	return
4343}
4344
4345// ListTypeRegistrations API operation for AWS CloudFormation.
4346//
4347// Returns a list of registration tokens for the specified type(s).
4348//
4349// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
4350// with awserr.Error's Code and Message methods to get detailed information about
4351// the error.
4352//
4353// See the AWS API reference guide for AWS CloudFormation's
4354// API operation ListTypeRegistrations for usage and error information.
4355//
4356// Returned Error Codes:
4357//   * ErrCodeCFNRegistryException "CFNRegistryException"
4358//   An error occurred during a CloudFormation registry operation.
4359//
4360// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/ListTypeRegistrations
4361func (c *CloudFormation) ListTypeRegistrations(input *ListTypeRegistrationsInput) (*ListTypeRegistrationsOutput, error) {
4362	req, out := c.ListTypeRegistrationsRequest(input)
4363	return out, req.Send()
4364}
4365
4366// ListTypeRegistrationsWithContext is the same as ListTypeRegistrations with the addition of
4367// the ability to pass a context and additional request options.
4368//
4369// See ListTypeRegistrations for details on how to use this API operation.
4370//
4371// The context must be non-nil and will be used for request cancellation. If
4372// the context is nil a panic will occur. In the future the SDK may create
4373// sub-contexts for http.Requests. See https://golang.org/pkg/context/
4374// for more information on using Contexts.
4375func (c *CloudFormation) ListTypeRegistrationsWithContext(ctx aws.Context, input *ListTypeRegistrationsInput, opts ...request.Option) (*ListTypeRegistrationsOutput, error) {
4376	req, out := c.ListTypeRegistrationsRequest(input)
4377	req.SetContext(ctx)
4378	req.ApplyOptions(opts...)
4379	return out, req.Send()
4380}
4381
4382// ListTypeRegistrationsPages iterates over the pages of a ListTypeRegistrations operation,
4383// calling the "fn" function with the response data for each page. To stop
4384// iterating, return false from the fn function.
4385//
4386// See ListTypeRegistrations method for more information on how to use this operation.
4387//
4388// Note: This operation can generate multiple requests to a service.
4389//
4390//    // Example iterating over at most 3 pages of a ListTypeRegistrations operation.
4391//    pageNum := 0
4392//    err := client.ListTypeRegistrationsPages(params,
4393//        func(page *cloudformation.ListTypeRegistrationsOutput, lastPage bool) bool {
4394//            pageNum++
4395//            fmt.Println(page)
4396//            return pageNum <= 3
4397//        })
4398//
4399func (c *CloudFormation) ListTypeRegistrationsPages(input *ListTypeRegistrationsInput, fn func(*ListTypeRegistrationsOutput, bool) bool) error {
4400	return c.ListTypeRegistrationsPagesWithContext(aws.BackgroundContext(), input, fn)
4401}
4402
4403// ListTypeRegistrationsPagesWithContext same as ListTypeRegistrationsPages except
4404// it takes a Context and allows setting request options on the pages.
4405//
4406// The context must be non-nil and will be used for request cancellation. If
4407// the context is nil a panic will occur. In the future the SDK may create
4408// sub-contexts for http.Requests. See https://golang.org/pkg/context/
4409// for more information on using Contexts.
4410func (c *CloudFormation) ListTypeRegistrationsPagesWithContext(ctx aws.Context, input *ListTypeRegistrationsInput, fn func(*ListTypeRegistrationsOutput, bool) bool, opts ...request.Option) error {
4411	p := request.Pagination{
4412		NewRequest: func() (*request.Request, error) {
4413			var inCpy *ListTypeRegistrationsInput
4414			if input != nil {
4415				tmp := *input
4416				inCpy = &tmp
4417			}
4418			req, _ := c.ListTypeRegistrationsRequest(inCpy)
4419			req.SetContext(ctx)
4420			req.ApplyOptions(opts...)
4421			return req, nil
4422		},
4423	}
4424
4425	for p.Next() {
4426		if !fn(p.Page().(*ListTypeRegistrationsOutput), !p.HasNextPage()) {
4427			break
4428		}
4429	}
4430
4431	return p.Err()
4432}
4433
4434const opListTypeVersions = "ListTypeVersions"
4435
4436// ListTypeVersionsRequest generates a "aws/request.Request" representing the
4437// client's request for the ListTypeVersions operation. The "output" return
4438// value will be populated with the request's response once the request completes
4439// successfully.
4440//
4441// Use "Send" method on the returned Request to send the API call to the service.
4442// the "output" return value is not valid until after Send returns without error.
4443//
4444// See ListTypeVersions for more information on using the ListTypeVersions
4445// API call, and error handling.
4446//
4447// This method is useful when you want to inject custom logic or configuration
4448// into the SDK's request lifecycle. Such as custom headers, or retry logic.
4449//
4450//
4451//    // Example sending a request using the ListTypeVersionsRequest method.
4452//    req, resp := client.ListTypeVersionsRequest(params)
4453//
4454//    err := req.Send()
4455//    if err == nil { // resp is now filled
4456//        fmt.Println(resp)
4457//    }
4458//
4459// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/ListTypeVersions
4460func (c *CloudFormation) ListTypeVersionsRequest(input *ListTypeVersionsInput) (req *request.Request, output *ListTypeVersionsOutput) {
4461	op := &request.Operation{
4462		Name:       opListTypeVersions,
4463		HTTPMethod: "POST",
4464		HTTPPath:   "/",
4465		Paginator: &request.Paginator{
4466			InputTokens:     []string{"NextToken"},
4467			OutputTokens:    []string{"NextToken"},
4468			LimitToken:      "MaxResults",
4469			TruncationToken: "",
4470		},
4471	}
4472
4473	if input == nil {
4474		input = &ListTypeVersionsInput{}
4475	}
4476
4477	output = &ListTypeVersionsOutput{}
4478	req = c.newRequest(op, input, output)
4479	return
4480}
4481
4482// ListTypeVersions API operation for AWS CloudFormation.
4483//
4484// Returns summary information about the versions of a type.
4485//
4486// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
4487// with awserr.Error's Code and Message methods to get detailed information about
4488// the error.
4489//
4490// See the AWS API reference guide for AWS CloudFormation's
4491// API operation ListTypeVersions for usage and error information.
4492//
4493// Returned Error Codes:
4494//   * ErrCodeCFNRegistryException "CFNRegistryException"
4495//   An error occurred during a CloudFormation registry operation.
4496//
4497// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/ListTypeVersions
4498func (c *CloudFormation) ListTypeVersions(input *ListTypeVersionsInput) (*ListTypeVersionsOutput, error) {
4499	req, out := c.ListTypeVersionsRequest(input)
4500	return out, req.Send()
4501}
4502
4503// ListTypeVersionsWithContext is the same as ListTypeVersions with the addition of
4504// the ability to pass a context and additional request options.
4505//
4506// See ListTypeVersions for details on how to use this API operation.
4507//
4508// The context must be non-nil and will be used for request cancellation. If
4509// the context is nil a panic will occur. In the future the SDK may create
4510// sub-contexts for http.Requests. See https://golang.org/pkg/context/
4511// for more information on using Contexts.
4512func (c *CloudFormation) ListTypeVersionsWithContext(ctx aws.Context, input *ListTypeVersionsInput, opts ...request.Option) (*ListTypeVersionsOutput, error) {
4513	req, out := c.ListTypeVersionsRequest(input)
4514	req.SetContext(ctx)
4515	req.ApplyOptions(opts...)
4516	return out, req.Send()
4517}
4518
4519// ListTypeVersionsPages iterates over the pages of a ListTypeVersions operation,
4520// calling the "fn" function with the response data for each page. To stop
4521// iterating, return false from the fn function.
4522//
4523// See ListTypeVersions method for more information on how to use this operation.
4524//
4525// Note: This operation can generate multiple requests to a service.
4526//
4527//    // Example iterating over at most 3 pages of a ListTypeVersions operation.
4528//    pageNum := 0
4529//    err := client.ListTypeVersionsPages(params,
4530//        func(page *cloudformation.ListTypeVersionsOutput, lastPage bool) bool {
4531//            pageNum++
4532//            fmt.Println(page)
4533//            return pageNum <= 3
4534//        })
4535//
4536func (c *CloudFormation) ListTypeVersionsPages(input *ListTypeVersionsInput, fn func(*ListTypeVersionsOutput, bool) bool) error {
4537	return c.ListTypeVersionsPagesWithContext(aws.BackgroundContext(), input, fn)
4538}
4539
4540// ListTypeVersionsPagesWithContext same as ListTypeVersionsPages except
4541// it takes a Context and allows setting request options on the pages.
4542//
4543// The context must be non-nil and will be used for request cancellation. If
4544// the context is nil a panic will occur. In the future the SDK may create
4545// sub-contexts for http.Requests. See https://golang.org/pkg/context/
4546// for more information on using Contexts.
4547func (c *CloudFormation) ListTypeVersionsPagesWithContext(ctx aws.Context, input *ListTypeVersionsInput, fn func(*ListTypeVersionsOutput, bool) bool, opts ...request.Option) error {
4548	p := request.Pagination{
4549		NewRequest: func() (*request.Request, error) {
4550			var inCpy *ListTypeVersionsInput
4551			if input != nil {
4552				tmp := *input
4553				inCpy = &tmp
4554			}
4555			req, _ := c.ListTypeVersionsRequest(inCpy)
4556			req.SetContext(ctx)
4557			req.ApplyOptions(opts...)
4558			return req, nil
4559		},
4560	}
4561
4562	for p.Next() {
4563		if !fn(p.Page().(*ListTypeVersionsOutput), !p.HasNextPage()) {
4564			break
4565		}
4566	}
4567
4568	return p.Err()
4569}
4570
4571const opListTypes = "ListTypes"
4572
4573// ListTypesRequest generates a "aws/request.Request" representing the
4574// client's request for the ListTypes operation. The "output" return
4575// value will be populated with the request's response once the request completes
4576// successfully.
4577//
4578// Use "Send" method on the returned Request to send the API call to the service.
4579// the "output" return value is not valid until after Send returns without error.
4580//
4581// See ListTypes for more information on using the ListTypes
4582// API call, and error handling.
4583//
4584// This method is useful when you want to inject custom logic or configuration
4585// into the SDK's request lifecycle. Such as custom headers, or retry logic.
4586//
4587//
4588//    // Example sending a request using the ListTypesRequest method.
4589//    req, resp := client.ListTypesRequest(params)
4590//
4591//    err := req.Send()
4592//    if err == nil { // resp is now filled
4593//        fmt.Println(resp)
4594//    }
4595//
4596// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/ListTypes
4597func (c *CloudFormation) ListTypesRequest(input *ListTypesInput) (req *request.Request, output *ListTypesOutput) {
4598	op := &request.Operation{
4599		Name:       opListTypes,
4600		HTTPMethod: "POST",
4601		HTTPPath:   "/",
4602		Paginator: &request.Paginator{
4603			InputTokens:     []string{"NextToken"},
4604			OutputTokens:    []string{"NextToken"},
4605			LimitToken:      "MaxResults",
4606			TruncationToken: "",
4607		},
4608	}
4609
4610	if input == nil {
4611		input = &ListTypesInput{}
4612	}
4613
4614	output = &ListTypesOutput{}
4615	req = c.newRequest(op, input, output)
4616	return
4617}
4618
4619// ListTypes API operation for AWS CloudFormation.
4620//
4621// Returns summary information about types that have been registered with CloudFormation.
4622//
4623// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
4624// with awserr.Error's Code and Message methods to get detailed information about
4625// the error.
4626//
4627// See the AWS API reference guide for AWS CloudFormation's
4628// API operation ListTypes for usage and error information.
4629//
4630// Returned Error Codes:
4631//   * ErrCodeCFNRegistryException "CFNRegistryException"
4632//   An error occurred during a CloudFormation registry operation.
4633//
4634// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/ListTypes
4635func (c *CloudFormation) ListTypes(input *ListTypesInput) (*ListTypesOutput, error) {
4636	req, out := c.ListTypesRequest(input)
4637	return out, req.Send()
4638}
4639
4640// ListTypesWithContext is the same as ListTypes with the addition of
4641// the ability to pass a context and additional request options.
4642//
4643// See ListTypes for details on how to use this API operation.
4644//
4645// The context must be non-nil and will be used for request cancellation. If
4646// the context is nil a panic will occur. In the future the SDK may create
4647// sub-contexts for http.Requests. See https://golang.org/pkg/context/
4648// for more information on using Contexts.
4649func (c *CloudFormation) ListTypesWithContext(ctx aws.Context, input *ListTypesInput, opts ...request.Option) (*ListTypesOutput, error) {
4650	req, out := c.ListTypesRequest(input)
4651	req.SetContext(ctx)
4652	req.ApplyOptions(opts...)
4653	return out, req.Send()
4654}
4655
4656// ListTypesPages iterates over the pages of a ListTypes operation,
4657// calling the "fn" function with the response data for each page. To stop
4658// iterating, return false from the fn function.
4659//
4660// See ListTypes method for more information on how to use this operation.
4661//
4662// Note: This operation can generate multiple requests to a service.
4663//
4664//    // Example iterating over at most 3 pages of a ListTypes operation.
4665//    pageNum := 0
4666//    err := client.ListTypesPages(params,
4667//        func(page *cloudformation.ListTypesOutput, lastPage bool) bool {
4668//            pageNum++
4669//            fmt.Println(page)
4670//            return pageNum <= 3
4671//        })
4672//
4673func (c *CloudFormation) ListTypesPages(input *ListTypesInput, fn func(*ListTypesOutput, bool) bool) error {
4674	return c.ListTypesPagesWithContext(aws.BackgroundContext(), input, fn)
4675}
4676
4677// ListTypesPagesWithContext same as ListTypesPages except
4678// it takes a Context and allows setting request options on the pages.
4679//
4680// The context must be non-nil and will be used for request cancellation. If
4681// the context is nil a panic will occur. In the future the SDK may create
4682// sub-contexts for http.Requests. See https://golang.org/pkg/context/
4683// for more information on using Contexts.
4684func (c *CloudFormation) ListTypesPagesWithContext(ctx aws.Context, input *ListTypesInput, fn func(*ListTypesOutput, bool) bool, opts ...request.Option) error {
4685	p := request.Pagination{
4686		NewRequest: func() (*request.Request, error) {
4687			var inCpy *ListTypesInput
4688			if input != nil {
4689				tmp := *input
4690				inCpy = &tmp
4691			}
4692			req, _ := c.ListTypesRequest(inCpy)
4693			req.SetContext(ctx)
4694			req.ApplyOptions(opts...)
4695			return req, nil
4696		},
4697	}
4698
4699	for p.Next() {
4700		if !fn(p.Page().(*ListTypesOutput), !p.HasNextPage()) {
4701			break
4702		}
4703	}
4704
4705	return p.Err()
4706}
4707
4708const opRecordHandlerProgress = "RecordHandlerProgress"
4709
4710// RecordHandlerProgressRequest generates a "aws/request.Request" representing the
4711// client's request for the RecordHandlerProgress operation. The "output" return
4712// value will be populated with the request's response once the request completes
4713// successfully.
4714//
4715// Use "Send" method on the returned Request to send the API call to the service.
4716// the "output" return value is not valid until after Send returns without error.
4717//
4718// See RecordHandlerProgress for more information on using the RecordHandlerProgress
4719// API call, and error handling.
4720//
4721// This method is useful when you want to inject custom logic or configuration
4722// into the SDK's request lifecycle. Such as custom headers, or retry logic.
4723//
4724//
4725//    // Example sending a request using the RecordHandlerProgressRequest method.
4726//    req, resp := client.RecordHandlerProgressRequest(params)
4727//
4728//    err := req.Send()
4729//    if err == nil { // resp is now filled
4730//        fmt.Println(resp)
4731//    }
4732//
4733// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/RecordHandlerProgress
4734func (c *CloudFormation) RecordHandlerProgressRequest(input *RecordHandlerProgressInput) (req *request.Request, output *RecordHandlerProgressOutput) {
4735	op := &request.Operation{
4736		Name:       opRecordHandlerProgress,
4737		HTTPMethod: "POST",
4738		HTTPPath:   "/",
4739	}
4740
4741	if input == nil {
4742		input = &RecordHandlerProgressInput{}
4743	}
4744
4745	output = &RecordHandlerProgressOutput{}
4746	req = c.newRequest(op, input, output)
4747	req.Handlers.Unmarshal.Swap(query.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
4748	return
4749}
4750
4751// RecordHandlerProgress API operation for AWS CloudFormation.
4752//
4753// Reports progress of a resource handler to CloudFormation.
4754//
4755// Reserved for use by the CloudFormation CLI (https://docs.aws.amazon.com/cloudformation-cli/latest/userguide/what-is-cloudformation-cli.html).
4756// Do not use this API in your code.
4757//
4758// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
4759// with awserr.Error's Code and Message methods to get detailed information about
4760// the error.
4761//
4762// See the AWS API reference guide for AWS CloudFormation's
4763// API operation RecordHandlerProgress for usage and error information.
4764//
4765// Returned Error Codes:
4766//   * ErrCodeInvalidStateTransitionException "InvalidStateTransition"
4767//   Error reserved for use by the CloudFormation CLI (https://docs.aws.amazon.com/cloudformation-cli/latest/userguide/what-is-cloudformation-cli.html).
4768//   CloudFormation does not return this error to users.
4769//
4770//   * ErrCodeOperationStatusCheckFailedException "ConditionalCheckFailed"
4771//   Error reserved for use by the CloudFormation CLI (https://docs.aws.amazon.com/cloudformation-cli/latest/userguide/what-is-cloudformation-cli.html).
4772//   CloudFormation does not return this error to users.
4773//
4774// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/RecordHandlerProgress
4775func (c *CloudFormation) RecordHandlerProgress(input *RecordHandlerProgressInput) (*RecordHandlerProgressOutput, error) {
4776	req, out := c.RecordHandlerProgressRequest(input)
4777	return out, req.Send()
4778}
4779
4780// RecordHandlerProgressWithContext is the same as RecordHandlerProgress with the addition of
4781// the ability to pass a context and additional request options.
4782//
4783// See RecordHandlerProgress for details on how to use this API operation.
4784//
4785// The context must be non-nil and will be used for request cancellation. If
4786// the context is nil a panic will occur. In the future the SDK may create
4787// sub-contexts for http.Requests. See https://golang.org/pkg/context/
4788// for more information on using Contexts.
4789func (c *CloudFormation) RecordHandlerProgressWithContext(ctx aws.Context, input *RecordHandlerProgressInput, opts ...request.Option) (*RecordHandlerProgressOutput, error) {
4790	req, out := c.RecordHandlerProgressRequest(input)
4791	req.SetContext(ctx)
4792	req.ApplyOptions(opts...)
4793	return out, req.Send()
4794}
4795
4796const opRegisterType = "RegisterType"
4797
4798// RegisterTypeRequest generates a "aws/request.Request" representing the
4799// client's request for the RegisterType operation. The "output" return
4800// value will be populated with the request's response once the request completes
4801// successfully.
4802//
4803// Use "Send" method on the returned Request to send the API call to the service.
4804// the "output" return value is not valid until after Send returns without error.
4805//
4806// See RegisterType for more information on using the RegisterType
4807// API call, and error handling.
4808//
4809// This method is useful when you want to inject custom logic or configuration
4810// into the SDK's request lifecycle. Such as custom headers, or retry logic.
4811//
4812//
4813//    // Example sending a request using the RegisterTypeRequest method.
4814//    req, resp := client.RegisterTypeRequest(params)
4815//
4816//    err := req.Send()
4817//    if err == nil { // resp is now filled
4818//        fmt.Println(resp)
4819//    }
4820//
4821// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/RegisterType
4822func (c *CloudFormation) RegisterTypeRequest(input *RegisterTypeInput) (req *request.Request, output *RegisterTypeOutput) {
4823	op := &request.Operation{
4824		Name:       opRegisterType,
4825		HTTPMethod: "POST",
4826		HTTPPath:   "/",
4827	}
4828
4829	if input == nil {
4830		input = &RegisterTypeInput{}
4831	}
4832
4833	output = &RegisterTypeOutput{}
4834	req = c.newRequest(op, input, output)
4835	return
4836}
4837
4838// RegisterType API operation for AWS CloudFormation.
4839//
4840// Registers a type with the CloudFormation service. Registering a type makes
4841// it available for use in CloudFormation templates in your AWS account, and
4842// includes:
4843//
4844//    * Validating the resource schema
4845//
4846//    * Determining which handlers have been specified for the resource
4847//
4848//    * Making the resource type available for use in your account
4849//
4850// For more information on how to develop types and ready them for registeration,
4851// see Creating Resource Providers (https://docs.aws.amazon.com/cloudformation-cli/latest/userguide/resource-types.html)
4852// in the CloudFormation CLI User Guide.
4853//
4854// You can have a maximum of 50 resource type versions registered at a time.
4855// This maximum is per account and per region. Use DeregisterType (AWSCloudFormation/latest/APIReference/API_DeregisterType.html)
4856// to deregister specific resource type versions if necessary.
4857//
4858// Once you have initiated a registration request using RegisterType , you can
4859// use DescribeTypeRegistration to monitor the progress of the registration
4860// request.
4861//
4862// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
4863// with awserr.Error's Code and Message methods to get detailed information about
4864// the error.
4865//
4866// See the AWS API reference guide for AWS CloudFormation's
4867// API operation RegisterType for usage and error information.
4868//
4869// Returned Error Codes:
4870//   * ErrCodeCFNRegistryException "CFNRegistryException"
4871//   An error occurred during a CloudFormation registry operation.
4872//
4873// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/RegisterType
4874func (c *CloudFormation) RegisterType(input *RegisterTypeInput) (*RegisterTypeOutput, error) {
4875	req, out := c.RegisterTypeRequest(input)
4876	return out, req.Send()
4877}
4878
4879// RegisterTypeWithContext is the same as RegisterType with the addition of
4880// the ability to pass a context and additional request options.
4881//
4882// See RegisterType for details on how to use this API operation.
4883//
4884// The context must be non-nil and will be used for request cancellation. If
4885// the context is nil a panic will occur. In the future the SDK may create
4886// sub-contexts for http.Requests. See https://golang.org/pkg/context/
4887// for more information on using Contexts.
4888func (c *CloudFormation) RegisterTypeWithContext(ctx aws.Context, input *RegisterTypeInput, opts ...request.Option) (*RegisterTypeOutput, error) {
4889	req, out := c.RegisterTypeRequest(input)
4890	req.SetContext(ctx)
4891	req.ApplyOptions(opts...)
4892	return out, req.Send()
4893}
4894
4895const opSetStackPolicy = "SetStackPolicy"
4896
4897// SetStackPolicyRequest generates a "aws/request.Request" representing the
4898// client's request for the SetStackPolicy operation. The "output" return
4899// value will be populated with the request's response once the request completes
4900// successfully.
4901//
4902// Use "Send" method on the returned Request to send the API call to the service.
4903// the "output" return value is not valid until after Send returns without error.
4904//
4905// See SetStackPolicy for more information on using the SetStackPolicy
4906// API call, and error handling.
4907//
4908// This method is useful when you want to inject custom logic or configuration
4909// into the SDK's request lifecycle. Such as custom headers, or retry logic.
4910//
4911//
4912//    // Example sending a request using the SetStackPolicyRequest method.
4913//    req, resp := client.SetStackPolicyRequest(params)
4914//
4915//    err := req.Send()
4916//    if err == nil { // resp is now filled
4917//        fmt.Println(resp)
4918//    }
4919//
4920// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/SetStackPolicy
4921func (c *CloudFormation) SetStackPolicyRequest(input *SetStackPolicyInput) (req *request.Request, output *SetStackPolicyOutput) {
4922	op := &request.Operation{
4923		Name:       opSetStackPolicy,
4924		HTTPMethod: "POST",
4925		HTTPPath:   "/",
4926	}
4927
4928	if input == nil {
4929		input = &SetStackPolicyInput{}
4930	}
4931
4932	output = &SetStackPolicyOutput{}
4933	req = c.newRequest(op, input, output)
4934	req.Handlers.Unmarshal.Swap(query.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
4935	return
4936}
4937
4938// SetStackPolicy API operation for AWS CloudFormation.
4939//
4940// Sets a stack policy for a specified stack.
4941//
4942// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
4943// with awserr.Error's Code and Message methods to get detailed information about
4944// the error.
4945//
4946// See the AWS API reference guide for AWS CloudFormation's
4947// API operation SetStackPolicy for usage and error information.
4948// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/SetStackPolicy
4949func (c *CloudFormation) SetStackPolicy(input *SetStackPolicyInput) (*SetStackPolicyOutput, error) {
4950	req, out := c.SetStackPolicyRequest(input)
4951	return out, req.Send()
4952}
4953
4954// SetStackPolicyWithContext is the same as SetStackPolicy with the addition of
4955// the ability to pass a context and additional request options.
4956//
4957// See SetStackPolicy for details on how to use this API operation.
4958//
4959// The context must be non-nil and will be used for request cancellation. If
4960// the context is nil a panic will occur. In the future the SDK may create
4961// sub-contexts for http.Requests. See https://golang.org/pkg/context/
4962// for more information on using Contexts.
4963func (c *CloudFormation) SetStackPolicyWithContext(ctx aws.Context, input *SetStackPolicyInput, opts ...request.Option) (*SetStackPolicyOutput, error) {
4964	req, out := c.SetStackPolicyRequest(input)
4965	req.SetContext(ctx)
4966	req.ApplyOptions(opts...)
4967	return out, req.Send()
4968}
4969
4970const opSetTypeDefaultVersion = "SetTypeDefaultVersion"
4971
4972// SetTypeDefaultVersionRequest generates a "aws/request.Request" representing the
4973// client's request for the SetTypeDefaultVersion operation. The "output" return
4974// value will be populated with the request's response once the request completes
4975// successfully.
4976//
4977// Use "Send" method on the returned Request to send the API call to the service.
4978// the "output" return value is not valid until after Send returns without error.
4979//
4980// See SetTypeDefaultVersion for more information on using the SetTypeDefaultVersion
4981// API call, and error handling.
4982//
4983// This method is useful when you want to inject custom logic or configuration
4984// into the SDK's request lifecycle. Such as custom headers, or retry logic.
4985//
4986//
4987//    // Example sending a request using the SetTypeDefaultVersionRequest method.
4988//    req, resp := client.SetTypeDefaultVersionRequest(params)
4989//
4990//    err := req.Send()
4991//    if err == nil { // resp is now filled
4992//        fmt.Println(resp)
4993//    }
4994//
4995// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/SetTypeDefaultVersion
4996func (c *CloudFormation) SetTypeDefaultVersionRequest(input *SetTypeDefaultVersionInput) (req *request.Request, output *SetTypeDefaultVersionOutput) {
4997	op := &request.Operation{
4998		Name:       opSetTypeDefaultVersion,
4999		HTTPMethod: "POST",
5000		HTTPPath:   "/",
5001	}
5002
5003	if input == nil {
5004		input = &SetTypeDefaultVersionInput{}
5005	}
5006
5007	output = &SetTypeDefaultVersionOutput{}
5008	req = c.newRequest(op, input, output)
5009	req.Handlers.Unmarshal.Swap(query.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
5010	return
5011}
5012
5013// SetTypeDefaultVersion API operation for AWS CloudFormation.
5014//
5015// Specify the default version of a type. The default version of a type will
5016// be used in CloudFormation operations.
5017//
5018// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
5019// with awserr.Error's Code and Message methods to get detailed information about
5020// the error.
5021//
5022// See the AWS API reference guide for AWS CloudFormation's
5023// API operation SetTypeDefaultVersion for usage and error information.
5024//
5025// Returned Error Codes:
5026//   * ErrCodeCFNRegistryException "CFNRegistryException"
5027//   An error occurred during a CloudFormation registry operation.
5028//
5029//   * ErrCodeTypeNotFoundException "TypeNotFoundException"
5030//   The specified type does not exist in the CloudFormation registry.
5031//
5032// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/SetTypeDefaultVersion
5033func (c *CloudFormation) SetTypeDefaultVersion(input *SetTypeDefaultVersionInput) (*SetTypeDefaultVersionOutput, error) {
5034	req, out := c.SetTypeDefaultVersionRequest(input)
5035	return out, req.Send()
5036}
5037
5038// SetTypeDefaultVersionWithContext is the same as SetTypeDefaultVersion with the addition of
5039// the ability to pass a context and additional request options.
5040//
5041// See SetTypeDefaultVersion for details on how to use this API operation.
5042//
5043// The context must be non-nil and will be used for request cancellation. If
5044// the context is nil a panic will occur. In the future the SDK may create
5045// sub-contexts for http.Requests. See https://golang.org/pkg/context/
5046// for more information on using Contexts.
5047func (c *CloudFormation) SetTypeDefaultVersionWithContext(ctx aws.Context, input *SetTypeDefaultVersionInput, opts ...request.Option) (*SetTypeDefaultVersionOutput, error) {
5048	req, out := c.SetTypeDefaultVersionRequest(input)
5049	req.SetContext(ctx)
5050	req.ApplyOptions(opts...)
5051	return out, req.Send()
5052}
5053
5054const opSignalResource = "SignalResource"
5055
5056// SignalResourceRequest generates a "aws/request.Request" representing the
5057// client's request for the SignalResource operation. The "output" return
5058// value will be populated with the request's response once the request completes
5059// successfully.
5060//
5061// Use "Send" method on the returned Request to send the API call to the service.
5062// the "output" return value is not valid until after Send returns without error.
5063//
5064// See SignalResource for more information on using the SignalResource
5065// API call, and error handling.
5066//
5067// This method is useful when you want to inject custom logic or configuration
5068// into the SDK's request lifecycle. Such as custom headers, or retry logic.
5069//
5070//
5071//    // Example sending a request using the SignalResourceRequest method.
5072//    req, resp := client.SignalResourceRequest(params)
5073//
5074//    err := req.Send()
5075//    if err == nil { // resp is now filled
5076//        fmt.Println(resp)
5077//    }
5078//
5079// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/SignalResource
5080func (c *CloudFormation) SignalResourceRequest(input *SignalResourceInput) (req *request.Request, output *SignalResourceOutput) {
5081	op := &request.Operation{
5082		Name:       opSignalResource,
5083		HTTPMethod: "POST",
5084		HTTPPath:   "/",
5085	}
5086
5087	if input == nil {
5088		input = &SignalResourceInput{}
5089	}
5090
5091	output = &SignalResourceOutput{}
5092	req = c.newRequest(op, input, output)
5093	req.Handlers.Unmarshal.Swap(query.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
5094	return
5095}
5096
5097// SignalResource API operation for AWS CloudFormation.
5098//
5099// Sends a signal to the specified resource with a success or failure status.
5100// You can use the SignalResource API in conjunction with a creation policy
5101// or update policy. AWS CloudFormation doesn't proceed with a stack creation
5102// or update until resources receive the required number of signals or the timeout
5103// period is exceeded. The SignalResource API is useful in cases where you want
5104// to send signals from anywhere other than an Amazon EC2 instance.
5105//
5106// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
5107// with awserr.Error's Code and Message methods to get detailed information about
5108// the error.
5109//
5110// See the AWS API reference guide for AWS CloudFormation's
5111// API operation SignalResource for usage and error information.
5112// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/SignalResource
5113func (c *CloudFormation) SignalResource(input *SignalResourceInput) (*SignalResourceOutput, error) {
5114	req, out := c.SignalResourceRequest(input)
5115	return out, req.Send()
5116}
5117
5118// SignalResourceWithContext is the same as SignalResource with the addition of
5119// the ability to pass a context and additional request options.
5120//
5121// See SignalResource for details on how to use this API operation.
5122//
5123// The context must be non-nil and will be used for request cancellation. If
5124// the context is nil a panic will occur. In the future the SDK may create
5125// sub-contexts for http.Requests. See https://golang.org/pkg/context/
5126// for more information on using Contexts.
5127func (c *CloudFormation) SignalResourceWithContext(ctx aws.Context, input *SignalResourceInput, opts ...request.Option) (*SignalResourceOutput, error) {
5128	req, out := c.SignalResourceRequest(input)
5129	req.SetContext(ctx)
5130	req.ApplyOptions(opts...)
5131	return out, req.Send()
5132}
5133
5134const opStopStackSetOperation = "StopStackSetOperation"
5135
5136// StopStackSetOperationRequest generates a "aws/request.Request" representing the
5137// client's request for the StopStackSetOperation operation. The "output" return
5138// value will be populated with the request's response once the request completes
5139// successfully.
5140//
5141// Use "Send" method on the returned Request to send the API call to the service.
5142// the "output" return value is not valid until after Send returns without error.
5143//
5144// See StopStackSetOperation for more information on using the StopStackSetOperation
5145// API call, and error handling.
5146//
5147// This method is useful when you want to inject custom logic or configuration
5148// into the SDK's request lifecycle. Such as custom headers, or retry logic.
5149//
5150//
5151//    // Example sending a request using the StopStackSetOperationRequest method.
5152//    req, resp := client.StopStackSetOperationRequest(params)
5153//
5154//    err := req.Send()
5155//    if err == nil { // resp is now filled
5156//        fmt.Println(resp)
5157//    }
5158//
5159// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/StopStackSetOperation
5160func (c *CloudFormation) StopStackSetOperationRequest(input *StopStackSetOperationInput) (req *request.Request, output *StopStackSetOperationOutput) {
5161	op := &request.Operation{
5162		Name:       opStopStackSetOperation,
5163		HTTPMethod: "POST",
5164		HTTPPath:   "/",
5165	}
5166
5167	if input == nil {
5168		input = &StopStackSetOperationInput{}
5169	}
5170
5171	output = &StopStackSetOperationOutput{}
5172	req = c.newRequest(op, input, output)
5173	req.Handlers.Unmarshal.Swap(query.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
5174	return
5175}
5176
5177// StopStackSetOperation API operation for AWS CloudFormation.
5178//
5179// Stops an in-progress operation on a stack set and its associated stack instances.
5180//
5181// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
5182// with awserr.Error's Code and Message methods to get detailed information about
5183// the error.
5184//
5185// See the AWS API reference guide for AWS CloudFormation's
5186// API operation StopStackSetOperation for usage and error information.
5187//
5188// Returned Error Codes:
5189//   * ErrCodeStackSetNotFoundException "StackSetNotFoundException"
5190//   The specified stack set doesn't exist.
5191//
5192//   * ErrCodeOperationNotFoundException "OperationNotFoundException"
5193//   The specified ID refers to an operation that doesn't exist.
5194//
5195//   * ErrCodeInvalidOperationException "InvalidOperationException"
5196//   The specified operation isn't valid.
5197//
5198// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/StopStackSetOperation
5199func (c *CloudFormation) StopStackSetOperation(input *StopStackSetOperationInput) (*StopStackSetOperationOutput, error) {
5200	req, out := c.StopStackSetOperationRequest(input)
5201	return out, req.Send()
5202}
5203
5204// StopStackSetOperationWithContext is the same as StopStackSetOperation with the addition of
5205// the ability to pass a context and additional request options.
5206//
5207// See StopStackSetOperation for details on how to use this API operation.
5208//
5209// The context must be non-nil and will be used for request cancellation. If
5210// the context is nil a panic will occur. In the future the SDK may create
5211// sub-contexts for http.Requests. See https://golang.org/pkg/context/
5212// for more information on using Contexts.
5213func (c *CloudFormation) StopStackSetOperationWithContext(ctx aws.Context, input *StopStackSetOperationInput, opts ...request.Option) (*StopStackSetOperationOutput, error) {
5214	req, out := c.StopStackSetOperationRequest(input)
5215	req.SetContext(ctx)
5216	req.ApplyOptions(opts...)
5217	return out, req.Send()
5218}
5219
5220const opUpdateStack = "UpdateStack"
5221
5222// UpdateStackRequest generates a "aws/request.Request" representing the
5223// client's request for the UpdateStack operation. The "output" return
5224// value will be populated with the request's response once the request completes
5225// successfully.
5226//
5227// Use "Send" method on the returned Request to send the API call to the service.
5228// the "output" return value is not valid until after Send returns without error.
5229//
5230// See UpdateStack for more information on using the UpdateStack
5231// API call, and error handling.
5232//
5233// This method is useful when you want to inject custom logic or configuration
5234// into the SDK's request lifecycle. Such as custom headers, or retry logic.
5235//
5236//
5237//    // Example sending a request using the UpdateStackRequest method.
5238//    req, resp := client.UpdateStackRequest(params)
5239//
5240//    err := req.Send()
5241//    if err == nil { // resp is now filled
5242//        fmt.Println(resp)
5243//    }
5244//
5245// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/UpdateStack
5246func (c *CloudFormation) UpdateStackRequest(input *UpdateStackInput) (req *request.Request, output *UpdateStackOutput) {
5247	op := &request.Operation{
5248		Name:       opUpdateStack,
5249		HTTPMethod: "POST",
5250		HTTPPath:   "/",
5251	}
5252
5253	if input == nil {
5254		input = &UpdateStackInput{}
5255	}
5256
5257	output = &UpdateStackOutput{}
5258	req = c.newRequest(op, input, output)
5259	return
5260}
5261
5262// UpdateStack API operation for AWS CloudFormation.
5263//
5264// Updates a stack as specified in the template. After the call completes successfully,
5265// the stack update starts. You can check the status of the stack via the DescribeStacks
5266// action.
5267//
5268// To get a copy of the template for an existing stack, you can use the GetTemplate
5269// action.
5270//
5271// For more information about creating an update template, updating a stack,
5272// and monitoring the progress of the update, see Updating a Stack (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks.html).
5273//
5274// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
5275// with awserr.Error's Code and Message methods to get detailed information about
5276// the error.
5277//
5278// See the AWS API reference guide for AWS CloudFormation's
5279// API operation UpdateStack for usage and error information.
5280//
5281// Returned Error Codes:
5282//   * ErrCodeInsufficientCapabilitiesException "InsufficientCapabilitiesException"
5283//   The template contains resources with capabilities that weren't specified
5284//   in the Capabilities parameter.
5285//
5286//   * ErrCodeTokenAlreadyExistsException "TokenAlreadyExistsException"
5287//   A client request token already exists.
5288//
5289// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/UpdateStack
5290func (c *CloudFormation) UpdateStack(input *UpdateStackInput) (*UpdateStackOutput, error) {
5291	req, out := c.UpdateStackRequest(input)
5292	return out, req.Send()
5293}
5294
5295// UpdateStackWithContext is the same as UpdateStack with the addition of
5296// the ability to pass a context and additional request options.
5297//
5298// See UpdateStack for details on how to use this API operation.
5299//
5300// The context must be non-nil and will be used for request cancellation. If
5301// the context is nil a panic will occur. In the future the SDK may create
5302// sub-contexts for http.Requests. See https://golang.org/pkg/context/
5303// for more information on using Contexts.
5304func (c *CloudFormation) UpdateStackWithContext(ctx aws.Context, input *UpdateStackInput, opts ...request.Option) (*UpdateStackOutput, error) {
5305	req, out := c.UpdateStackRequest(input)
5306	req.SetContext(ctx)
5307	req.ApplyOptions(opts...)
5308	return out, req.Send()
5309}
5310
5311const opUpdateStackInstances = "UpdateStackInstances"
5312
5313// UpdateStackInstancesRequest generates a "aws/request.Request" representing the
5314// client's request for the UpdateStackInstances operation. The "output" return
5315// value will be populated with the request's response once the request completes
5316// successfully.
5317//
5318// Use "Send" method on the returned Request to send the API call to the service.
5319// the "output" return value is not valid until after Send returns without error.
5320//
5321// See UpdateStackInstances for more information on using the UpdateStackInstances
5322// API call, and error handling.
5323//
5324// This method is useful when you want to inject custom logic or configuration
5325// into the SDK's request lifecycle. Such as custom headers, or retry logic.
5326//
5327//
5328//    // Example sending a request using the UpdateStackInstancesRequest method.
5329//    req, resp := client.UpdateStackInstancesRequest(params)
5330//
5331//    err := req.Send()
5332//    if err == nil { // resp is now filled
5333//        fmt.Println(resp)
5334//    }
5335//
5336// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/UpdateStackInstances
5337func (c *CloudFormation) UpdateStackInstancesRequest(input *UpdateStackInstancesInput) (req *request.Request, output *UpdateStackInstancesOutput) {
5338	op := &request.Operation{
5339		Name:       opUpdateStackInstances,
5340		HTTPMethod: "POST",
5341		HTTPPath:   "/",
5342	}
5343
5344	if input == nil {
5345		input = &UpdateStackInstancesInput{}
5346	}
5347
5348	output = &UpdateStackInstancesOutput{}
5349	req = c.newRequest(op, input, output)
5350	return
5351}
5352
5353// UpdateStackInstances API operation for AWS CloudFormation.
5354//
5355// Updates the parameter values for stack instances for the specified accounts,
5356// within the specified Regions. A stack instance refers to a stack in a specific
5357// account and Region.
5358//
5359// You can only update stack instances in Regions and accounts where they already
5360// exist; to create additional stack instances, use CreateStackInstances (https://docs.aws.amazon.com/AWSCloudFormation/latest/APIReference/API_CreateStackInstances.html).
5361//
5362// During stack set updates, any parameters overridden for a stack instance
5363// are not updated, but retain their overridden value.
5364//
5365// You can only update the parameter values that are specified in the stack
5366// set; to add or delete a parameter itself, use UpdateStackSet (https://docs.aws.amazon.com/AWSCloudFormation/latest/APIReference/API_UpdateStackSet.html)
5367// to update the stack set template. If you add a parameter to a template, before
5368// you can override the parameter value specified in the stack set you must
5369// first use UpdateStackSet (https://docs.aws.amazon.com/AWSCloudFormation/latest/APIReference/API_UpdateStackSet.html)
5370// to update all stack instances with the updated template and parameter value
5371// specified in the stack set. Once a stack instance has been updated with the
5372// new parameter, you can then override the parameter value using UpdateStackInstances.
5373//
5374// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
5375// with awserr.Error's Code and Message methods to get detailed information about
5376// the error.
5377//
5378// See the AWS API reference guide for AWS CloudFormation's
5379// API operation UpdateStackInstances for usage and error information.
5380//
5381// Returned Error Codes:
5382//   * ErrCodeStackSetNotFoundException "StackSetNotFoundException"
5383//   The specified stack set doesn't exist.
5384//
5385//   * ErrCodeStackInstanceNotFoundException "StackInstanceNotFoundException"
5386//   The specified stack instance doesn't exist.
5387//
5388//   * ErrCodeOperationInProgressException "OperationInProgressException"
5389//   Another operation is currently in progress for this stack set. Only one operation
5390//   can be performed for a stack set at a given time.
5391//
5392//   * ErrCodeOperationIdAlreadyExistsException "OperationIdAlreadyExistsException"
5393//   The specified operation ID already exists.
5394//
5395//   * ErrCodeStaleRequestException "StaleRequestException"
5396//   Another operation has been performed on this stack set since the specified
5397//   operation was performed.
5398//
5399//   * ErrCodeInvalidOperationException "InvalidOperationException"
5400//   The specified operation isn't valid.
5401//
5402// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/UpdateStackInstances
5403func (c *CloudFormation) UpdateStackInstances(input *UpdateStackInstancesInput) (*UpdateStackInstancesOutput, error) {
5404	req, out := c.UpdateStackInstancesRequest(input)
5405	return out, req.Send()
5406}
5407
5408// UpdateStackInstancesWithContext is the same as UpdateStackInstances with the addition of
5409// the ability to pass a context and additional request options.
5410//
5411// See UpdateStackInstances for details on how to use this API operation.
5412//
5413// The context must be non-nil and will be used for request cancellation. If
5414// the context is nil a panic will occur. In the future the SDK may create
5415// sub-contexts for http.Requests. See https://golang.org/pkg/context/
5416// for more information on using Contexts.
5417func (c *CloudFormation) UpdateStackInstancesWithContext(ctx aws.Context, input *UpdateStackInstancesInput, opts ...request.Option) (*UpdateStackInstancesOutput, error) {
5418	req, out := c.UpdateStackInstancesRequest(input)
5419	req.SetContext(ctx)
5420	req.ApplyOptions(opts...)
5421	return out, req.Send()
5422}
5423
5424const opUpdateStackSet = "UpdateStackSet"
5425
5426// UpdateStackSetRequest generates a "aws/request.Request" representing the
5427// client's request for the UpdateStackSet operation. The "output" return
5428// value will be populated with the request's response once the request completes
5429// successfully.
5430//
5431// Use "Send" method on the returned Request to send the API call to the service.
5432// the "output" return value is not valid until after Send returns without error.
5433//
5434// See UpdateStackSet for more information on using the UpdateStackSet
5435// API call, and error handling.
5436//
5437// This method is useful when you want to inject custom logic or configuration
5438// into the SDK's request lifecycle. Such as custom headers, or retry logic.
5439//
5440//
5441//    // Example sending a request using the UpdateStackSetRequest method.
5442//    req, resp := client.UpdateStackSetRequest(params)
5443//
5444//    err := req.Send()
5445//    if err == nil { // resp is now filled
5446//        fmt.Println(resp)
5447//    }
5448//
5449// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/UpdateStackSet
5450func (c *CloudFormation) UpdateStackSetRequest(input *UpdateStackSetInput) (req *request.Request, output *UpdateStackSetOutput) {
5451	op := &request.Operation{
5452		Name:       opUpdateStackSet,
5453		HTTPMethod: "POST",
5454		HTTPPath:   "/",
5455	}
5456
5457	if input == nil {
5458		input = &UpdateStackSetInput{}
5459	}
5460
5461	output = &UpdateStackSetOutput{}
5462	req = c.newRequest(op, input, output)
5463	return
5464}
5465
5466// UpdateStackSet API operation for AWS CloudFormation.
5467//
5468// Updates the stack set, and associated stack instances in the specified accounts
5469// and Regions.
5470//
5471// Even if the stack set operation created by updating the stack set fails (completely
5472// or partially, below or above a specified failure tolerance), the stack set
5473// is updated with your changes. Subsequent CreateStackInstances calls on the
5474// specified stack set use the updated stack set.
5475//
5476// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
5477// with awserr.Error's Code and Message methods to get detailed information about
5478// the error.
5479//
5480// See the AWS API reference guide for AWS CloudFormation's
5481// API operation UpdateStackSet for usage and error information.
5482//
5483// Returned Error Codes:
5484//   * ErrCodeStackSetNotFoundException "StackSetNotFoundException"
5485//   The specified stack set doesn't exist.
5486//
5487//   * ErrCodeOperationInProgressException "OperationInProgressException"
5488//   Another operation is currently in progress for this stack set. Only one operation
5489//   can be performed for a stack set at a given time.
5490//
5491//   * ErrCodeOperationIdAlreadyExistsException "OperationIdAlreadyExistsException"
5492//   The specified operation ID already exists.
5493//
5494//   * ErrCodeStaleRequestException "StaleRequestException"
5495//   Another operation has been performed on this stack set since the specified
5496//   operation was performed.
5497//
5498//   * ErrCodeInvalidOperationException "InvalidOperationException"
5499//   The specified operation isn't valid.
5500//
5501//   * ErrCodeStackInstanceNotFoundException "StackInstanceNotFoundException"
5502//   The specified stack instance doesn't exist.
5503//
5504// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/UpdateStackSet
5505func (c *CloudFormation) UpdateStackSet(input *UpdateStackSetInput) (*UpdateStackSetOutput, error) {
5506	req, out := c.UpdateStackSetRequest(input)
5507	return out, req.Send()
5508}
5509
5510// UpdateStackSetWithContext is the same as UpdateStackSet with the addition of
5511// the ability to pass a context and additional request options.
5512//
5513// See UpdateStackSet for details on how to use this API operation.
5514//
5515// The context must be non-nil and will be used for request cancellation. If
5516// the context is nil a panic will occur. In the future the SDK may create
5517// sub-contexts for http.Requests. See https://golang.org/pkg/context/
5518// for more information on using Contexts.
5519func (c *CloudFormation) UpdateStackSetWithContext(ctx aws.Context, input *UpdateStackSetInput, opts ...request.Option) (*UpdateStackSetOutput, error) {
5520	req, out := c.UpdateStackSetRequest(input)
5521	req.SetContext(ctx)
5522	req.ApplyOptions(opts...)
5523	return out, req.Send()
5524}
5525
5526const opUpdateTerminationProtection = "UpdateTerminationProtection"
5527
5528// UpdateTerminationProtectionRequest generates a "aws/request.Request" representing the
5529// client's request for the UpdateTerminationProtection operation. The "output" return
5530// value will be populated with the request's response once the request completes
5531// successfully.
5532//
5533// Use "Send" method on the returned Request to send the API call to the service.
5534// the "output" return value is not valid until after Send returns without error.
5535//
5536// See UpdateTerminationProtection for more information on using the UpdateTerminationProtection
5537// API call, and error handling.
5538//
5539// This method is useful when you want to inject custom logic or configuration
5540// into the SDK's request lifecycle. Such as custom headers, or retry logic.
5541//
5542//
5543//    // Example sending a request using the UpdateTerminationProtectionRequest method.
5544//    req, resp := client.UpdateTerminationProtectionRequest(params)
5545//
5546//    err := req.Send()
5547//    if err == nil { // resp is now filled
5548//        fmt.Println(resp)
5549//    }
5550//
5551// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/UpdateTerminationProtection
5552func (c *CloudFormation) UpdateTerminationProtectionRequest(input *UpdateTerminationProtectionInput) (req *request.Request, output *UpdateTerminationProtectionOutput) {
5553	op := &request.Operation{
5554		Name:       opUpdateTerminationProtection,
5555		HTTPMethod: "POST",
5556		HTTPPath:   "/",
5557	}
5558
5559	if input == nil {
5560		input = &UpdateTerminationProtectionInput{}
5561	}
5562
5563	output = &UpdateTerminationProtectionOutput{}
5564	req = c.newRequest(op, input, output)
5565	return
5566}
5567
5568// UpdateTerminationProtection API operation for AWS CloudFormation.
5569//
5570// Updates termination protection for the specified stack. If a user attempts
5571// to delete a stack with termination protection enabled, the operation fails
5572// and the stack remains unchanged. For more information, see Protecting a Stack
5573// From Being Deleted (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-protect-stacks.html)
5574// in the AWS CloudFormation User Guide.
5575//
5576// For nested stacks (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-nested-stacks.html),
5577// termination protection is set on the root stack and cannot be changed directly
5578// on the nested stack.
5579//
5580// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
5581// with awserr.Error's Code and Message methods to get detailed information about
5582// the error.
5583//
5584// See the AWS API reference guide for AWS CloudFormation's
5585// API operation UpdateTerminationProtection for usage and error information.
5586// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/UpdateTerminationProtection
5587func (c *CloudFormation) UpdateTerminationProtection(input *UpdateTerminationProtectionInput) (*UpdateTerminationProtectionOutput, error) {
5588	req, out := c.UpdateTerminationProtectionRequest(input)
5589	return out, req.Send()
5590}
5591
5592// UpdateTerminationProtectionWithContext is the same as UpdateTerminationProtection with the addition of
5593// the ability to pass a context and additional request options.
5594//
5595// See UpdateTerminationProtection for details on how to use this API operation.
5596//
5597// The context must be non-nil and will be used for request cancellation. If
5598// the context is nil a panic will occur. In the future the SDK may create
5599// sub-contexts for http.Requests. See https://golang.org/pkg/context/
5600// for more information on using Contexts.
5601func (c *CloudFormation) UpdateTerminationProtectionWithContext(ctx aws.Context, input *UpdateTerminationProtectionInput, opts ...request.Option) (*UpdateTerminationProtectionOutput, error) {
5602	req, out := c.UpdateTerminationProtectionRequest(input)
5603	req.SetContext(ctx)
5604	req.ApplyOptions(opts...)
5605	return out, req.Send()
5606}
5607
5608const opValidateTemplate = "ValidateTemplate"
5609
5610// ValidateTemplateRequest generates a "aws/request.Request" representing the
5611// client's request for the ValidateTemplate operation. The "output" return
5612// value will be populated with the request's response once the request completes
5613// successfully.
5614//
5615// Use "Send" method on the returned Request to send the API call to the service.
5616// the "output" return value is not valid until after Send returns without error.
5617//
5618// See ValidateTemplate for more information on using the ValidateTemplate
5619// API call, and error handling.
5620//
5621// This method is useful when you want to inject custom logic or configuration
5622// into the SDK's request lifecycle. Such as custom headers, or retry logic.
5623//
5624//
5625//    // Example sending a request using the ValidateTemplateRequest method.
5626//    req, resp := client.ValidateTemplateRequest(params)
5627//
5628//    err := req.Send()
5629//    if err == nil { // resp is now filled
5630//        fmt.Println(resp)
5631//    }
5632//
5633// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/ValidateTemplate
5634func (c *CloudFormation) ValidateTemplateRequest(input *ValidateTemplateInput) (req *request.Request, output *ValidateTemplateOutput) {
5635	op := &request.Operation{
5636		Name:       opValidateTemplate,
5637		HTTPMethod: "POST",
5638		HTTPPath:   "/",
5639	}
5640
5641	if input == nil {
5642		input = &ValidateTemplateInput{}
5643	}
5644
5645	output = &ValidateTemplateOutput{}
5646	req = c.newRequest(op, input, output)
5647	return
5648}
5649
5650// ValidateTemplate API operation for AWS CloudFormation.
5651//
5652// Validates a specified template. AWS CloudFormation first checks if the template
5653// is valid JSON. If it isn't, AWS CloudFormation checks if the template is
5654// valid YAML. If both these checks fail, AWS CloudFormation returns a template
5655// validation error.
5656//
5657// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
5658// with awserr.Error's Code and Message methods to get detailed information about
5659// the error.
5660//
5661// See the AWS API reference guide for AWS CloudFormation's
5662// API operation ValidateTemplate for usage and error information.
5663// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/ValidateTemplate
5664func (c *CloudFormation) ValidateTemplate(input *ValidateTemplateInput) (*ValidateTemplateOutput, error) {
5665	req, out := c.ValidateTemplateRequest(input)
5666	return out, req.Send()
5667}
5668
5669// ValidateTemplateWithContext is the same as ValidateTemplate with the addition of
5670// the ability to pass a context and additional request options.
5671//
5672// See ValidateTemplate for details on how to use this API operation.
5673//
5674// The context must be non-nil and will be used for request cancellation. If
5675// the context is nil a panic will occur. In the future the SDK may create
5676// sub-contexts for http.Requests. See https://golang.org/pkg/context/
5677// for more information on using Contexts.
5678func (c *CloudFormation) ValidateTemplateWithContext(ctx aws.Context, input *ValidateTemplateInput, opts ...request.Option) (*ValidateTemplateOutput, error) {
5679	req, out := c.ValidateTemplateRequest(input)
5680	req.SetContext(ctx)
5681	req.ApplyOptions(opts...)
5682	return out, req.Send()
5683}
5684
5685// Structure that contains the results of the account gate function which AWS
5686// CloudFormation invokes, if present, before proceeding with a stack set operation
5687// in an account and Region.
5688//
5689// For each account and Region, AWS CloudFormation lets you specify a Lamdba
5690// function that encapsulates any requirements that must be met before CloudFormation
5691// can proceed with a stack set operation in that account and Region. CloudFormation
5692// invokes the function each time a stack set operation is requested for that
5693// account and Region; if the function returns FAILED, CloudFormation cancels
5694// the operation in that account and Region, and sets the stack set operation
5695// result status for that account and Region to FAILED.
5696//
5697// For more information, see Configuring a target account gate (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/stacksets-account-gating.html).
5698type AccountGateResult struct {
5699	_ struct{} `type:"structure"`
5700
5701	// The status of the account gate function.
5702	//
5703	//    * SUCCEEDED: The account gate function has determined that the account
5704	//    and Region passes any requirements for a stack set operation to occur.
5705	//    AWS CloudFormation proceeds with the stack operation in that account and
5706	//    Region.
5707	//
5708	//    * FAILED: The account gate function has determined that the account and
5709	//    Region does not meet the requirements for a stack set operation to occur.
5710	//    AWS CloudFormation cancels the stack set operation in that account and
5711	//    Region, and sets the stack set operation result status for that account
5712	//    and Region to FAILED.
5713	//
5714	//    * SKIPPED: AWS CloudFormation has skipped calling the account gate function
5715	//    for this account and Region, for one of the following reasons: An account
5716	//    gate function has not been specified for the account and Region. AWS CloudFormation
5717	//    proceeds with the stack set operation in this account and Region. The
5718	//    AWSCloudFormationStackSetExecutionRole of the stack set adminstration
5719	//    account lacks permissions to invoke the function. AWS CloudFormation proceeds
5720	//    with the stack set operation in this account and Region. Either no action
5721	//    is necessary, or no action is possible, on the stack. AWS CloudFormation
5722	//    skips the stack set operation in this account and Region.
5723	Status *string `type:"string" enum:"AccountGateStatus"`
5724
5725	// The reason for the account gate status assigned to this account and Region
5726	// for the stack set operation.
5727	StatusReason *string `type:"string"`
5728}
5729
5730// String returns the string representation
5731func (s AccountGateResult) String() string {
5732	return awsutil.Prettify(s)
5733}
5734
5735// GoString returns the string representation
5736func (s AccountGateResult) GoString() string {
5737	return s.String()
5738}
5739
5740// SetStatus sets the Status field's value.
5741func (s *AccountGateResult) SetStatus(v string) *AccountGateResult {
5742	s.Status = &v
5743	return s
5744}
5745
5746// SetStatusReason sets the StatusReason field's value.
5747func (s *AccountGateResult) SetStatusReason(v string) *AccountGateResult {
5748	s.StatusReason = &v
5749	return s
5750}
5751
5752// The AccountLimit data type.
5753//
5754// CloudFormation has the following limits per account:
5755//
5756//    * Number of concurrent resources
5757//
5758//    * Number of stacks
5759//
5760//    * Number of stack outputs
5761//
5762// For more information about these account limits, and other CloudFormation
5763// limits, see AWS CloudFormation Limits (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/cloudformation-limits.html)
5764// in the AWS CloudFormation User Guide.
5765type AccountLimit struct {
5766	_ struct{} `type:"structure"`
5767
5768	// The name of the account limit.
5769	//
5770	// Values: ConcurrentResourcesLimit | StackLimit | StackOutputsLimit
5771	Name *string `type:"string"`
5772
5773	// The value that is associated with the account limit name.
5774	Value *int64 `type:"integer"`
5775}
5776
5777// String returns the string representation
5778func (s AccountLimit) String() string {
5779	return awsutil.Prettify(s)
5780}
5781
5782// GoString returns the string representation
5783func (s AccountLimit) GoString() string {
5784	return s.String()
5785}
5786
5787// SetName sets the Name field's value.
5788func (s *AccountLimit) SetName(v string) *AccountLimit {
5789	s.Name = &v
5790	return s
5791}
5792
5793// SetValue sets the Value field's value.
5794func (s *AccountLimit) SetValue(v int64) *AccountLimit {
5795	s.Value = &v
5796	return s
5797}
5798
5799// [Service-managed permissions] Describes whether StackSets automatically deploys
5800// to AWS Organizations accounts that are added to a target organization or
5801// organizational unit (OU).
5802type AutoDeployment struct {
5803	_ struct{} `type:"structure"`
5804
5805	// If set to true, StackSets automatically deploys additional stack instances
5806	// to AWS Organizations accounts that are added to a target organization or
5807	// organizational unit (OU) in the specified Regions. If an account is removed
5808	// from a target organization or OU, StackSets deletes stack instances from
5809	// the account in the specified Regions.
5810	Enabled *bool `type:"boolean"`
5811
5812	// If set to true, stack resources are retained when an account is removed from
5813	// a target organization or OU. If set to false, stack resources are deleted.
5814	// Specify only if Enabled is set to True.
5815	RetainStacksOnAccountRemoval *bool `type:"boolean"`
5816}
5817
5818// String returns the string representation
5819func (s AutoDeployment) String() string {
5820	return awsutil.Prettify(s)
5821}
5822
5823// GoString returns the string representation
5824func (s AutoDeployment) GoString() string {
5825	return s.String()
5826}
5827
5828// SetEnabled sets the Enabled field's value.
5829func (s *AutoDeployment) SetEnabled(v bool) *AutoDeployment {
5830	s.Enabled = &v
5831	return s
5832}
5833
5834// SetRetainStacksOnAccountRemoval sets the RetainStacksOnAccountRemoval field's value.
5835func (s *AutoDeployment) SetRetainStacksOnAccountRemoval(v bool) *AutoDeployment {
5836	s.RetainStacksOnAccountRemoval = &v
5837	return s
5838}
5839
5840// The input for the CancelUpdateStack action.
5841type CancelUpdateStackInput struct {
5842	_ struct{} `type:"structure"`
5843
5844	// A unique identifier for this CancelUpdateStack request. Specify this token
5845	// if you plan to retry requests so that AWS CloudFormation knows that you're
5846	// not attempting to cancel an update on a stack with the same name. You might
5847	// retry CancelUpdateStack requests to ensure that AWS CloudFormation successfully
5848	// received them.
5849	ClientRequestToken *string `min:"1" type:"string"`
5850
5851	// The name or the unique stack ID that is associated with the stack.
5852	//
5853	// StackName is a required field
5854	StackName *string `type:"string" required:"true"`
5855}
5856
5857// String returns the string representation
5858func (s CancelUpdateStackInput) String() string {
5859	return awsutil.Prettify(s)
5860}
5861
5862// GoString returns the string representation
5863func (s CancelUpdateStackInput) GoString() string {
5864	return s.String()
5865}
5866
5867// Validate inspects the fields of the type to determine if they are valid.
5868func (s *CancelUpdateStackInput) Validate() error {
5869	invalidParams := request.ErrInvalidParams{Context: "CancelUpdateStackInput"}
5870	if s.ClientRequestToken != nil && len(*s.ClientRequestToken) < 1 {
5871		invalidParams.Add(request.NewErrParamMinLen("ClientRequestToken", 1))
5872	}
5873	if s.StackName == nil {
5874		invalidParams.Add(request.NewErrParamRequired("StackName"))
5875	}
5876
5877	if invalidParams.Len() > 0 {
5878		return invalidParams
5879	}
5880	return nil
5881}
5882
5883// SetClientRequestToken sets the ClientRequestToken field's value.
5884func (s *CancelUpdateStackInput) SetClientRequestToken(v string) *CancelUpdateStackInput {
5885	s.ClientRequestToken = &v
5886	return s
5887}
5888
5889// SetStackName sets the StackName field's value.
5890func (s *CancelUpdateStackInput) SetStackName(v string) *CancelUpdateStackInput {
5891	s.StackName = &v
5892	return s
5893}
5894
5895type CancelUpdateStackOutput struct {
5896	_ struct{} `type:"structure"`
5897}
5898
5899// String returns the string representation
5900func (s CancelUpdateStackOutput) String() string {
5901	return awsutil.Prettify(s)
5902}
5903
5904// GoString returns the string representation
5905func (s CancelUpdateStackOutput) GoString() string {
5906	return s.String()
5907}
5908
5909// The Change structure describes the changes AWS CloudFormation will perform
5910// if you execute the change set.
5911type Change struct {
5912	_ struct{} `type:"structure"`
5913
5914	// A ResourceChange structure that describes the resource and action that AWS
5915	// CloudFormation will perform.
5916	ResourceChange *ResourceChange `type:"structure"`
5917
5918	// The type of entity that AWS CloudFormation changes. Currently, the only entity
5919	// type is Resource.
5920	Type *string `type:"string" enum:"ChangeType"`
5921}
5922
5923// String returns the string representation
5924func (s Change) String() string {
5925	return awsutil.Prettify(s)
5926}
5927
5928// GoString returns the string representation
5929func (s Change) GoString() string {
5930	return s.String()
5931}
5932
5933// SetResourceChange sets the ResourceChange field's value.
5934func (s *Change) SetResourceChange(v *ResourceChange) *Change {
5935	s.ResourceChange = v
5936	return s
5937}
5938
5939// SetType sets the Type field's value.
5940func (s *Change) SetType(v string) *Change {
5941	s.Type = &v
5942	return s
5943}
5944
5945// The ChangeSetSummary structure describes a change set, its status, and the
5946// stack with which it's associated.
5947type ChangeSetSummary struct {
5948	_ struct{} `type:"structure"`
5949
5950	// The ID of the change set.
5951	ChangeSetId *string `min:"1" type:"string"`
5952
5953	// The name of the change set.
5954	ChangeSetName *string `min:"1" type:"string"`
5955
5956	// The start time when the change set was created, in UTC.
5957	CreationTime *time.Time `type:"timestamp"`
5958
5959	// Descriptive information about the change set.
5960	Description *string `min:"1" type:"string"`
5961
5962	// If the change set execution status is AVAILABLE, you can execute the change
5963	// set. If you can’t execute the change set, the status indicates why. For
5964	// example, a change set might be in an UNAVAILABLE state because AWS CloudFormation
5965	// is still creating it or in an OBSOLETE state because the stack was already
5966	// updated.
5967	ExecutionStatus *string `type:"string" enum:"ExecutionStatus"`
5968
5969	// The ID of the stack with which the change set is associated.
5970	StackId *string `type:"string"`
5971
5972	// The name of the stack with which the change set is associated.
5973	StackName *string `type:"string"`
5974
5975	// The state of the change set, such as CREATE_IN_PROGRESS, CREATE_COMPLETE,
5976	// or FAILED.
5977	Status *string `type:"string" enum:"ChangeSetStatus"`
5978
5979	// A description of the change set's status. For example, if your change set
5980	// is in the FAILED state, AWS CloudFormation shows the error message.
5981	StatusReason *string `type:"string"`
5982}
5983
5984// String returns the string representation
5985func (s ChangeSetSummary) String() string {
5986	return awsutil.Prettify(s)
5987}
5988
5989// GoString returns the string representation
5990func (s ChangeSetSummary) GoString() string {
5991	return s.String()
5992}
5993
5994// SetChangeSetId sets the ChangeSetId field's value.
5995func (s *ChangeSetSummary) SetChangeSetId(v string) *ChangeSetSummary {
5996	s.ChangeSetId = &v
5997	return s
5998}
5999
6000// SetChangeSetName sets the ChangeSetName field's value.
6001func (s *ChangeSetSummary) SetChangeSetName(v string) *ChangeSetSummary {
6002	s.ChangeSetName = &v
6003	return s
6004}
6005
6006// SetCreationTime sets the CreationTime field's value.
6007func (s *ChangeSetSummary) SetCreationTime(v time.Time) *ChangeSetSummary {
6008	s.CreationTime = &v
6009	return s
6010}
6011
6012// SetDescription sets the Description field's value.
6013func (s *ChangeSetSummary) SetDescription(v string) *ChangeSetSummary {
6014	s.Description = &v
6015	return s
6016}
6017
6018// SetExecutionStatus sets the ExecutionStatus field's value.
6019func (s *ChangeSetSummary) SetExecutionStatus(v string) *ChangeSetSummary {
6020	s.ExecutionStatus = &v
6021	return s
6022}
6023
6024// SetStackId sets the StackId field's value.
6025func (s *ChangeSetSummary) SetStackId(v string) *ChangeSetSummary {
6026	s.StackId = &v
6027	return s
6028}
6029
6030// SetStackName sets the StackName field's value.
6031func (s *ChangeSetSummary) SetStackName(v string) *ChangeSetSummary {
6032	s.StackName = &v
6033	return s
6034}
6035
6036// SetStatus sets the Status field's value.
6037func (s *ChangeSetSummary) SetStatus(v string) *ChangeSetSummary {
6038	s.Status = &v
6039	return s
6040}
6041
6042// SetStatusReason sets the StatusReason field's value.
6043func (s *ChangeSetSummary) SetStatusReason(v string) *ChangeSetSummary {
6044	s.StatusReason = &v
6045	return s
6046}
6047
6048// The input for the ContinueUpdateRollback action.
6049type ContinueUpdateRollbackInput struct {
6050	_ struct{} `type:"structure"`
6051
6052	// A unique identifier for this ContinueUpdateRollback request. Specify this
6053	// token if you plan to retry requests so that AWS CloudFormation knows that
6054	// you're not attempting to continue the rollback to a stack with the same name.
6055	// You might retry ContinueUpdateRollback requests to ensure that AWS CloudFormation
6056	// successfully received them.
6057	ClientRequestToken *string `min:"1" type:"string"`
6058
6059	// A list of the logical IDs of the resources that AWS CloudFormation skips
6060	// during the continue update rollback operation. You can specify only resources
6061	// that are in the UPDATE_FAILED state because a rollback failed. You can't
6062	// specify resources that are in the UPDATE_FAILED state for other reasons,
6063	// for example, because an update was cancelled. To check why a resource update
6064	// failed, use the DescribeStackResources action, and view the resource status
6065	// reason.
6066	//
6067	// Specify this property to skip rolling back resources that AWS CloudFormation
6068	// 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)
6069	// resources before skipping them. AWS CloudFormation sets the status of the
6070	// specified resources to UPDATE_COMPLETE and continues to roll back the stack.
6071	// After the rollback is complete, the state of the skipped resources will be
6072	// inconsistent with the state of the resources in the stack template. Before
6073	// performing another stack update, you must update the stack or resources to
6074	// be consistent with each other. If you don't, subsequent stack updates might
6075	// fail, and the stack will become unrecoverable.
6076	//
6077	// Specify the minimum number of resources required to successfully roll back
6078	// your stack. For example, a failed resource update might cause dependent resources
6079	// to fail. In this case, it might not be necessary to skip the dependent resources.
6080	//
6081	// To skip resources that are part of nested stacks, use the following format:
6082	// NestedStackName.ResourceLogicalID. If you want to specify the logical ID
6083	// of a stack resource (Type: AWS::CloudFormation::Stack) in the ResourcesToSkip
6084	// list, then its corresponding embedded stack must be in one of the following
6085	// states: DELETE_IN_PROGRESS, DELETE_COMPLETE, or DELETE_FAILED.
6086	//
6087	// Don't confuse a child stack's name with its corresponding logical ID defined
6088	// in the parent stack. For an example of a continue update rollback operation
6089	// with nested stacks, see Using ResourcesToSkip to recover a nested stacks
6090	// hierarchy (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-continueupdaterollback.html#nested-stacks).
6091	ResourcesToSkip []*string `type:"list"`
6092
6093	// The Amazon Resource Name (ARN) of an AWS Identity and Access Management (IAM)
6094	// role that AWS CloudFormation assumes to roll back the stack. AWS CloudFormation
6095	// uses the role's credentials to make calls on your behalf. AWS CloudFormation
6096	// always uses this role for all future operations on the stack. As long as
6097	// users have permission to operate on the stack, AWS CloudFormation uses this
6098	// role even if the users don't have permission to pass it. Ensure that the
6099	// role grants least privilege.
6100	//
6101	// If you don't specify a value, AWS CloudFormation uses the role that was previously
6102	// associated with the stack. If no role is available, AWS CloudFormation uses
6103	// a temporary session that is generated from your user credentials.
6104	RoleARN *string `min:"20" type:"string"`
6105
6106	// The name or the unique ID of the stack that you want to continue rolling
6107	// back.
6108	//
6109	// Don't specify the name of a nested stack (a stack that was created by using
6110	// the AWS::CloudFormation::Stack resource). Instead, use this operation on
6111	// the parent stack (the stack that contains the AWS::CloudFormation::Stack
6112	// resource).
6113	//
6114	// StackName is a required field
6115	StackName *string `min:"1" type:"string" required:"true"`
6116}
6117
6118// String returns the string representation
6119func (s ContinueUpdateRollbackInput) String() string {
6120	return awsutil.Prettify(s)
6121}
6122
6123// GoString returns the string representation
6124func (s ContinueUpdateRollbackInput) GoString() string {
6125	return s.String()
6126}
6127
6128// Validate inspects the fields of the type to determine if they are valid.
6129func (s *ContinueUpdateRollbackInput) Validate() error {
6130	invalidParams := request.ErrInvalidParams{Context: "ContinueUpdateRollbackInput"}
6131	if s.ClientRequestToken != nil && len(*s.ClientRequestToken) < 1 {
6132		invalidParams.Add(request.NewErrParamMinLen("ClientRequestToken", 1))
6133	}
6134	if s.RoleARN != nil && len(*s.RoleARN) < 20 {
6135		invalidParams.Add(request.NewErrParamMinLen("RoleARN", 20))
6136	}
6137	if s.StackName == nil {
6138		invalidParams.Add(request.NewErrParamRequired("StackName"))
6139	}
6140	if s.StackName != nil && len(*s.StackName) < 1 {
6141		invalidParams.Add(request.NewErrParamMinLen("StackName", 1))
6142	}
6143
6144	if invalidParams.Len() > 0 {
6145		return invalidParams
6146	}
6147	return nil
6148}
6149
6150// SetClientRequestToken sets the ClientRequestToken field's value.
6151func (s *ContinueUpdateRollbackInput) SetClientRequestToken(v string) *ContinueUpdateRollbackInput {
6152	s.ClientRequestToken = &v
6153	return s
6154}
6155
6156// SetResourcesToSkip sets the ResourcesToSkip field's value.
6157func (s *ContinueUpdateRollbackInput) SetResourcesToSkip(v []*string) *ContinueUpdateRollbackInput {
6158	s.ResourcesToSkip = v
6159	return s
6160}
6161
6162// SetRoleARN sets the RoleARN field's value.
6163func (s *ContinueUpdateRollbackInput) SetRoleARN(v string) *ContinueUpdateRollbackInput {
6164	s.RoleARN = &v
6165	return s
6166}
6167
6168// SetStackName sets the StackName field's value.
6169func (s *ContinueUpdateRollbackInput) SetStackName(v string) *ContinueUpdateRollbackInput {
6170	s.StackName = &v
6171	return s
6172}
6173
6174// The output for a ContinueUpdateRollback action.
6175type ContinueUpdateRollbackOutput struct {
6176	_ struct{} `type:"structure"`
6177}
6178
6179// String returns the string representation
6180func (s ContinueUpdateRollbackOutput) String() string {
6181	return awsutil.Prettify(s)
6182}
6183
6184// GoString returns the string representation
6185func (s ContinueUpdateRollbackOutput) GoString() string {
6186	return s.String()
6187}
6188
6189// The input for the CreateChangeSet action.
6190type CreateChangeSetInput struct {
6191	_ struct{} `type:"structure"`
6192
6193	// In some cases, you must explicitly acknowledge that your stack template contains
6194	// certain capabilities in order for AWS CloudFormation to create the stack.
6195	//
6196	//    * CAPABILITY_IAM and CAPABILITY_NAMED_IAM Some stack templates might include
6197	//    resources that can affect permissions in your AWS account; for example,
6198	//    by creating new AWS Identity and Access Management (IAM) users. For those
6199	//    stacks, you must explicitly acknowledge this by specifying one of these
6200	//    capabilities. The following IAM resources require you to specify either
6201	//    the CAPABILITY_IAM or CAPABILITY_NAMED_IAM capability. If you have IAM
6202	//    resources, you can specify either capability. If you have IAM resources
6203	//    with custom names, you must specify CAPABILITY_NAMED_IAM. If you don't
6204	//    specify either of these capabilities, AWS CloudFormation returns an InsufficientCapabilities
6205	//    error. If your stack template contains these resources, we recommend that
6206	//    you review all permissions associated with them and edit their permissions
6207	//    if necessary. AWS::IAM::AccessKey (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iam-accesskey.html)
6208	//    AWS::IAM::Group (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iam-group.html)
6209	//    AWS::IAM::InstanceProfile (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iam-instanceprofile.html)
6210	//    AWS::IAM::Policy (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iam-policy.html)
6211	//    AWS::IAM::Role (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iam-role.html)
6212	//    AWS::IAM::User (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iam-user.html)
6213	//    AWS::IAM::UserToGroupAddition (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iam-addusertogroup.html)
6214	//    For more information, see Acknowledging IAM Resources in AWS CloudFormation
6215	//    Templates (http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-iam-template.html#capabilities).
6216	//
6217	//    * CAPABILITY_AUTO_EXPAND Some template contain macros. Macros perform
6218	//    custom processing on templates; this can include simple actions like find-and-replace
6219	//    operations, all the way to extensive transformations of entire templates.
6220	//    Because of this, users typically create a change set from the processed
6221	//    template, so that they can review the changes resulting from the macros
6222	//    before actually creating the stack. If your stack template contains one
6223	//    or more macros, and you choose to create a stack directly from the processed
6224	//    template, without first reviewing the resulting changes in a change set,
6225	//    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)
6226	//    and AWS::Serverless (http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/transform-aws-serverless.html)
6227	//    transforms, which are macros hosted by AWS CloudFormation. This capacity
6228	//    does not apply to creating change sets, and specifying it when creating
6229	//    change sets has no effect. Also, change sets do not currently support
6230	//    nested stacks. If you want to create a stack from a stack template that
6231	//    contains macros and nested stacks, you must create or update the stack
6232	//    directly from the template using the CreateStack or UpdateStack action,
6233	//    and specifying this capability. For more information on macros, see Using
6234	//    AWS CloudFormation Macros to Perform Custom Processing on Templates (http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/template-macros.html).
6235	Capabilities []*string `type:"list"`
6236
6237	// The name of the change set. The name must be unique among all change sets
6238	// that are associated with the specified stack.
6239	//
6240	// A change set name can contain only alphanumeric, case sensitive characters
6241	// and hyphens. It must start with an alphabetic character and cannot exceed
6242	// 128 characters.
6243	//
6244	// ChangeSetName is a required field
6245	ChangeSetName *string `min:"1" type:"string" required:"true"`
6246
6247	// The type of change set operation. To create a change set for a new stack,
6248	// specify CREATE. To create a change set for an existing stack, specify UPDATE.
6249	// To create a change set for an import operation, specify IMPORT.
6250	//
6251	// If you create a change set for a new stack, AWS Cloudformation creates a
6252	// stack with a unique stack ID, but no template or resources. The stack will
6253	// be in the REVIEW_IN_PROGRESS (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-describing-stacks.html#d0e11995)
6254	// state until you execute the change set.
6255	//
6256	// By default, AWS CloudFormation specifies UPDATE. You can't use the UPDATE
6257	// type to create a change set for a new stack or the CREATE type to create
6258	// a change set for an existing stack.
6259	ChangeSetType *string `type:"string" enum:"ChangeSetType"`
6260
6261	// A unique identifier for this CreateChangeSet request. Specify this token
6262	// if you plan to retry requests so that AWS CloudFormation knows that you're
6263	// not attempting to create another change set with the same name. You might
6264	// retry CreateChangeSet requests to ensure that AWS CloudFormation successfully
6265	// received them.
6266	ClientToken *string `min:"1" type:"string"`
6267
6268	// A description to help you identify this change set.
6269	Description *string `min:"1" type:"string"`
6270
6271	// The Amazon Resource Names (ARNs) of Amazon Simple Notification Service (Amazon
6272	// SNS) topics that AWS CloudFormation associates with the stack. To remove
6273	// all associated notification topics, specify an empty list.
6274	NotificationARNs []*string `type:"list"`
6275
6276	// A list of Parameter structures that specify input parameters for the change
6277	// set. For more information, see the Parameter data type.
6278	Parameters []*Parameter `type:"list"`
6279
6280	// The template resource types that you have permissions to work with if you
6281	// execute this change set, such as AWS::EC2::Instance, AWS::EC2::*, or Custom::MyCustomInstance.
6282	//
6283	// If the list of resource types doesn't include a resource type that you're
6284	// updating, the stack update fails. By default, AWS CloudFormation grants permissions
6285	// to all resource types. AWS Identity and Access Management (IAM) uses this
6286	// parameter for condition keys in IAM policies for AWS CloudFormation. For
6287	// more information, see Controlling Access with AWS Identity and Access Management
6288	// (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-iam-template.html)
6289	// in the AWS CloudFormation User Guide.
6290	ResourceTypes []*string `type:"list"`
6291
6292	// The resources to import into your stack.
6293	ResourcesToImport []*ResourceToImport `type:"list"`
6294
6295	// The Amazon Resource Name (ARN) of an AWS Identity and Access Management (IAM)
6296	// role that AWS CloudFormation assumes when executing the change set. AWS CloudFormation
6297	// uses the role's credentials to make calls on your behalf. AWS CloudFormation
6298	// uses this role for all future operations on the stack. As long as users have
6299	// permission to operate on the stack, AWS CloudFormation uses this role even
6300	// if the users don't have permission to pass it. Ensure that the role grants
6301	// least privilege.
6302	//
6303	// If you don't specify a value, AWS CloudFormation uses the role that was previously
6304	// associated with the stack. If no role is available, AWS CloudFormation uses
6305	// a temporary session that is generated from your user credentials.
6306	RoleARN *string `min:"20" type:"string"`
6307
6308	// The rollback triggers for AWS CloudFormation to monitor during stack creation
6309	// and updating operations, and for the specified monitoring period afterwards.
6310	RollbackConfiguration *RollbackConfiguration `type:"structure"`
6311
6312	// The name or the unique ID of the stack for which you are creating a change
6313	// set. AWS CloudFormation generates the change set by comparing this stack's
6314	// information with the information that you submit, such as a modified template
6315	// or different parameter input values.
6316	//
6317	// StackName is a required field
6318	StackName *string `min:"1" type:"string" required:"true"`
6319
6320	// Key-value pairs to associate with this stack. AWS CloudFormation also propagates
6321	// these tags to resources in the stack. You can specify a maximum of 50 tags.
6322	Tags []*Tag `type:"list"`
6323
6324	// A structure that contains the body of the revised template, with a minimum
6325	// length of 1 byte and a maximum length of 51,200 bytes. AWS CloudFormation
6326	// generates the change set by comparing this template with the template of
6327	// the stack that you specified.
6328	//
6329	// Conditional: You must specify only TemplateBody or TemplateURL.
6330	TemplateBody *string `min:"1" type:"string"`
6331
6332	// The location of the file that contains the revised template. The URL must
6333	// point to a template (max size: 460,800 bytes) that is located in an S3 bucket.
6334	// AWS CloudFormation generates the change set by comparing this template with
6335	// the stack that you specified.
6336	//
6337	// Conditional: You must specify only TemplateBody or TemplateURL.
6338	TemplateURL *string `min:"1" type:"string"`
6339
6340	// Whether to reuse the template that is associated with the stack to create
6341	// the change set.
6342	UsePreviousTemplate *bool `type:"boolean"`
6343}
6344
6345// String returns the string representation
6346func (s CreateChangeSetInput) String() string {
6347	return awsutil.Prettify(s)
6348}
6349
6350// GoString returns the string representation
6351func (s CreateChangeSetInput) GoString() string {
6352	return s.String()
6353}
6354
6355// Validate inspects the fields of the type to determine if they are valid.
6356func (s *CreateChangeSetInput) Validate() error {
6357	invalidParams := request.ErrInvalidParams{Context: "CreateChangeSetInput"}
6358	if s.ChangeSetName == nil {
6359		invalidParams.Add(request.NewErrParamRequired("ChangeSetName"))
6360	}
6361	if s.ChangeSetName != nil && len(*s.ChangeSetName) < 1 {
6362		invalidParams.Add(request.NewErrParamMinLen("ChangeSetName", 1))
6363	}
6364	if s.ClientToken != nil && len(*s.ClientToken) < 1 {
6365		invalidParams.Add(request.NewErrParamMinLen("ClientToken", 1))
6366	}
6367	if s.Description != nil && len(*s.Description) < 1 {
6368		invalidParams.Add(request.NewErrParamMinLen("Description", 1))
6369	}
6370	if s.RoleARN != nil && len(*s.RoleARN) < 20 {
6371		invalidParams.Add(request.NewErrParamMinLen("RoleARN", 20))
6372	}
6373	if s.StackName == nil {
6374		invalidParams.Add(request.NewErrParamRequired("StackName"))
6375	}
6376	if s.StackName != nil && len(*s.StackName) < 1 {
6377		invalidParams.Add(request.NewErrParamMinLen("StackName", 1))
6378	}
6379	if s.TemplateBody != nil && len(*s.TemplateBody) < 1 {
6380		invalidParams.Add(request.NewErrParamMinLen("TemplateBody", 1))
6381	}
6382	if s.TemplateURL != nil && len(*s.TemplateURL) < 1 {
6383		invalidParams.Add(request.NewErrParamMinLen("TemplateURL", 1))
6384	}
6385	if s.ResourcesToImport != nil {
6386		for i, v := range s.ResourcesToImport {
6387			if v == nil {
6388				continue
6389			}
6390			if err := v.Validate(); err != nil {
6391				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "ResourcesToImport", i), err.(request.ErrInvalidParams))
6392			}
6393		}
6394	}
6395	if s.RollbackConfiguration != nil {
6396		if err := s.RollbackConfiguration.Validate(); err != nil {
6397			invalidParams.AddNested("RollbackConfiguration", err.(request.ErrInvalidParams))
6398		}
6399	}
6400	if s.Tags != nil {
6401		for i, v := range s.Tags {
6402			if v == nil {
6403				continue
6404			}
6405			if err := v.Validate(); err != nil {
6406				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Tags", i), err.(request.ErrInvalidParams))
6407			}
6408		}
6409	}
6410
6411	if invalidParams.Len() > 0 {
6412		return invalidParams
6413	}
6414	return nil
6415}
6416
6417// SetCapabilities sets the Capabilities field's value.
6418func (s *CreateChangeSetInput) SetCapabilities(v []*string) *CreateChangeSetInput {
6419	s.Capabilities = v
6420	return s
6421}
6422
6423// SetChangeSetName sets the ChangeSetName field's value.
6424func (s *CreateChangeSetInput) SetChangeSetName(v string) *CreateChangeSetInput {
6425	s.ChangeSetName = &v
6426	return s
6427}
6428
6429// SetChangeSetType sets the ChangeSetType field's value.
6430func (s *CreateChangeSetInput) SetChangeSetType(v string) *CreateChangeSetInput {
6431	s.ChangeSetType = &v
6432	return s
6433}
6434
6435// SetClientToken sets the ClientToken field's value.
6436func (s *CreateChangeSetInput) SetClientToken(v string) *CreateChangeSetInput {
6437	s.ClientToken = &v
6438	return s
6439}
6440
6441// SetDescription sets the Description field's value.
6442func (s *CreateChangeSetInput) SetDescription(v string) *CreateChangeSetInput {
6443	s.Description = &v
6444	return s
6445}
6446
6447// SetNotificationARNs sets the NotificationARNs field's value.
6448func (s *CreateChangeSetInput) SetNotificationARNs(v []*string) *CreateChangeSetInput {
6449	s.NotificationARNs = v
6450	return s
6451}
6452
6453// SetParameters sets the Parameters field's value.
6454func (s *CreateChangeSetInput) SetParameters(v []*Parameter) *CreateChangeSetInput {
6455	s.Parameters = v
6456	return s
6457}
6458
6459// SetResourceTypes sets the ResourceTypes field's value.
6460func (s *CreateChangeSetInput) SetResourceTypes(v []*string) *CreateChangeSetInput {
6461	s.ResourceTypes = v
6462	return s
6463}
6464
6465// SetResourcesToImport sets the ResourcesToImport field's value.
6466func (s *CreateChangeSetInput) SetResourcesToImport(v []*ResourceToImport) *CreateChangeSetInput {
6467	s.ResourcesToImport = v
6468	return s
6469}
6470
6471// SetRoleARN sets the RoleARN field's value.
6472func (s *CreateChangeSetInput) SetRoleARN(v string) *CreateChangeSetInput {
6473	s.RoleARN = &v
6474	return s
6475}
6476
6477// SetRollbackConfiguration sets the RollbackConfiguration field's value.
6478func (s *CreateChangeSetInput) SetRollbackConfiguration(v *RollbackConfiguration) *CreateChangeSetInput {
6479	s.RollbackConfiguration = v
6480	return s
6481}
6482
6483// SetStackName sets the StackName field's value.
6484func (s *CreateChangeSetInput) SetStackName(v string) *CreateChangeSetInput {
6485	s.StackName = &v
6486	return s
6487}
6488
6489// SetTags sets the Tags field's value.
6490func (s *CreateChangeSetInput) SetTags(v []*Tag) *CreateChangeSetInput {
6491	s.Tags = v
6492	return s
6493}
6494
6495// SetTemplateBody sets the TemplateBody field's value.
6496func (s *CreateChangeSetInput) SetTemplateBody(v string) *CreateChangeSetInput {
6497	s.TemplateBody = &v
6498	return s
6499}
6500
6501// SetTemplateURL sets the TemplateURL field's value.
6502func (s *CreateChangeSetInput) SetTemplateURL(v string) *CreateChangeSetInput {
6503	s.TemplateURL = &v
6504	return s
6505}
6506
6507// SetUsePreviousTemplate sets the UsePreviousTemplate field's value.
6508func (s *CreateChangeSetInput) SetUsePreviousTemplate(v bool) *CreateChangeSetInput {
6509	s.UsePreviousTemplate = &v
6510	return s
6511}
6512
6513// The output for the CreateChangeSet action.
6514type CreateChangeSetOutput struct {
6515	_ struct{} `type:"structure"`
6516
6517	// The Amazon Resource Name (ARN) of the change set.
6518	Id *string `min:"1" type:"string"`
6519
6520	// The unique ID of the stack.
6521	StackId *string `type:"string"`
6522}
6523
6524// String returns the string representation
6525func (s CreateChangeSetOutput) String() string {
6526	return awsutil.Prettify(s)
6527}
6528
6529// GoString returns the string representation
6530func (s CreateChangeSetOutput) GoString() string {
6531	return s.String()
6532}
6533
6534// SetId sets the Id field's value.
6535func (s *CreateChangeSetOutput) SetId(v string) *CreateChangeSetOutput {
6536	s.Id = &v
6537	return s
6538}
6539
6540// SetStackId sets the StackId field's value.
6541func (s *CreateChangeSetOutput) SetStackId(v string) *CreateChangeSetOutput {
6542	s.StackId = &v
6543	return s
6544}
6545
6546// The input for CreateStack action.
6547type CreateStackInput struct {
6548	_ struct{} `type:"structure"`
6549
6550	// In some cases, you must explicitly acknowledge that your stack template contains
6551	// certain capabilities in order for AWS CloudFormation to create the stack.
6552	//
6553	//    * CAPABILITY_IAM and CAPABILITY_NAMED_IAM Some stack templates might include
6554	//    resources that can affect permissions in your AWS account; for example,
6555	//    by creating new AWS Identity and Access Management (IAM) users. For those
6556	//    stacks, you must explicitly acknowledge this by specifying one of these
6557	//    capabilities. The following IAM resources require you to specify either
6558	//    the CAPABILITY_IAM or CAPABILITY_NAMED_IAM capability. If you have IAM
6559	//    resources, you can specify either capability. If you have IAM resources
6560	//    with custom names, you must specify CAPABILITY_NAMED_IAM. If you don't
6561	//    specify either of these capabilities, AWS CloudFormation returns an InsufficientCapabilities
6562	//    error. If your stack template contains these resources, we recommend that
6563	//    you review all permissions associated with them and edit their permissions
6564	//    if necessary. AWS::IAM::AccessKey (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iam-accesskey.html)
6565	//    AWS::IAM::Group (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iam-group.html)
6566	//    AWS::IAM::InstanceProfile (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iam-instanceprofile.html)
6567	//    AWS::IAM::Policy (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iam-policy.html)
6568	//    AWS::IAM::Role (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iam-role.html)
6569	//    AWS::IAM::User (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iam-user.html)
6570	//    AWS::IAM::UserToGroupAddition (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iam-addusertogroup.html)
6571	//    For more information, see Acknowledging IAM Resources in AWS CloudFormation
6572	//    Templates (http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-iam-template.html#capabilities).
6573	//
6574	//    * CAPABILITY_AUTO_EXPAND Some template contain macros. Macros perform
6575	//    custom processing on templates; this can include simple actions like find-and-replace
6576	//    operations, all the way to extensive transformations of entire templates.
6577	//    Because of this, users typically create a change set from the processed
6578	//    template, so that they can review the changes resulting from the macros
6579	//    before actually creating the stack. If your stack template contains one
6580	//    or more macros, and you choose to create a stack directly from the processed
6581	//    template, without first reviewing the resulting changes in a change set,
6582	//    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)
6583	//    and AWS::Serverless (http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/transform-aws-serverless.html)
6584	//    transforms, which are macros hosted by AWS CloudFormation. Change sets
6585	//    do not currently support nested stacks. If you want to create a stack
6586	//    from a stack template that contains macros and nested stacks, you must
6587	//    create the stack directly from the template using this capability. You
6588	//    should only create stacks directly from a stack template that contains
6589	//    macros if you know what processing the macro performs. Each macro relies
6590	//    on an underlying Lambda service function for processing stack templates.
6591	//    Be aware that the Lambda function owner can update the function operation
6592	//    without AWS CloudFormation being notified. For more information, see Using
6593	//    AWS CloudFormation Macros to Perform Custom Processing on Templates (http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/template-macros.html).
6594	Capabilities []*string `type:"list"`
6595
6596	// A unique identifier for this CreateStack request. Specify this token if you
6597	// plan to retry requests so that AWS CloudFormation knows that you're not attempting
6598	// to create a stack with the same name. You might retry CreateStack requests
6599	// to ensure that AWS CloudFormation successfully received them.
6600	//
6601	// All events triggered by a given stack operation are assigned the same client
6602	// request token, which you can use to track operations. For example, if you
6603	// execute a CreateStack operation with the token token1, then all the StackEvents
6604	// generated by that operation will have ClientRequestToken set as token1.
6605	//
6606	// In the console, stack operations display the client request token on the
6607	// Events tab. Stack operations that are initiated from the console use the
6608	// token format Console-StackOperation-ID, which helps you easily identify the
6609	// stack operation . For example, if you create a stack using the console, each
6610	// stack event would be assigned the same token in the following format: Console-CreateStack-7f59c3cf-00d2-40c7-b2ff-e75db0987002.
6611	ClientRequestToken *string `min:"1" type:"string"`
6612
6613	// Set to true to disable rollback of the stack if stack creation failed. You
6614	// can specify either DisableRollback or OnFailure, but not both.
6615	//
6616	// Default: false
6617	DisableRollback *bool `type:"boolean"`
6618
6619	// Whether to enable termination protection on the specified stack. If a user
6620	// attempts to delete a stack with termination protection enabled, the operation
6621	// fails and the stack remains unchanged. For more information, see Protecting
6622	// a Stack From Being Deleted (http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-protect-stacks.html)
6623	// in the AWS CloudFormation User Guide. Termination protection is disabled
6624	// on stacks by default.
6625	//
6626	// For nested stacks (http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-nested-stacks.html),
6627	// termination protection is set on the root stack and cannot be changed directly
6628	// on the nested stack.
6629	EnableTerminationProtection *bool `type:"boolean"`
6630
6631	// The Simple Notification Service (SNS) topic ARNs to publish stack related
6632	// events. You can find your SNS topic ARNs using the SNS console or your Command
6633	// Line Interface (CLI).
6634	NotificationARNs []*string `type:"list"`
6635
6636	// Determines what action will be taken if stack creation fails. This must be
6637	// one of: DO_NOTHING, ROLLBACK, or DELETE. You can specify either OnFailure
6638	// or DisableRollback, but not both.
6639	//
6640	// Default: ROLLBACK
6641	OnFailure *string `type:"string" enum:"OnFailure"`
6642
6643	// A list of Parameter structures that specify input parameters for the stack.
6644	// For more information, see the Parameter (https://docs.aws.amazon.com/AWSCloudFormation/latest/APIReference/API_Parameter.html)
6645	// data type.
6646	Parameters []*Parameter `type:"list"`
6647
6648	// The template resource types that you have permissions to work with for this
6649	// create stack action, such as AWS::EC2::Instance, AWS::EC2::*, or Custom::MyCustomInstance.
6650	// Use the following syntax to describe template resource types: AWS::* (for
6651	// all AWS resource), Custom::* (for all custom resources), Custom::logical_ID
6652	// (for a specific custom resource), AWS::service_name::* (for all resources
6653	// of a particular AWS service), and AWS::service_name::resource_logical_ID
6654	// (for a specific AWS resource).
6655	//
6656	// If the list of resource types doesn't include a resource that you're creating,
6657	// the stack creation fails. By default, AWS CloudFormation grants permissions
6658	// to all resource types. AWS Identity and Access Management (IAM) uses this
6659	// parameter for AWS CloudFormation-specific condition keys in IAM policies.
6660	// For more information, see Controlling Access with AWS Identity and Access
6661	// Management (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-iam-template.html).
6662	ResourceTypes []*string `type:"list"`
6663
6664	// The Amazon Resource Name (ARN) of an AWS Identity and Access Management (IAM)
6665	// role that AWS CloudFormation assumes to create the stack. AWS CloudFormation
6666	// uses the role's credentials to make calls on your behalf. AWS CloudFormation
6667	// always uses this role for all future operations on the stack. As long as
6668	// users have permission to operate on the stack, AWS CloudFormation uses this
6669	// role even if the users don't have permission to pass it. Ensure that the
6670	// role grants least privilege.
6671	//
6672	// If you don't specify a value, AWS CloudFormation uses the role that was previously
6673	// associated with the stack. If no role is available, AWS CloudFormation uses
6674	// a temporary session that is generated from your user credentials.
6675	RoleARN *string `min:"20" type:"string"`
6676
6677	// The rollback triggers for AWS CloudFormation to monitor during stack creation
6678	// and updating operations, and for the specified monitoring period afterwards.
6679	RollbackConfiguration *RollbackConfiguration `type:"structure"`
6680
6681	// The name that is associated with the stack. The name must be unique in the
6682	// Region in which you are creating the stack.
6683	//
6684	// A stack name can contain only alphanumeric characters (case sensitive) and
6685	// hyphens. It must start with an alphabetic character and cannot be longer
6686	// than 128 characters.
6687	//
6688	// StackName is a required field
6689	StackName *string `type:"string" required:"true"`
6690
6691	// Structure containing the stack policy body. For more information, go to Prevent
6692	// Updates to Stack Resources (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/protect-stack-resources.html)
6693	// in the AWS CloudFormation User Guide. You can specify either the StackPolicyBody
6694	// or the StackPolicyURL parameter, but not both.
6695	StackPolicyBody *string `min:"1" type:"string"`
6696
6697	// Location of a file containing the stack policy. The URL must point to a policy
6698	// (maximum size: 16 KB) located in an S3 bucket in the same Region as the stack.
6699	// You can specify either the StackPolicyBody or the StackPolicyURL parameter,
6700	// but not both.
6701	StackPolicyURL *string `min:"1" type:"string"`
6702
6703	// Key-value pairs to associate with this stack. AWS CloudFormation also propagates
6704	// these tags to the resources created in the stack. A maximum number of 50
6705	// tags can be specified.
6706	Tags []*Tag `type:"list"`
6707
6708	// Structure containing the template body with a minimum length of 1 byte and
6709	// a maximum length of 51,200 bytes. For more information, go to Template Anatomy
6710	// (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/template-anatomy.html)
6711	// in the AWS CloudFormation User Guide.
6712	//
6713	// Conditional: You must specify either the TemplateBody or the TemplateURL
6714	// parameter, but not both.
6715	TemplateBody *string `min:"1" type:"string"`
6716
6717	// Location of file containing the template body. The URL must point to a template
6718	// (max size: 460,800 bytes) that is located in an Amazon S3 bucket. For more
6719	// information, go to the Template Anatomy (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/template-anatomy.html)
6720	// in the AWS CloudFormation User Guide.
6721	//
6722	// Conditional: You must specify either the TemplateBody or the TemplateURL
6723	// parameter, but not both.
6724	TemplateURL *string `min:"1" type:"string"`
6725
6726	// The amount of time that can pass before the stack status becomes CREATE_FAILED;
6727	// if DisableRollback is not set or is set to false, the stack will be rolled
6728	// back.
6729	TimeoutInMinutes *int64 `min:"1" type:"integer"`
6730}
6731
6732// String returns the string representation
6733func (s CreateStackInput) String() string {
6734	return awsutil.Prettify(s)
6735}
6736
6737// GoString returns the string representation
6738func (s CreateStackInput) GoString() string {
6739	return s.String()
6740}
6741
6742// Validate inspects the fields of the type to determine if they are valid.
6743func (s *CreateStackInput) Validate() error {
6744	invalidParams := request.ErrInvalidParams{Context: "CreateStackInput"}
6745	if s.ClientRequestToken != nil && len(*s.ClientRequestToken) < 1 {
6746		invalidParams.Add(request.NewErrParamMinLen("ClientRequestToken", 1))
6747	}
6748	if s.RoleARN != nil && len(*s.RoleARN) < 20 {
6749		invalidParams.Add(request.NewErrParamMinLen("RoleARN", 20))
6750	}
6751	if s.StackName == nil {
6752		invalidParams.Add(request.NewErrParamRequired("StackName"))
6753	}
6754	if s.StackPolicyBody != nil && len(*s.StackPolicyBody) < 1 {
6755		invalidParams.Add(request.NewErrParamMinLen("StackPolicyBody", 1))
6756	}
6757	if s.StackPolicyURL != nil && len(*s.StackPolicyURL) < 1 {
6758		invalidParams.Add(request.NewErrParamMinLen("StackPolicyURL", 1))
6759	}
6760	if s.TemplateBody != nil && len(*s.TemplateBody) < 1 {
6761		invalidParams.Add(request.NewErrParamMinLen("TemplateBody", 1))
6762	}
6763	if s.TemplateURL != nil && len(*s.TemplateURL) < 1 {
6764		invalidParams.Add(request.NewErrParamMinLen("TemplateURL", 1))
6765	}
6766	if s.TimeoutInMinutes != nil && *s.TimeoutInMinutes < 1 {
6767		invalidParams.Add(request.NewErrParamMinValue("TimeoutInMinutes", 1))
6768	}
6769	if s.RollbackConfiguration != nil {
6770		if err := s.RollbackConfiguration.Validate(); err != nil {
6771			invalidParams.AddNested("RollbackConfiguration", err.(request.ErrInvalidParams))
6772		}
6773	}
6774	if s.Tags != nil {
6775		for i, v := range s.Tags {
6776			if v == nil {
6777				continue
6778			}
6779			if err := v.Validate(); err != nil {
6780				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Tags", i), err.(request.ErrInvalidParams))
6781			}
6782		}
6783	}
6784
6785	if invalidParams.Len() > 0 {
6786		return invalidParams
6787	}
6788	return nil
6789}
6790
6791// SetCapabilities sets the Capabilities field's value.
6792func (s *CreateStackInput) SetCapabilities(v []*string) *CreateStackInput {
6793	s.Capabilities = v
6794	return s
6795}
6796
6797// SetClientRequestToken sets the ClientRequestToken field's value.
6798func (s *CreateStackInput) SetClientRequestToken(v string) *CreateStackInput {
6799	s.ClientRequestToken = &v
6800	return s
6801}
6802
6803// SetDisableRollback sets the DisableRollback field's value.
6804func (s *CreateStackInput) SetDisableRollback(v bool) *CreateStackInput {
6805	s.DisableRollback = &v
6806	return s
6807}
6808
6809// SetEnableTerminationProtection sets the EnableTerminationProtection field's value.
6810func (s *CreateStackInput) SetEnableTerminationProtection(v bool) *CreateStackInput {
6811	s.EnableTerminationProtection = &v
6812	return s
6813}
6814
6815// SetNotificationARNs sets the NotificationARNs field's value.
6816func (s *CreateStackInput) SetNotificationARNs(v []*string) *CreateStackInput {
6817	s.NotificationARNs = v
6818	return s
6819}
6820
6821// SetOnFailure sets the OnFailure field's value.
6822func (s *CreateStackInput) SetOnFailure(v string) *CreateStackInput {
6823	s.OnFailure = &v
6824	return s
6825}
6826
6827// SetParameters sets the Parameters field's value.
6828func (s *CreateStackInput) SetParameters(v []*Parameter) *CreateStackInput {
6829	s.Parameters = v
6830	return s
6831}
6832
6833// SetResourceTypes sets the ResourceTypes field's value.
6834func (s *CreateStackInput) SetResourceTypes(v []*string) *CreateStackInput {
6835	s.ResourceTypes = v
6836	return s
6837}
6838
6839// SetRoleARN sets the RoleARN field's value.
6840func (s *CreateStackInput) SetRoleARN(v string) *CreateStackInput {
6841	s.RoleARN = &v
6842	return s
6843}
6844
6845// SetRollbackConfiguration sets the RollbackConfiguration field's value.
6846func (s *CreateStackInput) SetRollbackConfiguration(v *RollbackConfiguration) *CreateStackInput {
6847	s.RollbackConfiguration = v
6848	return s
6849}
6850
6851// SetStackName sets the StackName field's value.
6852func (s *CreateStackInput) SetStackName(v string) *CreateStackInput {
6853	s.StackName = &v
6854	return s
6855}
6856
6857// SetStackPolicyBody sets the StackPolicyBody field's value.
6858func (s *CreateStackInput) SetStackPolicyBody(v string) *CreateStackInput {
6859	s.StackPolicyBody = &v
6860	return s
6861}
6862
6863// SetStackPolicyURL sets the StackPolicyURL field's value.
6864func (s *CreateStackInput) SetStackPolicyURL(v string) *CreateStackInput {
6865	s.StackPolicyURL = &v
6866	return s
6867}
6868
6869// SetTags sets the Tags field's value.
6870func (s *CreateStackInput) SetTags(v []*Tag) *CreateStackInput {
6871	s.Tags = v
6872	return s
6873}
6874
6875// SetTemplateBody sets the TemplateBody field's value.
6876func (s *CreateStackInput) SetTemplateBody(v string) *CreateStackInput {
6877	s.TemplateBody = &v
6878	return s
6879}
6880
6881// SetTemplateURL sets the TemplateURL field's value.
6882func (s *CreateStackInput) SetTemplateURL(v string) *CreateStackInput {
6883	s.TemplateURL = &v
6884	return s
6885}
6886
6887// SetTimeoutInMinutes sets the TimeoutInMinutes field's value.
6888func (s *CreateStackInput) SetTimeoutInMinutes(v int64) *CreateStackInput {
6889	s.TimeoutInMinutes = &v
6890	return s
6891}
6892
6893type CreateStackInstancesInput struct {
6894	_ struct{} `type:"structure"`
6895
6896	// [Self-managed permissions] The names of one or more AWS accounts that you
6897	// want to create stack instances in the specified Region(s) for.
6898	//
6899	// You can specify Accounts or DeploymentTargets, but not both.
6900	Accounts []*string `type:"list"`
6901
6902	// [Service-managed permissions] The AWS Organizations accounts for which to
6903	// create stack instances in the specified Regions.
6904	//
6905	// You can specify Accounts or DeploymentTargets, but not both.
6906	DeploymentTargets *DeploymentTargets `type:"structure"`
6907
6908	// The unique identifier for this stack set operation.
6909	//
6910	// The operation ID also functions as an idempotency token, to ensure that AWS
6911	// CloudFormation performs the stack set operation only once, even if you retry
6912	// the request multiple times. You might retry stack set operation requests
6913	// to ensure that AWS CloudFormation successfully received them.
6914	//
6915	// If you don't specify an operation ID, the SDK generates one automatically.
6916	//
6917	// Repeating this stack set operation with a new operation ID retries all stack
6918	// instances whose status is OUTDATED.
6919	OperationId *string `min:"1" type:"string" idempotencyToken:"true"`
6920
6921	// Preferences for how AWS CloudFormation performs this stack set operation.
6922	OperationPreferences *StackSetOperationPreferences `type:"structure"`
6923
6924	// A list of stack set parameters whose values you want to override in the selected
6925	// stack instances.
6926	//
6927	// Any overridden parameter values will be applied to all stack instances in
6928	// the specified accounts and Regions. When specifying parameters and their
6929	// values, be aware of how AWS CloudFormation sets parameter values during stack
6930	// instance operations:
6931	//
6932	//    * To override the current value for a parameter, include the parameter
6933	//    and specify its value.
6934	//
6935	//    * To leave a parameter set to its present value, you can do one of the
6936	//    following: Do not include the parameter in the list. Include the parameter
6937	//    and specify UsePreviousValue as true. (You cannot specify both a value
6938	//    and set UsePreviousValue to true.)
6939	//
6940	//    * To set all overridden parameter back to the values specified in the
6941	//    stack set, specify a parameter list but do not include any parameters.
6942	//
6943	//    * To leave all parameters set to their present values, do not specify
6944	//    this property at all.
6945	//
6946	// During stack set updates, any parameter values overridden for a stack instance
6947	// are not updated, but retain their overridden value.
6948	//
6949	// You can only override the parameter values that are specified in the stack
6950	// set; to add or delete a parameter itself, use UpdateStackSet (https://docs.aws.amazon.com/AWSCloudFormation/latest/APIReference/API_UpdateStackSet.html)
6951	// to update the stack set template.
6952	ParameterOverrides []*Parameter `type:"list"`
6953
6954	// The names of one or more Regions where you want to create stack instances
6955	// using the specified AWS account(s).
6956	//
6957	// Regions is a required field
6958	Regions []*string `type:"list" required:"true"`
6959
6960	// The name or unique ID of the stack set that you want to create stack instances
6961	// from.
6962	//
6963	// StackSetName is a required field
6964	StackSetName *string `type:"string" required:"true"`
6965}
6966
6967// String returns the string representation
6968func (s CreateStackInstancesInput) String() string {
6969	return awsutil.Prettify(s)
6970}
6971
6972// GoString returns the string representation
6973func (s CreateStackInstancesInput) GoString() string {
6974	return s.String()
6975}
6976
6977// Validate inspects the fields of the type to determine if they are valid.
6978func (s *CreateStackInstancesInput) Validate() error {
6979	invalidParams := request.ErrInvalidParams{Context: "CreateStackInstancesInput"}
6980	if s.OperationId != nil && len(*s.OperationId) < 1 {
6981		invalidParams.Add(request.NewErrParamMinLen("OperationId", 1))
6982	}
6983	if s.Regions == nil {
6984		invalidParams.Add(request.NewErrParamRequired("Regions"))
6985	}
6986	if s.StackSetName == nil {
6987		invalidParams.Add(request.NewErrParamRequired("StackSetName"))
6988	}
6989	if s.OperationPreferences != nil {
6990		if err := s.OperationPreferences.Validate(); err != nil {
6991			invalidParams.AddNested("OperationPreferences", err.(request.ErrInvalidParams))
6992		}
6993	}
6994
6995	if invalidParams.Len() > 0 {
6996		return invalidParams
6997	}
6998	return nil
6999}
7000
7001// SetAccounts sets the Accounts field's value.
7002func (s *CreateStackInstancesInput) SetAccounts(v []*string) *CreateStackInstancesInput {
7003	s.Accounts = v
7004	return s
7005}
7006
7007// SetDeploymentTargets sets the DeploymentTargets field's value.
7008func (s *CreateStackInstancesInput) SetDeploymentTargets(v *DeploymentTargets) *CreateStackInstancesInput {
7009	s.DeploymentTargets = v
7010	return s
7011}
7012
7013// SetOperationId sets the OperationId field's value.
7014func (s *CreateStackInstancesInput) SetOperationId(v string) *CreateStackInstancesInput {
7015	s.OperationId = &v
7016	return s
7017}
7018
7019// SetOperationPreferences sets the OperationPreferences field's value.
7020func (s *CreateStackInstancesInput) SetOperationPreferences(v *StackSetOperationPreferences) *CreateStackInstancesInput {
7021	s.OperationPreferences = v
7022	return s
7023}
7024
7025// SetParameterOverrides sets the ParameterOverrides field's value.
7026func (s *CreateStackInstancesInput) SetParameterOverrides(v []*Parameter) *CreateStackInstancesInput {
7027	s.ParameterOverrides = v
7028	return s
7029}
7030
7031// SetRegions sets the Regions field's value.
7032func (s *CreateStackInstancesInput) SetRegions(v []*string) *CreateStackInstancesInput {
7033	s.Regions = v
7034	return s
7035}
7036
7037// SetStackSetName sets the StackSetName field's value.
7038func (s *CreateStackInstancesInput) SetStackSetName(v string) *CreateStackInstancesInput {
7039	s.StackSetName = &v
7040	return s
7041}
7042
7043type CreateStackInstancesOutput struct {
7044	_ struct{} `type:"structure"`
7045
7046	// The unique identifier for this stack set operation.
7047	OperationId *string `min:"1" type:"string"`
7048}
7049
7050// String returns the string representation
7051func (s CreateStackInstancesOutput) String() string {
7052	return awsutil.Prettify(s)
7053}
7054
7055// GoString returns the string representation
7056func (s CreateStackInstancesOutput) GoString() string {
7057	return s.String()
7058}
7059
7060// SetOperationId sets the OperationId field's value.
7061func (s *CreateStackInstancesOutput) SetOperationId(v string) *CreateStackInstancesOutput {
7062	s.OperationId = &v
7063	return s
7064}
7065
7066// The output for a CreateStack action.
7067type CreateStackOutput struct {
7068	_ struct{} `type:"structure"`
7069
7070	// Unique identifier of the stack.
7071	StackId *string `type:"string"`
7072}
7073
7074// String returns the string representation
7075func (s CreateStackOutput) String() string {
7076	return awsutil.Prettify(s)
7077}
7078
7079// GoString returns the string representation
7080func (s CreateStackOutput) GoString() string {
7081	return s.String()
7082}
7083
7084// SetStackId sets the StackId field's value.
7085func (s *CreateStackOutput) SetStackId(v string) *CreateStackOutput {
7086	s.StackId = &v
7087	return s
7088}
7089
7090type CreateStackSetInput struct {
7091	_ struct{} `type:"structure"`
7092
7093	// The Amazon Resource Number (ARN) of the IAM role to use to create this stack
7094	// set.
7095	//
7096	// Specify an IAM role only if you are using customized administrator roles
7097	// to control which users or groups can manage specific stack sets within the
7098	// same administrator account. For more information, see Prerequisites: Granting
7099	// Permissions for Stack Set Operations (http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/stacksets-prereqs.html)
7100	// in the AWS CloudFormation User Guide.
7101	AdministrationRoleARN *string `min:"20" type:"string"`
7102
7103	// Describes whether StackSets automatically deploys to AWS Organizations accounts
7104	// that are added to the target organization or organizational unit (OU). Specify
7105	// only if PermissionModel is SERVICE_MANAGED.
7106	AutoDeployment *AutoDeployment `type:"structure"`
7107
7108	// In some cases, you must explicitly acknowledge that your stack set template
7109	// contains certain capabilities in order for AWS CloudFormation to create the
7110	// stack set and related stack instances.
7111	//
7112	//    * CAPABILITY_IAM and CAPABILITY_NAMED_IAM Some stack templates might include
7113	//    resources that can affect permissions in your AWS account; for example,
7114	//    by creating new AWS Identity and Access Management (IAM) users. For those
7115	//    stack sets, you must explicitly acknowledge this by specifying one of
7116	//    these capabilities. The following IAM resources require you to specify
7117	//    either the CAPABILITY_IAM or CAPABILITY_NAMED_IAM capability. If you have
7118	//    IAM resources, you can specify either capability. If you have IAM resources
7119	//    with custom names, you must specify CAPABILITY_NAMED_IAM. If you don't
7120	//    specify either of these capabilities, AWS CloudFormation returns an InsufficientCapabilities
7121	//    error. If your stack template contains these resources, we recommend that
7122	//    you review all permissions associated with them and edit their permissions
7123	//    if necessary. AWS::IAM::AccessKey (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iam-accesskey.html)
7124	//    AWS::IAM::Group (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iam-group.html)
7125	//    AWS::IAM::InstanceProfile (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iam-instanceprofile.html)
7126	//    AWS::IAM::Policy (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iam-policy.html)
7127	//    AWS::IAM::Role (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iam-role.html)
7128	//    AWS::IAM::User (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iam-user.html)
7129	//    AWS::IAM::UserToGroupAddition (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iam-addusertogroup.html)
7130	//    For more information, see Acknowledging IAM Resources in AWS CloudFormation
7131	//    Templates (http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-iam-template.html#capabilities).
7132	//
7133	//    * CAPABILITY_AUTO_EXPAND Some templates contain macros. If your stack
7134	//    template contains one or more macros, and you choose to create a stack
7135	//    directly from the processed template, without first reviewing the resulting
7136	//    changes in a change set, you must acknowledge this capability. For more
7137	//    information, see Using AWS CloudFormation Macros to Perform Custom Processing
7138	//    on Templates (http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/template-macros.html).
7139	//    Stack sets do not currently support macros in stack templates. (This includes
7140	//    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)
7141	//    and AWS::Serverless (http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/transform-aws-serverless.html)
7142	//    transforms, which are macros hosted by AWS CloudFormation.) Even if you
7143	//    specify this capability, if you include a macro in your template the stack
7144	//    set operation will fail.
7145	Capabilities []*string `type:"list"`
7146
7147	// A unique identifier for this CreateStackSet request. Specify this token if
7148	// you plan to retry requests so that AWS CloudFormation knows that you're not
7149	// attempting to create another stack set with the same name. You might retry
7150	// CreateStackSet requests to ensure that AWS CloudFormation successfully received
7151	// them.
7152	//
7153	// If you don't specify an operation ID, the SDK generates one automatically.
7154	ClientRequestToken *string `min:"1" type:"string" idempotencyToken:"true"`
7155
7156	// A description of the stack set. You can use the description to identify the
7157	// stack set's purpose or other important information.
7158	Description *string `min:"1" type:"string"`
7159
7160	// The name of the IAM execution role to use to create the stack set. If you
7161	// do not specify an execution role, AWS CloudFormation uses the AWSCloudFormationStackSetExecutionRole
7162	// role for the stack set operation.
7163	//
7164	// Specify an IAM role only if you are using customized execution roles to control
7165	// which stack resources users and groups can include in their stack sets.
7166	ExecutionRoleName *string `min:"1" type:"string"`
7167
7168	// The input parameters for the stack set template.
7169	Parameters []*Parameter `type:"list"`
7170
7171	// Describes how the IAM roles required for stack set operations are created.
7172	// By default, SELF-MANAGED is specified.
7173	//
7174	//    * With self-managed permissions, you must create the administrator and
7175	//    execution roles required to deploy to target accounts. For more information,
7176	//    see Grant Self-Managed Stack Set Permissions (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/stacksets-prereqs-self-managed.html).
7177	//
7178	//    * With service-managed permissions, StackSets automatically creates the
7179	//    IAM roles required to deploy to accounts managed by AWS Organizations.
7180	//    For more information, see Grant Service-Managed Stack Set Permissions
7181	//    (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/stacksets-prereqs-service-managed.html).
7182	PermissionModel *string `type:"string" enum:"PermissionModels"`
7183
7184	// The name to associate with the stack set. The name must be unique in the
7185	// Region where you create your stack set.
7186	//
7187	// A stack name can contain only alphanumeric characters (case-sensitive) and
7188	// hyphens. It must start with an alphabetic character and can't be longer than
7189	// 128 characters.
7190	//
7191	// StackSetName is a required field
7192	StackSetName *string `type:"string" required:"true"`
7193
7194	// The key-value pairs to associate with this stack set and the stacks created
7195	// from it. AWS CloudFormation also propagates these tags to supported resources
7196	// that are created in the stacks. A maximum number of 50 tags can be specified.
7197	//
7198	// If you specify tags as part of a CreateStackSet action, AWS CloudFormation
7199	// checks to see if you have the required IAM permission to tag resources. If
7200	// you don't, the entire CreateStackSet action fails with an access denied error,
7201	// and the stack set is not created.
7202	Tags []*Tag `type:"list"`
7203
7204	// The structure that contains the template body, with a minimum length of 1
7205	// byte and a maximum length of 51,200 bytes. For more information, see Template
7206	// Anatomy (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/template-anatomy.html)
7207	// in the AWS CloudFormation User Guide.
7208	//
7209	// Conditional: You must specify either the TemplateBody or the TemplateURL
7210	// parameter, but not both.
7211	TemplateBody *string `min:"1" type:"string"`
7212
7213	// The location of the file that contains the template body. The URL must point
7214	// to a template (maximum size: 460,800 bytes) that's located in an Amazon S3
7215	// bucket. For more information, see Template Anatomy (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/template-anatomy.html)
7216	// in the AWS CloudFormation User Guide.
7217	//
7218	// Conditional: You must specify either the TemplateBody or the TemplateURL
7219	// parameter, but not both.
7220	TemplateURL *string `min:"1" type:"string"`
7221}
7222
7223// String returns the string representation
7224func (s CreateStackSetInput) String() string {
7225	return awsutil.Prettify(s)
7226}
7227
7228// GoString returns the string representation
7229func (s CreateStackSetInput) GoString() string {
7230	return s.String()
7231}
7232
7233// Validate inspects the fields of the type to determine if they are valid.
7234func (s *CreateStackSetInput) Validate() error {
7235	invalidParams := request.ErrInvalidParams{Context: "CreateStackSetInput"}
7236	if s.AdministrationRoleARN != nil && len(*s.AdministrationRoleARN) < 20 {
7237		invalidParams.Add(request.NewErrParamMinLen("AdministrationRoleARN", 20))
7238	}
7239	if s.ClientRequestToken != nil && len(*s.ClientRequestToken) < 1 {
7240		invalidParams.Add(request.NewErrParamMinLen("ClientRequestToken", 1))
7241	}
7242	if s.Description != nil && len(*s.Description) < 1 {
7243		invalidParams.Add(request.NewErrParamMinLen("Description", 1))
7244	}
7245	if s.ExecutionRoleName != nil && len(*s.ExecutionRoleName) < 1 {
7246		invalidParams.Add(request.NewErrParamMinLen("ExecutionRoleName", 1))
7247	}
7248	if s.StackSetName == nil {
7249		invalidParams.Add(request.NewErrParamRequired("StackSetName"))
7250	}
7251	if s.TemplateBody != nil && len(*s.TemplateBody) < 1 {
7252		invalidParams.Add(request.NewErrParamMinLen("TemplateBody", 1))
7253	}
7254	if s.TemplateURL != nil && len(*s.TemplateURL) < 1 {
7255		invalidParams.Add(request.NewErrParamMinLen("TemplateURL", 1))
7256	}
7257	if s.Tags != nil {
7258		for i, v := range s.Tags {
7259			if v == nil {
7260				continue
7261			}
7262			if err := v.Validate(); err != nil {
7263				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Tags", i), err.(request.ErrInvalidParams))
7264			}
7265		}
7266	}
7267
7268	if invalidParams.Len() > 0 {
7269		return invalidParams
7270	}
7271	return nil
7272}
7273
7274// SetAdministrationRoleARN sets the AdministrationRoleARN field's value.
7275func (s *CreateStackSetInput) SetAdministrationRoleARN(v string) *CreateStackSetInput {
7276	s.AdministrationRoleARN = &v
7277	return s
7278}
7279
7280// SetAutoDeployment sets the AutoDeployment field's value.
7281func (s *CreateStackSetInput) SetAutoDeployment(v *AutoDeployment) *CreateStackSetInput {
7282	s.AutoDeployment = v
7283	return s
7284}
7285
7286// SetCapabilities sets the Capabilities field's value.
7287func (s *CreateStackSetInput) SetCapabilities(v []*string) *CreateStackSetInput {
7288	s.Capabilities = v
7289	return s
7290}
7291
7292// SetClientRequestToken sets the ClientRequestToken field's value.
7293func (s *CreateStackSetInput) SetClientRequestToken(v string) *CreateStackSetInput {
7294	s.ClientRequestToken = &v
7295	return s
7296}
7297
7298// SetDescription sets the Description field's value.
7299func (s *CreateStackSetInput) SetDescription(v string) *CreateStackSetInput {
7300	s.Description = &v
7301	return s
7302}
7303
7304// SetExecutionRoleName sets the ExecutionRoleName field's value.
7305func (s *CreateStackSetInput) SetExecutionRoleName(v string) *CreateStackSetInput {
7306	s.ExecutionRoleName = &v
7307	return s
7308}
7309
7310// SetParameters sets the Parameters field's value.
7311func (s *CreateStackSetInput) SetParameters(v []*Parameter) *CreateStackSetInput {
7312	s.Parameters = v
7313	return s
7314}
7315
7316// SetPermissionModel sets the PermissionModel field's value.
7317func (s *CreateStackSetInput) SetPermissionModel(v string) *CreateStackSetInput {
7318	s.PermissionModel = &v
7319	return s
7320}
7321
7322// SetStackSetName sets the StackSetName field's value.
7323func (s *CreateStackSetInput) SetStackSetName(v string) *CreateStackSetInput {
7324	s.StackSetName = &v
7325	return s
7326}
7327
7328// SetTags sets the Tags field's value.
7329func (s *CreateStackSetInput) SetTags(v []*Tag) *CreateStackSetInput {
7330	s.Tags = v
7331	return s
7332}
7333
7334// SetTemplateBody sets the TemplateBody field's value.
7335func (s *CreateStackSetInput) SetTemplateBody(v string) *CreateStackSetInput {
7336	s.TemplateBody = &v
7337	return s
7338}
7339
7340// SetTemplateURL sets the TemplateURL field's value.
7341func (s *CreateStackSetInput) SetTemplateURL(v string) *CreateStackSetInput {
7342	s.TemplateURL = &v
7343	return s
7344}
7345
7346type CreateStackSetOutput struct {
7347	_ struct{} `type:"structure"`
7348
7349	// The ID of the stack set that you're creating.
7350	StackSetId *string `type:"string"`
7351}
7352
7353// String returns the string representation
7354func (s CreateStackSetOutput) String() string {
7355	return awsutil.Prettify(s)
7356}
7357
7358// GoString returns the string representation
7359func (s CreateStackSetOutput) GoString() string {
7360	return s.String()
7361}
7362
7363// SetStackSetId sets the StackSetId field's value.
7364func (s *CreateStackSetOutput) SetStackSetId(v string) *CreateStackSetOutput {
7365	s.StackSetId = &v
7366	return s
7367}
7368
7369// The input for the DeleteChangeSet action.
7370type DeleteChangeSetInput struct {
7371	_ struct{} `type:"structure"`
7372
7373	// The name or Amazon Resource Name (ARN) of the change set that you want to
7374	// delete.
7375	//
7376	// ChangeSetName is a required field
7377	ChangeSetName *string `min:"1" type:"string" required:"true"`
7378
7379	// If you specified the name of a change set to delete, specify the stack name
7380	// or ID (ARN) that is associated with it.
7381	StackName *string `min:"1" type:"string"`
7382}
7383
7384// String returns the string representation
7385func (s DeleteChangeSetInput) String() string {
7386	return awsutil.Prettify(s)
7387}
7388
7389// GoString returns the string representation
7390func (s DeleteChangeSetInput) GoString() string {
7391	return s.String()
7392}
7393
7394// Validate inspects the fields of the type to determine if they are valid.
7395func (s *DeleteChangeSetInput) Validate() error {
7396	invalidParams := request.ErrInvalidParams{Context: "DeleteChangeSetInput"}
7397	if s.ChangeSetName == nil {
7398		invalidParams.Add(request.NewErrParamRequired("ChangeSetName"))
7399	}
7400	if s.ChangeSetName != nil && len(*s.ChangeSetName) < 1 {
7401		invalidParams.Add(request.NewErrParamMinLen("ChangeSetName", 1))
7402	}
7403	if s.StackName != nil && len(*s.StackName) < 1 {
7404		invalidParams.Add(request.NewErrParamMinLen("StackName", 1))
7405	}
7406
7407	if invalidParams.Len() > 0 {
7408		return invalidParams
7409	}
7410	return nil
7411}
7412
7413// SetChangeSetName sets the ChangeSetName field's value.
7414func (s *DeleteChangeSetInput) SetChangeSetName(v string) *DeleteChangeSetInput {
7415	s.ChangeSetName = &v
7416	return s
7417}
7418
7419// SetStackName sets the StackName field's value.
7420func (s *DeleteChangeSetInput) SetStackName(v string) *DeleteChangeSetInput {
7421	s.StackName = &v
7422	return s
7423}
7424
7425// The output for the DeleteChangeSet action.
7426type DeleteChangeSetOutput struct {
7427	_ struct{} `type:"structure"`
7428}
7429
7430// String returns the string representation
7431func (s DeleteChangeSetOutput) String() string {
7432	return awsutil.Prettify(s)
7433}
7434
7435// GoString returns the string representation
7436func (s DeleteChangeSetOutput) GoString() string {
7437	return s.String()
7438}
7439
7440// The input for DeleteStack action.
7441type DeleteStackInput struct {
7442	_ struct{} `type:"structure"`
7443
7444	// A unique identifier for this DeleteStack request. Specify this token if you
7445	// plan to retry requests so that AWS CloudFormation knows that you're not attempting
7446	// to delete a stack with the same name. You might retry DeleteStack requests
7447	// to ensure that AWS CloudFormation successfully received them.
7448	//
7449	// All events triggered by a given stack operation are assigned the same client
7450	// request token, which you can use to track operations. For example, if you
7451	// execute a CreateStack operation with the token token1, then all the StackEvents
7452	// generated by that operation will have ClientRequestToken set as token1.
7453	//
7454	// In the console, stack operations display the client request token on the
7455	// Events tab. Stack operations that are initiated from the console use the
7456	// token format Console-StackOperation-ID, which helps you easily identify the
7457	// stack operation . For example, if you create a stack using the console, each
7458	// stack event would be assigned the same token in the following format: Console-CreateStack-7f59c3cf-00d2-40c7-b2ff-e75db0987002.
7459	ClientRequestToken *string `min:"1" type:"string"`
7460
7461	// For stacks in the DELETE_FAILED state, a list of resource logical IDs that
7462	// are associated with the resources you want to retain. During deletion, AWS
7463	// CloudFormation deletes the stack but does not delete the retained resources.
7464	//
7465	// Retaining resources is useful when you cannot delete a resource, such as
7466	// a non-empty S3 bucket, but you want to delete the stack.
7467	RetainResources []*string `type:"list"`
7468
7469	// The Amazon Resource Name (ARN) of an AWS Identity and Access Management (IAM)
7470	// role that AWS CloudFormation assumes to delete the stack. AWS CloudFormation
7471	// uses the role's credentials to make calls on your behalf.
7472	//
7473	// If you don't specify a value, AWS CloudFormation uses the role that was previously
7474	// associated with the stack. If no role is available, AWS CloudFormation uses
7475	// a temporary session that is generated from your user credentials.
7476	RoleARN *string `min:"20" type:"string"`
7477
7478	// The name or the unique stack ID that is associated with the stack.
7479	//
7480	// StackName is a required field
7481	StackName *string `type:"string" required:"true"`
7482}
7483
7484// String returns the string representation
7485func (s DeleteStackInput) String() string {
7486	return awsutil.Prettify(s)
7487}
7488
7489// GoString returns the string representation
7490func (s DeleteStackInput) GoString() string {
7491	return s.String()
7492}
7493
7494// Validate inspects the fields of the type to determine if they are valid.
7495func (s *DeleteStackInput) Validate() error {
7496	invalidParams := request.ErrInvalidParams{Context: "DeleteStackInput"}
7497	if s.ClientRequestToken != nil && len(*s.ClientRequestToken) < 1 {
7498		invalidParams.Add(request.NewErrParamMinLen("ClientRequestToken", 1))
7499	}
7500	if s.RoleARN != nil && len(*s.RoleARN) < 20 {
7501		invalidParams.Add(request.NewErrParamMinLen("RoleARN", 20))
7502	}
7503	if s.StackName == nil {
7504		invalidParams.Add(request.NewErrParamRequired("StackName"))
7505	}
7506
7507	if invalidParams.Len() > 0 {
7508		return invalidParams
7509	}
7510	return nil
7511}
7512
7513// SetClientRequestToken sets the ClientRequestToken field's value.
7514func (s *DeleteStackInput) SetClientRequestToken(v string) *DeleteStackInput {
7515	s.ClientRequestToken = &v
7516	return s
7517}
7518
7519// SetRetainResources sets the RetainResources field's value.
7520func (s *DeleteStackInput) SetRetainResources(v []*string) *DeleteStackInput {
7521	s.RetainResources = v
7522	return s
7523}
7524
7525// SetRoleARN sets the RoleARN field's value.
7526func (s *DeleteStackInput) SetRoleARN(v string) *DeleteStackInput {
7527	s.RoleARN = &v
7528	return s
7529}
7530
7531// SetStackName sets the StackName field's value.
7532func (s *DeleteStackInput) SetStackName(v string) *DeleteStackInput {
7533	s.StackName = &v
7534	return s
7535}
7536
7537type DeleteStackInstancesInput struct {
7538	_ struct{} `type:"structure"`
7539
7540	// [Self-managed permissions] The names of the AWS accounts that you want to
7541	// delete stack instances for.
7542	//
7543	// You can specify Accounts or DeploymentTargets, but not both.
7544	Accounts []*string `type:"list"`
7545
7546	// [Service-managed permissions] The AWS Organizations accounts from which to
7547	// delete stack instances.
7548	//
7549	// You can specify Accounts or DeploymentTargets, but not both.
7550	DeploymentTargets *DeploymentTargets `type:"structure"`
7551
7552	// The unique identifier for this stack set operation.
7553	//
7554	// If you don't specify an operation ID, the SDK generates one automatically.
7555	//
7556	// The operation ID also functions as an idempotency token, to ensure that AWS
7557	// CloudFormation performs the stack set operation only once, even if you retry
7558	// the request multiple times. You can retry stack set operation requests to
7559	// ensure that AWS CloudFormation successfully received them.
7560	//
7561	// Repeating this stack set operation with a new operation ID retries all stack
7562	// instances whose status is OUTDATED.
7563	OperationId *string `min:"1" type:"string" idempotencyToken:"true"`
7564
7565	// Preferences for how AWS CloudFormation performs this stack set operation.
7566	OperationPreferences *StackSetOperationPreferences `type:"structure"`
7567
7568	// The Regions where you want to delete stack set instances.
7569	//
7570	// Regions is a required field
7571	Regions []*string `type:"list" required:"true"`
7572
7573	// Removes the stack instances from the specified stack set, but doesn't delete
7574	// the stacks. You can't reassociate a retained stack or add an existing, saved
7575	// stack to a new stack set.
7576	//
7577	// For more information, see Stack set operation options (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/stacksets-concepts.html#stackset-ops-options).
7578	//
7579	// RetainStacks is a required field
7580	RetainStacks *bool `type:"boolean" required:"true"`
7581
7582	// The name or unique ID of the stack set that you want to delete stack instances
7583	// for.
7584	//
7585	// StackSetName is a required field
7586	StackSetName *string `type:"string" required:"true"`
7587}
7588
7589// String returns the string representation
7590func (s DeleteStackInstancesInput) String() string {
7591	return awsutil.Prettify(s)
7592}
7593
7594// GoString returns the string representation
7595func (s DeleteStackInstancesInput) GoString() string {
7596	return s.String()
7597}
7598
7599// Validate inspects the fields of the type to determine if they are valid.
7600func (s *DeleteStackInstancesInput) Validate() error {
7601	invalidParams := request.ErrInvalidParams{Context: "DeleteStackInstancesInput"}
7602	if s.OperationId != nil && len(*s.OperationId) < 1 {
7603		invalidParams.Add(request.NewErrParamMinLen("OperationId", 1))
7604	}
7605	if s.Regions == nil {
7606		invalidParams.Add(request.NewErrParamRequired("Regions"))
7607	}
7608	if s.RetainStacks == nil {
7609		invalidParams.Add(request.NewErrParamRequired("RetainStacks"))
7610	}
7611	if s.StackSetName == nil {
7612		invalidParams.Add(request.NewErrParamRequired("StackSetName"))
7613	}
7614	if s.OperationPreferences != nil {
7615		if err := s.OperationPreferences.Validate(); err != nil {
7616			invalidParams.AddNested("OperationPreferences", err.(request.ErrInvalidParams))
7617		}
7618	}
7619
7620	if invalidParams.Len() > 0 {
7621		return invalidParams
7622	}
7623	return nil
7624}
7625
7626// SetAccounts sets the Accounts field's value.
7627func (s *DeleteStackInstancesInput) SetAccounts(v []*string) *DeleteStackInstancesInput {
7628	s.Accounts = v
7629	return s
7630}
7631
7632// SetDeploymentTargets sets the DeploymentTargets field's value.
7633func (s *DeleteStackInstancesInput) SetDeploymentTargets(v *DeploymentTargets) *DeleteStackInstancesInput {
7634	s.DeploymentTargets = v
7635	return s
7636}
7637
7638// SetOperationId sets the OperationId field's value.
7639func (s *DeleteStackInstancesInput) SetOperationId(v string) *DeleteStackInstancesInput {
7640	s.OperationId = &v
7641	return s
7642}
7643
7644// SetOperationPreferences sets the OperationPreferences field's value.
7645func (s *DeleteStackInstancesInput) SetOperationPreferences(v *StackSetOperationPreferences) *DeleteStackInstancesInput {
7646	s.OperationPreferences = v
7647	return s
7648}
7649
7650// SetRegions sets the Regions field's value.
7651func (s *DeleteStackInstancesInput) SetRegions(v []*string) *DeleteStackInstancesInput {
7652	s.Regions = v
7653	return s
7654}
7655
7656// SetRetainStacks sets the RetainStacks field's value.
7657func (s *DeleteStackInstancesInput) SetRetainStacks(v bool) *DeleteStackInstancesInput {
7658	s.RetainStacks = &v
7659	return s
7660}
7661
7662// SetStackSetName sets the StackSetName field's value.
7663func (s *DeleteStackInstancesInput) SetStackSetName(v string) *DeleteStackInstancesInput {
7664	s.StackSetName = &v
7665	return s
7666}
7667
7668type DeleteStackInstancesOutput struct {
7669	_ struct{} `type:"structure"`
7670
7671	// The unique identifier for this stack set operation.
7672	OperationId *string `min:"1" type:"string"`
7673}
7674
7675// String returns the string representation
7676func (s DeleteStackInstancesOutput) String() string {
7677	return awsutil.Prettify(s)
7678}
7679
7680// GoString returns the string representation
7681func (s DeleteStackInstancesOutput) GoString() string {
7682	return s.String()
7683}
7684
7685// SetOperationId sets the OperationId field's value.
7686func (s *DeleteStackInstancesOutput) SetOperationId(v string) *DeleteStackInstancesOutput {
7687	s.OperationId = &v
7688	return s
7689}
7690
7691type DeleteStackOutput struct {
7692	_ struct{} `type:"structure"`
7693}
7694
7695// String returns the string representation
7696func (s DeleteStackOutput) String() string {
7697	return awsutil.Prettify(s)
7698}
7699
7700// GoString returns the string representation
7701func (s DeleteStackOutput) GoString() string {
7702	return s.String()
7703}
7704
7705type DeleteStackSetInput struct {
7706	_ struct{} `type:"structure"`
7707
7708	// The name or unique ID of the stack set that you're deleting. You can obtain
7709	// this value by running ListStackSets.
7710	//
7711	// StackSetName is a required field
7712	StackSetName *string `type:"string" required:"true"`
7713}
7714
7715// String returns the string representation
7716func (s DeleteStackSetInput) String() string {
7717	return awsutil.Prettify(s)
7718}
7719
7720// GoString returns the string representation
7721func (s DeleteStackSetInput) GoString() string {
7722	return s.String()
7723}
7724
7725// Validate inspects the fields of the type to determine if they are valid.
7726func (s *DeleteStackSetInput) Validate() error {
7727	invalidParams := request.ErrInvalidParams{Context: "DeleteStackSetInput"}
7728	if s.StackSetName == nil {
7729		invalidParams.Add(request.NewErrParamRequired("StackSetName"))
7730	}
7731
7732	if invalidParams.Len() > 0 {
7733		return invalidParams
7734	}
7735	return nil
7736}
7737
7738// SetStackSetName sets the StackSetName field's value.
7739func (s *DeleteStackSetInput) SetStackSetName(v string) *DeleteStackSetInput {
7740	s.StackSetName = &v
7741	return s
7742}
7743
7744type DeleteStackSetOutput struct {
7745	_ struct{} `type:"structure"`
7746}
7747
7748// String returns the string representation
7749func (s DeleteStackSetOutput) String() string {
7750	return awsutil.Prettify(s)
7751}
7752
7753// GoString returns the string representation
7754func (s DeleteStackSetOutput) GoString() string {
7755	return s.String()
7756}
7757
7758// [Service-managed permissions] The AWS Organizations accounts to which StackSets
7759// deploys. StackSets does not deploy stack instances to the organization master
7760// account, even if the master account is in your organization or in an OU in
7761// your organization.
7762//
7763// For update operations, you can specify either Accounts or OrganizationalUnitIds.
7764// For create and delete operations, specify OrganizationalUnitIds.
7765type DeploymentTargets struct {
7766	_ struct{} `type:"structure"`
7767
7768	// The names of one or more AWS accounts for which you want to deploy stack
7769	// set updates.
7770	Accounts []*string `type:"list"`
7771
7772	// The organization root ID or organizational unit (OU) IDs to which StackSets
7773	// deploys.
7774	OrganizationalUnitIds []*string `type:"list"`
7775}
7776
7777// String returns the string representation
7778func (s DeploymentTargets) String() string {
7779	return awsutil.Prettify(s)
7780}
7781
7782// GoString returns the string representation
7783func (s DeploymentTargets) GoString() string {
7784	return s.String()
7785}
7786
7787// SetAccounts sets the Accounts field's value.
7788func (s *DeploymentTargets) SetAccounts(v []*string) *DeploymentTargets {
7789	s.Accounts = v
7790	return s
7791}
7792
7793// SetOrganizationalUnitIds sets the OrganizationalUnitIds field's value.
7794func (s *DeploymentTargets) SetOrganizationalUnitIds(v []*string) *DeploymentTargets {
7795	s.OrganizationalUnitIds = v
7796	return s
7797}
7798
7799type DeregisterTypeInput struct {
7800	_ struct{} `type:"structure"`
7801
7802	// The Amazon Resource Name (ARN) of the type.
7803	//
7804	// Conditional: You must specify either TypeName and Type, or Arn.
7805	Arn *string `type:"string"`
7806
7807	// The kind of type.
7808	//
7809	// Currently the only valid value is RESOURCE.
7810	//
7811	// Conditional: You must specify either TypeName and Type, or Arn.
7812	Type *string `type:"string" enum:"RegistryType"`
7813
7814	// The name of the type.
7815	//
7816	// Conditional: You must specify either TypeName and Type, or Arn.
7817	TypeName *string `min:"10" type:"string"`
7818
7819	// The ID of a specific version of the type. The version ID is the value at
7820	// the end of the Amazon Resource Name (ARN) assigned to the type version when
7821	// it is registered.
7822	VersionId *string `min:"1" type:"string"`
7823}
7824
7825// String returns the string representation
7826func (s DeregisterTypeInput) String() string {
7827	return awsutil.Prettify(s)
7828}
7829
7830// GoString returns the string representation
7831func (s DeregisterTypeInput) GoString() string {
7832	return s.String()
7833}
7834
7835// Validate inspects the fields of the type to determine if they are valid.
7836func (s *DeregisterTypeInput) Validate() error {
7837	invalidParams := request.ErrInvalidParams{Context: "DeregisterTypeInput"}
7838	if s.TypeName != nil && len(*s.TypeName) < 10 {
7839		invalidParams.Add(request.NewErrParamMinLen("TypeName", 10))
7840	}
7841	if s.VersionId != nil && len(*s.VersionId) < 1 {
7842		invalidParams.Add(request.NewErrParamMinLen("VersionId", 1))
7843	}
7844
7845	if invalidParams.Len() > 0 {
7846		return invalidParams
7847	}
7848	return nil
7849}
7850
7851// SetArn sets the Arn field's value.
7852func (s *DeregisterTypeInput) SetArn(v string) *DeregisterTypeInput {
7853	s.Arn = &v
7854	return s
7855}
7856
7857// SetType sets the Type field's value.
7858func (s *DeregisterTypeInput) SetType(v string) *DeregisterTypeInput {
7859	s.Type = &v
7860	return s
7861}
7862
7863// SetTypeName sets the TypeName field's value.
7864func (s *DeregisterTypeInput) SetTypeName(v string) *DeregisterTypeInput {
7865	s.TypeName = &v
7866	return s
7867}
7868
7869// SetVersionId sets the VersionId field's value.
7870func (s *DeregisterTypeInput) SetVersionId(v string) *DeregisterTypeInput {
7871	s.VersionId = &v
7872	return s
7873}
7874
7875type DeregisterTypeOutput struct {
7876	_ struct{} `type:"structure"`
7877}
7878
7879// String returns the string representation
7880func (s DeregisterTypeOutput) String() string {
7881	return awsutil.Prettify(s)
7882}
7883
7884// GoString returns the string representation
7885func (s DeregisterTypeOutput) GoString() string {
7886	return s.String()
7887}
7888
7889// The input for the DescribeAccountLimits action.
7890type DescribeAccountLimitsInput struct {
7891	_ struct{} `type:"structure"`
7892
7893	// A string that identifies the next page of limits that you want to retrieve.
7894	NextToken *string `min:"1" type:"string"`
7895}
7896
7897// String returns the string representation
7898func (s DescribeAccountLimitsInput) String() string {
7899	return awsutil.Prettify(s)
7900}
7901
7902// GoString returns the string representation
7903func (s DescribeAccountLimitsInput) GoString() string {
7904	return s.String()
7905}
7906
7907// Validate inspects the fields of the type to determine if they are valid.
7908func (s *DescribeAccountLimitsInput) Validate() error {
7909	invalidParams := request.ErrInvalidParams{Context: "DescribeAccountLimitsInput"}
7910	if s.NextToken != nil && len(*s.NextToken) < 1 {
7911		invalidParams.Add(request.NewErrParamMinLen("NextToken", 1))
7912	}
7913
7914	if invalidParams.Len() > 0 {
7915		return invalidParams
7916	}
7917	return nil
7918}
7919
7920// SetNextToken sets the NextToken field's value.
7921func (s *DescribeAccountLimitsInput) SetNextToken(v string) *DescribeAccountLimitsInput {
7922	s.NextToken = &v
7923	return s
7924}
7925
7926// The output for the DescribeAccountLimits action.
7927type DescribeAccountLimitsOutput struct {
7928	_ struct{} `type:"structure"`
7929
7930	// An account limit structure that contain a list of AWS CloudFormation account
7931	// limits and their values.
7932	AccountLimits []*AccountLimit `type:"list"`
7933
7934	// If the output exceeds 1 MB in size, a string that identifies the next page
7935	// of limits. If no additional page exists, this value is null.
7936	NextToken *string `min:"1" type:"string"`
7937}
7938
7939// String returns the string representation
7940func (s DescribeAccountLimitsOutput) String() string {
7941	return awsutil.Prettify(s)
7942}
7943
7944// GoString returns the string representation
7945func (s DescribeAccountLimitsOutput) GoString() string {
7946	return s.String()
7947}
7948
7949// SetAccountLimits sets the AccountLimits field's value.
7950func (s *DescribeAccountLimitsOutput) SetAccountLimits(v []*AccountLimit) *DescribeAccountLimitsOutput {
7951	s.AccountLimits = v
7952	return s
7953}
7954
7955// SetNextToken sets the NextToken field's value.
7956func (s *DescribeAccountLimitsOutput) SetNextToken(v string) *DescribeAccountLimitsOutput {
7957	s.NextToken = &v
7958	return s
7959}
7960
7961// The input for the DescribeChangeSet action.
7962type DescribeChangeSetInput struct {
7963	_ struct{} `type:"structure"`
7964
7965	// The name or Amazon Resource Name (ARN) of the change set that you want to
7966	// describe.
7967	//
7968	// ChangeSetName is a required field
7969	ChangeSetName *string `min:"1" type:"string" required:"true"`
7970
7971	// A string (provided by the DescribeChangeSet response output) that identifies
7972	// the next page of information that you want to retrieve.
7973	NextToken *string `min:"1" type:"string"`
7974
7975	// If you specified the name of a change set, specify the stack name or ID (ARN)
7976	// of the change set you want to describe.
7977	StackName *string `min:"1" type:"string"`
7978}
7979
7980// String returns the string representation
7981func (s DescribeChangeSetInput) String() string {
7982	return awsutil.Prettify(s)
7983}
7984
7985// GoString returns the string representation
7986func (s DescribeChangeSetInput) GoString() string {
7987	return s.String()
7988}
7989
7990// Validate inspects the fields of the type to determine if they are valid.
7991func (s *DescribeChangeSetInput) Validate() error {
7992	invalidParams := request.ErrInvalidParams{Context: "DescribeChangeSetInput"}
7993	if s.ChangeSetName == nil {
7994		invalidParams.Add(request.NewErrParamRequired("ChangeSetName"))
7995	}
7996	if s.ChangeSetName != nil && len(*s.ChangeSetName) < 1 {
7997		invalidParams.Add(request.NewErrParamMinLen("ChangeSetName", 1))
7998	}
7999	if s.NextToken != nil && len(*s.NextToken) < 1 {
8000		invalidParams.Add(request.NewErrParamMinLen("NextToken", 1))
8001	}
8002	if s.StackName != nil && len(*s.StackName) < 1 {
8003		invalidParams.Add(request.NewErrParamMinLen("StackName", 1))
8004	}
8005
8006	if invalidParams.Len() > 0 {
8007		return invalidParams
8008	}
8009	return nil
8010}
8011
8012// SetChangeSetName sets the ChangeSetName field's value.
8013func (s *DescribeChangeSetInput) SetChangeSetName(v string) *DescribeChangeSetInput {
8014	s.ChangeSetName = &v
8015	return s
8016}
8017
8018// SetNextToken sets the NextToken field's value.
8019func (s *DescribeChangeSetInput) SetNextToken(v string) *DescribeChangeSetInput {
8020	s.NextToken = &v
8021	return s
8022}
8023
8024// SetStackName sets the StackName field's value.
8025func (s *DescribeChangeSetInput) SetStackName(v string) *DescribeChangeSetInput {
8026	s.StackName = &v
8027	return s
8028}
8029
8030// The output for the DescribeChangeSet action.
8031type DescribeChangeSetOutput struct {
8032	_ struct{} `type:"structure"`
8033
8034	// If you execute the change set, the list of capabilities that were explicitly
8035	// acknowledged when the change set was created.
8036	Capabilities []*string `type:"list"`
8037
8038	// The ARN of the change set.
8039	ChangeSetId *string `min:"1" type:"string"`
8040
8041	// The name of the change set.
8042	ChangeSetName *string `min:"1" type:"string"`
8043
8044	// A list of Change structures that describes the resources AWS CloudFormation
8045	// changes if you execute the change set.
8046	Changes []*Change `type:"list"`
8047
8048	// The start time when the change set was created, in UTC.
8049	CreationTime *time.Time `type:"timestamp"`
8050
8051	// Information about the change set.
8052	Description *string `min:"1" type:"string"`
8053
8054	// If the change set execution status is AVAILABLE, you can execute the change
8055	// set. If you can’t execute the change set, the status indicates why. For
8056	// example, a change set might be in an UNAVAILABLE state because AWS CloudFormation
8057	// is still creating it or in an OBSOLETE state because the stack was already
8058	// updated.
8059	ExecutionStatus *string `type:"string" enum:"ExecutionStatus"`
8060
8061	// If the output exceeds 1 MB, a string that identifies the next page of changes.
8062	// If there is no additional page, this value is null.
8063	NextToken *string `min:"1" type:"string"`
8064
8065	// The ARNs of the Amazon Simple Notification Service (Amazon SNS) topics that
8066	// will be associated with the stack if you execute the change set.
8067	NotificationARNs []*string `type:"list"`
8068
8069	// A list of Parameter structures that describes the input parameters and their
8070	// values used to create the change set. For more information, see the Parameter
8071	// (https://docs.aws.amazon.com/AWSCloudFormation/latest/APIReference/API_Parameter.html)
8072	// data type.
8073	Parameters []*Parameter `type:"list"`
8074
8075	// The rollback triggers for AWS CloudFormation to monitor during stack creation
8076	// and updating operations, and for the specified monitoring period afterwards.
8077	RollbackConfiguration *RollbackConfiguration `type:"structure"`
8078
8079	// The ARN of the stack that is associated with the change set.
8080	StackId *string `type:"string"`
8081
8082	// The name of the stack that is associated with the change set.
8083	StackName *string `type:"string"`
8084
8085	// The current status of the change set, such as CREATE_IN_PROGRESS, CREATE_COMPLETE,
8086	// or FAILED.
8087	Status *string `type:"string" enum:"ChangeSetStatus"`
8088
8089	// A description of the change set's status. For example, if your attempt to
8090	// create a change set failed, AWS CloudFormation shows the error message.
8091	StatusReason *string `type:"string"`
8092
8093	// If you execute the change set, the tags that will be associated with the
8094	// stack.
8095	Tags []*Tag `type:"list"`
8096}
8097
8098// String returns the string representation
8099func (s DescribeChangeSetOutput) String() string {
8100	return awsutil.Prettify(s)
8101}
8102
8103// GoString returns the string representation
8104func (s DescribeChangeSetOutput) GoString() string {
8105	return s.String()
8106}
8107
8108// SetCapabilities sets the Capabilities field's value.
8109func (s *DescribeChangeSetOutput) SetCapabilities(v []*string) *DescribeChangeSetOutput {
8110	s.Capabilities = v
8111	return s
8112}
8113
8114// SetChangeSetId sets the ChangeSetId field's value.
8115func (s *DescribeChangeSetOutput) SetChangeSetId(v string) *DescribeChangeSetOutput {
8116	s.ChangeSetId = &v
8117	return s
8118}
8119
8120// SetChangeSetName sets the ChangeSetName field's value.
8121func (s *DescribeChangeSetOutput) SetChangeSetName(v string) *DescribeChangeSetOutput {
8122	s.ChangeSetName = &v
8123	return s
8124}
8125
8126// SetChanges sets the Changes field's value.
8127func (s *DescribeChangeSetOutput) SetChanges(v []*Change) *DescribeChangeSetOutput {
8128	s.Changes = v
8129	return s
8130}
8131
8132// SetCreationTime sets the CreationTime field's value.
8133func (s *DescribeChangeSetOutput) SetCreationTime(v time.Time) *DescribeChangeSetOutput {
8134	s.CreationTime = &v
8135	return s
8136}
8137
8138// SetDescription sets the Description field's value.
8139func (s *DescribeChangeSetOutput) SetDescription(v string) *DescribeChangeSetOutput {
8140	s.Description = &v
8141	return s
8142}
8143
8144// SetExecutionStatus sets the ExecutionStatus field's value.
8145func (s *DescribeChangeSetOutput) SetExecutionStatus(v string) *DescribeChangeSetOutput {
8146	s.ExecutionStatus = &v
8147	return s
8148}
8149
8150// SetNextToken sets the NextToken field's value.
8151func (s *DescribeChangeSetOutput) SetNextToken(v string) *DescribeChangeSetOutput {
8152	s.NextToken = &v
8153	return s
8154}
8155
8156// SetNotificationARNs sets the NotificationARNs field's value.
8157func (s *DescribeChangeSetOutput) SetNotificationARNs(v []*string) *DescribeChangeSetOutput {
8158	s.NotificationARNs = v
8159	return s
8160}
8161
8162// SetParameters sets the Parameters field's value.
8163func (s *DescribeChangeSetOutput) SetParameters(v []*Parameter) *DescribeChangeSetOutput {
8164	s.Parameters = v
8165	return s
8166}
8167
8168// SetRollbackConfiguration sets the RollbackConfiguration field's value.
8169func (s *DescribeChangeSetOutput) SetRollbackConfiguration(v *RollbackConfiguration) *DescribeChangeSetOutput {
8170	s.RollbackConfiguration = v
8171	return s
8172}
8173
8174// SetStackId sets the StackId field's value.
8175func (s *DescribeChangeSetOutput) SetStackId(v string) *DescribeChangeSetOutput {
8176	s.StackId = &v
8177	return s
8178}
8179
8180// SetStackName sets the StackName field's value.
8181func (s *DescribeChangeSetOutput) SetStackName(v string) *DescribeChangeSetOutput {
8182	s.StackName = &v
8183	return s
8184}
8185
8186// SetStatus sets the Status field's value.
8187func (s *DescribeChangeSetOutput) SetStatus(v string) *DescribeChangeSetOutput {
8188	s.Status = &v
8189	return s
8190}
8191
8192// SetStatusReason sets the StatusReason field's value.
8193func (s *DescribeChangeSetOutput) SetStatusReason(v string) *DescribeChangeSetOutput {
8194	s.StatusReason = &v
8195	return s
8196}
8197
8198// SetTags sets the Tags field's value.
8199func (s *DescribeChangeSetOutput) SetTags(v []*Tag) *DescribeChangeSetOutput {
8200	s.Tags = v
8201	return s
8202}
8203
8204type DescribeStackDriftDetectionStatusInput struct {
8205	_ struct{} `type:"structure"`
8206
8207	// The ID of the drift detection results of this operation.
8208	//
8209	// AWS CloudFormation generates new results, with a new drift detection ID,
8210	// each time this operation is run. However, the number of drift results AWS
8211	// CloudFormation retains for any given stack, and for how long, may vary.
8212	//
8213	// StackDriftDetectionId is a required field
8214	StackDriftDetectionId *string `min:"1" type:"string" required:"true"`
8215}
8216
8217// String returns the string representation
8218func (s DescribeStackDriftDetectionStatusInput) String() string {
8219	return awsutil.Prettify(s)
8220}
8221
8222// GoString returns the string representation
8223func (s DescribeStackDriftDetectionStatusInput) GoString() string {
8224	return s.String()
8225}
8226
8227// Validate inspects the fields of the type to determine if they are valid.
8228func (s *DescribeStackDriftDetectionStatusInput) Validate() error {
8229	invalidParams := request.ErrInvalidParams{Context: "DescribeStackDriftDetectionStatusInput"}
8230	if s.StackDriftDetectionId == nil {
8231		invalidParams.Add(request.NewErrParamRequired("StackDriftDetectionId"))
8232	}
8233	if s.StackDriftDetectionId != nil && len(*s.StackDriftDetectionId) < 1 {
8234		invalidParams.Add(request.NewErrParamMinLen("StackDriftDetectionId", 1))
8235	}
8236
8237	if invalidParams.Len() > 0 {
8238		return invalidParams
8239	}
8240	return nil
8241}
8242
8243// SetStackDriftDetectionId sets the StackDriftDetectionId field's value.
8244func (s *DescribeStackDriftDetectionStatusInput) SetStackDriftDetectionId(v string) *DescribeStackDriftDetectionStatusInput {
8245	s.StackDriftDetectionId = &v
8246	return s
8247}
8248
8249type DescribeStackDriftDetectionStatusOutput struct {
8250	_ struct{} `type:"structure"`
8251
8252	// The status of the stack drift detection operation.
8253	//
8254	//    * DETECTION_COMPLETE: The stack drift detection operation has successfully
8255	//    completed for all resources in the stack that support drift detection.
8256	//    (Resources that do not currently support stack detection remain unchecked.)
8257	//    If you specified logical resource IDs for AWS CloudFormation to use as
8258	//    a filter for the stack drift detection operation, only the resources with
8259	//    those logical IDs are checked for drift.
8260	//
8261	//    * DETECTION_FAILED: The stack drift detection operation has failed for
8262	//    at least one resource in the stack. Results will be available for resources
8263	//    on which AWS CloudFormation successfully completed drift detection.
8264	//
8265	//    * DETECTION_IN_PROGRESS: The stack drift detection operation is currently
8266	//    in progress.
8267	//
8268	// DetectionStatus is a required field
8269	DetectionStatus *string `type:"string" required:"true" enum:"StackDriftDetectionStatus"`
8270
8271	// The reason the stack drift detection operation has its current status.
8272	DetectionStatusReason *string `type:"string"`
8273
8274	// Total number of stack resources that have drifted. This is NULL until the
8275	// drift detection operation reaches a status of DETECTION_COMPLETE. This value
8276	// will be 0 for stacks whose drift status is IN_SYNC.
8277	DriftedStackResourceCount *int64 `type:"integer"`
8278
8279	// The ID of the drift detection results of this operation.
8280	//
8281	// AWS CloudFormation generates new results, with a new drift detection ID,
8282	// each time this operation is run. However, the number of reports AWS CloudFormation
8283	// retains for any given stack, and for how long, may vary.
8284	//
8285	// StackDriftDetectionId is a required field
8286	StackDriftDetectionId *string `min:"1" type:"string" required:"true"`
8287
8288	// Status of the stack's actual configuration compared to its expected configuration.
8289	//
8290	//    * DRIFTED: The stack differs from its expected template configuration.
8291	//    A stack is considered to have drifted if one or more of its resources
8292	//    have drifted.
8293	//
8294	//    * NOT_CHECKED: AWS CloudFormation has not checked if the stack differs
8295	//    from its expected template configuration.
8296	//
8297	//    * IN_SYNC: The stack's actual configuration matches its expected template
8298	//    configuration.
8299	//
8300	//    * UNKNOWN: This value is reserved for future use.
8301	StackDriftStatus *string `type:"string" enum:"StackDriftStatus"`
8302
8303	// The ID of the stack.
8304	//
8305	// StackId is a required field
8306	StackId *string `type:"string" required:"true"`
8307
8308	// Time at which the stack drift detection operation was initiated.
8309	//
8310	// Timestamp is a required field
8311	Timestamp *time.Time `type:"timestamp" required:"true"`
8312}
8313
8314// String returns the string representation
8315func (s DescribeStackDriftDetectionStatusOutput) String() string {
8316	return awsutil.Prettify(s)
8317}
8318
8319// GoString returns the string representation
8320func (s DescribeStackDriftDetectionStatusOutput) GoString() string {
8321	return s.String()
8322}
8323
8324// SetDetectionStatus sets the DetectionStatus field's value.
8325func (s *DescribeStackDriftDetectionStatusOutput) SetDetectionStatus(v string) *DescribeStackDriftDetectionStatusOutput {
8326	s.DetectionStatus = &v
8327	return s
8328}
8329
8330// SetDetectionStatusReason sets the DetectionStatusReason field's value.
8331func (s *DescribeStackDriftDetectionStatusOutput) SetDetectionStatusReason(v string) *DescribeStackDriftDetectionStatusOutput {
8332	s.DetectionStatusReason = &v
8333	return s
8334}
8335
8336// SetDriftedStackResourceCount sets the DriftedStackResourceCount field's value.
8337func (s *DescribeStackDriftDetectionStatusOutput) SetDriftedStackResourceCount(v int64) *DescribeStackDriftDetectionStatusOutput {
8338	s.DriftedStackResourceCount = &v
8339	return s
8340}
8341
8342// SetStackDriftDetectionId sets the StackDriftDetectionId field's value.
8343func (s *DescribeStackDriftDetectionStatusOutput) SetStackDriftDetectionId(v string) *DescribeStackDriftDetectionStatusOutput {
8344	s.StackDriftDetectionId = &v
8345	return s
8346}
8347
8348// SetStackDriftStatus sets the StackDriftStatus field's value.
8349func (s *DescribeStackDriftDetectionStatusOutput) SetStackDriftStatus(v string) *DescribeStackDriftDetectionStatusOutput {
8350	s.StackDriftStatus = &v
8351	return s
8352}
8353
8354// SetStackId sets the StackId field's value.
8355func (s *DescribeStackDriftDetectionStatusOutput) SetStackId(v string) *DescribeStackDriftDetectionStatusOutput {
8356	s.StackId = &v
8357	return s
8358}
8359
8360// SetTimestamp sets the Timestamp field's value.
8361func (s *DescribeStackDriftDetectionStatusOutput) SetTimestamp(v time.Time) *DescribeStackDriftDetectionStatusOutput {
8362	s.Timestamp = &v
8363	return s
8364}
8365
8366// The input for DescribeStackEvents action.
8367type DescribeStackEventsInput struct {
8368	_ struct{} `type:"structure"`
8369
8370	// A string that identifies the next page of events that you want to retrieve.
8371	NextToken *string `min:"1" type:"string"`
8372
8373	// The name or the unique stack ID that is associated with the stack, which
8374	// are not always interchangeable:
8375	//
8376	//    * Running stacks: You can specify either the stack's name or its unique
8377	//    stack ID.
8378	//
8379	//    * Deleted stacks: You must specify the unique stack ID.
8380	//
8381	// Default: There is no default value.
8382	StackName *string `type:"string"`
8383}
8384
8385// String returns the string representation
8386func (s DescribeStackEventsInput) String() string {
8387	return awsutil.Prettify(s)
8388}
8389
8390// GoString returns the string representation
8391func (s DescribeStackEventsInput) GoString() string {
8392	return s.String()
8393}
8394
8395// Validate inspects the fields of the type to determine if they are valid.
8396func (s *DescribeStackEventsInput) Validate() error {
8397	invalidParams := request.ErrInvalidParams{Context: "DescribeStackEventsInput"}
8398	if s.NextToken != nil && len(*s.NextToken) < 1 {
8399		invalidParams.Add(request.NewErrParamMinLen("NextToken", 1))
8400	}
8401
8402	if invalidParams.Len() > 0 {
8403		return invalidParams
8404	}
8405	return nil
8406}
8407
8408// SetNextToken sets the NextToken field's value.
8409func (s *DescribeStackEventsInput) SetNextToken(v string) *DescribeStackEventsInput {
8410	s.NextToken = &v
8411	return s
8412}
8413
8414// SetStackName sets the StackName field's value.
8415func (s *DescribeStackEventsInput) SetStackName(v string) *DescribeStackEventsInput {
8416	s.StackName = &v
8417	return s
8418}
8419
8420// The output for a DescribeStackEvents action.
8421type DescribeStackEventsOutput struct {
8422	_ struct{} `type:"structure"`
8423
8424	// If the output exceeds 1 MB in size, a string that identifies the next page
8425	// of events. If no additional page exists, this value is null.
8426	NextToken *string `min:"1" type:"string"`
8427
8428	// A list of StackEvents structures.
8429	StackEvents []*StackEvent `type:"list"`
8430}
8431
8432// String returns the string representation
8433func (s DescribeStackEventsOutput) String() string {
8434	return awsutil.Prettify(s)
8435}
8436
8437// GoString returns the string representation
8438func (s DescribeStackEventsOutput) GoString() string {
8439	return s.String()
8440}
8441
8442// SetNextToken sets the NextToken field's value.
8443func (s *DescribeStackEventsOutput) SetNextToken(v string) *DescribeStackEventsOutput {
8444	s.NextToken = &v
8445	return s
8446}
8447
8448// SetStackEvents sets the StackEvents field's value.
8449func (s *DescribeStackEventsOutput) SetStackEvents(v []*StackEvent) *DescribeStackEventsOutput {
8450	s.StackEvents = v
8451	return s
8452}
8453
8454type DescribeStackInstanceInput struct {
8455	_ struct{} `type:"structure"`
8456
8457	// The ID of an AWS account that's associated with this stack instance.
8458	//
8459	// StackInstanceAccount is a required field
8460	StackInstanceAccount *string `type:"string" required:"true"`
8461
8462	// The name of a Region that's associated with this stack instance.
8463	//
8464	// StackInstanceRegion is a required field
8465	StackInstanceRegion *string `type:"string" required:"true"`
8466
8467	// The name or the unique stack ID of the stack set that you want to get stack
8468	// instance information for.
8469	//
8470	// StackSetName is a required field
8471	StackSetName *string `type:"string" required:"true"`
8472}
8473
8474// String returns the string representation
8475func (s DescribeStackInstanceInput) String() string {
8476	return awsutil.Prettify(s)
8477}
8478
8479// GoString returns the string representation
8480func (s DescribeStackInstanceInput) GoString() string {
8481	return s.String()
8482}
8483
8484// Validate inspects the fields of the type to determine if they are valid.
8485func (s *DescribeStackInstanceInput) Validate() error {
8486	invalidParams := request.ErrInvalidParams{Context: "DescribeStackInstanceInput"}
8487	if s.StackInstanceAccount == nil {
8488		invalidParams.Add(request.NewErrParamRequired("StackInstanceAccount"))
8489	}
8490	if s.StackInstanceRegion == nil {
8491		invalidParams.Add(request.NewErrParamRequired("StackInstanceRegion"))
8492	}
8493	if s.StackSetName == nil {
8494		invalidParams.Add(request.NewErrParamRequired("StackSetName"))
8495	}
8496
8497	if invalidParams.Len() > 0 {
8498		return invalidParams
8499	}
8500	return nil
8501}
8502
8503// SetStackInstanceAccount sets the StackInstanceAccount field's value.
8504func (s *DescribeStackInstanceInput) SetStackInstanceAccount(v string) *DescribeStackInstanceInput {
8505	s.StackInstanceAccount = &v
8506	return s
8507}
8508
8509// SetStackInstanceRegion sets the StackInstanceRegion field's value.
8510func (s *DescribeStackInstanceInput) SetStackInstanceRegion(v string) *DescribeStackInstanceInput {
8511	s.StackInstanceRegion = &v
8512	return s
8513}
8514
8515// SetStackSetName sets the StackSetName field's value.
8516func (s *DescribeStackInstanceInput) SetStackSetName(v string) *DescribeStackInstanceInput {
8517	s.StackSetName = &v
8518	return s
8519}
8520
8521type DescribeStackInstanceOutput struct {
8522	_ struct{} `type:"structure"`
8523
8524	// The stack instance that matches the specified request parameters.
8525	StackInstance *StackInstance `type:"structure"`
8526}
8527
8528// String returns the string representation
8529func (s DescribeStackInstanceOutput) String() string {
8530	return awsutil.Prettify(s)
8531}
8532
8533// GoString returns the string representation
8534func (s DescribeStackInstanceOutput) GoString() string {
8535	return s.String()
8536}
8537
8538// SetStackInstance sets the StackInstance field's value.
8539func (s *DescribeStackInstanceOutput) SetStackInstance(v *StackInstance) *DescribeStackInstanceOutput {
8540	s.StackInstance = v
8541	return s
8542}
8543
8544type DescribeStackResourceDriftsInput struct {
8545	_ struct{} `type:"structure"`
8546
8547	// The maximum number of results to be returned with a single call. If the number
8548	// of available results exceeds this maximum, the response includes a NextToken
8549	// value that you can assign to the NextToken request parameter to get the next
8550	// set of results.
8551	MaxResults *int64 `min:"1" type:"integer"`
8552
8553	// A string that identifies the next page of stack resource drift results.
8554	NextToken *string `min:"1" type:"string"`
8555
8556	// The name of the stack for which you want drift information.
8557	//
8558	// StackName is a required field
8559	StackName *string `min:"1" type:"string" required:"true"`
8560
8561	// The resource drift status values to use as filters for the resource drift
8562	// results returned.
8563	//
8564	//    * DELETED: The resource differs from its expected template configuration
8565	//    in that the resource has been deleted.
8566	//
8567	//    * MODIFIED: One or more resource properties differ from their expected
8568	//    template values.
8569	//
8570	//    * IN_SYNC: The resources's actual configuration matches its expected template
8571	//    configuration.
8572	//
8573	//    * NOT_CHECKED: AWS CloudFormation does not currently return this value.
8574	StackResourceDriftStatusFilters []*string `min:"1" type:"list"`
8575}
8576
8577// String returns the string representation
8578func (s DescribeStackResourceDriftsInput) String() string {
8579	return awsutil.Prettify(s)
8580}
8581
8582// GoString returns the string representation
8583func (s DescribeStackResourceDriftsInput) GoString() string {
8584	return s.String()
8585}
8586
8587// Validate inspects the fields of the type to determine if they are valid.
8588func (s *DescribeStackResourceDriftsInput) Validate() error {
8589	invalidParams := request.ErrInvalidParams{Context: "DescribeStackResourceDriftsInput"}
8590	if s.MaxResults != nil && *s.MaxResults < 1 {
8591		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
8592	}
8593	if s.NextToken != nil && len(*s.NextToken) < 1 {
8594		invalidParams.Add(request.NewErrParamMinLen("NextToken", 1))
8595	}
8596	if s.StackName == nil {
8597		invalidParams.Add(request.NewErrParamRequired("StackName"))
8598	}
8599	if s.StackName != nil && len(*s.StackName) < 1 {
8600		invalidParams.Add(request.NewErrParamMinLen("StackName", 1))
8601	}
8602	if s.StackResourceDriftStatusFilters != nil && len(s.StackResourceDriftStatusFilters) < 1 {
8603		invalidParams.Add(request.NewErrParamMinLen("StackResourceDriftStatusFilters", 1))
8604	}
8605
8606	if invalidParams.Len() > 0 {
8607		return invalidParams
8608	}
8609	return nil
8610}
8611
8612// SetMaxResults sets the MaxResults field's value.
8613func (s *DescribeStackResourceDriftsInput) SetMaxResults(v int64) *DescribeStackResourceDriftsInput {
8614	s.MaxResults = &v
8615	return s
8616}
8617
8618// SetNextToken sets the NextToken field's value.
8619func (s *DescribeStackResourceDriftsInput) SetNextToken(v string) *DescribeStackResourceDriftsInput {
8620	s.NextToken = &v
8621	return s
8622}
8623
8624// SetStackName sets the StackName field's value.
8625func (s *DescribeStackResourceDriftsInput) SetStackName(v string) *DescribeStackResourceDriftsInput {
8626	s.StackName = &v
8627	return s
8628}
8629
8630// SetStackResourceDriftStatusFilters sets the StackResourceDriftStatusFilters field's value.
8631func (s *DescribeStackResourceDriftsInput) SetStackResourceDriftStatusFilters(v []*string) *DescribeStackResourceDriftsInput {
8632	s.StackResourceDriftStatusFilters = v
8633	return s
8634}
8635
8636type DescribeStackResourceDriftsOutput struct {
8637	_ struct{} `type:"structure"`
8638
8639	// If the request doesn't return all of the remaining results, NextToken is
8640	// set to a token. To retrieve the next set of results, call DescribeStackResourceDrifts
8641	// again and assign that token to the request object's NextToken parameter.
8642	// If the request returns all results, NextToken is set to null.
8643	NextToken *string `min:"1" type:"string"`
8644
8645	// Drift information for the resources that have been checked for drift in the
8646	// specified stack. This includes actual and expected configuration values for
8647	// resources where AWS CloudFormation detects drift.
8648	//
8649	// For a given stack, there will be one StackResourceDrift for each stack resource
8650	// that has been checked for drift. Resources that have not yet been checked
8651	// for drift are not included. Resources that do not currently support drift
8652	// detection are not checked, and so not included. For a list of resources that
8653	// support drift detection, see Resources that Support Drift Detection (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-stack-drift-resource-list.html).
8654	//
8655	// StackResourceDrifts is a required field
8656	StackResourceDrifts []*StackResourceDrift `type:"list" required:"true"`
8657}
8658
8659// String returns the string representation
8660func (s DescribeStackResourceDriftsOutput) String() string {
8661	return awsutil.Prettify(s)
8662}
8663
8664// GoString returns the string representation
8665func (s DescribeStackResourceDriftsOutput) GoString() string {
8666	return s.String()
8667}
8668
8669// SetNextToken sets the NextToken field's value.
8670func (s *DescribeStackResourceDriftsOutput) SetNextToken(v string) *DescribeStackResourceDriftsOutput {
8671	s.NextToken = &v
8672	return s
8673}
8674
8675// SetStackResourceDrifts sets the StackResourceDrifts field's value.
8676func (s *DescribeStackResourceDriftsOutput) SetStackResourceDrifts(v []*StackResourceDrift) *DescribeStackResourceDriftsOutput {
8677	s.StackResourceDrifts = v
8678	return s
8679}
8680
8681// The input for DescribeStackResource action.
8682type DescribeStackResourceInput struct {
8683	_ struct{} `type:"structure"`
8684
8685	// The logical name of the resource as specified in the template.
8686	//
8687	// Default: There is no default value.
8688	//
8689	// LogicalResourceId is a required field
8690	LogicalResourceId *string `type:"string" required:"true"`
8691
8692	// The name or the unique stack ID that is associated with the stack, which
8693	// are not always interchangeable:
8694	//
8695	//    * Running stacks: You can specify either the stack's name or its unique
8696	//    stack ID.
8697	//
8698	//    * Deleted stacks: You must specify the unique stack ID.
8699	//
8700	// Default: There is no default value.
8701	//
8702	// StackName is a required field
8703	StackName *string `type:"string" required:"true"`
8704}
8705
8706// String returns the string representation
8707func (s DescribeStackResourceInput) String() string {
8708	return awsutil.Prettify(s)
8709}
8710
8711// GoString returns the string representation
8712func (s DescribeStackResourceInput) GoString() string {
8713	return s.String()
8714}
8715
8716// Validate inspects the fields of the type to determine if they are valid.
8717func (s *DescribeStackResourceInput) Validate() error {
8718	invalidParams := request.ErrInvalidParams{Context: "DescribeStackResourceInput"}
8719	if s.LogicalResourceId == nil {
8720		invalidParams.Add(request.NewErrParamRequired("LogicalResourceId"))
8721	}
8722	if s.StackName == nil {
8723		invalidParams.Add(request.NewErrParamRequired("StackName"))
8724	}
8725
8726	if invalidParams.Len() > 0 {
8727		return invalidParams
8728	}
8729	return nil
8730}
8731
8732// SetLogicalResourceId sets the LogicalResourceId field's value.
8733func (s *DescribeStackResourceInput) SetLogicalResourceId(v string) *DescribeStackResourceInput {
8734	s.LogicalResourceId = &v
8735	return s
8736}
8737
8738// SetStackName sets the StackName field's value.
8739func (s *DescribeStackResourceInput) SetStackName(v string) *DescribeStackResourceInput {
8740	s.StackName = &v
8741	return s
8742}
8743
8744// The output for a DescribeStackResource action.
8745type DescribeStackResourceOutput struct {
8746	_ struct{} `type:"structure"`
8747
8748	// A StackResourceDetail structure containing the description of the specified
8749	// resource in the specified stack.
8750	StackResourceDetail *StackResourceDetail `type:"structure"`
8751}
8752
8753// String returns the string representation
8754func (s DescribeStackResourceOutput) String() string {
8755	return awsutil.Prettify(s)
8756}
8757
8758// GoString returns the string representation
8759func (s DescribeStackResourceOutput) GoString() string {
8760	return s.String()
8761}
8762
8763// SetStackResourceDetail sets the StackResourceDetail field's value.
8764func (s *DescribeStackResourceOutput) SetStackResourceDetail(v *StackResourceDetail) *DescribeStackResourceOutput {
8765	s.StackResourceDetail = v
8766	return s
8767}
8768
8769// The input for DescribeStackResources action.
8770type DescribeStackResourcesInput struct {
8771	_ struct{} `type:"structure"`
8772
8773	// The logical name of the resource as specified in the template.
8774	//
8775	// Default: There is no default value.
8776	LogicalResourceId *string `type:"string"`
8777
8778	// The name or unique identifier that corresponds to a physical instance ID
8779	// of a resource supported by AWS CloudFormation.
8780	//
8781	// For example, for an Amazon Elastic Compute Cloud (EC2) instance, PhysicalResourceId
8782	// corresponds to the InstanceId. You can pass the EC2 InstanceId to DescribeStackResources
8783	// to find which stack the instance belongs to and what other resources are
8784	// part of the stack.
8785	//
8786	// Required: Conditional. If you do not specify PhysicalResourceId, you must
8787	// specify StackName.
8788	//
8789	// Default: There is no default value.
8790	PhysicalResourceId *string `type:"string"`
8791
8792	// The name or the unique stack ID that is associated with the stack, which
8793	// are not always interchangeable:
8794	//
8795	//    * Running stacks: You can specify either the stack's name or its unique
8796	//    stack ID.
8797	//
8798	//    * Deleted stacks: You must specify the unique stack ID.
8799	//
8800	// Default: There is no default value.
8801	//
8802	// Required: Conditional. If you do not specify StackName, you must specify
8803	// PhysicalResourceId.
8804	StackName *string `type:"string"`
8805}
8806
8807// String returns the string representation
8808func (s DescribeStackResourcesInput) String() string {
8809	return awsutil.Prettify(s)
8810}
8811
8812// GoString returns the string representation
8813func (s DescribeStackResourcesInput) GoString() string {
8814	return s.String()
8815}
8816
8817// SetLogicalResourceId sets the LogicalResourceId field's value.
8818func (s *DescribeStackResourcesInput) SetLogicalResourceId(v string) *DescribeStackResourcesInput {
8819	s.LogicalResourceId = &v
8820	return s
8821}
8822
8823// SetPhysicalResourceId sets the PhysicalResourceId field's value.
8824func (s *DescribeStackResourcesInput) SetPhysicalResourceId(v string) *DescribeStackResourcesInput {
8825	s.PhysicalResourceId = &v
8826	return s
8827}
8828
8829// SetStackName sets the StackName field's value.
8830func (s *DescribeStackResourcesInput) SetStackName(v string) *DescribeStackResourcesInput {
8831	s.StackName = &v
8832	return s
8833}
8834
8835// The output for a DescribeStackResources action.
8836type DescribeStackResourcesOutput struct {
8837	_ struct{} `type:"structure"`
8838
8839	// A list of StackResource structures.
8840	StackResources []*StackResource `type:"list"`
8841}
8842
8843// String returns the string representation
8844func (s DescribeStackResourcesOutput) String() string {
8845	return awsutil.Prettify(s)
8846}
8847
8848// GoString returns the string representation
8849func (s DescribeStackResourcesOutput) GoString() string {
8850	return s.String()
8851}
8852
8853// SetStackResources sets the StackResources field's value.
8854func (s *DescribeStackResourcesOutput) SetStackResources(v []*StackResource) *DescribeStackResourcesOutput {
8855	s.StackResources = v
8856	return s
8857}
8858
8859type DescribeStackSetInput struct {
8860	_ struct{} `type:"structure"`
8861
8862	// The name or unique ID of the stack set whose description you want.
8863	//
8864	// StackSetName is a required field
8865	StackSetName *string `type:"string" required:"true"`
8866}
8867
8868// String returns the string representation
8869func (s DescribeStackSetInput) String() string {
8870	return awsutil.Prettify(s)
8871}
8872
8873// GoString returns the string representation
8874func (s DescribeStackSetInput) GoString() string {
8875	return s.String()
8876}
8877
8878// Validate inspects the fields of the type to determine if they are valid.
8879func (s *DescribeStackSetInput) Validate() error {
8880	invalidParams := request.ErrInvalidParams{Context: "DescribeStackSetInput"}
8881	if s.StackSetName == nil {
8882		invalidParams.Add(request.NewErrParamRequired("StackSetName"))
8883	}
8884
8885	if invalidParams.Len() > 0 {
8886		return invalidParams
8887	}
8888	return nil
8889}
8890
8891// SetStackSetName sets the StackSetName field's value.
8892func (s *DescribeStackSetInput) SetStackSetName(v string) *DescribeStackSetInput {
8893	s.StackSetName = &v
8894	return s
8895}
8896
8897type DescribeStackSetOperationInput struct {
8898	_ struct{} `type:"structure"`
8899
8900	// The unique ID of the stack set operation.
8901	//
8902	// OperationId is a required field
8903	OperationId *string `min:"1" type:"string" required:"true"`
8904
8905	// The name or the unique stack ID of the stack set for the stack operation.
8906	//
8907	// StackSetName is a required field
8908	StackSetName *string `type:"string" required:"true"`
8909}
8910
8911// String returns the string representation
8912func (s DescribeStackSetOperationInput) String() string {
8913	return awsutil.Prettify(s)
8914}
8915
8916// GoString returns the string representation
8917func (s DescribeStackSetOperationInput) GoString() string {
8918	return s.String()
8919}
8920
8921// Validate inspects the fields of the type to determine if they are valid.
8922func (s *DescribeStackSetOperationInput) Validate() error {
8923	invalidParams := request.ErrInvalidParams{Context: "DescribeStackSetOperationInput"}
8924	if s.OperationId == nil {
8925		invalidParams.Add(request.NewErrParamRequired("OperationId"))
8926	}
8927	if s.OperationId != nil && len(*s.OperationId) < 1 {
8928		invalidParams.Add(request.NewErrParamMinLen("OperationId", 1))
8929	}
8930	if s.StackSetName == nil {
8931		invalidParams.Add(request.NewErrParamRequired("StackSetName"))
8932	}
8933
8934	if invalidParams.Len() > 0 {
8935		return invalidParams
8936	}
8937	return nil
8938}
8939
8940// SetOperationId sets the OperationId field's value.
8941func (s *DescribeStackSetOperationInput) SetOperationId(v string) *DescribeStackSetOperationInput {
8942	s.OperationId = &v
8943	return s
8944}
8945
8946// SetStackSetName sets the StackSetName field's value.
8947func (s *DescribeStackSetOperationInput) SetStackSetName(v string) *DescribeStackSetOperationInput {
8948	s.StackSetName = &v
8949	return s
8950}
8951
8952type DescribeStackSetOperationOutput struct {
8953	_ struct{} `type:"structure"`
8954
8955	// The specified stack set operation.
8956	StackSetOperation *StackSetOperation `type:"structure"`
8957}
8958
8959// String returns the string representation
8960func (s DescribeStackSetOperationOutput) String() string {
8961	return awsutil.Prettify(s)
8962}
8963
8964// GoString returns the string representation
8965func (s DescribeStackSetOperationOutput) GoString() string {
8966	return s.String()
8967}
8968
8969// SetStackSetOperation sets the StackSetOperation field's value.
8970func (s *DescribeStackSetOperationOutput) SetStackSetOperation(v *StackSetOperation) *DescribeStackSetOperationOutput {
8971	s.StackSetOperation = v
8972	return s
8973}
8974
8975type DescribeStackSetOutput struct {
8976	_ struct{} `type:"structure"`
8977
8978	// The specified stack set.
8979	StackSet *StackSet `type:"structure"`
8980}
8981
8982// String returns the string representation
8983func (s DescribeStackSetOutput) String() string {
8984	return awsutil.Prettify(s)
8985}
8986
8987// GoString returns the string representation
8988func (s DescribeStackSetOutput) GoString() string {
8989	return s.String()
8990}
8991
8992// SetStackSet sets the StackSet field's value.
8993func (s *DescribeStackSetOutput) SetStackSet(v *StackSet) *DescribeStackSetOutput {
8994	s.StackSet = v
8995	return s
8996}
8997
8998// The input for DescribeStacks action.
8999type DescribeStacksInput struct {
9000	_ struct{} `type:"structure"`
9001
9002	// A string that identifies the next page of stacks that you want to retrieve.
9003	NextToken *string `min:"1" type:"string"`
9004
9005	// The name or the unique stack ID that is associated with the stack, which
9006	// are not always interchangeable:
9007	//
9008	//    * Running stacks: You can specify either the stack's name or its unique
9009	//    stack ID.
9010	//
9011	//    * Deleted stacks: You must specify the unique stack ID.
9012	//
9013	// Default: There is no default value.
9014	StackName *string `type:"string"`
9015}
9016
9017// String returns the string representation
9018func (s DescribeStacksInput) String() string {
9019	return awsutil.Prettify(s)
9020}
9021
9022// GoString returns the string representation
9023func (s DescribeStacksInput) GoString() string {
9024	return s.String()
9025}
9026
9027// Validate inspects the fields of the type to determine if they are valid.
9028func (s *DescribeStacksInput) Validate() error {
9029	invalidParams := request.ErrInvalidParams{Context: "DescribeStacksInput"}
9030	if s.NextToken != nil && len(*s.NextToken) < 1 {
9031		invalidParams.Add(request.NewErrParamMinLen("NextToken", 1))
9032	}
9033
9034	if invalidParams.Len() > 0 {
9035		return invalidParams
9036	}
9037	return nil
9038}
9039
9040// SetNextToken sets the NextToken field's value.
9041func (s *DescribeStacksInput) SetNextToken(v string) *DescribeStacksInput {
9042	s.NextToken = &v
9043	return s
9044}
9045
9046// SetStackName sets the StackName field's value.
9047func (s *DescribeStacksInput) SetStackName(v string) *DescribeStacksInput {
9048	s.StackName = &v
9049	return s
9050}
9051
9052// The output for a DescribeStacks action.
9053type DescribeStacksOutput struct {
9054	_ struct{} `type:"structure"`
9055
9056	// If the output exceeds 1 MB in size, a string that identifies the next page
9057	// of stacks. If no additional page exists, this value is null.
9058	NextToken *string `min:"1" type:"string"`
9059
9060	// A list of stack structures.
9061	Stacks []*Stack `type:"list"`
9062}
9063
9064// String returns the string representation
9065func (s DescribeStacksOutput) String() string {
9066	return awsutil.Prettify(s)
9067}
9068
9069// GoString returns the string representation
9070func (s DescribeStacksOutput) GoString() string {
9071	return s.String()
9072}
9073
9074// SetNextToken sets the NextToken field's value.
9075func (s *DescribeStacksOutput) SetNextToken(v string) *DescribeStacksOutput {
9076	s.NextToken = &v
9077	return s
9078}
9079
9080// SetStacks sets the Stacks field's value.
9081func (s *DescribeStacksOutput) SetStacks(v []*Stack) *DescribeStacksOutput {
9082	s.Stacks = v
9083	return s
9084}
9085
9086type DescribeTypeInput struct {
9087	_ struct{} `type:"structure"`
9088
9089	// The Amazon Resource Name (ARN) of the type.
9090	//
9091	// Conditional: You must specify either TypeName and Type, or Arn.
9092	Arn *string `type:"string"`
9093
9094	// The kind of type.
9095	//
9096	// Currently the only valid value is RESOURCE.
9097	//
9098	// Conditional: You must specify either TypeName and Type, or Arn.
9099	Type *string `type:"string" enum:"RegistryType"`
9100
9101	// The name of the type.
9102	//
9103	// Conditional: You must specify either TypeName and Type, or Arn.
9104	TypeName *string `min:"10" type:"string"`
9105
9106	// The ID of a specific version of the type. The version ID is the value at
9107	// the end of the Amazon Resource Name (ARN) assigned to the type version when
9108	// it is registered.
9109	//
9110	// If you specify a VersionId, DescribeType returns information about that specific
9111	// type version. Otherwise, it returns information about the default type version.
9112	VersionId *string `min:"1" type:"string"`
9113}
9114
9115// String returns the string representation
9116func (s DescribeTypeInput) String() string {
9117	return awsutil.Prettify(s)
9118}
9119
9120// GoString returns the string representation
9121func (s DescribeTypeInput) GoString() string {
9122	return s.String()
9123}
9124
9125// Validate inspects the fields of the type to determine if they are valid.
9126func (s *DescribeTypeInput) Validate() error {
9127	invalidParams := request.ErrInvalidParams{Context: "DescribeTypeInput"}
9128	if s.TypeName != nil && len(*s.TypeName) < 10 {
9129		invalidParams.Add(request.NewErrParamMinLen("TypeName", 10))
9130	}
9131	if s.VersionId != nil && len(*s.VersionId) < 1 {
9132		invalidParams.Add(request.NewErrParamMinLen("VersionId", 1))
9133	}
9134
9135	if invalidParams.Len() > 0 {
9136		return invalidParams
9137	}
9138	return nil
9139}
9140
9141// SetArn sets the Arn field's value.
9142func (s *DescribeTypeInput) SetArn(v string) *DescribeTypeInput {
9143	s.Arn = &v
9144	return s
9145}
9146
9147// SetType sets the Type field's value.
9148func (s *DescribeTypeInput) SetType(v string) *DescribeTypeInput {
9149	s.Type = &v
9150	return s
9151}
9152
9153// SetTypeName sets the TypeName field's value.
9154func (s *DescribeTypeInput) SetTypeName(v string) *DescribeTypeInput {
9155	s.TypeName = &v
9156	return s
9157}
9158
9159// SetVersionId sets the VersionId field's value.
9160func (s *DescribeTypeInput) SetVersionId(v string) *DescribeTypeInput {
9161	s.VersionId = &v
9162	return s
9163}
9164
9165type DescribeTypeOutput struct {
9166	_ struct{} `type:"structure"`
9167
9168	// The Amazon Resource Name (ARN) of the type.
9169	Arn *string `type:"string"`
9170
9171	// The ID of the default version of the type. The default version is used when
9172	// the type version is not specified.
9173	//
9174	// To set the default version of a type, use SetTypeDefaultVersion .
9175	DefaultVersionId *string `min:"1" type:"string"`
9176
9177	// The deprecation status of the type.
9178	//
9179	// Valid values include:
9180	//
9181	//    * LIVE: The type is registered and can be used in CloudFormation operations,
9182	//    dependent on its provisioning behavior and visibility scope.
9183	//
9184	//    * DEPRECATED: The type has been deregistered and can no longer be used
9185	//    in CloudFormation operations.
9186	DeprecatedStatus *string `type:"string" enum:"DeprecatedStatus"`
9187
9188	// The description of the registered type.
9189	Description *string `min:"1" type:"string"`
9190
9191	// The URL of a page providing detailed documentation for this type.
9192	DocumentationUrl *string `type:"string"`
9193
9194	// The Amazon Resource Name (ARN) of the IAM execution role used to register
9195	// the type. If your resource type calls AWS APIs in any of its handlers, you
9196	// must create an IAM execution role (https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles.html)
9197	// that includes the necessary permissions to call those AWS APIs, and provision
9198	// that execution role in your account. CloudFormation then assumes that execution
9199	// role to provide your resource type with the appropriate credentials.
9200	ExecutionRoleArn *string `min:"1" type:"string"`
9201
9202	// Whether the specified type version is set as the default version.
9203	IsDefaultVersion *bool `type:"boolean"`
9204
9205	// When the specified type version was registered.
9206	LastUpdated *time.Time `type:"timestamp"`
9207
9208	// Contains logging configuration information for a type.
9209	LoggingConfig *LoggingConfig `type:"structure"`
9210
9211	// The provisioning behavior of the type. AWS CloudFormation determines the
9212	// provisioning type during registration, based on the types of handlers in
9213	// the schema handler package submitted.
9214	//
9215	// Valid values include:
9216	//
9217	//    * FULLY_MUTABLE: The type includes an update handler to process updates
9218	//    to the type during stack update operations.
9219	//
9220	//    * IMMUTABLE: The type does not include an update handler, so the type
9221	//    cannot be updated and must instead be replaced during stack update operations.
9222	//
9223	//    * NON_PROVISIONABLE: The type does not include all of the following handlers,
9224	//    and therefore cannot actually be provisioned. create read delete
9225	ProvisioningType *string `type:"string" enum:"ProvisioningType"`
9226
9227	// The schema that defines the type.
9228	//
9229	// For more information on type schemas, see Resource Provider Schema (https://docs.aws.amazon.com/cloudformation-cli/latest/userguide/resource-type-schema.html)
9230	// in the CloudFormation CLI User Guide.
9231	Schema *string `min:"1" type:"string"`
9232
9233	// The URL of the source code for the type.
9234	SourceUrl *string `type:"string"`
9235
9236	// When the specified type version was registered.
9237	TimeCreated *time.Time `type:"timestamp"`
9238
9239	// The kind of type.
9240	//
9241	// Currently the only valid value is RESOURCE.
9242	Type *string `type:"string" enum:"RegistryType"`
9243
9244	// The name of the registered type.
9245	TypeName *string `min:"10" type:"string"`
9246
9247	// The scope at which the type is visible and usable in CloudFormation operations.
9248	//
9249	// Valid values include:
9250	//
9251	//    * PRIVATE: The type is only visible and usable within the account in which
9252	//    it is registered. Currently, AWS CloudFormation marks any types you register
9253	//    as PRIVATE.
9254	//
9255	//    * PUBLIC: The type is publically visible and usable within any Amazon
9256	//    account.
9257	Visibility *string `type:"string" enum:"Visibility"`
9258}
9259
9260// String returns the string representation
9261func (s DescribeTypeOutput) String() string {
9262	return awsutil.Prettify(s)
9263}
9264
9265// GoString returns the string representation
9266func (s DescribeTypeOutput) GoString() string {
9267	return s.String()
9268}
9269
9270// SetArn sets the Arn field's value.
9271func (s *DescribeTypeOutput) SetArn(v string) *DescribeTypeOutput {
9272	s.Arn = &v
9273	return s
9274}
9275
9276// SetDefaultVersionId sets the DefaultVersionId field's value.
9277func (s *DescribeTypeOutput) SetDefaultVersionId(v string) *DescribeTypeOutput {
9278	s.DefaultVersionId = &v
9279	return s
9280}
9281
9282// SetDeprecatedStatus sets the DeprecatedStatus field's value.
9283func (s *DescribeTypeOutput) SetDeprecatedStatus(v string) *DescribeTypeOutput {
9284	s.DeprecatedStatus = &v
9285	return s
9286}
9287
9288// SetDescription sets the Description field's value.
9289func (s *DescribeTypeOutput) SetDescription(v string) *DescribeTypeOutput {
9290	s.Description = &v
9291	return s
9292}
9293
9294// SetDocumentationUrl sets the DocumentationUrl field's value.
9295func (s *DescribeTypeOutput) SetDocumentationUrl(v string) *DescribeTypeOutput {
9296	s.DocumentationUrl = &v
9297	return s
9298}
9299
9300// SetExecutionRoleArn sets the ExecutionRoleArn field's value.
9301func (s *DescribeTypeOutput) SetExecutionRoleArn(v string) *DescribeTypeOutput {
9302	s.ExecutionRoleArn = &v
9303	return s
9304}
9305
9306// SetIsDefaultVersion sets the IsDefaultVersion field's value.
9307func (s *DescribeTypeOutput) SetIsDefaultVersion(v bool) *DescribeTypeOutput {
9308	s.IsDefaultVersion = &v
9309	return s
9310}
9311
9312// SetLastUpdated sets the LastUpdated field's value.
9313func (s *DescribeTypeOutput) SetLastUpdated(v time.Time) *DescribeTypeOutput {
9314	s.LastUpdated = &v
9315	return s
9316}
9317
9318// SetLoggingConfig sets the LoggingConfig field's value.
9319func (s *DescribeTypeOutput) SetLoggingConfig(v *LoggingConfig) *DescribeTypeOutput {
9320	s.LoggingConfig = v
9321	return s
9322}
9323
9324// SetProvisioningType sets the ProvisioningType field's value.
9325func (s *DescribeTypeOutput) SetProvisioningType(v string) *DescribeTypeOutput {
9326	s.ProvisioningType = &v
9327	return s
9328}
9329
9330// SetSchema sets the Schema field's value.
9331func (s *DescribeTypeOutput) SetSchema(v string) *DescribeTypeOutput {
9332	s.Schema = &v
9333	return s
9334}
9335
9336// SetSourceUrl sets the SourceUrl field's value.
9337func (s *DescribeTypeOutput) SetSourceUrl(v string) *DescribeTypeOutput {
9338	s.SourceUrl = &v
9339	return s
9340}
9341
9342// SetTimeCreated sets the TimeCreated field's value.
9343func (s *DescribeTypeOutput) SetTimeCreated(v time.Time) *DescribeTypeOutput {
9344	s.TimeCreated = &v
9345	return s
9346}
9347
9348// SetType sets the Type field's value.
9349func (s *DescribeTypeOutput) SetType(v string) *DescribeTypeOutput {
9350	s.Type = &v
9351	return s
9352}
9353
9354// SetTypeName sets the TypeName field's value.
9355func (s *DescribeTypeOutput) SetTypeName(v string) *DescribeTypeOutput {
9356	s.TypeName = &v
9357	return s
9358}
9359
9360// SetVisibility sets the Visibility field's value.
9361func (s *DescribeTypeOutput) SetVisibility(v string) *DescribeTypeOutput {
9362	s.Visibility = &v
9363	return s
9364}
9365
9366type DescribeTypeRegistrationInput struct {
9367	_ struct{} `type:"structure"`
9368
9369	// The identifier for this registration request.
9370	//
9371	// This registration token is generated by CloudFormation when you initiate
9372	// a registration request using RegisterType .
9373	//
9374	// RegistrationToken is a required field
9375	RegistrationToken *string `min:"1" type:"string" required:"true"`
9376}
9377
9378// String returns the string representation
9379func (s DescribeTypeRegistrationInput) String() string {
9380	return awsutil.Prettify(s)
9381}
9382
9383// GoString returns the string representation
9384func (s DescribeTypeRegistrationInput) GoString() string {
9385	return s.String()
9386}
9387
9388// Validate inspects the fields of the type to determine if they are valid.
9389func (s *DescribeTypeRegistrationInput) Validate() error {
9390	invalidParams := request.ErrInvalidParams{Context: "DescribeTypeRegistrationInput"}
9391	if s.RegistrationToken == nil {
9392		invalidParams.Add(request.NewErrParamRequired("RegistrationToken"))
9393	}
9394	if s.RegistrationToken != nil && len(*s.RegistrationToken) < 1 {
9395		invalidParams.Add(request.NewErrParamMinLen("RegistrationToken", 1))
9396	}
9397
9398	if invalidParams.Len() > 0 {
9399		return invalidParams
9400	}
9401	return nil
9402}
9403
9404// SetRegistrationToken sets the RegistrationToken field's value.
9405func (s *DescribeTypeRegistrationInput) SetRegistrationToken(v string) *DescribeTypeRegistrationInput {
9406	s.RegistrationToken = &v
9407	return s
9408}
9409
9410type DescribeTypeRegistrationOutput struct {
9411	_ struct{} `type:"structure"`
9412
9413	// The description of the type registration request.
9414	Description *string `min:"1" type:"string"`
9415
9416	// The current status of the type registration request.
9417	ProgressStatus *string `type:"string" enum:"RegistrationStatus"`
9418
9419	// The Amazon Resource Name (ARN) of the type being registered.
9420	//
9421	// For registration requests with a ProgressStatus of other than COMPLETE, this
9422	// will be null.
9423	TypeArn *string `type:"string"`
9424
9425	// The Amazon Resource Name (ARN) of this specific version of the type being
9426	// registered.
9427	//
9428	// For registration requests with a ProgressStatus of other than COMPLETE, this
9429	// will be null.
9430	TypeVersionArn *string `type:"string"`
9431}
9432
9433// String returns the string representation
9434func (s DescribeTypeRegistrationOutput) String() string {
9435	return awsutil.Prettify(s)
9436}
9437
9438// GoString returns the string representation
9439func (s DescribeTypeRegistrationOutput) GoString() string {
9440	return s.String()
9441}
9442
9443// SetDescription sets the Description field's value.
9444func (s *DescribeTypeRegistrationOutput) SetDescription(v string) *DescribeTypeRegistrationOutput {
9445	s.Description = &v
9446	return s
9447}
9448
9449// SetProgressStatus sets the ProgressStatus field's value.
9450func (s *DescribeTypeRegistrationOutput) SetProgressStatus(v string) *DescribeTypeRegistrationOutput {
9451	s.ProgressStatus = &v
9452	return s
9453}
9454
9455// SetTypeArn sets the TypeArn field's value.
9456func (s *DescribeTypeRegistrationOutput) SetTypeArn(v string) *DescribeTypeRegistrationOutput {
9457	s.TypeArn = &v
9458	return s
9459}
9460
9461// SetTypeVersionArn sets the TypeVersionArn field's value.
9462func (s *DescribeTypeRegistrationOutput) SetTypeVersionArn(v string) *DescribeTypeRegistrationOutput {
9463	s.TypeVersionArn = &v
9464	return s
9465}
9466
9467type DetectStackDriftInput struct {
9468	_ struct{} `type:"structure"`
9469
9470	// The logical names of any resources you want to use as filters.
9471	LogicalResourceIds []*string `min:"1" type:"list"`
9472
9473	// The name of the stack for which you want to detect drift.
9474	//
9475	// StackName is a required field
9476	StackName *string `min:"1" type:"string" required:"true"`
9477}
9478
9479// String returns the string representation
9480func (s DetectStackDriftInput) String() string {
9481	return awsutil.Prettify(s)
9482}
9483
9484// GoString returns the string representation
9485func (s DetectStackDriftInput) GoString() string {
9486	return s.String()
9487}
9488
9489// Validate inspects the fields of the type to determine if they are valid.
9490func (s *DetectStackDriftInput) Validate() error {
9491	invalidParams := request.ErrInvalidParams{Context: "DetectStackDriftInput"}
9492	if s.LogicalResourceIds != nil && len(s.LogicalResourceIds) < 1 {
9493		invalidParams.Add(request.NewErrParamMinLen("LogicalResourceIds", 1))
9494	}
9495	if s.StackName == nil {
9496		invalidParams.Add(request.NewErrParamRequired("StackName"))
9497	}
9498	if s.StackName != nil && len(*s.StackName) < 1 {
9499		invalidParams.Add(request.NewErrParamMinLen("StackName", 1))
9500	}
9501
9502	if invalidParams.Len() > 0 {
9503		return invalidParams
9504	}
9505	return nil
9506}
9507
9508// SetLogicalResourceIds sets the LogicalResourceIds field's value.
9509func (s *DetectStackDriftInput) SetLogicalResourceIds(v []*string) *DetectStackDriftInput {
9510	s.LogicalResourceIds = v
9511	return s
9512}
9513
9514// SetStackName sets the StackName field's value.
9515func (s *DetectStackDriftInput) SetStackName(v string) *DetectStackDriftInput {
9516	s.StackName = &v
9517	return s
9518}
9519
9520type DetectStackDriftOutput struct {
9521	_ struct{} `type:"structure"`
9522
9523	// The ID of the drift detection results of this operation.
9524	//
9525	// AWS CloudFormation generates new results, with a new drift detection ID,
9526	// each time this operation is run. However, the number of drift results AWS
9527	// CloudFormation retains for any given stack, and for how long, may vary.
9528	//
9529	// StackDriftDetectionId is a required field
9530	StackDriftDetectionId *string `min:"1" type:"string" required:"true"`
9531}
9532
9533// String returns the string representation
9534func (s DetectStackDriftOutput) String() string {
9535	return awsutil.Prettify(s)
9536}
9537
9538// GoString returns the string representation
9539func (s DetectStackDriftOutput) GoString() string {
9540	return s.String()
9541}
9542
9543// SetStackDriftDetectionId sets the StackDriftDetectionId field's value.
9544func (s *DetectStackDriftOutput) SetStackDriftDetectionId(v string) *DetectStackDriftOutput {
9545	s.StackDriftDetectionId = &v
9546	return s
9547}
9548
9549type DetectStackResourceDriftInput struct {
9550	_ struct{} `type:"structure"`
9551
9552	// The logical name of the resource for which to return drift information.
9553	//
9554	// LogicalResourceId is a required field
9555	LogicalResourceId *string `type:"string" required:"true"`
9556
9557	// The name of the stack to which the resource belongs.
9558	//
9559	// StackName is a required field
9560	StackName *string `min:"1" type:"string" required:"true"`
9561}
9562
9563// String returns the string representation
9564func (s DetectStackResourceDriftInput) String() string {
9565	return awsutil.Prettify(s)
9566}
9567
9568// GoString returns the string representation
9569func (s DetectStackResourceDriftInput) GoString() string {
9570	return s.String()
9571}
9572
9573// Validate inspects the fields of the type to determine if they are valid.
9574func (s *DetectStackResourceDriftInput) Validate() error {
9575	invalidParams := request.ErrInvalidParams{Context: "DetectStackResourceDriftInput"}
9576	if s.LogicalResourceId == nil {
9577		invalidParams.Add(request.NewErrParamRequired("LogicalResourceId"))
9578	}
9579	if s.StackName == nil {
9580		invalidParams.Add(request.NewErrParamRequired("StackName"))
9581	}
9582	if s.StackName != nil && len(*s.StackName) < 1 {
9583		invalidParams.Add(request.NewErrParamMinLen("StackName", 1))
9584	}
9585
9586	if invalidParams.Len() > 0 {
9587		return invalidParams
9588	}
9589	return nil
9590}
9591
9592// SetLogicalResourceId sets the LogicalResourceId field's value.
9593func (s *DetectStackResourceDriftInput) SetLogicalResourceId(v string) *DetectStackResourceDriftInput {
9594	s.LogicalResourceId = &v
9595	return s
9596}
9597
9598// SetStackName sets the StackName field's value.
9599func (s *DetectStackResourceDriftInput) SetStackName(v string) *DetectStackResourceDriftInput {
9600	s.StackName = &v
9601	return s
9602}
9603
9604type DetectStackResourceDriftOutput struct {
9605	_ struct{} `type:"structure"`
9606
9607	// Information about whether the resource's actual configuration has drifted
9608	// from its expected template configuration, including actual and expected property
9609	// values and any differences detected.
9610	//
9611	// StackResourceDrift is a required field
9612	StackResourceDrift *StackResourceDrift `type:"structure" required:"true"`
9613}
9614
9615// String returns the string representation
9616func (s DetectStackResourceDriftOutput) String() string {
9617	return awsutil.Prettify(s)
9618}
9619
9620// GoString returns the string representation
9621func (s DetectStackResourceDriftOutput) GoString() string {
9622	return s.String()
9623}
9624
9625// SetStackResourceDrift sets the StackResourceDrift field's value.
9626func (s *DetectStackResourceDriftOutput) SetStackResourceDrift(v *StackResourceDrift) *DetectStackResourceDriftOutput {
9627	s.StackResourceDrift = v
9628	return s
9629}
9630
9631type DetectStackSetDriftInput struct {
9632	_ struct{} `type:"structure"`
9633
9634	// The ID of the stack set operation.
9635	OperationId *string `min:"1" type:"string" idempotencyToken:"true"`
9636
9637	// The user-specified preferences for how AWS CloudFormation performs a stack
9638	// set operation.
9639	//
9640	// For more information on maximum concurrent accounts and failure tolerance,
9641	// see Stack set operation options (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/stacksets-concepts.html#stackset-ops-options).
9642	OperationPreferences *StackSetOperationPreferences `type:"structure"`
9643
9644	// The name of the stack set on which to perform the drift detection operation.
9645	//
9646	// StackSetName is a required field
9647	StackSetName *string `type:"string" required:"true"`
9648}
9649
9650// String returns the string representation
9651func (s DetectStackSetDriftInput) String() string {
9652	return awsutil.Prettify(s)
9653}
9654
9655// GoString returns the string representation
9656func (s DetectStackSetDriftInput) GoString() string {
9657	return s.String()
9658}
9659
9660// Validate inspects the fields of the type to determine if they are valid.
9661func (s *DetectStackSetDriftInput) Validate() error {
9662	invalidParams := request.ErrInvalidParams{Context: "DetectStackSetDriftInput"}
9663	if s.OperationId != nil && len(*s.OperationId) < 1 {
9664		invalidParams.Add(request.NewErrParamMinLen("OperationId", 1))
9665	}
9666	if s.StackSetName == nil {
9667		invalidParams.Add(request.NewErrParamRequired("StackSetName"))
9668	}
9669	if s.OperationPreferences != nil {
9670		if err := s.OperationPreferences.Validate(); err != nil {
9671			invalidParams.AddNested("OperationPreferences", err.(request.ErrInvalidParams))
9672		}
9673	}
9674
9675	if invalidParams.Len() > 0 {
9676		return invalidParams
9677	}
9678	return nil
9679}
9680
9681// SetOperationId sets the OperationId field's value.
9682func (s *DetectStackSetDriftInput) SetOperationId(v string) *DetectStackSetDriftInput {
9683	s.OperationId = &v
9684	return s
9685}
9686
9687// SetOperationPreferences sets the OperationPreferences field's value.
9688func (s *DetectStackSetDriftInput) SetOperationPreferences(v *StackSetOperationPreferences) *DetectStackSetDriftInput {
9689	s.OperationPreferences = v
9690	return s
9691}
9692
9693// SetStackSetName sets the StackSetName field's value.
9694func (s *DetectStackSetDriftInput) SetStackSetName(v string) *DetectStackSetDriftInput {
9695	s.StackSetName = &v
9696	return s
9697}
9698
9699type DetectStackSetDriftOutput struct {
9700	_ struct{} `type:"structure"`
9701
9702	// The ID of the drift detection stack set operation.
9703	//
9704	// you can use this operation id with DescribeStackSetOperation to monitor the
9705	// progress of the drift detection operation.
9706	OperationId *string `min:"1" type:"string"`
9707}
9708
9709// String returns the string representation
9710func (s DetectStackSetDriftOutput) String() string {
9711	return awsutil.Prettify(s)
9712}
9713
9714// GoString returns the string representation
9715func (s DetectStackSetDriftOutput) GoString() string {
9716	return s.String()
9717}
9718
9719// SetOperationId sets the OperationId field's value.
9720func (s *DetectStackSetDriftOutput) SetOperationId(v string) *DetectStackSetDriftOutput {
9721	s.OperationId = &v
9722	return s
9723}
9724
9725// The input for an EstimateTemplateCost action.
9726type EstimateTemplateCostInput struct {
9727	_ struct{} `type:"structure"`
9728
9729	// A list of Parameter structures that specify input parameters.
9730	Parameters []*Parameter `type:"list"`
9731
9732	// Structure containing the template body with a minimum length of 1 byte and
9733	// a maximum length of 51,200 bytes. (For more information, go to Template Anatomy
9734	// (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/template-anatomy.html)
9735	// in the AWS CloudFormation User Guide.)
9736	//
9737	// Conditional: You must pass TemplateBody or TemplateURL. If both are passed,
9738	// only TemplateBody is used.
9739	TemplateBody *string `min:"1" type:"string"`
9740
9741	// Location of file containing the template body. The URL must point to a template
9742	// that is located in an Amazon S3 bucket. For more information, go to Template
9743	// Anatomy (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/template-anatomy.html)
9744	// in the AWS CloudFormation User Guide.
9745	//
9746	// Conditional: You must pass TemplateURL or TemplateBody. If both are passed,
9747	// only TemplateBody is used.
9748	TemplateURL *string `min:"1" type:"string"`
9749}
9750
9751// String returns the string representation
9752func (s EstimateTemplateCostInput) String() string {
9753	return awsutil.Prettify(s)
9754}
9755
9756// GoString returns the string representation
9757func (s EstimateTemplateCostInput) GoString() string {
9758	return s.String()
9759}
9760
9761// Validate inspects the fields of the type to determine if they are valid.
9762func (s *EstimateTemplateCostInput) Validate() error {
9763	invalidParams := request.ErrInvalidParams{Context: "EstimateTemplateCostInput"}
9764	if s.TemplateBody != nil && len(*s.TemplateBody) < 1 {
9765		invalidParams.Add(request.NewErrParamMinLen("TemplateBody", 1))
9766	}
9767	if s.TemplateURL != nil && len(*s.TemplateURL) < 1 {
9768		invalidParams.Add(request.NewErrParamMinLen("TemplateURL", 1))
9769	}
9770
9771	if invalidParams.Len() > 0 {
9772		return invalidParams
9773	}
9774	return nil
9775}
9776
9777// SetParameters sets the Parameters field's value.
9778func (s *EstimateTemplateCostInput) SetParameters(v []*Parameter) *EstimateTemplateCostInput {
9779	s.Parameters = v
9780	return s
9781}
9782
9783// SetTemplateBody sets the TemplateBody field's value.
9784func (s *EstimateTemplateCostInput) SetTemplateBody(v string) *EstimateTemplateCostInput {
9785	s.TemplateBody = &v
9786	return s
9787}
9788
9789// SetTemplateURL sets the TemplateURL field's value.
9790func (s *EstimateTemplateCostInput) SetTemplateURL(v string) *EstimateTemplateCostInput {
9791	s.TemplateURL = &v
9792	return s
9793}
9794
9795// The output for a EstimateTemplateCost action.
9796type EstimateTemplateCostOutput struct {
9797	_ struct{} `type:"structure"`
9798
9799	// An AWS Simple Monthly Calculator URL with a query string that describes the
9800	// resources required to run the template.
9801	Url *string `type:"string"`
9802}
9803
9804// String returns the string representation
9805func (s EstimateTemplateCostOutput) String() string {
9806	return awsutil.Prettify(s)
9807}
9808
9809// GoString returns the string representation
9810func (s EstimateTemplateCostOutput) GoString() string {
9811	return s.String()
9812}
9813
9814// SetUrl sets the Url field's value.
9815func (s *EstimateTemplateCostOutput) SetUrl(v string) *EstimateTemplateCostOutput {
9816	s.Url = &v
9817	return s
9818}
9819
9820// The input for the ExecuteChangeSet action.
9821type ExecuteChangeSetInput struct {
9822	_ struct{} `type:"structure"`
9823
9824	// The name or ARN of the change set that you want use to update the specified
9825	// stack.
9826	//
9827	// ChangeSetName is a required field
9828	ChangeSetName *string `min:"1" type:"string" required:"true"`
9829
9830	// A unique identifier for this ExecuteChangeSet request. Specify this token
9831	// if you plan to retry requests so that AWS CloudFormation knows that you're
9832	// not attempting to execute a change set to update a stack with the same name.
9833	// You might retry ExecuteChangeSet requests to ensure that AWS CloudFormation
9834	// successfully received them.
9835	ClientRequestToken *string `min:"1" type:"string"`
9836
9837	// If you specified the name of a change set, specify the stack name or ID (ARN)
9838	// that is associated with the change set you want to execute.
9839	StackName *string `min:"1" type:"string"`
9840}
9841
9842// String returns the string representation
9843func (s ExecuteChangeSetInput) String() string {
9844	return awsutil.Prettify(s)
9845}
9846
9847// GoString returns the string representation
9848func (s ExecuteChangeSetInput) GoString() string {
9849	return s.String()
9850}
9851
9852// Validate inspects the fields of the type to determine if they are valid.
9853func (s *ExecuteChangeSetInput) Validate() error {
9854	invalidParams := request.ErrInvalidParams{Context: "ExecuteChangeSetInput"}
9855	if s.ChangeSetName == nil {
9856		invalidParams.Add(request.NewErrParamRequired("ChangeSetName"))
9857	}
9858	if s.ChangeSetName != nil && len(*s.ChangeSetName) < 1 {
9859		invalidParams.Add(request.NewErrParamMinLen("ChangeSetName", 1))
9860	}
9861	if s.ClientRequestToken != nil && len(*s.ClientRequestToken) < 1 {
9862		invalidParams.Add(request.NewErrParamMinLen("ClientRequestToken", 1))
9863	}
9864	if s.StackName != nil && len(*s.StackName) < 1 {
9865		invalidParams.Add(request.NewErrParamMinLen("StackName", 1))
9866	}
9867
9868	if invalidParams.Len() > 0 {
9869		return invalidParams
9870	}
9871	return nil
9872}
9873
9874// SetChangeSetName sets the ChangeSetName field's value.
9875func (s *ExecuteChangeSetInput) SetChangeSetName(v string) *ExecuteChangeSetInput {
9876	s.ChangeSetName = &v
9877	return s
9878}
9879
9880// SetClientRequestToken sets the ClientRequestToken field's value.
9881func (s *ExecuteChangeSetInput) SetClientRequestToken(v string) *ExecuteChangeSetInput {
9882	s.ClientRequestToken = &v
9883	return s
9884}
9885
9886// SetStackName sets the StackName field's value.
9887func (s *ExecuteChangeSetInput) SetStackName(v string) *ExecuteChangeSetInput {
9888	s.StackName = &v
9889	return s
9890}
9891
9892// The output for the ExecuteChangeSet action.
9893type ExecuteChangeSetOutput struct {
9894	_ struct{} `type:"structure"`
9895}
9896
9897// String returns the string representation
9898func (s ExecuteChangeSetOutput) String() string {
9899	return awsutil.Prettify(s)
9900}
9901
9902// GoString returns the string representation
9903func (s ExecuteChangeSetOutput) GoString() string {
9904	return s.String()
9905}
9906
9907// The Export structure describes the exported output values for a stack.
9908type Export struct {
9909	_ struct{} `type:"structure"`
9910
9911	// The stack that contains the exported output name and value.
9912	ExportingStackId *string `type:"string"`
9913
9914	// The name of exported output value. Use this name and the Fn::ImportValue
9915	// function to import the associated value into other stacks. The name is defined
9916	// in the Export field in the associated stack's Outputs section.
9917	Name *string `type:"string"`
9918
9919	// The value of the exported output, such as a resource physical ID. This value
9920	// is defined in the Export field in the associated stack's Outputs section.
9921	Value *string `type:"string"`
9922}
9923
9924// String returns the string representation
9925func (s Export) String() string {
9926	return awsutil.Prettify(s)
9927}
9928
9929// GoString returns the string representation
9930func (s Export) GoString() string {
9931	return s.String()
9932}
9933
9934// SetExportingStackId sets the ExportingStackId field's value.
9935func (s *Export) SetExportingStackId(v string) *Export {
9936	s.ExportingStackId = &v
9937	return s
9938}
9939
9940// SetName sets the Name field's value.
9941func (s *Export) SetName(v string) *Export {
9942	s.Name = &v
9943	return s
9944}
9945
9946// SetValue sets the Value field's value.
9947func (s *Export) SetValue(v string) *Export {
9948	s.Value = &v
9949	return s
9950}
9951
9952// The input for the GetStackPolicy action.
9953type GetStackPolicyInput struct {
9954	_ struct{} `type:"structure"`
9955
9956	// The name or unique stack ID that is associated with the stack whose policy
9957	// you want to get.
9958	//
9959	// StackName is a required field
9960	StackName *string `type:"string" required:"true"`
9961}
9962
9963// String returns the string representation
9964func (s GetStackPolicyInput) String() string {
9965	return awsutil.Prettify(s)
9966}
9967
9968// GoString returns the string representation
9969func (s GetStackPolicyInput) GoString() string {
9970	return s.String()
9971}
9972
9973// Validate inspects the fields of the type to determine if they are valid.
9974func (s *GetStackPolicyInput) Validate() error {
9975	invalidParams := request.ErrInvalidParams{Context: "GetStackPolicyInput"}
9976	if s.StackName == nil {
9977		invalidParams.Add(request.NewErrParamRequired("StackName"))
9978	}
9979
9980	if invalidParams.Len() > 0 {
9981		return invalidParams
9982	}
9983	return nil
9984}
9985
9986// SetStackName sets the StackName field's value.
9987func (s *GetStackPolicyInput) SetStackName(v string) *GetStackPolicyInput {
9988	s.StackName = &v
9989	return s
9990}
9991
9992// The output for the GetStackPolicy action.
9993type GetStackPolicyOutput struct {
9994	_ struct{} `type:"structure"`
9995
9996	// Structure containing the stack policy body. (For more information, go to
9997	// Prevent Updates to Stack Resources (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/protect-stack-resources.html)
9998	// in the AWS CloudFormation User Guide.)
9999	StackPolicyBody *string `min:"1" type:"string"`
10000}
10001
10002// String returns the string representation
10003func (s GetStackPolicyOutput) String() string {
10004	return awsutil.Prettify(s)
10005}
10006
10007// GoString returns the string representation
10008func (s GetStackPolicyOutput) GoString() string {
10009	return s.String()
10010}
10011
10012// SetStackPolicyBody sets the StackPolicyBody field's value.
10013func (s *GetStackPolicyOutput) SetStackPolicyBody(v string) *GetStackPolicyOutput {
10014	s.StackPolicyBody = &v
10015	return s
10016}
10017
10018// The input for a GetTemplate action.
10019type GetTemplateInput struct {
10020	_ struct{} `type:"structure"`
10021
10022	// The name or Amazon Resource Name (ARN) of a change set for which AWS CloudFormation
10023	// returns the associated template. If you specify a name, you must also specify
10024	// the StackName.
10025	ChangeSetName *string `min:"1" type:"string"`
10026
10027	// The name or the unique stack ID that is associated with the stack, which
10028	// are not always interchangeable:
10029	//
10030	//    * Running stacks: You can specify either the stack's name or its unique
10031	//    stack ID.
10032	//
10033	//    * Deleted stacks: You must specify the unique stack ID.
10034	//
10035	// Default: There is no default value.
10036	StackName *string `type:"string"`
10037
10038	// For templates that include transforms, the stage of the template that AWS
10039	// CloudFormation returns. To get the user-submitted template, specify Original.
10040	// To get the template after AWS CloudFormation has processed all transforms,
10041	// specify Processed.
10042	//
10043	// If the template doesn't include transforms, Original and Processed return
10044	// the same template. By default, AWS CloudFormation specifies Original.
10045	TemplateStage *string `type:"string" enum:"TemplateStage"`
10046}
10047
10048// String returns the string representation
10049func (s GetTemplateInput) String() string {
10050	return awsutil.Prettify(s)
10051}
10052
10053// GoString returns the string representation
10054func (s GetTemplateInput) GoString() string {
10055	return s.String()
10056}
10057
10058// Validate inspects the fields of the type to determine if they are valid.
10059func (s *GetTemplateInput) Validate() error {
10060	invalidParams := request.ErrInvalidParams{Context: "GetTemplateInput"}
10061	if s.ChangeSetName != nil && len(*s.ChangeSetName) < 1 {
10062		invalidParams.Add(request.NewErrParamMinLen("ChangeSetName", 1))
10063	}
10064
10065	if invalidParams.Len() > 0 {
10066		return invalidParams
10067	}
10068	return nil
10069}
10070
10071// SetChangeSetName sets the ChangeSetName field's value.
10072func (s *GetTemplateInput) SetChangeSetName(v string) *GetTemplateInput {
10073	s.ChangeSetName = &v
10074	return s
10075}
10076
10077// SetStackName sets the StackName field's value.
10078func (s *GetTemplateInput) SetStackName(v string) *GetTemplateInput {
10079	s.StackName = &v
10080	return s
10081}
10082
10083// SetTemplateStage sets the TemplateStage field's value.
10084func (s *GetTemplateInput) SetTemplateStage(v string) *GetTemplateInput {
10085	s.TemplateStage = &v
10086	return s
10087}
10088
10089// The output for GetTemplate action.
10090type GetTemplateOutput struct {
10091	_ struct{} `type:"structure"`
10092
10093	// The stage of the template that you can retrieve. For stacks, the Original
10094	// and Processed templates are always available. For change sets, the Original
10095	// template is always available. After AWS CloudFormation finishes creating
10096	// the change set, the Processed template becomes available.
10097	StagesAvailable []*string `type:"list"`
10098
10099	// Structure containing the template body. (For more information, go to Template
10100	// Anatomy (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/template-anatomy.html)
10101	// in the AWS CloudFormation User Guide.)
10102	//
10103	// AWS CloudFormation returns the same template that was used when the stack
10104	// was created.
10105	TemplateBody *string `min:"1" type:"string"`
10106}
10107
10108// String returns the string representation
10109func (s GetTemplateOutput) String() string {
10110	return awsutil.Prettify(s)
10111}
10112
10113// GoString returns the string representation
10114func (s GetTemplateOutput) GoString() string {
10115	return s.String()
10116}
10117
10118// SetStagesAvailable sets the StagesAvailable field's value.
10119func (s *GetTemplateOutput) SetStagesAvailable(v []*string) *GetTemplateOutput {
10120	s.StagesAvailable = v
10121	return s
10122}
10123
10124// SetTemplateBody sets the TemplateBody field's value.
10125func (s *GetTemplateOutput) SetTemplateBody(v string) *GetTemplateOutput {
10126	s.TemplateBody = &v
10127	return s
10128}
10129
10130// The input for the GetTemplateSummary action.
10131type GetTemplateSummaryInput struct {
10132	_ struct{} `type:"structure"`
10133
10134	// The name or the stack ID that is associated with the stack, which are not
10135	// always interchangeable. For running stacks, you can specify either the stack's
10136	// name or its unique stack ID. For deleted stack, you must specify the unique
10137	// stack ID.
10138	//
10139	// Conditional: You must specify only one of the following parameters: StackName,
10140	// StackSetName, TemplateBody, or TemplateURL.
10141	StackName *string `min:"1" type:"string"`
10142
10143	// The name or unique ID of the stack set from which the stack was created.
10144	//
10145	// Conditional: You must specify only one of the following parameters: StackName,
10146	// StackSetName, TemplateBody, or TemplateURL.
10147	StackSetName *string `type:"string"`
10148
10149	// Structure containing the template body with a minimum length of 1 byte and
10150	// a maximum length of 51,200 bytes. For more information about templates, see
10151	// Template Anatomy (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/template-anatomy.html)
10152	// in the AWS CloudFormation User Guide.
10153	//
10154	// Conditional: You must specify only one of the following parameters: StackName,
10155	// StackSetName, TemplateBody, or TemplateURL.
10156	TemplateBody *string `min:"1" type:"string"`
10157
10158	// Location of file containing the template body. The URL must point to a template
10159	// (max size: 460,800 bytes) that is located in an Amazon S3 bucket. For more
10160	// information about templates, see Template Anatomy (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/template-anatomy.html)
10161	// in the AWS CloudFormation User Guide.
10162	//
10163	// Conditional: You must specify only one of the following parameters: StackName,
10164	// StackSetName, TemplateBody, or TemplateURL.
10165	TemplateURL *string `min:"1" type:"string"`
10166}
10167
10168// String returns the string representation
10169func (s GetTemplateSummaryInput) String() string {
10170	return awsutil.Prettify(s)
10171}
10172
10173// GoString returns the string representation
10174func (s GetTemplateSummaryInput) GoString() string {
10175	return s.String()
10176}
10177
10178// Validate inspects the fields of the type to determine if they are valid.
10179func (s *GetTemplateSummaryInput) Validate() error {
10180	invalidParams := request.ErrInvalidParams{Context: "GetTemplateSummaryInput"}
10181	if s.StackName != nil && len(*s.StackName) < 1 {
10182		invalidParams.Add(request.NewErrParamMinLen("StackName", 1))
10183	}
10184	if s.TemplateBody != nil && len(*s.TemplateBody) < 1 {
10185		invalidParams.Add(request.NewErrParamMinLen("TemplateBody", 1))
10186	}
10187	if s.TemplateURL != nil && len(*s.TemplateURL) < 1 {
10188		invalidParams.Add(request.NewErrParamMinLen("TemplateURL", 1))
10189	}
10190
10191	if invalidParams.Len() > 0 {
10192		return invalidParams
10193	}
10194	return nil
10195}
10196
10197// SetStackName sets the StackName field's value.
10198func (s *GetTemplateSummaryInput) SetStackName(v string) *GetTemplateSummaryInput {
10199	s.StackName = &v
10200	return s
10201}
10202
10203// SetStackSetName sets the StackSetName field's value.
10204func (s *GetTemplateSummaryInput) SetStackSetName(v string) *GetTemplateSummaryInput {
10205	s.StackSetName = &v
10206	return s
10207}
10208
10209// SetTemplateBody sets the TemplateBody field's value.
10210func (s *GetTemplateSummaryInput) SetTemplateBody(v string) *GetTemplateSummaryInput {
10211	s.TemplateBody = &v
10212	return s
10213}
10214
10215// SetTemplateURL sets the TemplateURL field's value.
10216func (s *GetTemplateSummaryInput) SetTemplateURL(v string) *GetTemplateSummaryInput {
10217	s.TemplateURL = &v
10218	return s
10219}
10220
10221// The output for the GetTemplateSummary action.
10222type GetTemplateSummaryOutput struct {
10223	_ struct{} `type:"structure"`
10224
10225	// The capabilities found within the template. If your template contains IAM
10226	// resources, you must specify the CAPABILITY_IAM or CAPABILITY_NAMED_IAM value
10227	// for this parameter when you use the CreateStack or UpdateStack actions with
10228	// your template; otherwise, those actions return an InsufficientCapabilities
10229	// error.
10230	//
10231	// For more information, see Acknowledging IAM Resources in AWS CloudFormation
10232	// Templates (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-iam-template.html#capabilities).
10233	Capabilities []*string `type:"list"`
10234
10235	// The list of resources that generated the values in the Capabilities response
10236	// element.
10237	CapabilitiesReason *string `type:"string"`
10238
10239	// A list of the transforms that are declared in the template.
10240	DeclaredTransforms []*string `type:"list"`
10241
10242	// The value that is defined in the Description property of the template.
10243	Description *string `min:"1" type:"string"`
10244
10245	// The value that is defined for the Metadata property of the template.
10246	Metadata *string `type:"string"`
10247
10248	// A list of parameter declarations that describe various properties for each
10249	// parameter.
10250	Parameters []*ParameterDeclaration `type:"list"`
10251
10252	// A list of resource identifier summaries that describe the target resources
10253	// of an import operation and the properties you can provide during the import
10254	// to identify the target resources. For example, BucketName is a possible identifier
10255	// property for an AWS::S3::Bucket resource.
10256	ResourceIdentifierSummaries []*ResourceIdentifierSummary `type:"list"`
10257
10258	// A list of all the template resource types that are defined in the template,
10259	// such as AWS::EC2::Instance, AWS::Dynamo::Table, and Custom::MyCustomInstance.
10260	ResourceTypes []*string `type:"list"`
10261
10262	// The AWS template format version, which identifies the capabilities of the
10263	// template.
10264	Version *string `type:"string"`
10265}
10266
10267// String returns the string representation
10268func (s GetTemplateSummaryOutput) String() string {
10269	return awsutil.Prettify(s)
10270}
10271
10272// GoString returns the string representation
10273func (s GetTemplateSummaryOutput) GoString() string {
10274	return s.String()
10275}
10276
10277// SetCapabilities sets the Capabilities field's value.
10278func (s *GetTemplateSummaryOutput) SetCapabilities(v []*string) *GetTemplateSummaryOutput {
10279	s.Capabilities = v
10280	return s
10281}
10282
10283// SetCapabilitiesReason sets the CapabilitiesReason field's value.
10284func (s *GetTemplateSummaryOutput) SetCapabilitiesReason(v string) *GetTemplateSummaryOutput {
10285	s.CapabilitiesReason = &v
10286	return s
10287}
10288
10289// SetDeclaredTransforms sets the DeclaredTransforms field's value.
10290func (s *GetTemplateSummaryOutput) SetDeclaredTransforms(v []*string) *GetTemplateSummaryOutput {
10291	s.DeclaredTransforms = v
10292	return s
10293}
10294
10295// SetDescription sets the Description field's value.
10296func (s *GetTemplateSummaryOutput) SetDescription(v string) *GetTemplateSummaryOutput {
10297	s.Description = &v
10298	return s
10299}
10300
10301// SetMetadata sets the Metadata field's value.
10302func (s *GetTemplateSummaryOutput) SetMetadata(v string) *GetTemplateSummaryOutput {
10303	s.Metadata = &v
10304	return s
10305}
10306
10307// SetParameters sets the Parameters field's value.
10308func (s *GetTemplateSummaryOutput) SetParameters(v []*ParameterDeclaration) *GetTemplateSummaryOutput {
10309	s.Parameters = v
10310	return s
10311}
10312
10313// SetResourceIdentifierSummaries sets the ResourceIdentifierSummaries field's value.
10314func (s *GetTemplateSummaryOutput) SetResourceIdentifierSummaries(v []*ResourceIdentifierSummary) *GetTemplateSummaryOutput {
10315	s.ResourceIdentifierSummaries = v
10316	return s
10317}
10318
10319// SetResourceTypes sets the ResourceTypes field's value.
10320func (s *GetTemplateSummaryOutput) SetResourceTypes(v []*string) *GetTemplateSummaryOutput {
10321	s.ResourceTypes = v
10322	return s
10323}
10324
10325// SetVersion sets the Version field's value.
10326func (s *GetTemplateSummaryOutput) SetVersion(v string) *GetTemplateSummaryOutput {
10327	s.Version = &v
10328	return s
10329}
10330
10331// The input for the ListChangeSets action.
10332type ListChangeSetsInput struct {
10333	_ struct{} `type:"structure"`
10334
10335	// A string (provided by the ListChangeSets response output) that identifies
10336	// the next page of change sets that you want to retrieve.
10337	NextToken *string `min:"1" type:"string"`
10338
10339	// The name or the Amazon Resource Name (ARN) of the stack for which you want
10340	// to list change sets.
10341	//
10342	// StackName is a required field
10343	StackName *string `min:"1" type:"string" required:"true"`
10344}
10345
10346// String returns the string representation
10347func (s ListChangeSetsInput) String() string {
10348	return awsutil.Prettify(s)
10349}
10350
10351// GoString returns the string representation
10352func (s ListChangeSetsInput) GoString() string {
10353	return s.String()
10354}
10355
10356// Validate inspects the fields of the type to determine if they are valid.
10357func (s *ListChangeSetsInput) Validate() error {
10358	invalidParams := request.ErrInvalidParams{Context: "ListChangeSetsInput"}
10359	if s.NextToken != nil && len(*s.NextToken) < 1 {
10360		invalidParams.Add(request.NewErrParamMinLen("NextToken", 1))
10361	}
10362	if s.StackName == nil {
10363		invalidParams.Add(request.NewErrParamRequired("StackName"))
10364	}
10365	if s.StackName != nil && len(*s.StackName) < 1 {
10366		invalidParams.Add(request.NewErrParamMinLen("StackName", 1))
10367	}
10368
10369	if invalidParams.Len() > 0 {
10370		return invalidParams
10371	}
10372	return nil
10373}
10374
10375// SetNextToken sets the NextToken field's value.
10376func (s *ListChangeSetsInput) SetNextToken(v string) *ListChangeSetsInput {
10377	s.NextToken = &v
10378	return s
10379}
10380
10381// SetStackName sets the StackName field's value.
10382func (s *ListChangeSetsInput) SetStackName(v string) *ListChangeSetsInput {
10383	s.StackName = &v
10384	return s
10385}
10386
10387// The output for the ListChangeSets action.
10388type ListChangeSetsOutput struct {
10389	_ struct{} `type:"structure"`
10390
10391	// If the output exceeds 1 MB, a string that identifies the next page of change
10392	// sets. If there is no additional page, this value is null.
10393	NextToken *string `min:"1" type:"string"`
10394
10395	// A list of ChangeSetSummary structures that provides the ID and status of
10396	// each change set for the specified stack.
10397	Summaries []*ChangeSetSummary `type:"list"`
10398}
10399
10400// String returns the string representation
10401func (s ListChangeSetsOutput) String() string {
10402	return awsutil.Prettify(s)
10403}
10404
10405// GoString returns the string representation
10406func (s ListChangeSetsOutput) GoString() string {
10407	return s.String()
10408}
10409
10410// SetNextToken sets the NextToken field's value.
10411func (s *ListChangeSetsOutput) SetNextToken(v string) *ListChangeSetsOutput {
10412	s.NextToken = &v
10413	return s
10414}
10415
10416// SetSummaries sets the Summaries field's value.
10417func (s *ListChangeSetsOutput) SetSummaries(v []*ChangeSetSummary) *ListChangeSetsOutput {
10418	s.Summaries = v
10419	return s
10420}
10421
10422type ListExportsInput struct {
10423	_ struct{} `type:"structure"`
10424
10425	// A string (provided by the ListExports response output) that identifies the
10426	// next page of exported output values that you asked to retrieve.
10427	NextToken *string `min:"1" type:"string"`
10428}
10429
10430// String returns the string representation
10431func (s ListExportsInput) String() string {
10432	return awsutil.Prettify(s)
10433}
10434
10435// GoString returns the string representation
10436func (s ListExportsInput) GoString() string {
10437	return s.String()
10438}
10439
10440// Validate inspects the fields of the type to determine if they are valid.
10441func (s *ListExportsInput) Validate() error {
10442	invalidParams := request.ErrInvalidParams{Context: "ListExportsInput"}
10443	if s.NextToken != nil && len(*s.NextToken) < 1 {
10444		invalidParams.Add(request.NewErrParamMinLen("NextToken", 1))
10445	}
10446
10447	if invalidParams.Len() > 0 {
10448		return invalidParams
10449	}
10450	return nil
10451}
10452
10453// SetNextToken sets the NextToken field's value.
10454func (s *ListExportsInput) SetNextToken(v string) *ListExportsInput {
10455	s.NextToken = &v
10456	return s
10457}
10458
10459type ListExportsOutput struct {
10460	_ struct{} `type:"structure"`
10461
10462	// The output for the ListExports action.
10463	Exports []*Export `type:"list"`
10464
10465	// If the output exceeds 100 exported output values, a string that identifies
10466	// the next page of exports. If there is no additional page, this value is null.
10467	NextToken *string `min:"1" type:"string"`
10468}
10469
10470// String returns the string representation
10471func (s ListExportsOutput) String() string {
10472	return awsutil.Prettify(s)
10473}
10474
10475// GoString returns the string representation
10476func (s ListExportsOutput) GoString() string {
10477	return s.String()
10478}
10479
10480// SetExports sets the Exports field's value.
10481func (s *ListExportsOutput) SetExports(v []*Export) *ListExportsOutput {
10482	s.Exports = v
10483	return s
10484}
10485
10486// SetNextToken sets the NextToken field's value.
10487func (s *ListExportsOutput) SetNextToken(v string) *ListExportsOutput {
10488	s.NextToken = &v
10489	return s
10490}
10491
10492type ListImportsInput struct {
10493	_ struct{} `type:"structure"`
10494
10495	// The name of the exported output value. AWS CloudFormation returns the stack
10496	// names that are importing this value.
10497	//
10498	// ExportName is a required field
10499	ExportName *string `type:"string" required:"true"`
10500
10501	// A string (provided by the ListImports response output) that identifies the
10502	// next page of stacks that are importing the specified exported output value.
10503	NextToken *string `min:"1" type:"string"`
10504}
10505
10506// String returns the string representation
10507func (s ListImportsInput) String() string {
10508	return awsutil.Prettify(s)
10509}
10510
10511// GoString returns the string representation
10512func (s ListImportsInput) GoString() string {
10513	return s.String()
10514}
10515
10516// Validate inspects the fields of the type to determine if they are valid.
10517func (s *ListImportsInput) Validate() error {
10518	invalidParams := request.ErrInvalidParams{Context: "ListImportsInput"}
10519	if s.ExportName == nil {
10520		invalidParams.Add(request.NewErrParamRequired("ExportName"))
10521	}
10522	if s.NextToken != nil && len(*s.NextToken) < 1 {
10523		invalidParams.Add(request.NewErrParamMinLen("NextToken", 1))
10524	}
10525
10526	if invalidParams.Len() > 0 {
10527		return invalidParams
10528	}
10529	return nil
10530}
10531
10532// SetExportName sets the ExportName field's value.
10533func (s *ListImportsInput) SetExportName(v string) *ListImportsInput {
10534	s.ExportName = &v
10535	return s
10536}
10537
10538// SetNextToken sets the NextToken field's value.
10539func (s *ListImportsInput) SetNextToken(v string) *ListImportsInput {
10540	s.NextToken = &v
10541	return s
10542}
10543
10544type ListImportsOutput struct {
10545	_ struct{} `type:"structure"`
10546
10547	// A list of stack names that are importing the specified exported output value.
10548	Imports []*string `type:"list"`
10549
10550	// A string that identifies the next page of exports. If there is no additional
10551	// page, this value is null.
10552	NextToken *string `min:"1" type:"string"`
10553}
10554
10555// String returns the string representation
10556func (s ListImportsOutput) String() string {
10557	return awsutil.Prettify(s)
10558}
10559
10560// GoString returns the string representation
10561func (s ListImportsOutput) GoString() string {
10562	return s.String()
10563}
10564
10565// SetImports sets the Imports field's value.
10566func (s *ListImportsOutput) SetImports(v []*string) *ListImportsOutput {
10567	s.Imports = v
10568	return s
10569}
10570
10571// SetNextToken sets the NextToken field's value.
10572func (s *ListImportsOutput) SetNextToken(v string) *ListImportsOutput {
10573	s.NextToken = &v
10574	return s
10575}
10576
10577type ListStackInstancesInput struct {
10578	_ struct{} `type:"structure"`
10579
10580	// The status that stack instances are filtered by.
10581	Filters []*StackInstanceFilter `type:"list"`
10582
10583	// The maximum number of results to be returned with a single call. If the number
10584	// of available results exceeds this maximum, the response includes a NextToken
10585	// value that you can assign to the NextToken request parameter to get the next
10586	// set of results.
10587	MaxResults *int64 `min:"1" type:"integer"`
10588
10589	// If the previous request didn't return all of the remaining results, the response's
10590	// NextToken parameter value is set to a token. To retrieve the next set of
10591	// results, call ListStackInstances again and assign that token to the request
10592	// object's NextToken parameter. If there are no remaining results, the previous
10593	// response object's NextToken parameter is set to null.
10594	NextToken *string `min:"1" type:"string"`
10595
10596	// The name of the AWS account that you want to list stack instances for.
10597	StackInstanceAccount *string `type:"string"`
10598
10599	// The name of the Region where you want to list stack instances.
10600	StackInstanceRegion *string `type:"string"`
10601
10602	// The name or unique ID of the stack set that you want to list stack instances
10603	// for.
10604	//
10605	// StackSetName is a required field
10606	StackSetName *string `type:"string" required:"true"`
10607}
10608
10609// String returns the string representation
10610func (s ListStackInstancesInput) String() string {
10611	return awsutil.Prettify(s)
10612}
10613
10614// GoString returns the string representation
10615func (s ListStackInstancesInput) GoString() string {
10616	return s.String()
10617}
10618
10619// Validate inspects the fields of the type to determine if they are valid.
10620func (s *ListStackInstancesInput) Validate() error {
10621	invalidParams := request.ErrInvalidParams{Context: "ListStackInstancesInput"}
10622	if s.MaxResults != nil && *s.MaxResults < 1 {
10623		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
10624	}
10625	if s.NextToken != nil && len(*s.NextToken) < 1 {
10626		invalidParams.Add(request.NewErrParamMinLen("NextToken", 1))
10627	}
10628	if s.StackSetName == nil {
10629		invalidParams.Add(request.NewErrParamRequired("StackSetName"))
10630	}
10631	if s.Filters != nil {
10632		for i, v := range s.Filters {
10633			if v == nil {
10634				continue
10635			}
10636			if err := v.Validate(); err != nil {
10637				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Filters", i), err.(request.ErrInvalidParams))
10638			}
10639		}
10640	}
10641
10642	if invalidParams.Len() > 0 {
10643		return invalidParams
10644	}
10645	return nil
10646}
10647
10648// SetFilters sets the Filters field's value.
10649func (s *ListStackInstancesInput) SetFilters(v []*StackInstanceFilter) *ListStackInstancesInput {
10650	s.Filters = v
10651	return s
10652}
10653
10654// SetMaxResults sets the MaxResults field's value.
10655func (s *ListStackInstancesInput) SetMaxResults(v int64) *ListStackInstancesInput {
10656	s.MaxResults = &v
10657	return s
10658}
10659
10660// SetNextToken sets the NextToken field's value.
10661func (s *ListStackInstancesInput) SetNextToken(v string) *ListStackInstancesInput {
10662	s.NextToken = &v
10663	return s
10664}
10665
10666// SetStackInstanceAccount sets the StackInstanceAccount field's value.
10667func (s *ListStackInstancesInput) SetStackInstanceAccount(v string) *ListStackInstancesInput {
10668	s.StackInstanceAccount = &v
10669	return s
10670}
10671
10672// SetStackInstanceRegion sets the StackInstanceRegion field's value.
10673func (s *ListStackInstancesInput) SetStackInstanceRegion(v string) *ListStackInstancesInput {
10674	s.StackInstanceRegion = &v
10675	return s
10676}
10677
10678// SetStackSetName sets the StackSetName field's value.
10679func (s *ListStackInstancesInput) SetStackSetName(v string) *ListStackInstancesInput {
10680	s.StackSetName = &v
10681	return s
10682}
10683
10684type ListStackInstancesOutput struct {
10685	_ struct{} `type:"structure"`
10686
10687	// If the request doesn't return all of the remaining results, NextToken is
10688	// set to a token. To retrieve the next set of results, call ListStackInstances
10689	// again and assign that token to the request object's NextToken parameter.
10690	// If the request returns all results, NextToken is set to null.
10691	NextToken *string `min:"1" type:"string"`
10692
10693	// A list of StackInstanceSummary structures that contain information about
10694	// the specified stack instances.
10695	Summaries []*StackInstanceSummary `type:"list"`
10696}
10697
10698// String returns the string representation
10699func (s ListStackInstancesOutput) String() string {
10700	return awsutil.Prettify(s)
10701}
10702
10703// GoString returns the string representation
10704func (s ListStackInstancesOutput) GoString() string {
10705	return s.String()
10706}
10707
10708// SetNextToken sets the NextToken field's value.
10709func (s *ListStackInstancesOutput) SetNextToken(v string) *ListStackInstancesOutput {
10710	s.NextToken = &v
10711	return s
10712}
10713
10714// SetSummaries sets the Summaries field's value.
10715func (s *ListStackInstancesOutput) SetSummaries(v []*StackInstanceSummary) *ListStackInstancesOutput {
10716	s.Summaries = v
10717	return s
10718}
10719
10720// The input for the ListStackResource action.
10721type ListStackResourcesInput struct {
10722	_ struct{} `type:"structure"`
10723
10724	// A string that identifies the next page of stack resources that you want to
10725	// retrieve.
10726	NextToken *string `min:"1" type:"string"`
10727
10728	// The name or the unique stack ID that is associated with the stack, which
10729	// are not always interchangeable:
10730	//
10731	//    * Running stacks: You can specify either the stack's name or its unique
10732	//    stack ID.
10733	//
10734	//    * Deleted stacks: You must specify the unique stack ID.
10735	//
10736	// Default: There is no default value.
10737	//
10738	// StackName is a required field
10739	StackName *string `type:"string" required:"true"`
10740}
10741
10742// String returns the string representation
10743func (s ListStackResourcesInput) String() string {
10744	return awsutil.Prettify(s)
10745}
10746
10747// GoString returns the string representation
10748func (s ListStackResourcesInput) GoString() string {
10749	return s.String()
10750}
10751
10752// Validate inspects the fields of the type to determine if they are valid.
10753func (s *ListStackResourcesInput) Validate() error {
10754	invalidParams := request.ErrInvalidParams{Context: "ListStackResourcesInput"}
10755	if s.NextToken != nil && len(*s.NextToken) < 1 {
10756		invalidParams.Add(request.NewErrParamMinLen("NextToken", 1))
10757	}
10758	if s.StackName == nil {
10759		invalidParams.Add(request.NewErrParamRequired("StackName"))
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 *ListStackResourcesInput) SetNextToken(v string) *ListStackResourcesInput {
10770	s.NextToken = &v
10771	return s
10772}
10773
10774// SetStackName sets the StackName field's value.
10775func (s *ListStackResourcesInput) SetStackName(v string) *ListStackResourcesInput {
10776	s.StackName = &v
10777	return s
10778}
10779
10780// The output for a ListStackResources action.
10781type ListStackResourcesOutput struct {
10782	_ struct{} `type:"structure"`
10783
10784	// If the output exceeds 1 MB, a string that identifies the next page of stack
10785	// resources. If no additional page exists, this value is null.
10786	NextToken *string `min:"1" type:"string"`
10787
10788	// A list of StackResourceSummary structures.
10789	StackResourceSummaries []*StackResourceSummary `type:"list"`
10790}
10791
10792// String returns the string representation
10793func (s ListStackResourcesOutput) String() string {
10794	return awsutil.Prettify(s)
10795}
10796
10797// GoString returns the string representation
10798func (s ListStackResourcesOutput) GoString() string {
10799	return s.String()
10800}
10801
10802// SetNextToken sets the NextToken field's value.
10803func (s *ListStackResourcesOutput) SetNextToken(v string) *ListStackResourcesOutput {
10804	s.NextToken = &v
10805	return s
10806}
10807
10808// SetStackResourceSummaries sets the StackResourceSummaries field's value.
10809func (s *ListStackResourcesOutput) SetStackResourceSummaries(v []*StackResourceSummary) *ListStackResourcesOutput {
10810	s.StackResourceSummaries = v
10811	return s
10812}
10813
10814type ListStackSetOperationResultsInput struct {
10815	_ struct{} `type:"structure"`
10816
10817	// The maximum number of results to be returned with a single call. If the number
10818	// of available results exceeds this maximum, the response includes a NextToken
10819	// value that you can assign to the NextToken request parameter to get the next
10820	// set of results.
10821	MaxResults *int64 `min:"1" type:"integer"`
10822
10823	// If the previous request didn't return all of the remaining results, the response
10824	// object's NextToken parameter value is set to a token. To retrieve the next
10825	// set of results, call ListStackSetOperationResults again and assign that token
10826	// to the request object's NextToken parameter. If there are no remaining results,
10827	// the previous response object's NextToken parameter is set to null.
10828	NextToken *string `min:"1" type:"string"`
10829
10830	// The ID of the stack set operation.
10831	//
10832	// OperationId is a required field
10833	OperationId *string `min:"1" type:"string" required:"true"`
10834
10835	// The name or unique ID of the stack set that you want to get operation results
10836	// for.
10837	//
10838	// StackSetName is a required field
10839	StackSetName *string `type:"string" required:"true"`
10840}
10841
10842// String returns the string representation
10843func (s ListStackSetOperationResultsInput) String() string {
10844	return awsutil.Prettify(s)
10845}
10846
10847// GoString returns the string representation
10848func (s ListStackSetOperationResultsInput) GoString() string {
10849	return s.String()
10850}
10851
10852// Validate inspects the fields of the type to determine if they are valid.
10853func (s *ListStackSetOperationResultsInput) Validate() error {
10854	invalidParams := request.ErrInvalidParams{Context: "ListStackSetOperationResultsInput"}
10855	if s.MaxResults != nil && *s.MaxResults < 1 {
10856		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
10857	}
10858	if s.NextToken != nil && len(*s.NextToken) < 1 {
10859		invalidParams.Add(request.NewErrParamMinLen("NextToken", 1))
10860	}
10861	if s.OperationId == nil {
10862		invalidParams.Add(request.NewErrParamRequired("OperationId"))
10863	}
10864	if s.OperationId != nil && len(*s.OperationId) < 1 {
10865		invalidParams.Add(request.NewErrParamMinLen("OperationId", 1))
10866	}
10867	if s.StackSetName == nil {
10868		invalidParams.Add(request.NewErrParamRequired("StackSetName"))
10869	}
10870
10871	if invalidParams.Len() > 0 {
10872		return invalidParams
10873	}
10874	return nil
10875}
10876
10877// SetMaxResults sets the MaxResults field's value.
10878func (s *ListStackSetOperationResultsInput) SetMaxResults(v int64) *ListStackSetOperationResultsInput {
10879	s.MaxResults = &v
10880	return s
10881}
10882
10883// SetNextToken sets the NextToken field's value.
10884func (s *ListStackSetOperationResultsInput) SetNextToken(v string) *ListStackSetOperationResultsInput {
10885	s.NextToken = &v
10886	return s
10887}
10888
10889// SetOperationId sets the OperationId field's value.
10890func (s *ListStackSetOperationResultsInput) SetOperationId(v string) *ListStackSetOperationResultsInput {
10891	s.OperationId = &v
10892	return s
10893}
10894
10895// SetStackSetName sets the StackSetName field's value.
10896func (s *ListStackSetOperationResultsInput) SetStackSetName(v string) *ListStackSetOperationResultsInput {
10897	s.StackSetName = &v
10898	return s
10899}
10900
10901type ListStackSetOperationResultsOutput struct {
10902	_ struct{} `type:"structure"`
10903
10904	// If the request doesn't return all results, NextToken is set to a token. To
10905	// retrieve the next set of results, call ListOperationResults again and assign
10906	// that token to the request object's NextToken parameter. If there are no remaining
10907	// results, NextToken is set to null.
10908	NextToken *string `min:"1" type:"string"`
10909
10910	// A list of StackSetOperationResultSummary structures that contain information
10911	// about the specified operation results, for accounts and Regions that are
10912	// included in the operation.
10913	Summaries []*StackSetOperationResultSummary `type:"list"`
10914}
10915
10916// String returns the string representation
10917func (s ListStackSetOperationResultsOutput) String() string {
10918	return awsutil.Prettify(s)
10919}
10920
10921// GoString returns the string representation
10922func (s ListStackSetOperationResultsOutput) GoString() string {
10923	return s.String()
10924}
10925
10926// SetNextToken sets the NextToken field's value.
10927func (s *ListStackSetOperationResultsOutput) SetNextToken(v string) *ListStackSetOperationResultsOutput {
10928	s.NextToken = &v
10929	return s
10930}
10931
10932// SetSummaries sets the Summaries field's value.
10933func (s *ListStackSetOperationResultsOutput) SetSummaries(v []*StackSetOperationResultSummary) *ListStackSetOperationResultsOutput {
10934	s.Summaries = v
10935	return s
10936}
10937
10938type ListStackSetOperationsInput struct {
10939	_ struct{} `type:"structure"`
10940
10941	// The maximum number of results to be returned with a single call. If the number
10942	// of available results exceeds this maximum, the response includes a NextToken
10943	// value that you can assign to the NextToken request parameter to get the next
10944	// set of results.
10945	MaxResults *int64 `min:"1" type:"integer"`
10946
10947	// If the previous paginated request didn't return all of the remaining results,
10948	// the response object's NextToken parameter value is set to a token. To retrieve
10949	// the next set of results, call ListStackSetOperations again and assign that
10950	// token to the request object's NextToken parameter. If there are no remaining
10951	// results, the previous response object's NextToken parameter is set to null.
10952	NextToken *string `min:"1" type:"string"`
10953
10954	// The name or unique ID of the stack set that you want to get operation summaries
10955	// for.
10956	//
10957	// StackSetName is a required field
10958	StackSetName *string `type:"string" required:"true"`
10959}
10960
10961// String returns the string representation
10962func (s ListStackSetOperationsInput) String() string {
10963	return awsutil.Prettify(s)
10964}
10965
10966// GoString returns the string representation
10967func (s ListStackSetOperationsInput) GoString() string {
10968	return s.String()
10969}
10970
10971// Validate inspects the fields of the type to determine if they are valid.
10972func (s *ListStackSetOperationsInput) Validate() error {
10973	invalidParams := request.ErrInvalidParams{Context: "ListStackSetOperationsInput"}
10974	if s.MaxResults != nil && *s.MaxResults < 1 {
10975		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
10976	}
10977	if s.NextToken != nil && len(*s.NextToken) < 1 {
10978		invalidParams.Add(request.NewErrParamMinLen("NextToken", 1))
10979	}
10980	if s.StackSetName == nil {
10981		invalidParams.Add(request.NewErrParamRequired("StackSetName"))
10982	}
10983
10984	if invalidParams.Len() > 0 {
10985		return invalidParams
10986	}
10987	return nil
10988}
10989
10990// SetMaxResults sets the MaxResults field's value.
10991func (s *ListStackSetOperationsInput) SetMaxResults(v int64) *ListStackSetOperationsInput {
10992	s.MaxResults = &v
10993	return s
10994}
10995
10996// SetNextToken sets the NextToken field's value.
10997func (s *ListStackSetOperationsInput) SetNextToken(v string) *ListStackSetOperationsInput {
10998	s.NextToken = &v
10999	return s
11000}
11001
11002// SetStackSetName sets the StackSetName field's value.
11003func (s *ListStackSetOperationsInput) SetStackSetName(v string) *ListStackSetOperationsInput {
11004	s.StackSetName = &v
11005	return s
11006}
11007
11008type ListStackSetOperationsOutput struct {
11009	_ struct{} `type:"structure"`
11010
11011	// If the request doesn't return all results, NextToken is set to a token. To
11012	// retrieve the next set of results, call ListOperationResults again and assign
11013	// that token to the request object's NextToken parameter. If there are no remaining
11014	// results, NextToken is set to null.
11015	NextToken *string `min:"1" type:"string"`
11016
11017	// A list of StackSetOperationSummary structures that contain summary information
11018	// about operations for the specified stack set.
11019	Summaries []*StackSetOperationSummary `type:"list"`
11020}
11021
11022// String returns the string representation
11023func (s ListStackSetOperationsOutput) String() string {
11024	return awsutil.Prettify(s)
11025}
11026
11027// GoString returns the string representation
11028func (s ListStackSetOperationsOutput) GoString() string {
11029	return s.String()
11030}
11031
11032// SetNextToken sets the NextToken field's value.
11033func (s *ListStackSetOperationsOutput) SetNextToken(v string) *ListStackSetOperationsOutput {
11034	s.NextToken = &v
11035	return s
11036}
11037
11038// SetSummaries sets the Summaries field's value.
11039func (s *ListStackSetOperationsOutput) SetSummaries(v []*StackSetOperationSummary) *ListStackSetOperationsOutput {
11040	s.Summaries = v
11041	return s
11042}
11043
11044type ListStackSetsInput struct {
11045	_ struct{} `type:"structure"`
11046
11047	// The maximum number of results to be returned with a single call. If the number
11048	// of available results exceeds this maximum, the response includes a NextToken
11049	// value that you can assign to the NextToken request parameter to get the next
11050	// set of results.
11051	MaxResults *int64 `min:"1" type:"integer"`
11052
11053	// If the previous paginated request didn't return all of the remaining results,
11054	// the response object's NextToken parameter value is set to a token. To retrieve
11055	// the next set of results, call ListStackSets again and assign that token to
11056	// the request object's NextToken parameter. If there are no remaining results,
11057	// the previous response object's NextToken parameter is set to null.
11058	NextToken *string `min:"1" type:"string"`
11059
11060	// The status of the stack sets that you want to get summary information about.
11061	Status *string `type:"string" enum:"StackSetStatus"`
11062}
11063
11064// String returns the string representation
11065func (s ListStackSetsInput) String() string {
11066	return awsutil.Prettify(s)
11067}
11068
11069// GoString returns the string representation
11070func (s ListStackSetsInput) GoString() string {
11071	return s.String()
11072}
11073
11074// Validate inspects the fields of the type to determine if they are valid.
11075func (s *ListStackSetsInput) Validate() error {
11076	invalidParams := request.ErrInvalidParams{Context: "ListStackSetsInput"}
11077	if s.MaxResults != nil && *s.MaxResults < 1 {
11078		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
11079	}
11080	if s.NextToken != nil && len(*s.NextToken) < 1 {
11081		invalidParams.Add(request.NewErrParamMinLen("NextToken", 1))
11082	}
11083
11084	if invalidParams.Len() > 0 {
11085		return invalidParams
11086	}
11087	return nil
11088}
11089
11090// SetMaxResults sets the MaxResults field's value.
11091func (s *ListStackSetsInput) SetMaxResults(v int64) *ListStackSetsInput {
11092	s.MaxResults = &v
11093	return s
11094}
11095
11096// SetNextToken sets the NextToken field's value.
11097func (s *ListStackSetsInput) SetNextToken(v string) *ListStackSetsInput {
11098	s.NextToken = &v
11099	return s
11100}
11101
11102// SetStatus sets the Status field's value.
11103func (s *ListStackSetsInput) SetStatus(v string) *ListStackSetsInput {
11104	s.Status = &v
11105	return s
11106}
11107
11108type ListStackSetsOutput struct {
11109	_ struct{} `type:"structure"`
11110
11111	// If the request doesn't return all of the remaining results, NextToken is
11112	// set to a token. To retrieve the next set of results, call ListStackInstances
11113	// again and assign that token to the request object's NextToken parameter.
11114	// If the request returns all results, NextToken is set to null.
11115	NextToken *string `min:"1" type:"string"`
11116
11117	// A list of StackSetSummary structures that contain information about the user's
11118	// stack sets.
11119	Summaries []*StackSetSummary `type:"list"`
11120}
11121
11122// String returns the string representation
11123func (s ListStackSetsOutput) String() string {
11124	return awsutil.Prettify(s)
11125}
11126
11127// GoString returns the string representation
11128func (s ListStackSetsOutput) GoString() string {
11129	return s.String()
11130}
11131
11132// SetNextToken sets the NextToken field's value.
11133func (s *ListStackSetsOutput) SetNextToken(v string) *ListStackSetsOutput {
11134	s.NextToken = &v
11135	return s
11136}
11137
11138// SetSummaries sets the Summaries field's value.
11139func (s *ListStackSetsOutput) SetSummaries(v []*StackSetSummary) *ListStackSetsOutput {
11140	s.Summaries = v
11141	return s
11142}
11143
11144// The input for ListStacks action.
11145type ListStacksInput struct {
11146	_ struct{} `type:"structure"`
11147
11148	// A string that identifies the next page of stacks that you want to retrieve.
11149	NextToken *string `min:"1" type:"string"`
11150
11151	// Stack status to use as a filter. Specify one or more stack status codes to
11152	// list only stacks with the specified status codes. For a complete list of
11153	// stack status codes, see the StackStatus parameter of the Stack data type.
11154	StackStatusFilter []*string `type:"list"`
11155}
11156
11157// String returns the string representation
11158func (s ListStacksInput) String() string {
11159	return awsutil.Prettify(s)
11160}
11161
11162// GoString returns the string representation
11163func (s ListStacksInput) GoString() string {
11164	return s.String()
11165}
11166
11167// Validate inspects the fields of the type to determine if they are valid.
11168func (s *ListStacksInput) Validate() error {
11169	invalidParams := request.ErrInvalidParams{Context: "ListStacksInput"}
11170	if s.NextToken != nil && len(*s.NextToken) < 1 {
11171		invalidParams.Add(request.NewErrParamMinLen("NextToken", 1))
11172	}
11173
11174	if invalidParams.Len() > 0 {
11175		return invalidParams
11176	}
11177	return nil
11178}
11179
11180// SetNextToken sets the NextToken field's value.
11181func (s *ListStacksInput) SetNextToken(v string) *ListStacksInput {
11182	s.NextToken = &v
11183	return s
11184}
11185
11186// SetStackStatusFilter sets the StackStatusFilter field's value.
11187func (s *ListStacksInput) SetStackStatusFilter(v []*string) *ListStacksInput {
11188	s.StackStatusFilter = v
11189	return s
11190}
11191
11192// The output for ListStacks action.
11193type ListStacksOutput struct {
11194	_ struct{} `type:"structure"`
11195
11196	// If the output exceeds 1 MB in size, a string that identifies the next page
11197	// of stacks. If no additional page exists, this value is null.
11198	NextToken *string `min:"1" type:"string"`
11199
11200	// A list of StackSummary structures containing information about the specified
11201	// stacks.
11202	StackSummaries []*StackSummary `type:"list"`
11203}
11204
11205// String returns the string representation
11206func (s ListStacksOutput) String() string {
11207	return awsutil.Prettify(s)
11208}
11209
11210// GoString returns the string representation
11211func (s ListStacksOutput) GoString() string {
11212	return s.String()
11213}
11214
11215// SetNextToken sets the NextToken field's value.
11216func (s *ListStacksOutput) SetNextToken(v string) *ListStacksOutput {
11217	s.NextToken = &v
11218	return s
11219}
11220
11221// SetStackSummaries sets the StackSummaries field's value.
11222func (s *ListStacksOutput) SetStackSummaries(v []*StackSummary) *ListStacksOutput {
11223	s.StackSummaries = v
11224	return s
11225}
11226
11227type ListTypeRegistrationsInput struct {
11228	_ struct{} `type:"structure"`
11229
11230	// The maximum number of results to be returned with a single call. If the number
11231	// of available results exceeds this maximum, the response includes a NextToken
11232	// value that you can assign to the NextToken request parameter to get the next
11233	// set of results.
11234	MaxResults *int64 `min:"1" type:"integer"`
11235
11236	// If the previous paginated request didn't return all of the remaining results,
11237	// the response object's NextToken parameter value is set to a token. To retrieve
11238	// the next set of results, call this action again and assign that token to
11239	// the request object's NextToken parameter. If there are no remaining results,
11240	// the previous response object's NextToken parameter is set to null.
11241	NextToken *string `min:"1" type:"string"`
11242
11243	// The current status of the type registration request.
11244	//
11245	// The default is IN_PROGRESS.
11246	RegistrationStatusFilter *string `type:"string" enum:"RegistrationStatus"`
11247
11248	// The kind of type.
11249	//
11250	// Currently the only valid value is RESOURCE.
11251	//
11252	// Conditional: You must specify either TypeName and Type, or Arn.
11253	Type *string `type:"string" enum:"RegistryType"`
11254
11255	// The Amazon Resource Name (ARN) of the type.
11256	//
11257	// Conditional: You must specify either TypeName and Type, or Arn.
11258	TypeArn *string `type:"string"`
11259
11260	// The name of the type.
11261	//
11262	// Conditional: You must specify either TypeName and Type, or Arn.
11263	TypeName *string `min:"10" type:"string"`
11264}
11265
11266// String returns the string representation
11267func (s ListTypeRegistrationsInput) String() string {
11268	return awsutil.Prettify(s)
11269}
11270
11271// GoString returns the string representation
11272func (s ListTypeRegistrationsInput) GoString() string {
11273	return s.String()
11274}
11275
11276// Validate inspects the fields of the type to determine if they are valid.
11277func (s *ListTypeRegistrationsInput) Validate() error {
11278	invalidParams := request.ErrInvalidParams{Context: "ListTypeRegistrationsInput"}
11279	if s.MaxResults != nil && *s.MaxResults < 1 {
11280		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
11281	}
11282	if s.NextToken != nil && len(*s.NextToken) < 1 {
11283		invalidParams.Add(request.NewErrParamMinLen("NextToken", 1))
11284	}
11285	if s.TypeName != nil && len(*s.TypeName) < 10 {
11286		invalidParams.Add(request.NewErrParamMinLen("TypeName", 10))
11287	}
11288
11289	if invalidParams.Len() > 0 {
11290		return invalidParams
11291	}
11292	return nil
11293}
11294
11295// SetMaxResults sets the MaxResults field's value.
11296func (s *ListTypeRegistrationsInput) SetMaxResults(v int64) *ListTypeRegistrationsInput {
11297	s.MaxResults = &v
11298	return s
11299}
11300
11301// SetNextToken sets the NextToken field's value.
11302func (s *ListTypeRegistrationsInput) SetNextToken(v string) *ListTypeRegistrationsInput {
11303	s.NextToken = &v
11304	return s
11305}
11306
11307// SetRegistrationStatusFilter sets the RegistrationStatusFilter field's value.
11308func (s *ListTypeRegistrationsInput) SetRegistrationStatusFilter(v string) *ListTypeRegistrationsInput {
11309	s.RegistrationStatusFilter = &v
11310	return s
11311}
11312
11313// SetType sets the Type field's value.
11314func (s *ListTypeRegistrationsInput) SetType(v string) *ListTypeRegistrationsInput {
11315	s.Type = &v
11316	return s
11317}
11318
11319// SetTypeArn sets the TypeArn field's value.
11320func (s *ListTypeRegistrationsInput) SetTypeArn(v string) *ListTypeRegistrationsInput {
11321	s.TypeArn = &v
11322	return s
11323}
11324
11325// SetTypeName sets the TypeName field's value.
11326func (s *ListTypeRegistrationsInput) SetTypeName(v string) *ListTypeRegistrationsInput {
11327	s.TypeName = &v
11328	return s
11329}
11330
11331type ListTypeRegistrationsOutput struct {
11332	_ struct{} `type:"structure"`
11333
11334	// If the request doesn't return all of the remaining results, NextToken is
11335	// set to a token. To retrieve the next set of results, call this action again
11336	// and assign that token to the request object's NextToken parameter. If the
11337	// request returns all results, NextToken is set to null.
11338	NextToken *string `min:"1" type:"string"`
11339
11340	// A list of type registration tokens.
11341	//
11342	// Use DescribeTypeRegistration to return detailed information about a type
11343	// registration request.
11344	RegistrationTokenList []*string `type:"list"`
11345}
11346
11347// String returns the string representation
11348func (s ListTypeRegistrationsOutput) String() string {
11349	return awsutil.Prettify(s)
11350}
11351
11352// GoString returns the string representation
11353func (s ListTypeRegistrationsOutput) GoString() string {
11354	return s.String()
11355}
11356
11357// SetNextToken sets the NextToken field's value.
11358func (s *ListTypeRegistrationsOutput) SetNextToken(v string) *ListTypeRegistrationsOutput {
11359	s.NextToken = &v
11360	return s
11361}
11362
11363// SetRegistrationTokenList sets the RegistrationTokenList field's value.
11364func (s *ListTypeRegistrationsOutput) SetRegistrationTokenList(v []*string) *ListTypeRegistrationsOutput {
11365	s.RegistrationTokenList = v
11366	return s
11367}
11368
11369type ListTypeVersionsInput struct {
11370	_ struct{} `type:"structure"`
11371
11372	// The Amazon Resource Name (ARN) of the type for which you want version summary
11373	// information.
11374	//
11375	// Conditional: You must specify either TypeName and Type, or Arn.
11376	Arn *string `type:"string"`
11377
11378	// The deprecation status of the type versions that you want to get summary
11379	// information about.
11380	//
11381	// Valid values include:
11382	//
11383	//    * LIVE: The type version is registered and can be used in CloudFormation
11384	//    operations, dependent on its provisioning behavior and visibility scope.
11385	//
11386	//    * DEPRECATED: The type version has been deregistered and can no longer
11387	//    be used in CloudFormation operations.
11388	//
11389	// The default is LIVE.
11390	DeprecatedStatus *string `type:"string" enum:"DeprecatedStatus"`
11391
11392	// The maximum number of results to be returned with a single call. If the number
11393	// of available results exceeds this maximum, the response includes a NextToken
11394	// value that you can assign to the NextToken request parameter to get the next
11395	// set of results.
11396	MaxResults *int64 `min:"1" type:"integer"`
11397
11398	// If the previous paginated request didn't return all of the remaining results,
11399	// the response object's NextToken parameter value is set to a token. To retrieve
11400	// the next set of results, call this action again and assign that token to
11401	// the request object's NextToken parameter. If there are no remaining results,
11402	// the previous response object's NextToken parameter is set to null.
11403	NextToken *string `min:"1" type:"string"`
11404
11405	// The kind of the type.
11406	//
11407	// Currently the only valid value is RESOURCE.
11408	//
11409	// Conditional: You must specify either TypeName and Type, or Arn.
11410	Type *string `type:"string" enum:"RegistryType"`
11411
11412	// The name of the type for which you want version summary information.
11413	//
11414	// Conditional: You must specify either TypeName and Type, or Arn.
11415	TypeName *string `min:"10" type:"string"`
11416}
11417
11418// String returns the string representation
11419func (s ListTypeVersionsInput) String() string {
11420	return awsutil.Prettify(s)
11421}
11422
11423// GoString returns the string representation
11424func (s ListTypeVersionsInput) GoString() string {
11425	return s.String()
11426}
11427
11428// Validate inspects the fields of the type to determine if they are valid.
11429func (s *ListTypeVersionsInput) Validate() error {
11430	invalidParams := request.ErrInvalidParams{Context: "ListTypeVersionsInput"}
11431	if s.MaxResults != nil && *s.MaxResults < 1 {
11432		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
11433	}
11434	if s.NextToken != nil && len(*s.NextToken) < 1 {
11435		invalidParams.Add(request.NewErrParamMinLen("NextToken", 1))
11436	}
11437	if s.TypeName != nil && len(*s.TypeName) < 10 {
11438		invalidParams.Add(request.NewErrParamMinLen("TypeName", 10))
11439	}
11440
11441	if invalidParams.Len() > 0 {
11442		return invalidParams
11443	}
11444	return nil
11445}
11446
11447// SetArn sets the Arn field's value.
11448func (s *ListTypeVersionsInput) SetArn(v string) *ListTypeVersionsInput {
11449	s.Arn = &v
11450	return s
11451}
11452
11453// SetDeprecatedStatus sets the DeprecatedStatus field's value.
11454func (s *ListTypeVersionsInput) SetDeprecatedStatus(v string) *ListTypeVersionsInput {
11455	s.DeprecatedStatus = &v
11456	return s
11457}
11458
11459// SetMaxResults sets the MaxResults field's value.
11460func (s *ListTypeVersionsInput) SetMaxResults(v int64) *ListTypeVersionsInput {
11461	s.MaxResults = &v
11462	return s
11463}
11464
11465// SetNextToken sets the NextToken field's value.
11466func (s *ListTypeVersionsInput) SetNextToken(v string) *ListTypeVersionsInput {
11467	s.NextToken = &v
11468	return s
11469}
11470
11471// SetType sets the Type field's value.
11472func (s *ListTypeVersionsInput) SetType(v string) *ListTypeVersionsInput {
11473	s.Type = &v
11474	return s
11475}
11476
11477// SetTypeName sets the TypeName field's value.
11478func (s *ListTypeVersionsInput) SetTypeName(v string) *ListTypeVersionsInput {
11479	s.TypeName = &v
11480	return s
11481}
11482
11483type ListTypeVersionsOutput struct {
11484	_ struct{} `type:"structure"`
11485
11486	// If the request doesn't return all of the remaining results, NextToken is
11487	// set to a token. To retrieve the next set of results, call this action again
11488	// and assign that token to the request object's NextToken parameter. If the
11489	// request returns all results, NextToken is set to null.
11490	NextToken *string `min:"1" type:"string"`
11491
11492	// A list of TypeVersionSummary structures that contain information about the
11493	// specified type's versions.
11494	TypeVersionSummaries []*TypeVersionSummary `type:"list"`
11495}
11496
11497// String returns the string representation
11498func (s ListTypeVersionsOutput) String() string {
11499	return awsutil.Prettify(s)
11500}
11501
11502// GoString returns the string representation
11503func (s ListTypeVersionsOutput) GoString() string {
11504	return s.String()
11505}
11506
11507// SetNextToken sets the NextToken field's value.
11508func (s *ListTypeVersionsOutput) SetNextToken(v string) *ListTypeVersionsOutput {
11509	s.NextToken = &v
11510	return s
11511}
11512
11513// SetTypeVersionSummaries sets the TypeVersionSummaries field's value.
11514func (s *ListTypeVersionsOutput) SetTypeVersionSummaries(v []*TypeVersionSummary) *ListTypeVersionsOutput {
11515	s.TypeVersionSummaries = v
11516	return s
11517}
11518
11519type ListTypesInput struct {
11520	_ struct{} `type:"structure"`
11521
11522	// The deprecation status of the types that you want to get summary information
11523	// about.
11524	//
11525	// Valid values include:
11526	//
11527	//    * LIVE: The type is registered for use in CloudFormation operations.
11528	//
11529	//    * DEPRECATED: The type has been deregistered and can no longer be used
11530	//    in CloudFormation operations.
11531	DeprecatedStatus *string `type:"string" enum:"DeprecatedStatus"`
11532
11533	// The maximum number of results to be returned with a single call. If the number
11534	// of available results exceeds this maximum, the response includes a NextToken
11535	// value that you can assign to the NextToken request parameter to get the next
11536	// set of results.
11537	MaxResults *int64 `min:"1" type:"integer"`
11538
11539	// If the previous paginated request didn't return all of the remaining results,
11540	// the response object's NextToken parameter value is set to a token. To retrieve
11541	// the next set of results, call this action again and assign that token to
11542	// the request object's NextToken parameter. If there are no remaining results,
11543	// the previous response object's NextToken parameter is set to null.
11544	NextToken *string `min:"1" type:"string"`
11545
11546	// The provisioning behavior of the type. AWS CloudFormation determines the
11547	// provisioning type during registration, based on the types of handlers in
11548	// the schema handler package submitted.
11549	//
11550	// Valid values include:
11551	//
11552	//    * FULLY_MUTABLE: The type includes an update handler to process updates
11553	//    to the type during stack update operations.
11554	//
11555	//    * IMMUTABLE: The type does not include an update handler, so the type
11556	//    cannot be updated and must instead be replaced during stack update operations.
11557	//
11558	//    * NON_PROVISIONABLE: The type does not include create, read, and delete
11559	//    handlers, and therefore cannot actually be provisioned.
11560	ProvisioningType *string `type:"string" enum:"ProvisioningType"`
11561
11562	// The scope at which the type is visible and usable in CloudFormation operations.
11563	//
11564	// Valid values include:
11565	//
11566	//    * PRIVATE: The type is only visible and usable within the account in which
11567	//    it is registered. Currently, AWS CloudFormation marks any types you create
11568	//    as PRIVATE.
11569	//
11570	//    * PUBLIC: The type is publically visible and usable within any Amazon
11571	//    account.
11572	//
11573	// The default is PRIVATE.
11574	Visibility *string `type:"string" enum:"Visibility"`
11575}
11576
11577// String returns the string representation
11578func (s ListTypesInput) String() string {
11579	return awsutil.Prettify(s)
11580}
11581
11582// GoString returns the string representation
11583func (s ListTypesInput) GoString() string {
11584	return s.String()
11585}
11586
11587// Validate inspects the fields of the type to determine if they are valid.
11588func (s *ListTypesInput) Validate() error {
11589	invalidParams := request.ErrInvalidParams{Context: "ListTypesInput"}
11590	if s.MaxResults != nil && *s.MaxResults < 1 {
11591		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
11592	}
11593	if s.NextToken != nil && len(*s.NextToken) < 1 {
11594		invalidParams.Add(request.NewErrParamMinLen("NextToken", 1))
11595	}
11596
11597	if invalidParams.Len() > 0 {
11598		return invalidParams
11599	}
11600	return nil
11601}
11602
11603// SetDeprecatedStatus sets the DeprecatedStatus field's value.
11604func (s *ListTypesInput) SetDeprecatedStatus(v string) *ListTypesInput {
11605	s.DeprecatedStatus = &v
11606	return s
11607}
11608
11609// SetMaxResults sets the MaxResults field's value.
11610func (s *ListTypesInput) SetMaxResults(v int64) *ListTypesInput {
11611	s.MaxResults = &v
11612	return s
11613}
11614
11615// SetNextToken sets the NextToken field's value.
11616func (s *ListTypesInput) SetNextToken(v string) *ListTypesInput {
11617	s.NextToken = &v
11618	return s
11619}
11620
11621// SetProvisioningType sets the ProvisioningType field's value.
11622func (s *ListTypesInput) SetProvisioningType(v string) *ListTypesInput {
11623	s.ProvisioningType = &v
11624	return s
11625}
11626
11627// SetVisibility sets the Visibility field's value.
11628func (s *ListTypesInput) SetVisibility(v string) *ListTypesInput {
11629	s.Visibility = &v
11630	return s
11631}
11632
11633type ListTypesOutput struct {
11634	_ struct{} `type:"structure"`
11635
11636	// If the request doesn't return all of the remaining results, NextToken is
11637	// set to a token. To retrieve the next set of results, call this action again
11638	// and assign that token to the request object's NextToken parameter. If the
11639	// request returns all results, NextToken is set to null.
11640	NextToken *string `min:"1" type:"string"`
11641
11642	// A list of TypeSummary structures that contain information about the specified
11643	// types.
11644	TypeSummaries []*TypeSummary `type:"list"`
11645}
11646
11647// String returns the string representation
11648func (s ListTypesOutput) String() string {
11649	return awsutil.Prettify(s)
11650}
11651
11652// GoString returns the string representation
11653func (s ListTypesOutput) GoString() string {
11654	return s.String()
11655}
11656
11657// SetNextToken sets the NextToken field's value.
11658func (s *ListTypesOutput) SetNextToken(v string) *ListTypesOutput {
11659	s.NextToken = &v
11660	return s
11661}
11662
11663// SetTypeSummaries sets the TypeSummaries field's value.
11664func (s *ListTypesOutput) SetTypeSummaries(v []*TypeSummary) *ListTypesOutput {
11665	s.TypeSummaries = v
11666	return s
11667}
11668
11669// Contains logging configuration information for a type.
11670type LoggingConfig struct {
11671	_ struct{} `type:"structure"`
11672
11673	// The Amazon CloudWatch log group to which CloudFormation sends error logging
11674	// information when invoking the type's handlers.
11675	//
11676	// LogGroupName is a required field
11677	LogGroupName *string `min:"1" type:"string" required:"true"`
11678
11679	// The ARN of the role that CloudFormation should assume when sending log entries
11680	// to CloudWatch logs.
11681	//
11682	// LogRoleArn is a required field
11683	LogRoleArn *string `min:"1" type:"string" required:"true"`
11684}
11685
11686// String returns the string representation
11687func (s LoggingConfig) String() string {
11688	return awsutil.Prettify(s)
11689}
11690
11691// GoString returns the string representation
11692func (s LoggingConfig) GoString() string {
11693	return s.String()
11694}
11695
11696// Validate inspects the fields of the type to determine if they are valid.
11697func (s *LoggingConfig) Validate() error {
11698	invalidParams := request.ErrInvalidParams{Context: "LoggingConfig"}
11699	if s.LogGroupName == nil {
11700		invalidParams.Add(request.NewErrParamRequired("LogGroupName"))
11701	}
11702	if s.LogGroupName != nil && len(*s.LogGroupName) < 1 {
11703		invalidParams.Add(request.NewErrParamMinLen("LogGroupName", 1))
11704	}
11705	if s.LogRoleArn == nil {
11706		invalidParams.Add(request.NewErrParamRequired("LogRoleArn"))
11707	}
11708	if s.LogRoleArn != nil && len(*s.LogRoleArn) < 1 {
11709		invalidParams.Add(request.NewErrParamMinLen("LogRoleArn", 1))
11710	}
11711
11712	if invalidParams.Len() > 0 {
11713		return invalidParams
11714	}
11715	return nil
11716}
11717
11718// SetLogGroupName sets the LogGroupName field's value.
11719func (s *LoggingConfig) SetLogGroupName(v string) *LoggingConfig {
11720	s.LogGroupName = &v
11721	return s
11722}
11723
11724// SetLogRoleArn sets the LogRoleArn field's value.
11725func (s *LoggingConfig) SetLogRoleArn(v string) *LoggingConfig {
11726	s.LogRoleArn = &v
11727	return s
11728}
11729
11730// The Output data type.
11731type Output struct {
11732	_ struct{} `type:"structure"`
11733
11734	// User defined description associated with the output.
11735	Description *string `min:"1" type:"string"`
11736
11737	// The name of the export associated with the output.
11738	ExportName *string `type:"string"`
11739
11740	// The key associated with the output.
11741	OutputKey *string `type:"string"`
11742
11743	// The value associated with the output.
11744	OutputValue *string `type:"string"`
11745}
11746
11747// String returns the string representation
11748func (s Output) String() string {
11749	return awsutil.Prettify(s)
11750}
11751
11752// GoString returns the string representation
11753func (s Output) GoString() string {
11754	return s.String()
11755}
11756
11757// SetDescription sets the Description field's value.
11758func (s *Output) SetDescription(v string) *Output {
11759	s.Description = &v
11760	return s
11761}
11762
11763// SetExportName sets the ExportName field's value.
11764func (s *Output) SetExportName(v string) *Output {
11765	s.ExportName = &v
11766	return s
11767}
11768
11769// SetOutputKey sets the OutputKey field's value.
11770func (s *Output) SetOutputKey(v string) *Output {
11771	s.OutputKey = &v
11772	return s
11773}
11774
11775// SetOutputValue sets the OutputValue field's value.
11776func (s *Output) SetOutputValue(v string) *Output {
11777	s.OutputValue = &v
11778	return s
11779}
11780
11781// The Parameter data type.
11782type Parameter struct {
11783	_ struct{} `type:"structure"`
11784
11785	// The key associated with the parameter. If you don't specify a key and value
11786	// for a particular parameter, AWS CloudFormation uses the default value that
11787	// is specified in your template.
11788	ParameterKey *string `type:"string"`
11789
11790	// The input value associated with the parameter.
11791	ParameterValue *string `type:"string"`
11792
11793	// Read-only. The value that corresponds to a Systems Manager parameter key.
11794	// 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)
11795	// in the template.
11796	ResolvedValue *string `type:"string"`
11797
11798	// During a stack update, use the existing parameter value that the stack is
11799	// using for a given parameter key. If you specify true, do not specify a parameter
11800	// value.
11801	UsePreviousValue *bool `type:"boolean"`
11802}
11803
11804// String returns the string representation
11805func (s Parameter) String() string {
11806	return awsutil.Prettify(s)
11807}
11808
11809// GoString returns the string representation
11810func (s Parameter) GoString() string {
11811	return s.String()
11812}
11813
11814// SetParameterKey sets the ParameterKey field's value.
11815func (s *Parameter) SetParameterKey(v string) *Parameter {
11816	s.ParameterKey = &v
11817	return s
11818}
11819
11820// SetParameterValue sets the ParameterValue field's value.
11821func (s *Parameter) SetParameterValue(v string) *Parameter {
11822	s.ParameterValue = &v
11823	return s
11824}
11825
11826// SetResolvedValue sets the ResolvedValue field's value.
11827func (s *Parameter) SetResolvedValue(v string) *Parameter {
11828	s.ResolvedValue = &v
11829	return s
11830}
11831
11832// SetUsePreviousValue sets the UsePreviousValue field's value.
11833func (s *Parameter) SetUsePreviousValue(v bool) *Parameter {
11834	s.UsePreviousValue = &v
11835	return s
11836}
11837
11838// A set of criteria that AWS CloudFormation uses to validate parameter values.
11839// Although other constraints might be defined in the stack template, AWS CloudFormation
11840// returns only the AllowedValues property.
11841type ParameterConstraints struct {
11842	_ struct{} `type:"structure"`
11843
11844	// A list of values that are permitted for a parameter.
11845	AllowedValues []*string `type:"list"`
11846}
11847
11848// String returns the string representation
11849func (s ParameterConstraints) String() string {
11850	return awsutil.Prettify(s)
11851}
11852
11853// GoString returns the string representation
11854func (s ParameterConstraints) GoString() string {
11855	return s.String()
11856}
11857
11858// SetAllowedValues sets the AllowedValues field's value.
11859func (s *ParameterConstraints) SetAllowedValues(v []*string) *ParameterConstraints {
11860	s.AllowedValues = v
11861	return s
11862}
11863
11864// The ParameterDeclaration data type.
11865type ParameterDeclaration struct {
11866	_ struct{} `type:"structure"`
11867
11868	// The default value of the parameter.
11869	DefaultValue *string `type:"string"`
11870
11871	// The description that is associate with the parameter.
11872	Description *string `min:"1" type:"string"`
11873
11874	// Flag that indicates whether the parameter value is shown as plain text in
11875	// logs and in the AWS Management Console.
11876	NoEcho *bool `type:"boolean"`
11877
11878	// The criteria that AWS CloudFormation uses to validate parameter values.
11879	ParameterConstraints *ParameterConstraints `type:"structure"`
11880
11881	// The name that is associated with the parameter.
11882	ParameterKey *string `type:"string"`
11883
11884	// The type of parameter.
11885	ParameterType *string `type:"string"`
11886}
11887
11888// String returns the string representation
11889func (s ParameterDeclaration) String() string {
11890	return awsutil.Prettify(s)
11891}
11892
11893// GoString returns the string representation
11894func (s ParameterDeclaration) GoString() string {
11895	return s.String()
11896}
11897
11898// SetDefaultValue sets the DefaultValue field's value.
11899func (s *ParameterDeclaration) SetDefaultValue(v string) *ParameterDeclaration {
11900	s.DefaultValue = &v
11901	return s
11902}
11903
11904// SetDescription sets the Description field's value.
11905func (s *ParameterDeclaration) SetDescription(v string) *ParameterDeclaration {
11906	s.Description = &v
11907	return s
11908}
11909
11910// SetNoEcho sets the NoEcho field's value.
11911func (s *ParameterDeclaration) SetNoEcho(v bool) *ParameterDeclaration {
11912	s.NoEcho = &v
11913	return s
11914}
11915
11916// SetParameterConstraints sets the ParameterConstraints field's value.
11917func (s *ParameterDeclaration) SetParameterConstraints(v *ParameterConstraints) *ParameterDeclaration {
11918	s.ParameterConstraints = v
11919	return s
11920}
11921
11922// SetParameterKey sets the ParameterKey field's value.
11923func (s *ParameterDeclaration) SetParameterKey(v string) *ParameterDeclaration {
11924	s.ParameterKey = &v
11925	return s
11926}
11927
11928// SetParameterType sets the ParameterType field's value.
11929func (s *ParameterDeclaration) SetParameterType(v string) *ParameterDeclaration {
11930	s.ParameterType = &v
11931	return s
11932}
11933
11934// Context information that enables AWS CloudFormation to uniquely identify
11935// a resource. AWS CloudFormation uses context key-value pairs in cases where
11936// a resource's logical and physical IDs are not enough to uniquely identify
11937// that resource. Each context key-value pair specifies a resource that contains
11938// the targeted resource.
11939type PhysicalResourceIdContextKeyValuePair struct {
11940	_ struct{} `type:"structure"`
11941
11942	// The resource context key.
11943	//
11944	// Key is a required field
11945	Key *string `type:"string" required:"true"`
11946
11947	// The resource context value.
11948	//
11949	// Value is a required field
11950	Value *string `type:"string" required:"true"`
11951}
11952
11953// String returns the string representation
11954func (s PhysicalResourceIdContextKeyValuePair) String() string {
11955	return awsutil.Prettify(s)
11956}
11957
11958// GoString returns the string representation
11959func (s PhysicalResourceIdContextKeyValuePair) GoString() string {
11960	return s.String()
11961}
11962
11963// SetKey sets the Key field's value.
11964func (s *PhysicalResourceIdContextKeyValuePair) SetKey(v string) *PhysicalResourceIdContextKeyValuePair {
11965	s.Key = &v
11966	return s
11967}
11968
11969// SetValue sets the Value field's value.
11970func (s *PhysicalResourceIdContextKeyValuePair) SetValue(v string) *PhysicalResourceIdContextKeyValuePair {
11971	s.Value = &v
11972	return s
11973}
11974
11975// Information about a resource property whose actual value differs from its
11976// expected value, as defined in the stack template and any values specified
11977// as template parameters. These will be present only for resources whose StackResourceDriftStatus
11978// is MODIFIED. For more information, see Detecting Unregulated Configuration
11979// Changes to Stacks and Resources (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-stack-drift.html).
11980type PropertyDifference struct {
11981	_ struct{} `type:"structure"`
11982
11983	// The actual property value of the resource property.
11984	//
11985	// ActualValue is a required field
11986	ActualValue *string `type:"string" required:"true"`
11987
11988	// The type of property difference.
11989	//
11990	//    * ADD: A value has been added to a resource property that is an array
11991	//    or list data type.
11992	//
11993	//    * REMOVE: The property has been removed from the current resource configuration.
11994	//
11995	//    * NOT_EQUAL: The current property value differs from its expected value
11996	//    (as defined in the stack template and any values specified as template
11997	//    parameters).
11998	//
11999	// DifferenceType is a required field
12000	DifferenceType *string `type:"string" required:"true" enum:"DifferenceType"`
12001
12002	// The expected property value of the resource property, as defined in the stack
12003	// template and any values specified as template parameters.
12004	//
12005	// ExpectedValue is a required field
12006	ExpectedValue *string `type:"string" required:"true"`
12007
12008	// The fully-qualified path to the resource property.
12009	//
12010	// PropertyPath is a required field
12011	PropertyPath *string `type:"string" required:"true"`
12012}
12013
12014// String returns the string representation
12015func (s PropertyDifference) String() string {
12016	return awsutil.Prettify(s)
12017}
12018
12019// GoString returns the string representation
12020func (s PropertyDifference) GoString() string {
12021	return s.String()
12022}
12023
12024// SetActualValue sets the ActualValue field's value.
12025func (s *PropertyDifference) SetActualValue(v string) *PropertyDifference {
12026	s.ActualValue = &v
12027	return s
12028}
12029
12030// SetDifferenceType sets the DifferenceType field's value.
12031func (s *PropertyDifference) SetDifferenceType(v string) *PropertyDifference {
12032	s.DifferenceType = &v
12033	return s
12034}
12035
12036// SetExpectedValue sets the ExpectedValue field's value.
12037func (s *PropertyDifference) SetExpectedValue(v string) *PropertyDifference {
12038	s.ExpectedValue = &v
12039	return s
12040}
12041
12042// SetPropertyPath sets the PropertyPath field's value.
12043func (s *PropertyDifference) SetPropertyPath(v string) *PropertyDifference {
12044	s.PropertyPath = &v
12045	return s
12046}
12047
12048type RecordHandlerProgressInput struct {
12049	_ struct{} `type:"structure"`
12050
12051	// Reserved for use by the CloudFormation CLI (https://docs.aws.amazon.com/cloudformation-cli/latest/userguide/what-is-cloudformation-cli.html).
12052	//
12053	// BearerToken is a required field
12054	BearerToken *string `min:"1" type:"string" required:"true"`
12055
12056	// Reserved for use by the CloudFormation CLI (https://docs.aws.amazon.com/cloudformation-cli/latest/userguide/what-is-cloudformation-cli.html).
12057	ClientRequestToken *string `min:"1" type:"string"`
12058
12059	// Reserved for use by the CloudFormation CLI (https://docs.aws.amazon.com/cloudformation-cli/latest/userguide/what-is-cloudformation-cli.html).
12060	CurrentOperationStatus *string `type:"string" enum:"OperationStatus"`
12061
12062	// Reserved for use by the CloudFormation CLI (https://docs.aws.amazon.com/cloudformation-cli/latest/userguide/what-is-cloudformation-cli.html).
12063	ErrorCode *string `type:"string" enum:"HandlerErrorCode"`
12064
12065	// Reserved for use by the CloudFormation CLI (https://docs.aws.amazon.com/cloudformation-cli/latest/userguide/what-is-cloudformation-cli.html).
12066	//
12067	// OperationStatus is a required field
12068	OperationStatus *string `type:"string" required:"true" enum:"OperationStatus"`
12069
12070	// Reserved for use by the CloudFormation CLI (https://docs.aws.amazon.com/cloudformation-cli/latest/userguide/what-is-cloudformation-cli.html).
12071	ResourceModel *string `min:"1" type:"string"`
12072
12073	// Reserved for use by the CloudFormation CLI (https://docs.aws.amazon.com/cloudformation-cli/latest/userguide/what-is-cloudformation-cli.html).
12074	StatusMessage *string `type:"string"`
12075}
12076
12077// String returns the string representation
12078func (s RecordHandlerProgressInput) String() string {
12079	return awsutil.Prettify(s)
12080}
12081
12082// GoString returns the string representation
12083func (s RecordHandlerProgressInput) GoString() string {
12084	return s.String()
12085}
12086
12087// Validate inspects the fields of the type to determine if they are valid.
12088func (s *RecordHandlerProgressInput) Validate() error {
12089	invalidParams := request.ErrInvalidParams{Context: "RecordHandlerProgressInput"}
12090	if s.BearerToken == nil {
12091		invalidParams.Add(request.NewErrParamRequired("BearerToken"))
12092	}
12093	if s.BearerToken != nil && len(*s.BearerToken) < 1 {
12094		invalidParams.Add(request.NewErrParamMinLen("BearerToken", 1))
12095	}
12096	if s.ClientRequestToken != nil && len(*s.ClientRequestToken) < 1 {
12097		invalidParams.Add(request.NewErrParamMinLen("ClientRequestToken", 1))
12098	}
12099	if s.OperationStatus == nil {
12100		invalidParams.Add(request.NewErrParamRequired("OperationStatus"))
12101	}
12102	if s.ResourceModel != nil && len(*s.ResourceModel) < 1 {
12103		invalidParams.Add(request.NewErrParamMinLen("ResourceModel", 1))
12104	}
12105
12106	if invalidParams.Len() > 0 {
12107		return invalidParams
12108	}
12109	return nil
12110}
12111
12112// SetBearerToken sets the BearerToken field's value.
12113func (s *RecordHandlerProgressInput) SetBearerToken(v string) *RecordHandlerProgressInput {
12114	s.BearerToken = &v
12115	return s
12116}
12117
12118// SetClientRequestToken sets the ClientRequestToken field's value.
12119func (s *RecordHandlerProgressInput) SetClientRequestToken(v string) *RecordHandlerProgressInput {
12120	s.ClientRequestToken = &v
12121	return s
12122}
12123
12124// SetCurrentOperationStatus sets the CurrentOperationStatus field's value.
12125func (s *RecordHandlerProgressInput) SetCurrentOperationStatus(v string) *RecordHandlerProgressInput {
12126	s.CurrentOperationStatus = &v
12127	return s
12128}
12129
12130// SetErrorCode sets the ErrorCode field's value.
12131func (s *RecordHandlerProgressInput) SetErrorCode(v string) *RecordHandlerProgressInput {
12132	s.ErrorCode = &v
12133	return s
12134}
12135
12136// SetOperationStatus sets the OperationStatus field's value.
12137func (s *RecordHandlerProgressInput) SetOperationStatus(v string) *RecordHandlerProgressInput {
12138	s.OperationStatus = &v
12139	return s
12140}
12141
12142// SetResourceModel sets the ResourceModel field's value.
12143func (s *RecordHandlerProgressInput) SetResourceModel(v string) *RecordHandlerProgressInput {
12144	s.ResourceModel = &v
12145	return s
12146}
12147
12148// SetStatusMessage sets the StatusMessage field's value.
12149func (s *RecordHandlerProgressInput) SetStatusMessage(v string) *RecordHandlerProgressInput {
12150	s.StatusMessage = &v
12151	return s
12152}
12153
12154type RecordHandlerProgressOutput struct {
12155	_ struct{} `type:"structure"`
12156}
12157
12158// String returns the string representation
12159func (s RecordHandlerProgressOutput) String() string {
12160	return awsutil.Prettify(s)
12161}
12162
12163// GoString returns the string representation
12164func (s RecordHandlerProgressOutput) GoString() string {
12165	return s.String()
12166}
12167
12168type RegisterTypeInput struct {
12169	_ struct{} `type:"structure"`
12170
12171	// A unique identifier that acts as an idempotency key for this registration
12172	// request. Specifying a client request token prevents CloudFormation from generating
12173	// more than one version of a type from the same registeration request, even
12174	// if the request is submitted multiple times.
12175	ClientRequestToken *string `min:"1" type:"string"`
12176
12177	// The Amazon Resource Name (ARN) of the IAM role for CloudFormation to assume
12178	// when invoking the resource provider. If your resource type calls AWS APIs
12179	// in any of its handlers, you must create an IAM execution role (https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles.html)
12180	// that includes the necessary permissions to call those AWS APIs, and provision
12181	// that execution role in your account. When CloudFormation needs to invoke
12182	// the resource provider handler, CloudFormation assumes this execution role
12183	// to create a temporary session token, which it then passes to the resource
12184	// provider handler, thereby supplying your resource provider with the appropriate
12185	// credentials.
12186	ExecutionRoleArn *string `min:"1" type:"string"`
12187
12188	// Specifies logging configuration information for a type.
12189	LoggingConfig *LoggingConfig `type:"structure"`
12190
12191	// A url to the S3 bucket containing the schema handler package that contains
12192	// the schema, event handlers, and associated files for the type you want to
12193	// register.
12194	//
12195	// For information on generating a schema handler package for the type you want
12196	// to register, see submit (https://docs.aws.amazon.com/cloudformation-cli/latest/userguide/resource-type-cli-submit.html)
12197	// in the CloudFormation CLI User Guide.
12198	//
12199	// As part of registering a resource provider type, CloudFormation must be able
12200	// to access the S3 bucket which contains the schema handler package for that
12201	// resource provider. For more information, see IAM Permissions for Registering
12202	// a Resource Provider (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/registry.html#registry-register-permissions)
12203	// in the AWS CloudFormation User Guide.
12204	//
12205	// SchemaHandlerPackage is a required field
12206	SchemaHandlerPackage *string `min:"1" type:"string" required:"true"`
12207
12208	// The kind of type.
12209	//
12210	// Currently, the only valid value is RESOURCE.
12211	Type *string `type:"string" enum:"RegistryType"`
12212
12213	// The name of the type being registered.
12214	//
12215	// We recommend that type names adhere to the following pattern: company_or_organization::service::type.
12216	//
12217	// The following organization namespaces are reserved and cannot be used in
12218	// your resource type names:
12219	//
12220	//    * Alexa
12221	//
12222	//    * AMZN
12223	//
12224	//    * Amazon
12225	//
12226	//    * AWS
12227	//
12228	//    * Custom
12229	//
12230	//    * Dev
12231	//
12232	// TypeName is a required field
12233	TypeName *string `min:"10" type:"string" required:"true"`
12234}
12235
12236// String returns the string representation
12237func (s RegisterTypeInput) String() string {
12238	return awsutil.Prettify(s)
12239}
12240
12241// GoString returns the string representation
12242func (s RegisterTypeInput) GoString() string {
12243	return s.String()
12244}
12245
12246// Validate inspects the fields of the type to determine if they are valid.
12247func (s *RegisterTypeInput) Validate() error {
12248	invalidParams := request.ErrInvalidParams{Context: "RegisterTypeInput"}
12249	if s.ClientRequestToken != nil && len(*s.ClientRequestToken) < 1 {
12250		invalidParams.Add(request.NewErrParamMinLen("ClientRequestToken", 1))
12251	}
12252	if s.ExecutionRoleArn != nil && len(*s.ExecutionRoleArn) < 1 {
12253		invalidParams.Add(request.NewErrParamMinLen("ExecutionRoleArn", 1))
12254	}
12255	if s.SchemaHandlerPackage == nil {
12256		invalidParams.Add(request.NewErrParamRequired("SchemaHandlerPackage"))
12257	}
12258	if s.SchemaHandlerPackage != nil && len(*s.SchemaHandlerPackage) < 1 {
12259		invalidParams.Add(request.NewErrParamMinLen("SchemaHandlerPackage", 1))
12260	}
12261	if s.TypeName == nil {
12262		invalidParams.Add(request.NewErrParamRequired("TypeName"))
12263	}
12264	if s.TypeName != nil && len(*s.TypeName) < 10 {
12265		invalidParams.Add(request.NewErrParamMinLen("TypeName", 10))
12266	}
12267	if s.LoggingConfig != nil {
12268		if err := s.LoggingConfig.Validate(); err != nil {
12269			invalidParams.AddNested("LoggingConfig", err.(request.ErrInvalidParams))
12270		}
12271	}
12272
12273	if invalidParams.Len() > 0 {
12274		return invalidParams
12275	}
12276	return nil
12277}
12278
12279// SetClientRequestToken sets the ClientRequestToken field's value.
12280func (s *RegisterTypeInput) SetClientRequestToken(v string) *RegisterTypeInput {
12281	s.ClientRequestToken = &v
12282	return s
12283}
12284
12285// SetExecutionRoleArn sets the ExecutionRoleArn field's value.
12286func (s *RegisterTypeInput) SetExecutionRoleArn(v string) *RegisterTypeInput {
12287	s.ExecutionRoleArn = &v
12288	return s
12289}
12290
12291// SetLoggingConfig sets the LoggingConfig field's value.
12292func (s *RegisterTypeInput) SetLoggingConfig(v *LoggingConfig) *RegisterTypeInput {
12293	s.LoggingConfig = v
12294	return s
12295}
12296
12297// SetSchemaHandlerPackage sets the SchemaHandlerPackage field's value.
12298func (s *RegisterTypeInput) SetSchemaHandlerPackage(v string) *RegisterTypeInput {
12299	s.SchemaHandlerPackage = &v
12300	return s
12301}
12302
12303// SetType sets the Type field's value.
12304func (s *RegisterTypeInput) SetType(v string) *RegisterTypeInput {
12305	s.Type = &v
12306	return s
12307}
12308
12309// SetTypeName sets the TypeName field's value.
12310func (s *RegisterTypeInput) SetTypeName(v string) *RegisterTypeInput {
12311	s.TypeName = &v
12312	return s
12313}
12314
12315type RegisterTypeOutput struct {
12316	_ struct{} `type:"structure"`
12317
12318	// The identifier for this registration request.
12319	//
12320	// Use this registration token when calling DescribeTypeRegistration , which
12321	// returns information about the status and IDs of the type registration.
12322	RegistrationToken *string `min:"1" type:"string"`
12323}
12324
12325// String returns the string representation
12326func (s RegisterTypeOutput) String() string {
12327	return awsutil.Prettify(s)
12328}
12329
12330// GoString returns the string representation
12331func (s RegisterTypeOutput) GoString() string {
12332	return s.String()
12333}
12334
12335// SetRegistrationToken sets the RegistrationToken field's value.
12336func (s *RegisterTypeOutput) SetRegistrationToken(v string) *RegisterTypeOutput {
12337	s.RegistrationToken = &v
12338	return s
12339}
12340
12341// The ResourceChange structure describes the resource and the action that AWS
12342// CloudFormation will perform on it if you execute this change set.
12343type ResourceChange struct {
12344	_ struct{} `type:"structure"`
12345
12346	// The action that AWS CloudFormation takes on the resource, such as Add (adds
12347	// a new resource), Modify (changes a resource), or Remove (deletes a resource).
12348	Action *string `type:"string" enum:"ChangeAction"`
12349
12350	// For the Modify action, a list of ResourceChangeDetail structures that describes
12351	// the changes that AWS CloudFormation will make to the resource.
12352	Details []*ResourceChangeDetail `type:"list"`
12353
12354	// The resource's logical ID, which is defined in the stack's template.
12355	LogicalResourceId *string `type:"string"`
12356
12357	// The resource's physical ID (resource name). Resources that you are adding
12358	// don't have physical IDs because they haven't been created.
12359	PhysicalResourceId *string `type:"string"`
12360
12361	// For the Modify action, indicates whether AWS CloudFormation will replace
12362	// the resource by creating a new one and deleting the old one. This value depends
12363	// on the value of the RequiresRecreation property in the ResourceTargetDefinition
12364	// structure. For example, if the RequiresRecreation field is Always and the
12365	// Evaluation field is Static, Replacement is True. If the RequiresRecreation
12366	// field is Always and the Evaluation field is Dynamic, Replacement is Conditionally.
12367	//
12368	// If you have multiple changes with different RequiresRecreation values, the
12369	// Replacement value depends on the change with the most impact. A RequiresRecreation
12370	// value of Always has the most impact, followed by Conditionally, and then
12371	// Never.
12372	Replacement *string `type:"string" enum:"Replacement"`
12373
12374	// The type of AWS CloudFormation resource, such as AWS::S3::Bucket.
12375	ResourceType *string `min:"1" type:"string"`
12376
12377	// For the Modify action, indicates which resource attribute is triggering this
12378	// update, such as a change in the resource attribute's Metadata, Properties,
12379	// or Tags.
12380	Scope []*string `type:"list"`
12381}
12382
12383// String returns the string representation
12384func (s ResourceChange) String() string {
12385	return awsutil.Prettify(s)
12386}
12387
12388// GoString returns the string representation
12389func (s ResourceChange) GoString() string {
12390	return s.String()
12391}
12392
12393// SetAction sets the Action field's value.
12394func (s *ResourceChange) SetAction(v string) *ResourceChange {
12395	s.Action = &v
12396	return s
12397}
12398
12399// SetDetails sets the Details field's value.
12400func (s *ResourceChange) SetDetails(v []*ResourceChangeDetail) *ResourceChange {
12401	s.Details = v
12402	return s
12403}
12404
12405// SetLogicalResourceId sets the LogicalResourceId field's value.
12406func (s *ResourceChange) SetLogicalResourceId(v string) *ResourceChange {
12407	s.LogicalResourceId = &v
12408	return s
12409}
12410
12411// SetPhysicalResourceId sets the PhysicalResourceId field's value.
12412func (s *ResourceChange) SetPhysicalResourceId(v string) *ResourceChange {
12413	s.PhysicalResourceId = &v
12414	return s
12415}
12416
12417// SetReplacement sets the Replacement field's value.
12418func (s *ResourceChange) SetReplacement(v string) *ResourceChange {
12419	s.Replacement = &v
12420	return s
12421}
12422
12423// SetResourceType sets the ResourceType field's value.
12424func (s *ResourceChange) SetResourceType(v string) *ResourceChange {
12425	s.ResourceType = &v
12426	return s
12427}
12428
12429// SetScope sets the Scope field's value.
12430func (s *ResourceChange) SetScope(v []*string) *ResourceChange {
12431	s.Scope = v
12432	return s
12433}
12434
12435// For a resource with Modify as the action, the ResourceChange structure describes
12436// the changes AWS CloudFormation will make to that resource.
12437type ResourceChangeDetail struct {
12438	_ struct{} `type:"structure"`
12439
12440	// The identity of the entity that triggered this change. This entity is a member
12441	// of the group that is specified by the ChangeSource field. For example, if
12442	// you modified the value of the KeyPairName parameter, the CausingEntity is
12443	// the name of the parameter (KeyPairName).
12444	//
12445	// If the ChangeSource value is DirectModification, no value is given for CausingEntity.
12446	CausingEntity *string `type:"string"`
12447
12448	// The group to which the CausingEntity value belongs. There are five entity
12449	// groups:
12450	//
12451	//    * ResourceReference entities are Ref intrinsic functions that refer to
12452	//    resources in the template, such as { "Ref" : "MyEC2InstanceResource" }.
12453	//
12454	//    * ParameterReference entities are Ref intrinsic functions that get template
12455	//    parameter values, such as { "Ref" : "MyPasswordParameter" }.
12456	//
12457	//    * ResourceAttribute entities are Fn::GetAtt intrinsic functions that get
12458	//    resource attribute values, such as { "Fn::GetAtt" : [ "MyEC2InstanceResource",
12459	//    "PublicDnsName" ] }.
12460	//
12461	//    * DirectModification entities are changes that are made directly to the
12462	//    template.
12463	//
12464	//    * Automatic entities are AWS::CloudFormation::Stack resource types, which
12465	//    are also known as nested stacks. If you made no changes to the AWS::CloudFormation::Stack
12466	//    resource, AWS CloudFormation sets the ChangeSource to Automatic because
12467	//    the nested stack's template might have changed. Changes to a nested stack's
12468	//    template aren't visible to AWS CloudFormation until you run an update
12469	//    on the parent stack.
12470	ChangeSource *string `type:"string" enum:"ChangeSource"`
12471
12472	// Indicates whether AWS CloudFormation can determine the target value, and
12473	// whether the target value will change before you execute a change set.
12474	//
12475	// For Static evaluations, AWS CloudFormation can determine that the target
12476	// value will change, and its value. For example, if you directly modify the
12477	// InstanceType property of an EC2 instance, AWS CloudFormation knows that this
12478	// property value will change, and its value, so this is a Static evaluation.
12479	//
12480	// For Dynamic evaluations, cannot determine the target value because it depends
12481	// on the result of an intrinsic function, such as a Ref or Fn::GetAtt intrinsic
12482	// function, when the stack is updated. For example, if your template includes
12483	// a reference to a resource that is conditionally recreated, the value of the
12484	// reference (the physical ID of the resource) might change, depending on if
12485	// the resource is recreated. If the resource is recreated, it will have a new
12486	// physical ID, so all references to that resource will also be updated.
12487	Evaluation *string `type:"string" enum:"EvaluationType"`
12488
12489	// A ResourceTargetDefinition structure that describes the field that AWS CloudFormation
12490	// will change and whether the resource will be recreated.
12491	Target *ResourceTargetDefinition `type:"structure"`
12492}
12493
12494// String returns the string representation
12495func (s ResourceChangeDetail) String() string {
12496	return awsutil.Prettify(s)
12497}
12498
12499// GoString returns the string representation
12500func (s ResourceChangeDetail) GoString() string {
12501	return s.String()
12502}
12503
12504// SetCausingEntity sets the CausingEntity field's value.
12505func (s *ResourceChangeDetail) SetCausingEntity(v string) *ResourceChangeDetail {
12506	s.CausingEntity = &v
12507	return s
12508}
12509
12510// SetChangeSource sets the ChangeSource field's value.
12511func (s *ResourceChangeDetail) SetChangeSource(v string) *ResourceChangeDetail {
12512	s.ChangeSource = &v
12513	return s
12514}
12515
12516// SetEvaluation sets the Evaluation field's value.
12517func (s *ResourceChangeDetail) SetEvaluation(v string) *ResourceChangeDetail {
12518	s.Evaluation = &v
12519	return s
12520}
12521
12522// SetTarget sets the Target field's value.
12523func (s *ResourceChangeDetail) SetTarget(v *ResourceTargetDefinition) *ResourceChangeDetail {
12524	s.Target = v
12525	return s
12526}
12527
12528// Describes the target resources of a specific type in your import template
12529// (for example, all AWS::S3::Bucket resources) and the properties you can provide
12530// during the import to identify resources of that type.
12531type ResourceIdentifierSummary struct {
12532	_ struct{} `type:"structure"`
12533
12534	// The logical IDs of the target resources of the specified ResourceType, as
12535	// defined in the import template.
12536	LogicalResourceIds []*string `min:"1" type:"list"`
12537
12538	// The resource properties you can provide during the import to identify your
12539	// target resources. For example, BucketName is a possible identifier property
12540	// for AWS::S3::Bucket resources.
12541	ResourceIdentifiers []*string `type:"list"`
12542
12543	// The template resource type of the target resources, such as AWS::S3::Bucket.
12544	ResourceType *string `min:"1" type:"string"`
12545}
12546
12547// String returns the string representation
12548func (s ResourceIdentifierSummary) String() string {
12549	return awsutil.Prettify(s)
12550}
12551
12552// GoString returns the string representation
12553func (s ResourceIdentifierSummary) GoString() string {
12554	return s.String()
12555}
12556
12557// SetLogicalResourceIds sets the LogicalResourceIds field's value.
12558func (s *ResourceIdentifierSummary) SetLogicalResourceIds(v []*string) *ResourceIdentifierSummary {
12559	s.LogicalResourceIds = v
12560	return s
12561}
12562
12563// SetResourceIdentifiers sets the ResourceIdentifiers field's value.
12564func (s *ResourceIdentifierSummary) SetResourceIdentifiers(v []*string) *ResourceIdentifierSummary {
12565	s.ResourceIdentifiers = v
12566	return s
12567}
12568
12569// SetResourceType sets the ResourceType field's value.
12570func (s *ResourceIdentifierSummary) SetResourceType(v string) *ResourceIdentifierSummary {
12571	s.ResourceType = &v
12572	return s
12573}
12574
12575// The field that AWS CloudFormation will change, such as the name of a resource's
12576// property, and whether the resource will be recreated.
12577type ResourceTargetDefinition struct {
12578	_ struct{} `type:"structure"`
12579
12580	// Indicates which resource attribute is triggering this update, such as a change
12581	// in the resource attribute's Metadata, Properties, or Tags.
12582	Attribute *string `type:"string" enum:"ResourceAttribute"`
12583
12584	// If the Attribute value is Properties, the name of the property. For all other
12585	// attributes, the value is null.
12586	Name *string `type:"string"`
12587
12588	// If the Attribute value is Properties, indicates whether a change to this
12589	// property causes the resource to be recreated. The value can be Never, Always,
12590	// or Conditionally. To determine the conditions for a Conditionally recreation,
12591	// see the update behavior for that property (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-template-resource-type-ref.html)
12592	// in the AWS CloudFormation User Guide.
12593	RequiresRecreation *string `type:"string" enum:"RequiresRecreation"`
12594}
12595
12596// String returns the string representation
12597func (s ResourceTargetDefinition) String() string {
12598	return awsutil.Prettify(s)
12599}
12600
12601// GoString returns the string representation
12602func (s ResourceTargetDefinition) GoString() string {
12603	return s.String()
12604}
12605
12606// SetAttribute sets the Attribute field's value.
12607func (s *ResourceTargetDefinition) SetAttribute(v string) *ResourceTargetDefinition {
12608	s.Attribute = &v
12609	return s
12610}
12611
12612// SetName sets the Name field's value.
12613func (s *ResourceTargetDefinition) SetName(v string) *ResourceTargetDefinition {
12614	s.Name = &v
12615	return s
12616}
12617
12618// SetRequiresRecreation sets the RequiresRecreation field's value.
12619func (s *ResourceTargetDefinition) SetRequiresRecreation(v string) *ResourceTargetDefinition {
12620	s.RequiresRecreation = &v
12621	return s
12622}
12623
12624// Describes the target resource of an import operation.
12625type ResourceToImport struct {
12626	_ struct{} `type:"structure"`
12627
12628	// The logical ID of the target resource as specified in the template.
12629	//
12630	// LogicalResourceId is a required field
12631	LogicalResourceId *string `type:"string" required:"true"`
12632
12633	// A key-value pair that identifies the target resource. The key is an identifier
12634	// property (for example, BucketName for AWS::S3::Bucket resources) and the
12635	// value is the actual property value (for example, MyS3Bucket).
12636	//
12637	// ResourceIdentifier is a required field
12638	ResourceIdentifier map[string]*string `min:"1" type:"map" required:"true"`
12639
12640	// The type of resource to import into your stack, such as AWS::S3::Bucket.
12641	// For a list of supported resource types, see Resources that support import
12642	// operations (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/resource-import-supported-resources.html)
12643	// in the AWS CloudFormation User Guide.
12644	//
12645	// ResourceType is a required field
12646	ResourceType *string `min:"1" type:"string" required:"true"`
12647}
12648
12649// String returns the string representation
12650func (s ResourceToImport) String() string {
12651	return awsutil.Prettify(s)
12652}
12653
12654// GoString returns the string representation
12655func (s ResourceToImport) GoString() string {
12656	return s.String()
12657}
12658
12659// Validate inspects the fields of the type to determine if they are valid.
12660func (s *ResourceToImport) Validate() error {
12661	invalidParams := request.ErrInvalidParams{Context: "ResourceToImport"}
12662	if s.LogicalResourceId == nil {
12663		invalidParams.Add(request.NewErrParamRequired("LogicalResourceId"))
12664	}
12665	if s.ResourceIdentifier == nil {
12666		invalidParams.Add(request.NewErrParamRequired("ResourceIdentifier"))
12667	}
12668	if s.ResourceIdentifier != nil && len(s.ResourceIdentifier) < 1 {
12669		invalidParams.Add(request.NewErrParamMinLen("ResourceIdentifier", 1))
12670	}
12671	if s.ResourceType == nil {
12672		invalidParams.Add(request.NewErrParamRequired("ResourceType"))
12673	}
12674	if s.ResourceType != nil && len(*s.ResourceType) < 1 {
12675		invalidParams.Add(request.NewErrParamMinLen("ResourceType", 1))
12676	}
12677
12678	if invalidParams.Len() > 0 {
12679		return invalidParams
12680	}
12681	return nil
12682}
12683
12684// SetLogicalResourceId sets the LogicalResourceId field's value.
12685func (s *ResourceToImport) SetLogicalResourceId(v string) *ResourceToImport {
12686	s.LogicalResourceId = &v
12687	return s
12688}
12689
12690// SetResourceIdentifier sets the ResourceIdentifier field's value.
12691func (s *ResourceToImport) SetResourceIdentifier(v map[string]*string) *ResourceToImport {
12692	s.ResourceIdentifier = v
12693	return s
12694}
12695
12696// SetResourceType sets the ResourceType field's value.
12697func (s *ResourceToImport) SetResourceType(v string) *ResourceToImport {
12698	s.ResourceType = &v
12699	return s
12700}
12701
12702// Structure containing the rollback triggers for AWS CloudFormation to monitor
12703// during stack creation and updating operations, and for the specified monitoring
12704// period afterwards.
12705//
12706// Rollback triggers enable you to have AWS CloudFormation monitor the state
12707// of your application during stack creation and updating, and to roll back
12708// that operation if the application breaches the threshold of any of the alarms
12709// you've specified. For more information, see Monitor and Roll Back Stack Operations
12710// (http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-rollback-triggers.html).
12711type RollbackConfiguration struct {
12712	_ struct{} `type:"structure"`
12713
12714	// The amount of time, in minutes, during which CloudFormation should monitor
12715	// all the rollback triggers after the stack creation or update operation deploys
12716	// all necessary resources.
12717	//
12718	// The default is 0 minutes.
12719	//
12720	// If you specify a monitoring period but do not specify any rollback triggers,
12721	// CloudFormation still waits the specified period of time before cleaning up
12722	// old resources after update operations. You can use this monitoring period
12723	// to perform any manual stack validation desired, and manually cancel the stack
12724	// creation or update (using CancelUpdateStack (https://docs.aws.amazon.com/AWSCloudFormation/latest/APIReference/API_CancelUpdateStack.html),
12725	// for example) as necessary.
12726	//
12727	// If you specify 0 for this parameter, CloudFormation still monitors the specified
12728	// rollback triggers during stack creation and update operations. Then, for
12729	// update operations, it begins disposing of old resources immediately once
12730	// the operation completes.
12731	MonitoringTimeInMinutes *int64 `type:"integer"`
12732
12733	// The triggers to monitor during stack creation or update actions.
12734	//
12735	// By default, AWS CloudFormation saves the rollback triggers specified for
12736	// a stack and applies them to any subsequent update operations for the stack,
12737	// unless you specify otherwise. If you do specify rollback triggers for this
12738	// parameter, those triggers replace any list of triggers previously specified
12739	// for the stack. This means:
12740	//
12741	//    * To use the rollback triggers previously specified for this stack, if
12742	//    any, don't specify this parameter.
12743	//
12744	//    * To specify new or updated rollback triggers, you must specify all the
12745	//    triggers that you want used for this stack, even triggers you've specifed
12746	//    before (for example, when creating the stack or during a previous stack
12747	//    update). Any triggers that you don't include in the updated list of triggers
12748	//    are no longer applied to the stack.
12749	//
12750	//    * To remove all currently specified triggers, specify an empty list for
12751	//    this parameter.
12752	//
12753	// If a specified trigger is missing, the entire stack operation fails and is
12754	// rolled back.
12755	RollbackTriggers []*RollbackTrigger `type:"list"`
12756}
12757
12758// String returns the string representation
12759func (s RollbackConfiguration) String() string {
12760	return awsutil.Prettify(s)
12761}
12762
12763// GoString returns the string representation
12764func (s RollbackConfiguration) GoString() string {
12765	return s.String()
12766}
12767
12768// Validate inspects the fields of the type to determine if they are valid.
12769func (s *RollbackConfiguration) Validate() error {
12770	invalidParams := request.ErrInvalidParams{Context: "RollbackConfiguration"}
12771	if s.RollbackTriggers != nil {
12772		for i, v := range s.RollbackTriggers {
12773			if v == nil {
12774				continue
12775			}
12776			if err := v.Validate(); err != nil {
12777				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "RollbackTriggers", i), err.(request.ErrInvalidParams))
12778			}
12779		}
12780	}
12781
12782	if invalidParams.Len() > 0 {
12783		return invalidParams
12784	}
12785	return nil
12786}
12787
12788// SetMonitoringTimeInMinutes sets the MonitoringTimeInMinutes field's value.
12789func (s *RollbackConfiguration) SetMonitoringTimeInMinutes(v int64) *RollbackConfiguration {
12790	s.MonitoringTimeInMinutes = &v
12791	return s
12792}
12793
12794// SetRollbackTriggers sets the RollbackTriggers field's value.
12795func (s *RollbackConfiguration) SetRollbackTriggers(v []*RollbackTrigger) *RollbackConfiguration {
12796	s.RollbackTriggers = v
12797	return s
12798}
12799
12800// A rollback trigger AWS CloudFormation monitors during creation and updating
12801// of stacks. If any of the alarms you specify goes to ALARM state during the
12802// stack operation or within the specified monitoring period afterwards, CloudFormation
12803// rolls back the entire stack operation.
12804type RollbackTrigger struct {
12805	_ struct{} `type:"structure"`
12806
12807	// The Amazon Resource Name (ARN) of the rollback trigger.
12808	//
12809	// If a specified trigger is missing, the entire stack operation fails and is
12810	// rolled back.
12811	//
12812	// Arn is a required field
12813	Arn *string `type:"string" required:"true"`
12814
12815	// The resource type of the rollback trigger. Currently, AWS::CloudWatch::Alarm
12816	// (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cw-alarm.html)
12817	// is the only supported resource type.
12818	//
12819	// Type is a required field
12820	Type *string `type:"string" required:"true"`
12821}
12822
12823// String returns the string representation
12824func (s RollbackTrigger) String() string {
12825	return awsutil.Prettify(s)
12826}
12827
12828// GoString returns the string representation
12829func (s RollbackTrigger) GoString() string {
12830	return s.String()
12831}
12832
12833// Validate inspects the fields of the type to determine if they are valid.
12834func (s *RollbackTrigger) Validate() error {
12835	invalidParams := request.ErrInvalidParams{Context: "RollbackTrigger"}
12836	if s.Arn == nil {
12837		invalidParams.Add(request.NewErrParamRequired("Arn"))
12838	}
12839	if s.Type == nil {
12840		invalidParams.Add(request.NewErrParamRequired("Type"))
12841	}
12842
12843	if invalidParams.Len() > 0 {
12844		return invalidParams
12845	}
12846	return nil
12847}
12848
12849// SetArn sets the Arn field's value.
12850func (s *RollbackTrigger) SetArn(v string) *RollbackTrigger {
12851	s.Arn = &v
12852	return s
12853}
12854
12855// SetType sets the Type field's value.
12856func (s *RollbackTrigger) SetType(v string) *RollbackTrigger {
12857	s.Type = &v
12858	return s
12859}
12860
12861// The input for the SetStackPolicy action.
12862type SetStackPolicyInput struct {
12863	_ struct{} `type:"structure"`
12864
12865	// The name or unique stack ID that you want to associate a policy with.
12866	//
12867	// StackName is a required field
12868	StackName *string `type:"string" required:"true"`
12869
12870	// Structure containing the stack policy body. For more information, go to Prevent
12871	// Updates to Stack Resources (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/protect-stack-resources.html)
12872	// in the AWS CloudFormation User Guide. You can specify either the StackPolicyBody
12873	// or the StackPolicyURL parameter, but not both.
12874	StackPolicyBody *string `min:"1" type:"string"`
12875
12876	// Location of a file containing the stack policy. The URL must point to a policy
12877	// (maximum size: 16 KB) located in an S3 bucket in the same Region as the stack.
12878	// You can specify either the StackPolicyBody or the StackPolicyURL parameter,
12879	// but not both.
12880	StackPolicyURL *string `min:"1" type:"string"`
12881}
12882
12883// String returns the string representation
12884func (s SetStackPolicyInput) String() string {
12885	return awsutil.Prettify(s)
12886}
12887
12888// GoString returns the string representation
12889func (s SetStackPolicyInput) GoString() string {
12890	return s.String()
12891}
12892
12893// Validate inspects the fields of the type to determine if they are valid.
12894func (s *SetStackPolicyInput) Validate() error {
12895	invalidParams := request.ErrInvalidParams{Context: "SetStackPolicyInput"}
12896	if s.StackName == nil {
12897		invalidParams.Add(request.NewErrParamRequired("StackName"))
12898	}
12899	if s.StackPolicyBody != nil && len(*s.StackPolicyBody) < 1 {
12900		invalidParams.Add(request.NewErrParamMinLen("StackPolicyBody", 1))
12901	}
12902	if s.StackPolicyURL != nil && len(*s.StackPolicyURL) < 1 {
12903		invalidParams.Add(request.NewErrParamMinLen("StackPolicyURL", 1))
12904	}
12905
12906	if invalidParams.Len() > 0 {
12907		return invalidParams
12908	}
12909	return nil
12910}
12911
12912// SetStackName sets the StackName field's value.
12913func (s *SetStackPolicyInput) SetStackName(v string) *SetStackPolicyInput {
12914	s.StackName = &v
12915	return s
12916}
12917
12918// SetStackPolicyBody sets the StackPolicyBody field's value.
12919func (s *SetStackPolicyInput) SetStackPolicyBody(v string) *SetStackPolicyInput {
12920	s.StackPolicyBody = &v
12921	return s
12922}
12923
12924// SetStackPolicyURL sets the StackPolicyURL field's value.
12925func (s *SetStackPolicyInput) SetStackPolicyURL(v string) *SetStackPolicyInput {
12926	s.StackPolicyURL = &v
12927	return s
12928}
12929
12930type SetStackPolicyOutput struct {
12931	_ struct{} `type:"structure"`
12932}
12933
12934// String returns the string representation
12935func (s SetStackPolicyOutput) String() string {
12936	return awsutil.Prettify(s)
12937}
12938
12939// GoString returns the string representation
12940func (s SetStackPolicyOutput) GoString() string {
12941	return s.String()
12942}
12943
12944type SetTypeDefaultVersionInput struct {
12945	_ struct{} `type:"structure"`
12946
12947	// The Amazon Resource Name (ARN) of the type for which you want version summary
12948	// information.
12949	//
12950	// Conditional: You must specify either TypeName and Type, or Arn.
12951	Arn *string `type:"string"`
12952
12953	// The kind of type.
12954	//
12955	// Conditional: You must specify either TypeName and Type, or Arn.
12956	Type *string `type:"string" enum:"RegistryType"`
12957
12958	// The name of the type.
12959	//
12960	// Conditional: You must specify either TypeName and Type, or Arn.
12961	TypeName *string `min:"10" type:"string"`
12962
12963	// The ID of a specific version of the type. The version ID is the value at
12964	// the end of the Amazon Resource Name (ARN) assigned to the type version when
12965	// it is registered.
12966	VersionId *string `min:"1" type:"string"`
12967}
12968
12969// String returns the string representation
12970func (s SetTypeDefaultVersionInput) String() string {
12971	return awsutil.Prettify(s)
12972}
12973
12974// GoString returns the string representation
12975func (s SetTypeDefaultVersionInput) GoString() string {
12976	return s.String()
12977}
12978
12979// Validate inspects the fields of the type to determine if they are valid.
12980func (s *SetTypeDefaultVersionInput) Validate() error {
12981	invalidParams := request.ErrInvalidParams{Context: "SetTypeDefaultVersionInput"}
12982	if s.TypeName != nil && len(*s.TypeName) < 10 {
12983		invalidParams.Add(request.NewErrParamMinLen("TypeName", 10))
12984	}
12985	if s.VersionId != nil && len(*s.VersionId) < 1 {
12986		invalidParams.Add(request.NewErrParamMinLen("VersionId", 1))
12987	}
12988
12989	if invalidParams.Len() > 0 {
12990		return invalidParams
12991	}
12992	return nil
12993}
12994
12995// SetArn sets the Arn field's value.
12996func (s *SetTypeDefaultVersionInput) SetArn(v string) *SetTypeDefaultVersionInput {
12997	s.Arn = &v
12998	return s
12999}
13000
13001// SetType sets the Type field's value.
13002func (s *SetTypeDefaultVersionInput) SetType(v string) *SetTypeDefaultVersionInput {
13003	s.Type = &v
13004	return s
13005}
13006
13007// SetTypeName sets the TypeName field's value.
13008func (s *SetTypeDefaultVersionInput) SetTypeName(v string) *SetTypeDefaultVersionInput {
13009	s.TypeName = &v
13010	return s
13011}
13012
13013// SetVersionId sets the VersionId field's value.
13014func (s *SetTypeDefaultVersionInput) SetVersionId(v string) *SetTypeDefaultVersionInput {
13015	s.VersionId = &v
13016	return s
13017}
13018
13019type SetTypeDefaultVersionOutput struct {
13020	_ struct{} `type:"structure"`
13021}
13022
13023// String returns the string representation
13024func (s SetTypeDefaultVersionOutput) String() string {
13025	return awsutil.Prettify(s)
13026}
13027
13028// GoString returns the string representation
13029func (s SetTypeDefaultVersionOutput) GoString() string {
13030	return s.String()
13031}
13032
13033// The input for the SignalResource action.
13034type SignalResourceInput struct {
13035	_ struct{} `type:"structure"`
13036
13037	// The logical ID of the resource that you want to signal. The logical ID is
13038	// the name of the resource that given in the template.
13039	//
13040	// LogicalResourceId is a required field
13041	LogicalResourceId *string `type:"string" required:"true"`
13042
13043	// The stack name or unique stack ID that includes the resource that you want
13044	// to signal.
13045	//
13046	// StackName is a required field
13047	StackName *string `min:"1" type:"string" required:"true"`
13048
13049	// The status of the signal, which is either success or failure. A failure signal
13050	// causes AWS CloudFormation to immediately fail the stack creation or update.
13051	//
13052	// Status is a required field
13053	Status *string `type:"string" required:"true" enum:"ResourceSignalStatus"`
13054
13055	// A unique ID of the signal. When you signal Amazon EC2 instances or Auto Scaling
13056	// groups, specify the instance ID that you are signaling as the unique ID.
13057	// If you send multiple signals to a single resource (such as signaling a wait
13058	// condition), each signal requires a different unique ID.
13059	//
13060	// UniqueId is a required field
13061	UniqueId *string `min:"1" type:"string" required:"true"`
13062}
13063
13064// String returns the string representation
13065func (s SignalResourceInput) String() string {
13066	return awsutil.Prettify(s)
13067}
13068
13069// GoString returns the string representation
13070func (s SignalResourceInput) GoString() string {
13071	return s.String()
13072}
13073
13074// Validate inspects the fields of the type to determine if they are valid.
13075func (s *SignalResourceInput) Validate() error {
13076	invalidParams := request.ErrInvalidParams{Context: "SignalResourceInput"}
13077	if s.LogicalResourceId == nil {
13078		invalidParams.Add(request.NewErrParamRequired("LogicalResourceId"))
13079	}
13080	if s.StackName == nil {
13081		invalidParams.Add(request.NewErrParamRequired("StackName"))
13082	}
13083	if s.StackName != nil && len(*s.StackName) < 1 {
13084		invalidParams.Add(request.NewErrParamMinLen("StackName", 1))
13085	}
13086	if s.Status == nil {
13087		invalidParams.Add(request.NewErrParamRequired("Status"))
13088	}
13089	if s.UniqueId == nil {
13090		invalidParams.Add(request.NewErrParamRequired("UniqueId"))
13091	}
13092	if s.UniqueId != nil && len(*s.UniqueId) < 1 {
13093		invalidParams.Add(request.NewErrParamMinLen("UniqueId", 1))
13094	}
13095
13096	if invalidParams.Len() > 0 {
13097		return invalidParams
13098	}
13099	return nil
13100}
13101
13102// SetLogicalResourceId sets the LogicalResourceId field's value.
13103func (s *SignalResourceInput) SetLogicalResourceId(v string) *SignalResourceInput {
13104	s.LogicalResourceId = &v
13105	return s
13106}
13107
13108// SetStackName sets the StackName field's value.
13109func (s *SignalResourceInput) SetStackName(v string) *SignalResourceInput {
13110	s.StackName = &v
13111	return s
13112}
13113
13114// SetStatus sets the Status field's value.
13115func (s *SignalResourceInput) SetStatus(v string) *SignalResourceInput {
13116	s.Status = &v
13117	return s
13118}
13119
13120// SetUniqueId sets the UniqueId field's value.
13121func (s *SignalResourceInput) SetUniqueId(v string) *SignalResourceInput {
13122	s.UniqueId = &v
13123	return s
13124}
13125
13126type SignalResourceOutput struct {
13127	_ struct{} `type:"structure"`
13128}
13129
13130// String returns the string representation
13131func (s SignalResourceOutput) String() string {
13132	return awsutil.Prettify(s)
13133}
13134
13135// GoString returns the string representation
13136func (s SignalResourceOutput) GoString() string {
13137	return s.String()
13138}
13139
13140// The Stack data type.
13141type Stack struct {
13142	_ struct{} `type:"structure"`
13143
13144	// The capabilities allowed in the stack.
13145	Capabilities []*string `type:"list"`
13146
13147	// The unique ID of the change set.
13148	ChangeSetId *string `min:"1" type:"string"`
13149
13150	// The time at which the stack was created.
13151	//
13152	// CreationTime is a required field
13153	CreationTime *time.Time `type:"timestamp" required:"true"`
13154
13155	// The time the stack was deleted.
13156	DeletionTime *time.Time `type:"timestamp"`
13157
13158	// A user-defined description associated with the stack.
13159	Description *string `min:"1" type:"string"`
13160
13161	// Boolean to enable or disable rollback on stack creation failures:
13162	//
13163	//    * true: disable rollback
13164	//
13165	//    * false: enable rollback
13166	DisableRollback *bool `type:"boolean"`
13167
13168	// Information on whether a stack's actual configuration differs, or has drifted,
13169	// from it's expected configuration, as defined in the stack template and any
13170	// values specified as template parameters. For more information, see Detecting
13171	// Unregulated Configuration Changes to Stacks and Resources (http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-stack-drift.html).
13172	DriftInformation *StackDriftInformation `type:"structure"`
13173
13174	// Whether termination protection is enabled for the stack.
13175	//
13176	// For nested stacks (http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-nested-stacks.html),
13177	// termination protection is set on the root stack and cannot be changed directly
13178	// on the nested stack. For more information, see Protecting a Stack From Being
13179	// Deleted (http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-protect-stacks.html)
13180	// in the AWS CloudFormation User Guide.
13181	EnableTerminationProtection *bool `type:"boolean"`
13182
13183	// The time the stack was last updated. This field will only be returned if
13184	// the stack has been updated at least once.
13185	LastUpdatedTime *time.Time `type:"timestamp"`
13186
13187	// SNS topic ARNs to which stack related events are published.
13188	NotificationARNs []*string `type:"list"`
13189
13190	// A list of output structures.
13191	Outputs []*Output `type:"list"`
13192
13193	// A list of Parameter structures.
13194	Parameters []*Parameter `type:"list"`
13195
13196	// For nested stacks--stacks created as resources for another stack--the stack
13197	// ID of the direct parent of this stack. For the first level of nested stacks,
13198	// the root stack is also the parent stack.
13199	//
13200	// For more information, see Working with Nested Stacks (http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-nested-stacks.html)
13201	// in the AWS CloudFormation User Guide.
13202	ParentId *string `type:"string"`
13203
13204	// The Amazon Resource Name (ARN) of an AWS Identity and Access Management (IAM)
13205	// role that is associated with the stack. During a stack operation, AWS CloudFormation
13206	// uses this role's credentials to make calls on your behalf.
13207	RoleARN *string `min:"20" type:"string"`
13208
13209	// The rollback triggers for AWS CloudFormation to monitor during stack creation
13210	// and updating operations, and for the specified monitoring period afterwards.
13211	RollbackConfiguration *RollbackConfiguration `type:"structure"`
13212
13213	// For nested stacks--stacks created as resources for another stack--the stack
13214	// ID of the top-level stack to which the nested stack ultimately belongs.
13215	//
13216	// For more information, see Working with Nested Stacks (http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-nested-stacks.html)
13217	// in the AWS CloudFormation User Guide.
13218	RootId *string `type:"string"`
13219
13220	// Unique identifier of the stack.
13221	StackId *string `type:"string"`
13222
13223	// The name associated with the stack.
13224	//
13225	// StackName is a required field
13226	StackName *string `type:"string" required:"true"`
13227
13228	// Current status of the stack.
13229	//
13230	// StackStatus is a required field
13231	StackStatus *string `type:"string" required:"true" enum:"StackStatus"`
13232
13233	// Success/failure message associated with the stack status.
13234	StackStatusReason *string `type:"string"`
13235
13236	// A list of Tags that specify information about the stack.
13237	Tags []*Tag `type:"list"`
13238
13239	// The amount of time within which stack creation should complete.
13240	TimeoutInMinutes *int64 `min:"1" type:"integer"`
13241}
13242
13243// String returns the string representation
13244func (s Stack) String() string {
13245	return awsutil.Prettify(s)
13246}
13247
13248// GoString returns the string representation
13249func (s Stack) GoString() string {
13250	return s.String()
13251}
13252
13253// SetCapabilities sets the Capabilities field's value.
13254func (s *Stack) SetCapabilities(v []*string) *Stack {
13255	s.Capabilities = v
13256	return s
13257}
13258
13259// SetChangeSetId sets the ChangeSetId field's value.
13260func (s *Stack) SetChangeSetId(v string) *Stack {
13261	s.ChangeSetId = &v
13262	return s
13263}
13264
13265// SetCreationTime sets the CreationTime field's value.
13266func (s *Stack) SetCreationTime(v time.Time) *Stack {
13267	s.CreationTime = &v
13268	return s
13269}
13270
13271// SetDeletionTime sets the DeletionTime field's value.
13272func (s *Stack) SetDeletionTime(v time.Time) *Stack {
13273	s.DeletionTime = &v
13274	return s
13275}
13276
13277// SetDescription sets the Description field's value.
13278func (s *Stack) SetDescription(v string) *Stack {
13279	s.Description = &v
13280	return s
13281}
13282
13283// SetDisableRollback sets the DisableRollback field's value.
13284func (s *Stack) SetDisableRollback(v bool) *Stack {
13285	s.DisableRollback = &v
13286	return s
13287}
13288
13289// SetDriftInformation sets the DriftInformation field's value.
13290func (s *Stack) SetDriftInformation(v *StackDriftInformation) *Stack {
13291	s.DriftInformation = v
13292	return s
13293}
13294
13295// SetEnableTerminationProtection sets the EnableTerminationProtection field's value.
13296func (s *Stack) SetEnableTerminationProtection(v bool) *Stack {
13297	s.EnableTerminationProtection = &v
13298	return s
13299}
13300
13301// SetLastUpdatedTime sets the LastUpdatedTime field's value.
13302func (s *Stack) SetLastUpdatedTime(v time.Time) *Stack {
13303	s.LastUpdatedTime = &v
13304	return s
13305}
13306
13307// SetNotificationARNs sets the NotificationARNs field's value.
13308func (s *Stack) SetNotificationARNs(v []*string) *Stack {
13309	s.NotificationARNs = v
13310	return s
13311}
13312
13313// SetOutputs sets the Outputs field's value.
13314func (s *Stack) SetOutputs(v []*Output) *Stack {
13315	s.Outputs = v
13316	return s
13317}
13318
13319// SetParameters sets the Parameters field's value.
13320func (s *Stack) SetParameters(v []*Parameter) *Stack {
13321	s.Parameters = v
13322	return s
13323}
13324
13325// SetParentId sets the ParentId field's value.
13326func (s *Stack) SetParentId(v string) *Stack {
13327	s.ParentId = &v
13328	return s
13329}
13330
13331// SetRoleARN sets the RoleARN field's value.
13332func (s *Stack) SetRoleARN(v string) *Stack {
13333	s.RoleARN = &v
13334	return s
13335}
13336
13337// SetRollbackConfiguration sets the RollbackConfiguration field's value.
13338func (s *Stack) SetRollbackConfiguration(v *RollbackConfiguration) *Stack {
13339	s.RollbackConfiguration = v
13340	return s
13341}
13342
13343// SetRootId sets the RootId field's value.
13344func (s *Stack) SetRootId(v string) *Stack {
13345	s.RootId = &v
13346	return s
13347}
13348
13349// SetStackId sets the StackId field's value.
13350func (s *Stack) SetStackId(v string) *Stack {
13351	s.StackId = &v
13352	return s
13353}
13354
13355// SetStackName sets the StackName field's value.
13356func (s *Stack) SetStackName(v string) *Stack {
13357	s.StackName = &v
13358	return s
13359}
13360
13361// SetStackStatus sets the StackStatus field's value.
13362func (s *Stack) SetStackStatus(v string) *Stack {
13363	s.StackStatus = &v
13364	return s
13365}
13366
13367// SetStackStatusReason sets the StackStatusReason field's value.
13368func (s *Stack) SetStackStatusReason(v string) *Stack {
13369	s.StackStatusReason = &v
13370	return s
13371}
13372
13373// SetTags sets the Tags field's value.
13374func (s *Stack) SetTags(v []*Tag) *Stack {
13375	s.Tags = v
13376	return s
13377}
13378
13379// SetTimeoutInMinutes sets the TimeoutInMinutes field's value.
13380func (s *Stack) SetTimeoutInMinutes(v int64) *Stack {
13381	s.TimeoutInMinutes = &v
13382	return s
13383}
13384
13385// Contains information about whether the stack's actual configuration differs,
13386// or has drifted, from its expected configuration, as defined in the stack
13387// template and any values specified as template parameters. A stack is considered
13388// to have drifted if one or more of its resources have drifted.
13389type StackDriftInformation struct {
13390	_ struct{} `type:"structure"`
13391
13392	// Most recent time when a drift detection operation was initiated on the stack,
13393	// or any of its individual resources that support drift detection.
13394	LastCheckTimestamp *time.Time `type:"timestamp"`
13395
13396	// Status of the stack's actual configuration compared to its expected template
13397	// configuration.
13398	//
13399	//    * DRIFTED: The stack differs from its expected template configuration.
13400	//    A stack is considered to have drifted if one or more of its resources
13401	//    have drifted.
13402	//
13403	//    * NOT_CHECKED: AWS CloudFormation has not checked if the stack differs
13404	//    from its expected template configuration.
13405	//
13406	//    * IN_SYNC: The stack's actual configuration matches its expected template
13407	//    configuration.
13408	//
13409	//    * UNKNOWN: This value is reserved for future use.
13410	//
13411	// StackDriftStatus is a required field
13412	StackDriftStatus *string `type:"string" required:"true" enum:"StackDriftStatus"`
13413}
13414
13415// String returns the string representation
13416func (s StackDriftInformation) String() string {
13417	return awsutil.Prettify(s)
13418}
13419
13420// GoString returns the string representation
13421func (s StackDriftInformation) GoString() string {
13422	return s.String()
13423}
13424
13425// SetLastCheckTimestamp sets the LastCheckTimestamp field's value.
13426func (s *StackDriftInformation) SetLastCheckTimestamp(v time.Time) *StackDriftInformation {
13427	s.LastCheckTimestamp = &v
13428	return s
13429}
13430
13431// SetStackDriftStatus sets the StackDriftStatus field's value.
13432func (s *StackDriftInformation) SetStackDriftStatus(v string) *StackDriftInformation {
13433	s.StackDriftStatus = &v
13434	return s
13435}
13436
13437// Contains information about whether the stack's actual configuration differs,
13438// or has drifted, from its expected configuration, as defined in the stack
13439// template and any values specified as template parameters. A stack is considered
13440// to have drifted if one or more of its resources have drifted.
13441type StackDriftInformationSummary struct {
13442	_ struct{} `type:"structure"`
13443
13444	// Most recent time when a drift detection operation was initiated on the stack,
13445	// or any of its individual resources that support drift detection.
13446	LastCheckTimestamp *time.Time `type:"timestamp"`
13447
13448	// Status of the stack's actual configuration compared to its expected template
13449	// configuration.
13450	//
13451	//    * DRIFTED: The stack differs from its expected template configuration.
13452	//    A stack is considered to have drifted if one or more of its resources
13453	//    have drifted.
13454	//
13455	//    * NOT_CHECKED: AWS CloudFormation has not checked if the stack differs
13456	//    from its expected template configuration.
13457	//
13458	//    * IN_SYNC: The stack's actual configuration matches its expected template
13459	//    configuration.
13460	//
13461	//    * UNKNOWN: This value is reserved for future use.
13462	//
13463	// StackDriftStatus is a required field
13464	StackDriftStatus *string `type:"string" required:"true" enum:"StackDriftStatus"`
13465}
13466
13467// String returns the string representation
13468func (s StackDriftInformationSummary) String() string {
13469	return awsutil.Prettify(s)
13470}
13471
13472// GoString returns the string representation
13473func (s StackDriftInformationSummary) GoString() string {
13474	return s.String()
13475}
13476
13477// SetLastCheckTimestamp sets the LastCheckTimestamp field's value.
13478func (s *StackDriftInformationSummary) SetLastCheckTimestamp(v time.Time) *StackDriftInformationSummary {
13479	s.LastCheckTimestamp = &v
13480	return s
13481}
13482
13483// SetStackDriftStatus sets the StackDriftStatus field's value.
13484func (s *StackDriftInformationSummary) SetStackDriftStatus(v string) *StackDriftInformationSummary {
13485	s.StackDriftStatus = &v
13486	return s
13487}
13488
13489// The StackEvent data type.
13490type StackEvent struct {
13491	_ struct{} `type:"structure"`
13492
13493	// The token passed to the operation that generated this event.
13494	//
13495	// All events triggered by a given stack operation are assigned the same client
13496	// request token, which you can use to track operations. For example, if you
13497	// execute a CreateStack operation with the token token1, then all the StackEvents
13498	// generated by that operation will have ClientRequestToken set as token1.
13499	//
13500	// In the console, stack operations display the client request token on the
13501	// Events tab. Stack operations that are initiated from the console use the
13502	// token format Console-StackOperation-ID, which helps you easily identify the
13503	// stack operation . For example, if you create a stack using the console, each
13504	// stack event would be assigned the same token in the following format: Console-CreateStack-7f59c3cf-00d2-40c7-b2ff-e75db0987002.
13505	ClientRequestToken *string `min:"1" type:"string"`
13506
13507	// The unique ID of this event.
13508	//
13509	// EventId is a required field
13510	EventId *string `type:"string" required:"true"`
13511
13512	// The logical name of the resource specified in the template.
13513	LogicalResourceId *string `type:"string"`
13514
13515	// The name or unique identifier associated with the physical instance of the
13516	// resource.
13517	PhysicalResourceId *string `type:"string"`
13518
13519	// BLOB of the properties used to create the resource.
13520	ResourceProperties *string `type:"string"`
13521
13522	// Current status of the resource.
13523	ResourceStatus *string `type:"string" enum:"ResourceStatus"`
13524
13525	// Success/failure message associated with the resource.
13526	ResourceStatusReason *string `type:"string"`
13527
13528	// Type of resource. (For more information, go to AWS Resource Types Reference
13529	// (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-template-resource-type-ref.html)
13530	// in the AWS CloudFormation User Guide.)
13531	ResourceType *string `min:"1" type:"string"`
13532
13533	// The unique ID name of the instance of the stack.
13534	//
13535	// StackId is a required field
13536	StackId *string `type:"string" required:"true"`
13537
13538	// The name associated with a stack.
13539	//
13540	// StackName is a required field
13541	StackName *string `type:"string" required:"true"`
13542
13543	// Time the status was updated.
13544	//
13545	// Timestamp is a required field
13546	Timestamp *time.Time `type:"timestamp" required:"true"`
13547}
13548
13549// String returns the string representation
13550func (s StackEvent) String() string {
13551	return awsutil.Prettify(s)
13552}
13553
13554// GoString returns the string representation
13555func (s StackEvent) GoString() string {
13556	return s.String()
13557}
13558
13559// SetClientRequestToken sets the ClientRequestToken field's value.
13560func (s *StackEvent) SetClientRequestToken(v string) *StackEvent {
13561	s.ClientRequestToken = &v
13562	return s
13563}
13564
13565// SetEventId sets the EventId field's value.
13566func (s *StackEvent) SetEventId(v string) *StackEvent {
13567	s.EventId = &v
13568	return s
13569}
13570
13571// SetLogicalResourceId sets the LogicalResourceId field's value.
13572func (s *StackEvent) SetLogicalResourceId(v string) *StackEvent {
13573	s.LogicalResourceId = &v
13574	return s
13575}
13576
13577// SetPhysicalResourceId sets the PhysicalResourceId field's value.
13578func (s *StackEvent) SetPhysicalResourceId(v string) *StackEvent {
13579	s.PhysicalResourceId = &v
13580	return s
13581}
13582
13583// SetResourceProperties sets the ResourceProperties field's value.
13584func (s *StackEvent) SetResourceProperties(v string) *StackEvent {
13585	s.ResourceProperties = &v
13586	return s
13587}
13588
13589// SetResourceStatus sets the ResourceStatus field's value.
13590func (s *StackEvent) SetResourceStatus(v string) *StackEvent {
13591	s.ResourceStatus = &v
13592	return s
13593}
13594
13595// SetResourceStatusReason sets the ResourceStatusReason field's value.
13596func (s *StackEvent) SetResourceStatusReason(v string) *StackEvent {
13597	s.ResourceStatusReason = &v
13598	return s
13599}
13600
13601// SetResourceType sets the ResourceType field's value.
13602func (s *StackEvent) SetResourceType(v string) *StackEvent {
13603	s.ResourceType = &v
13604	return s
13605}
13606
13607// SetStackId sets the StackId field's value.
13608func (s *StackEvent) SetStackId(v string) *StackEvent {
13609	s.StackId = &v
13610	return s
13611}
13612
13613// SetStackName sets the StackName field's value.
13614func (s *StackEvent) SetStackName(v string) *StackEvent {
13615	s.StackName = &v
13616	return s
13617}
13618
13619// SetTimestamp sets the Timestamp field's value.
13620func (s *StackEvent) SetTimestamp(v time.Time) *StackEvent {
13621	s.Timestamp = &v
13622	return s
13623}
13624
13625// An AWS CloudFormation stack, in a specific account and Region, that's part
13626// of a stack set operation. A stack instance is a reference to an attempted
13627// or actual stack in a given account within a given Region. A stack instance
13628// can exist without a stack—for example, if the stack couldn't be created
13629// for some reason. A stack instance is associated with only one stack set.
13630// Each stack instance contains the ID of its associated stack set, as well
13631// as the ID of the actual stack and the stack status.
13632type StackInstance struct {
13633	_ struct{} `type:"structure"`
13634
13635	// [Self-managed permissions] The name of the AWS account that the stack instance
13636	// is associated with.
13637	Account *string `type:"string"`
13638
13639	// Status of the stack instance's actual configuration compared to the expected
13640	// template and parameter configuration of the stack set to which it belongs.
13641	//
13642	//    * DRIFTED: The stack differs from the expected template and parameter
13643	//    configuration of the stack set to which it belongs. A stack instance is
13644	//    considered to have drifted if one or more of the resources in the associated
13645	//    stack have drifted.
13646	//
13647	//    * NOT_CHECKED: AWS CloudFormation has not checked if the stack instance
13648	//    differs from its expected stack set configuration.
13649	//
13650	//    * IN_SYNC: The stack instance's actual configuration matches its expected
13651	//    stack set configuration.
13652	//
13653	//    * UNKNOWN: This value is reserved for future use.
13654	DriftStatus *string `type:"string" enum:"StackDriftStatus"`
13655
13656	// Most recent time when CloudFormation performed a drift detection operation
13657	// on the stack instance. This value will be NULL for any stack instance on
13658	// which drift detection has not yet been performed.
13659	LastDriftCheckTimestamp *time.Time `type:"timestamp"`
13660
13661	// [Service-managed permissions] The organization root ID or organizational
13662	// unit (OU) IDs that you specified for DeploymentTargets (https://docs.aws.amazon.com/AWSCloudFormation/latest/APIReference/API_DeploymentTargets.html).
13663	OrganizationalUnitId *string `type:"string"`
13664
13665	// A list of parameters from the stack set template whose values have been overridden
13666	// in this stack instance.
13667	ParameterOverrides []*Parameter `type:"list"`
13668
13669	// The name of the AWS Region that the stack instance is associated with.
13670	Region *string `type:"string"`
13671
13672	// The ID of the stack instance.
13673	StackId *string `type:"string"`
13674
13675	// The detailed status of the stack instance.
13676	StackInstanceStatus *StackInstanceComprehensiveStatus `type:"structure"`
13677
13678	// The name or unique ID of the stack set that the stack instance is associated
13679	// with.
13680	StackSetId *string `type:"string"`
13681
13682	// The status of the stack instance, in terms of its synchronization with its
13683	// associated stack set.
13684	//
13685	//    * INOPERABLE: A DeleteStackInstances operation has failed and left the
13686	//    stack in an unstable state. Stacks in this state are excluded from further
13687	//    UpdateStackSet operations. You might need to perform a DeleteStackInstances
13688	//    operation, with RetainStacks set to true, to delete the stack instance,
13689	//    and then delete the stack manually.
13690	//
13691	//    * OUTDATED: The stack isn't currently up to date with the stack set because:
13692	//    The associated stack failed during a CreateStackSet or UpdateStackSet
13693	//    operation. The stack was part of a CreateStackSet or UpdateStackSet operation
13694	//    that failed or was stopped before the stack was created or updated.
13695	//
13696	//    * CURRENT: The stack is currently up to date with the stack set.
13697	Status *string `type:"string" enum:"StackInstanceStatus"`
13698
13699	// The explanation for the specific status code that is assigned to this stack
13700	// instance.
13701	StatusReason *string `type:"string"`
13702}
13703
13704// String returns the string representation
13705func (s StackInstance) String() string {
13706	return awsutil.Prettify(s)
13707}
13708
13709// GoString returns the string representation
13710func (s StackInstance) GoString() string {
13711	return s.String()
13712}
13713
13714// SetAccount sets the Account field's value.
13715func (s *StackInstance) SetAccount(v string) *StackInstance {
13716	s.Account = &v
13717	return s
13718}
13719
13720// SetDriftStatus sets the DriftStatus field's value.
13721func (s *StackInstance) SetDriftStatus(v string) *StackInstance {
13722	s.DriftStatus = &v
13723	return s
13724}
13725
13726// SetLastDriftCheckTimestamp sets the LastDriftCheckTimestamp field's value.
13727func (s *StackInstance) SetLastDriftCheckTimestamp(v time.Time) *StackInstance {
13728	s.LastDriftCheckTimestamp = &v
13729	return s
13730}
13731
13732// SetOrganizationalUnitId sets the OrganizationalUnitId field's value.
13733func (s *StackInstance) SetOrganizationalUnitId(v string) *StackInstance {
13734	s.OrganizationalUnitId = &v
13735	return s
13736}
13737
13738// SetParameterOverrides sets the ParameterOverrides field's value.
13739func (s *StackInstance) SetParameterOverrides(v []*Parameter) *StackInstance {
13740	s.ParameterOverrides = v
13741	return s
13742}
13743
13744// SetRegion sets the Region field's value.
13745func (s *StackInstance) SetRegion(v string) *StackInstance {
13746	s.Region = &v
13747	return s
13748}
13749
13750// SetStackId sets the StackId field's value.
13751func (s *StackInstance) SetStackId(v string) *StackInstance {
13752	s.StackId = &v
13753	return s
13754}
13755
13756// SetStackInstanceStatus sets the StackInstanceStatus field's value.
13757func (s *StackInstance) SetStackInstanceStatus(v *StackInstanceComprehensiveStatus) *StackInstance {
13758	s.StackInstanceStatus = v
13759	return s
13760}
13761
13762// SetStackSetId sets the StackSetId field's value.
13763func (s *StackInstance) SetStackSetId(v string) *StackInstance {
13764	s.StackSetId = &v
13765	return s
13766}
13767
13768// SetStatus sets the Status field's value.
13769func (s *StackInstance) SetStatus(v string) *StackInstance {
13770	s.Status = &v
13771	return s
13772}
13773
13774// SetStatusReason sets the StatusReason field's value.
13775func (s *StackInstance) SetStatusReason(v string) *StackInstance {
13776	s.StatusReason = &v
13777	return s
13778}
13779
13780// The detailed status of the stack instance.
13781type StackInstanceComprehensiveStatus struct {
13782	_ struct{} `type:"structure"`
13783
13784	//    * CANCELLED: The operation in the specified account and Region has been
13785	//    cancelled. This is either because a user has stopped the stack set operation,
13786	//    or because the failure tolerance of the stack set operation has been exceeded.
13787	//
13788	//    * FAILED: The operation in the specified account and Region failed. If
13789	//    the stack set operation fails in enough accounts within a Region, the
13790	//    failure tolerance for the stack set operation as a whole might be exceeded.
13791	//
13792	//    * INOPERABLE: A DeleteStackInstances operation has failed and left the
13793	//    stack in an unstable state. Stacks in this state are excluded from further
13794	//    UpdateStackSet operations. You might need to perform a DeleteStackInstances
13795	//    operation, with RetainStacks set to true, to delete the stack instance,
13796	//    and then delete the stack manually.
13797	//
13798	//    * PENDING: The operation in the specified account and Region has yet to
13799	//    start.
13800	//
13801	//    * RUNNING: The operation in the specified account and Region is currently
13802	//    in progress.
13803	//
13804	//    * SUCCEEDED: The operation in the specified account and Region completed
13805	//    successfully.
13806	DetailedStatus *string `type:"string" enum:"StackInstanceDetailedStatus"`
13807}
13808
13809// String returns the string representation
13810func (s StackInstanceComprehensiveStatus) String() string {
13811	return awsutil.Prettify(s)
13812}
13813
13814// GoString returns the string representation
13815func (s StackInstanceComprehensiveStatus) GoString() string {
13816	return s.String()
13817}
13818
13819// SetDetailedStatus sets the DetailedStatus field's value.
13820func (s *StackInstanceComprehensiveStatus) SetDetailedStatus(v string) *StackInstanceComprehensiveStatus {
13821	s.DetailedStatus = &v
13822	return s
13823}
13824
13825// The status that stack instances are filtered by.
13826type StackInstanceFilter struct {
13827	_ struct{} `type:"structure"`
13828
13829	// The type of filter to apply.
13830	Name *string `type:"string" enum:"StackInstanceFilterName"`
13831
13832	// The status to filter by.
13833	Values *string `min:"6" type:"string"`
13834}
13835
13836// String returns the string representation
13837func (s StackInstanceFilter) String() string {
13838	return awsutil.Prettify(s)
13839}
13840
13841// GoString returns the string representation
13842func (s StackInstanceFilter) GoString() string {
13843	return s.String()
13844}
13845
13846// Validate inspects the fields of the type to determine if they are valid.
13847func (s *StackInstanceFilter) Validate() error {
13848	invalidParams := request.ErrInvalidParams{Context: "StackInstanceFilter"}
13849	if s.Values != nil && len(*s.Values) < 6 {
13850		invalidParams.Add(request.NewErrParamMinLen("Values", 6))
13851	}
13852
13853	if invalidParams.Len() > 0 {
13854		return invalidParams
13855	}
13856	return nil
13857}
13858
13859// SetName sets the Name field's value.
13860func (s *StackInstanceFilter) SetName(v string) *StackInstanceFilter {
13861	s.Name = &v
13862	return s
13863}
13864
13865// SetValues sets the Values field's value.
13866func (s *StackInstanceFilter) SetValues(v string) *StackInstanceFilter {
13867	s.Values = &v
13868	return s
13869}
13870
13871// The structure that contains summary information about a stack instance.
13872type StackInstanceSummary struct {
13873	_ struct{} `type:"structure"`
13874
13875	// [Self-managed permissions] The name of the AWS account that the stack instance
13876	// is associated with.
13877	Account *string `type:"string"`
13878
13879	// Status of the stack instance's actual configuration compared to the expected
13880	// template and parameter configuration of the stack set to which it belongs.
13881	//
13882	//    * DRIFTED: The stack differs from the expected template and parameter
13883	//    configuration of the stack set to which it belongs. A stack instance is
13884	//    considered to have drifted if one or more of the resources in the associated
13885	//    stack have drifted.
13886	//
13887	//    * NOT_CHECKED: AWS CloudFormation has not checked if the stack instance
13888	//    differs from its expected stack set configuration.
13889	//
13890	//    * IN_SYNC: The stack instance's actual configuration matches its expected
13891	//    stack set configuration.
13892	//
13893	//    * UNKNOWN: This value is reserved for future use.
13894	DriftStatus *string `type:"string" enum:"StackDriftStatus"`
13895
13896	// Most recent time when CloudFormation performed a drift detection operation
13897	// on the stack instance. This value will be NULL for any stack instance on
13898	// which drift detection has not yet been performed.
13899	LastDriftCheckTimestamp *time.Time `type:"timestamp"`
13900
13901	// [Service-managed permissions] The organization root ID or organizational
13902	// unit (OU) IDs that you specified for DeploymentTargets (https://docs.aws.amazon.com/AWSCloudFormation/latest/APIReference/API_DeploymentTargets.html).
13903	OrganizationalUnitId *string `type:"string"`
13904
13905	// The name of the AWS Region that the stack instance is associated with.
13906	Region *string `type:"string"`
13907
13908	// The ID of the stack instance.
13909	StackId *string `type:"string"`
13910
13911	// The detailed status of the stack instance.
13912	StackInstanceStatus *StackInstanceComprehensiveStatus `type:"structure"`
13913
13914	// The name or unique ID of the stack set that the stack instance is associated
13915	// with.
13916	StackSetId *string `type:"string"`
13917
13918	// The status of the stack instance, in terms of its synchronization with its
13919	// associated stack set.
13920	//
13921	//    * INOPERABLE: A DeleteStackInstances operation has failed and left the
13922	//    stack in an unstable state. Stacks in this state are excluded from further
13923	//    UpdateStackSet operations. You might need to perform a DeleteStackInstances
13924	//    operation, with RetainStacks set to true, to delete the stack instance,
13925	//    and then delete the stack manually.
13926	//
13927	//    * OUTDATED: The stack isn't currently up to date with the stack set because:
13928	//    The associated stack failed during a CreateStackSet or UpdateStackSet
13929	//    operation. The stack was part of a CreateStackSet or UpdateStackSet operation
13930	//    that failed or was stopped before the stack was created or updated.
13931	//
13932	//    * CURRENT: The stack is currently up to date with the stack set.
13933	Status *string `type:"string" enum:"StackInstanceStatus"`
13934
13935	// The explanation for the specific status code assigned to this stack instance.
13936	StatusReason *string `type:"string"`
13937}
13938
13939// String returns the string representation
13940func (s StackInstanceSummary) String() string {
13941	return awsutil.Prettify(s)
13942}
13943
13944// GoString returns the string representation
13945func (s StackInstanceSummary) GoString() string {
13946	return s.String()
13947}
13948
13949// SetAccount sets the Account field's value.
13950func (s *StackInstanceSummary) SetAccount(v string) *StackInstanceSummary {
13951	s.Account = &v
13952	return s
13953}
13954
13955// SetDriftStatus sets the DriftStatus field's value.
13956func (s *StackInstanceSummary) SetDriftStatus(v string) *StackInstanceSummary {
13957	s.DriftStatus = &v
13958	return s
13959}
13960
13961// SetLastDriftCheckTimestamp sets the LastDriftCheckTimestamp field's value.
13962func (s *StackInstanceSummary) SetLastDriftCheckTimestamp(v time.Time) *StackInstanceSummary {
13963	s.LastDriftCheckTimestamp = &v
13964	return s
13965}
13966
13967// SetOrganizationalUnitId sets the OrganizationalUnitId field's value.
13968func (s *StackInstanceSummary) SetOrganizationalUnitId(v string) *StackInstanceSummary {
13969	s.OrganizationalUnitId = &v
13970	return s
13971}
13972
13973// SetRegion sets the Region field's value.
13974func (s *StackInstanceSummary) SetRegion(v string) *StackInstanceSummary {
13975	s.Region = &v
13976	return s
13977}
13978
13979// SetStackId sets the StackId field's value.
13980func (s *StackInstanceSummary) SetStackId(v string) *StackInstanceSummary {
13981	s.StackId = &v
13982	return s
13983}
13984
13985// SetStackInstanceStatus sets the StackInstanceStatus field's value.
13986func (s *StackInstanceSummary) SetStackInstanceStatus(v *StackInstanceComprehensiveStatus) *StackInstanceSummary {
13987	s.StackInstanceStatus = v
13988	return s
13989}
13990
13991// SetStackSetId sets the StackSetId field's value.
13992func (s *StackInstanceSummary) SetStackSetId(v string) *StackInstanceSummary {
13993	s.StackSetId = &v
13994	return s
13995}
13996
13997// SetStatus sets the Status field's value.
13998func (s *StackInstanceSummary) SetStatus(v string) *StackInstanceSummary {
13999	s.Status = &v
14000	return s
14001}
14002
14003// SetStatusReason sets the StatusReason field's value.
14004func (s *StackInstanceSummary) SetStatusReason(v string) *StackInstanceSummary {
14005	s.StatusReason = &v
14006	return s
14007}
14008
14009// The StackResource data type.
14010type StackResource struct {
14011	_ struct{} `type:"structure"`
14012
14013	// User defined description associated with the resource.
14014	Description *string `min:"1" type:"string"`
14015
14016	// Information about whether the resource's actual configuration differs, or
14017	// has drifted, from its expected configuration, as defined in the stack template
14018	// and any values specified as template parameters. For more information, see
14019	// Detecting Unregulated Configuration Changes to Stacks and Resources (http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-stack-drift.html).
14020	DriftInformation *StackResourceDriftInformation `type:"structure"`
14021
14022	// The logical name of the resource specified in the template.
14023	//
14024	// LogicalResourceId is a required field
14025	LogicalResourceId *string `type:"string" required:"true"`
14026
14027	// The name or unique identifier that corresponds to a physical instance ID
14028	// of a resource supported by AWS CloudFormation.
14029	PhysicalResourceId *string `type:"string"`
14030
14031	// Current status of the resource.
14032	//
14033	// ResourceStatus is a required field
14034	ResourceStatus *string `type:"string" required:"true" enum:"ResourceStatus"`
14035
14036	// Success/failure message associated with the resource.
14037	ResourceStatusReason *string `type:"string"`
14038
14039	// Type of resource. (For more information, go to AWS Resource Types Reference
14040	// (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-template-resource-type-ref.html)
14041	// in the AWS CloudFormation User Guide.)
14042	//
14043	// ResourceType is a required field
14044	ResourceType *string `min:"1" type:"string" required:"true"`
14045
14046	// Unique identifier of the stack.
14047	StackId *string `type:"string"`
14048
14049	// The name associated with the stack.
14050	StackName *string `type:"string"`
14051
14052	// Time the status was updated.
14053	//
14054	// Timestamp is a required field
14055	Timestamp *time.Time `type:"timestamp" required:"true"`
14056}
14057
14058// String returns the string representation
14059func (s StackResource) String() string {
14060	return awsutil.Prettify(s)
14061}
14062
14063// GoString returns the string representation
14064func (s StackResource) GoString() string {
14065	return s.String()
14066}
14067
14068// SetDescription sets the Description field's value.
14069func (s *StackResource) SetDescription(v string) *StackResource {
14070	s.Description = &v
14071	return s
14072}
14073
14074// SetDriftInformation sets the DriftInformation field's value.
14075func (s *StackResource) SetDriftInformation(v *StackResourceDriftInformation) *StackResource {
14076	s.DriftInformation = v
14077	return s
14078}
14079
14080// SetLogicalResourceId sets the LogicalResourceId field's value.
14081func (s *StackResource) SetLogicalResourceId(v string) *StackResource {
14082	s.LogicalResourceId = &v
14083	return s
14084}
14085
14086// SetPhysicalResourceId sets the PhysicalResourceId field's value.
14087func (s *StackResource) SetPhysicalResourceId(v string) *StackResource {
14088	s.PhysicalResourceId = &v
14089	return s
14090}
14091
14092// SetResourceStatus sets the ResourceStatus field's value.
14093func (s *StackResource) SetResourceStatus(v string) *StackResource {
14094	s.ResourceStatus = &v
14095	return s
14096}
14097
14098// SetResourceStatusReason sets the ResourceStatusReason field's value.
14099func (s *StackResource) SetResourceStatusReason(v string) *StackResource {
14100	s.ResourceStatusReason = &v
14101	return s
14102}
14103
14104// SetResourceType sets the ResourceType field's value.
14105func (s *StackResource) SetResourceType(v string) *StackResource {
14106	s.ResourceType = &v
14107	return s
14108}
14109
14110// SetStackId sets the StackId field's value.
14111func (s *StackResource) SetStackId(v string) *StackResource {
14112	s.StackId = &v
14113	return s
14114}
14115
14116// SetStackName sets the StackName field's value.
14117func (s *StackResource) SetStackName(v string) *StackResource {
14118	s.StackName = &v
14119	return s
14120}
14121
14122// SetTimestamp sets the Timestamp field's value.
14123func (s *StackResource) SetTimestamp(v time.Time) *StackResource {
14124	s.Timestamp = &v
14125	return s
14126}
14127
14128// Contains detailed information about the specified stack resource.
14129type StackResourceDetail struct {
14130	_ struct{} `type:"structure"`
14131
14132	// User defined description associated with the resource.
14133	Description *string `min:"1" type:"string"`
14134
14135	// Information about whether the resource's actual configuration differs, or
14136	// has drifted, from its expected configuration, as defined in the stack template
14137	// and any values specified as template parameters. For more information, see
14138	// Detecting Unregulated Configuration Changes to Stacks and Resources (http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-stack-drift.html).
14139	DriftInformation *StackResourceDriftInformation `type:"structure"`
14140
14141	// Time the status was updated.
14142	//
14143	// LastUpdatedTimestamp is a required field
14144	LastUpdatedTimestamp *time.Time `type:"timestamp" required:"true"`
14145
14146	// The logical name of the resource specified in the template.
14147	//
14148	// LogicalResourceId is a required field
14149	LogicalResourceId *string `type:"string" required:"true"`
14150
14151	// The content of the Metadata attribute declared for the resource. For more
14152	// information, see Metadata Attribute (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-metadata.html)
14153	// in the AWS CloudFormation User Guide.
14154	Metadata *string `type:"string"`
14155
14156	// The name or unique identifier that corresponds to a physical instance ID
14157	// of a resource supported by AWS CloudFormation.
14158	PhysicalResourceId *string `type:"string"`
14159
14160	// Current status of the resource.
14161	//
14162	// ResourceStatus is a required field
14163	ResourceStatus *string `type:"string" required:"true" enum:"ResourceStatus"`
14164
14165	// Success/failure message associated with the resource.
14166	ResourceStatusReason *string `type:"string"`
14167
14168	// Type of resource. ((For more information, go to AWS Resource Types Reference
14169	// (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-template-resource-type-ref.html)
14170	// in the AWS CloudFormation User Guide.)
14171	//
14172	// ResourceType is a required field
14173	ResourceType *string `min:"1" type:"string" required:"true"`
14174
14175	// Unique identifier of the stack.
14176	StackId *string `type:"string"`
14177
14178	// The name associated with the stack.
14179	StackName *string `type:"string"`
14180}
14181
14182// String returns the string representation
14183func (s StackResourceDetail) String() string {
14184	return awsutil.Prettify(s)
14185}
14186
14187// GoString returns the string representation
14188func (s StackResourceDetail) GoString() string {
14189	return s.String()
14190}
14191
14192// SetDescription sets the Description field's value.
14193func (s *StackResourceDetail) SetDescription(v string) *StackResourceDetail {
14194	s.Description = &v
14195	return s
14196}
14197
14198// SetDriftInformation sets the DriftInformation field's value.
14199func (s *StackResourceDetail) SetDriftInformation(v *StackResourceDriftInformation) *StackResourceDetail {
14200	s.DriftInformation = v
14201	return s
14202}
14203
14204// SetLastUpdatedTimestamp sets the LastUpdatedTimestamp field's value.
14205func (s *StackResourceDetail) SetLastUpdatedTimestamp(v time.Time) *StackResourceDetail {
14206	s.LastUpdatedTimestamp = &v
14207	return s
14208}
14209
14210// SetLogicalResourceId sets the LogicalResourceId field's value.
14211func (s *StackResourceDetail) SetLogicalResourceId(v string) *StackResourceDetail {
14212	s.LogicalResourceId = &v
14213	return s
14214}
14215
14216// SetMetadata sets the Metadata field's value.
14217func (s *StackResourceDetail) SetMetadata(v string) *StackResourceDetail {
14218	s.Metadata = &v
14219	return s
14220}
14221
14222// SetPhysicalResourceId sets the PhysicalResourceId field's value.
14223func (s *StackResourceDetail) SetPhysicalResourceId(v string) *StackResourceDetail {
14224	s.PhysicalResourceId = &v
14225	return s
14226}
14227
14228// SetResourceStatus sets the ResourceStatus field's value.
14229func (s *StackResourceDetail) SetResourceStatus(v string) *StackResourceDetail {
14230	s.ResourceStatus = &v
14231	return s
14232}
14233
14234// SetResourceStatusReason sets the ResourceStatusReason field's value.
14235func (s *StackResourceDetail) SetResourceStatusReason(v string) *StackResourceDetail {
14236	s.ResourceStatusReason = &v
14237	return s
14238}
14239
14240// SetResourceType sets the ResourceType field's value.
14241func (s *StackResourceDetail) SetResourceType(v string) *StackResourceDetail {
14242	s.ResourceType = &v
14243	return s
14244}
14245
14246// SetStackId sets the StackId field's value.
14247func (s *StackResourceDetail) SetStackId(v string) *StackResourceDetail {
14248	s.StackId = &v
14249	return s
14250}
14251
14252// SetStackName sets the StackName field's value.
14253func (s *StackResourceDetail) SetStackName(v string) *StackResourceDetail {
14254	s.StackName = &v
14255	return s
14256}
14257
14258// Contains the drift information for a resource that has been checked for drift.
14259// This includes actual and expected property values for resources in which
14260// AWS CloudFormation has detected drift. Only resource properties explicitly
14261// defined in the stack template are checked for drift. For more information,
14262// see Detecting Unregulated Configuration Changes to Stacks and Resources (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-stack-drift.html).
14263//
14264// Resources that do not currently support drift detection cannot be checked.
14265// For a list of resources that support drift detection, see Resources that
14266// Support Drift Detection (http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-stack-drift-resource-list.html).
14267//
14268// Use DetectStackResourceDrift to detect drift on individual resources, or
14269// DetectStackDrift to detect drift on all resources in a given stack that support
14270// drift detection.
14271type StackResourceDrift struct {
14272	_ struct{} `type:"structure"`
14273
14274	// A JSON structure containing the actual property values of the stack resource.
14275	//
14276	// For resources whose StackResourceDriftStatus is DELETED, this structure will
14277	// not be present.
14278	ActualProperties *string `type:"string"`
14279
14280	// A JSON structure containing the expected property values of the stack resource,
14281	// as defined in the stack template and any values specified as template parameters.
14282	//
14283	// For resources whose StackResourceDriftStatus is DELETED, this structure will
14284	// not be present.
14285	ExpectedProperties *string `type:"string"`
14286
14287	// The logical name of the resource specified in the template.
14288	//
14289	// LogicalResourceId is a required field
14290	LogicalResourceId *string `type:"string" required:"true"`
14291
14292	// The name or unique identifier that corresponds to a physical instance ID
14293	// of a resource supported by AWS CloudFormation.
14294	PhysicalResourceId *string `type:"string"`
14295
14296	// Context information that enables AWS CloudFormation to uniquely identify
14297	// a resource. AWS CloudFormation uses context key-value pairs in cases where
14298	// a resource's logical and physical IDs are not enough to uniquely identify
14299	// that resource. Each context key-value pair specifies a unique resource that
14300	// contains the targeted resource.
14301	PhysicalResourceIdContext []*PhysicalResourceIdContextKeyValuePair `type:"list"`
14302
14303	// A collection of the resource properties whose actual values differ from their
14304	// expected values. These will be present only for resources whose StackResourceDriftStatus
14305	// is MODIFIED.
14306	PropertyDifferences []*PropertyDifference `type:"list"`
14307
14308	// The type of the resource.
14309	//
14310	// ResourceType is a required field
14311	ResourceType *string `min:"1" type:"string" required:"true"`
14312
14313	// The ID of the stack.
14314	//
14315	// StackId is a required field
14316	StackId *string `type:"string" required:"true"`
14317
14318	// Status of the resource's actual configuration compared to its expected configuration
14319	//
14320	//    * DELETED: The resource differs from its expected template configuration
14321	//    because the resource has been deleted.
14322	//
14323	//    * MODIFIED: One or more resource properties differ from their expected
14324	//    values (as defined in the stack template and any values specified as template
14325	//    parameters).
14326	//
14327	//    * IN_SYNC: The resources's actual configuration matches its expected template
14328	//    configuration.
14329	//
14330	//    * NOT_CHECKED: AWS CloudFormation does not currently return this value.
14331	//
14332	// StackResourceDriftStatus is a required field
14333	StackResourceDriftStatus *string `type:"string" required:"true" enum:"StackResourceDriftStatus"`
14334
14335	// Time at which AWS CloudFormation performed drift detection on the stack resource.
14336	//
14337	// Timestamp is a required field
14338	Timestamp *time.Time `type:"timestamp" required:"true"`
14339}
14340
14341// String returns the string representation
14342func (s StackResourceDrift) String() string {
14343	return awsutil.Prettify(s)
14344}
14345
14346// GoString returns the string representation
14347func (s StackResourceDrift) GoString() string {
14348	return s.String()
14349}
14350
14351// SetActualProperties sets the ActualProperties field's value.
14352func (s *StackResourceDrift) SetActualProperties(v string) *StackResourceDrift {
14353	s.ActualProperties = &v
14354	return s
14355}
14356
14357// SetExpectedProperties sets the ExpectedProperties field's value.
14358func (s *StackResourceDrift) SetExpectedProperties(v string) *StackResourceDrift {
14359	s.ExpectedProperties = &v
14360	return s
14361}
14362
14363// SetLogicalResourceId sets the LogicalResourceId field's value.
14364func (s *StackResourceDrift) SetLogicalResourceId(v string) *StackResourceDrift {
14365	s.LogicalResourceId = &v
14366	return s
14367}
14368
14369// SetPhysicalResourceId sets the PhysicalResourceId field's value.
14370func (s *StackResourceDrift) SetPhysicalResourceId(v string) *StackResourceDrift {
14371	s.PhysicalResourceId = &v
14372	return s
14373}
14374
14375// SetPhysicalResourceIdContext sets the PhysicalResourceIdContext field's value.
14376func (s *StackResourceDrift) SetPhysicalResourceIdContext(v []*PhysicalResourceIdContextKeyValuePair) *StackResourceDrift {
14377	s.PhysicalResourceIdContext = v
14378	return s
14379}
14380
14381// SetPropertyDifferences sets the PropertyDifferences field's value.
14382func (s *StackResourceDrift) SetPropertyDifferences(v []*PropertyDifference) *StackResourceDrift {
14383	s.PropertyDifferences = v
14384	return s
14385}
14386
14387// SetResourceType sets the ResourceType field's value.
14388func (s *StackResourceDrift) SetResourceType(v string) *StackResourceDrift {
14389	s.ResourceType = &v
14390	return s
14391}
14392
14393// SetStackId sets the StackId field's value.
14394func (s *StackResourceDrift) SetStackId(v string) *StackResourceDrift {
14395	s.StackId = &v
14396	return s
14397}
14398
14399// SetStackResourceDriftStatus sets the StackResourceDriftStatus field's value.
14400func (s *StackResourceDrift) SetStackResourceDriftStatus(v string) *StackResourceDrift {
14401	s.StackResourceDriftStatus = &v
14402	return s
14403}
14404
14405// SetTimestamp sets the Timestamp field's value.
14406func (s *StackResourceDrift) SetTimestamp(v time.Time) *StackResourceDrift {
14407	s.Timestamp = &v
14408	return s
14409}
14410
14411// Contains information about whether the resource's actual configuration differs,
14412// or has drifted, from its expected configuration.
14413type StackResourceDriftInformation struct {
14414	_ struct{} `type:"structure"`
14415
14416	// When AWS CloudFormation last checked if the resource had drifted from its
14417	// expected configuration.
14418	LastCheckTimestamp *time.Time `type:"timestamp"`
14419
14420	// Status of the resource's actual configuration compared to its expected configuration
14421	//
14422	//    * DELETED: The resource differs from its expected configuration in that
14423	//    it has been deleted.
14424	//
14425	//    * MODIFIED: The resource differs from its expected configuration.
14426	//
14427	//    * NOT_CHECKED: AWS CloudFormation has not checked if the resource differs
14428	//    from its expected configuration. Any resources that do not currently support
14429	//    drift detection have a status of NOT_CHECKED. For more information, see
14430	//    Resources that Support Drift Detection (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-stack-drift-resource-list.html).
14431	//
14432	//    * IN_SYNC: The resources's actual configuration matches its expected configuration.
14433	//
14434	// StackResourceDriftStatus is a required field
14435	StackResourceDriftStatus *string `type:"string" required:"true" enum:"StackResourceDriftStatus"`
14436}
14437
14438// String returns the string representation
14439func (s StackResourceDriftInformation) String() string {
14440	return awsutil.Prettify(s)
14441}
14442
14443// GoString returns the string representation
14444func (s StackResourceDriftInformation) GoString() string {
14445	return s.String()
14446}
14447
14448// SetLastCheckTimestamp sets the LastCheckTimestamp field's value.
14449func (s *StackResourceDriftInformation) SetLastCheckTimestamp(v time.Time) *StackResourceDriftInformation {
14450	s.LastCheckTimestamp = &v
14451	return s
14452}
14453
14454// SetStackResourceDriftStatus sets the StackResourceDriftStatus field's value.
14455func (s *StackResourceDriftInformation) SetStackResourceDriftStatus(v string) *StackResourceDriftInformation {
14456	s.StackResourceDriftStatus = &v
14457	return s
14458}
14459
14460// Summarizes information about whether the resource's actual configuration
14461// differs, or has drifted, from its expected configuration.
14462type StackResourceDriftInformationSummary struct {
14463	_ struct{} `type:"structure"`
14464
14465	// When AWS CloudFormation last checked if the resource had drifted from its
14466	// expected configuration.
14467	LastCheckTimestamp *time.Time `type:"timestamp"`
14468
14469	// Status of the resource's actual configuration compared to its expected configuration
14470	//
14471	//    * DELETED: The resource differs from its expected configuration in that
14472	//    it has been deleted.
14473	//
14474	//    * MODIFIED: The resource differs from its expected configuration.
14475	//
14476	//    * NOT_CHECKED: AWS CloudFormation has not checked if the resource differs
14477	//    from its expected configuration. Any resources that do not currently support
14478	//    drift detection have a status of NOT_CHECKED. For more information, see
14479	//    Resources that Support Drift Detection (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-stack-drift-resource-list.html).
14480	//    If you performed an ContinueUpdateRollback operation on a stack, any resources
14481	//    included in ResourcesToSkip will also have a status of NOT_CHECKED. For
14482	//    more information on skipping resources during rollback operations, see
14483	//    Continue Rolling Back an Update (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-continueupdaterollback.html)
14484	//    in the AWS CloudFormation User Guide.
14485	//
14486	//    * IN_SYNC: The resources's actual configuration matches its expected configuration.
14487	//
14488	// StackResourceDriftStatus is a required field
14489	StackResourceDriftStatus *string `type:"string" required:"true" enum:"StackResourceDriftStatus"`
14490}
14491
14492// String returns the string representation
14493func (s StackResourceDriftInformationSummary) String() string {
14494	return awsutil.Prettify(s)
14495}
14496
14497// GoString returns the string representation
14498func (s StackResourceDriftInformationSummary) GoString() string {
14499	return s.String()
14500}
14501
14502// SetLastCheckTimestamp sets the LastCheckTimestamp field's value.
14503func (s *StackResourceDriftInformationSummary) SetLastCheckTimestamp(v time.Time) *StackResourceDriftInformationSummary {
14504	s.LastCheckTimestamp = &v
14505	return s
14506}
14507
14508// SetStackResourceDriftStatus sets the StackResourceDriftStatus field's value.
14509func (s *StackResourceDriftInformationSummary) SetStackResourceDriftStatus(v string) *StackResourceDriftInformationSummary {
14510	s.StackResourceDriftStatus = &v
14511	return s
14512}
14513
14514// Contains high-level information about the specified stack resource.
14515type StackResourceSummary struct {
14516	_ struct{} `type:"structure"`
14517
14518	// Information about whether the resource's actual configuration differs, or
14519	// has drifted, from its expected configuration, as defined in the stack template
14520	// and any values specified as template parameters. For more information, see
14521	// Detecting Unregulated Configuration Changes to Stacks and Resources (http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-stack-drift.html).
14522	DriftInformation *StackResourceDriftInformationSummary `type:"structure"`
14523
14524	// Time the status was updated.
14525	//
14526	// LastUpdatedTimestamp is a required field
14527	LastUpdatedTimestamp *time.Time `type:"timestamp" required:"true"`
14528
14529	// The logical name of the resource specified in the template.
14530	//
14531	// LogicalResourceId is a required field
14532	LogicalResourceId *string `type:"string" required:"true"`
14533
14534	// The name or unique identifier that corresponds to a physical instance ID
14535	// of the resource.
14536	PhysicalResourceId *string `type:"string"`
14537
14538	// Current status of the resource.
14539	//
14540	// ResourceStatus is a required field
14541	ResourceStatus *string `type:"string" required:"true" enum:"ResourceStatus"`
14542
14543	// Success/failure message associated with the resource.
14544	ResourceStatusReason *string `type:"string"`
14545
14546	// Type of resource. (For more information, go to AWS Resource Types Reference
14547	// (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-template-resource-type-ref.html)
14548	// in the AWS CloudFormation User Guide.)
14549	//
14550	// ResourceType is a required field
14551	ResourceType *string `min:"1" type:"string" required:"true"`
14552}
14553
14554// String returns the string representation
14555func (s StackResourceSummary) String() string {
14556	return awsutil.Prettify(s)
14557}
14558
14559// GoString returns the string representation
14560func (s StackResourceSummary) GoString() string {
14561	return s.String()
14562}
14563
14564// SetDriftInformation sets the DriftInformation field's value.
14565func (s *StackResourceSummary) SetDriftInformation(v *StackResourceDriftInformationSummary) *StackResourceSummary {
14566	s.DriftInformation = v
14567	return s
14568}
14569
14570// SetLastUpdatedTimestamp sets the LastUpdatedTimestamp field's value.
14571func (s *StackResourceSummary) SetLastUpdatedTimestamp(v time.Time) *StackResourceSummary {
14572	s.LastUpdatedTimestamp = &v
14573	return s
14574}
14575
14576// SetLogicalResourceId sets the LogicalResourceId field's value.
14577func (s *StackResourceSummary) SetLogicalResourceId(v string) *StackResourceSummary {
14578	s.LogicalResourceId = &v
14579	return s
14580}
14581
14582// SetPhysicalResourceId sets the PhysicalResourceId field's value.
14583func (s *StackResourceSummary) SetPhysicalResourceId(v string) *StackResourceSummary {
14584	s.PhysicalResourceId = &v
14585	return s
14586}
14587
14588// SetResourceStatus sets the ResourceStatus field's value.
14589func (s *StackResourceSummary) SetResourceStatus(v string) *StackResourceSummary {
14590	s.ResourceStatus = &v
14591	return s
14592}
14593
14594// SetResourceStatusReason sets the ResourceStatusReason field's value.
14595func (s *StackResourceSummary) SetResourceStatusReason(v string) *StackResourceSummary {
14596	s.ResourceStatusReason = &v
14597	return s
14598}
14599
14600// SetResourceType sets the ResourceType field's value.
14601func (s *StackResourceSummary) SetResourceType(v string) *StackResourceSummary {
14602	s.ResourceType = &v
14603	return s
14604}
14605
14606// A structure that contains information about a stack set. A stack set enables
14607// you to provision stacks into AWS accounts and across Regions by using a single
14608// CloudFormation template. In the stack set, you specify the template to use,
14609// as well as any parameters and capabilities that the template requires.
14610type StackSet struct {
14611	_ struct{} `type:"structure"`
14612
14613	// The Amazon Resource Number (ARN) of the IAM role used to create or update
14614	// the stack set.
14615	//
14616	// Use customized administrator roles to control which users or groups can manage
14617	// specific stack sets within the same administrator account. For more information,
14618	// see Prerequisites: Granting Permissions for Stack Set Operations (http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/stacksets-prereqs.html)
14619	// in the AWS CloudFormation User Guide.
14620	AdministrationRoleARN *string `min:"20" type:"string"`
14621
14622	// [Service-managed permissions] Describes whether StackSets automatically deploys
14623	// to AWS Organizations accounts that are added to a target organization or
14624	// organizational unit (OU).
14625	AutoDeployment *AutoDeployment `type:"structure"`
14626
14627	// The capabilities that are allowed in the stack set. Some stack set templates
14628	// might include resources that can affect permissions in your AWS account—for
14629	// example, by creating new AWS Identity and Access Management (IAM) users.
14630	// For more information, see Acknowledging IAM Resources in AWS CloudFormation
14631	// Templates. (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-iam-template.html#capabilities)
14632	Capabilities []*string `type:"list"`
14633
14634	// A description of the stack set that you specify when the stack set is created
14635	// or updated.
14636	Description *string `min:"1" type:"string"`
14637
14638	// The name of the IAM execution role used to create or update the stack set.
14639	//
14640	// Use customized execution roles to control which stack resources users and
14641	// groups can include in their stack sets.
14642	ExecutionRoleName *string `min:"1" type:"string"`
14643
14644	// [Service-managed permissions] The organization root ID or organizational
14645	// unit (OU) IDs that you specified for DeploymentTargets (https://docs.aws.amazon.com/AWSCloudFormation/latest/APIReference/API_DeploymentTargets.html).
14646	OrganizationalUnitIds []*string `type:"list"`
14647
14648	// A list of input parameters for a stack set.
14649	Parameters []*Parameter `type:"list"`
14650
14651	// Describes how the IAM roles required for stack set operations are created.
14652	//
14653	//    * With self-managed permissions, you must create the administrator and
14654	//    execution roles required to deploy to target accounts. For more information,
14655	//    see Grant Self-Managed Stack Set Permissions (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/stacksets-prereqs-self-managed.html).
14656	//
14657	//    * With service-managed permissions, StackSets automatically creates the
14658	//    IAM roles required to deploy to accounts managed by AWS Organizations.
14659	//    For more information, see Grant Service-Managed Stack Set Permissions
14660	//    (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/stacksets-prereqs-service-managed.html).
14661	PermissionModel *string `type:"string" enum:"PermissionModels"`
14662
14663	// The Amazon Resource Number (ARN) of the stack set.
14664	StackSetARN *string `type:"string"`
14665
14666	// Detailed information about the drift status of the stack set.
14667	//
14668	// For stack sets, contains information about the last completed drift operation
14669	// performed on the stack set. Information about drift operations currently
14670	// in progress is not included.
14671	StackSetDriftDetectionDetails *StackSetDriftDetectionDetails `type:"structure"`
14672
14673	// The ID of the stack set.
14674	StackSetId *string `type:"string"`
14675
14676	// The name that's associated with the stack set.
14677	StackSetName *string `type:"string"`
14678
14679	// The status of the stack set.
14680	Status *string `type:"string" enum:"StackSetStatus"`
14681
14682	// A list of tags that specify information about the stack set. A maximum number
14683	// of 50 tags can be specified.
14684	Tags []*Tag `type:"list"`
14685
14686	// The structure that contains the body of the template that was used to create
14687	// or update the stack set.
14688	TemplateBody *string `min:"1" type:"string"`
14689}
14690
14691// String returns the string representation
14692func (s StackSet) String() string {
14693	return awsutil.Prettify(s)
14694}
14695
14696// GoString returns the string representation
14697func (s StackSet) GoString() string {
14698	return s.String()
14699}
14700
14701// SetAdministrationRoleARN sets the AdministrationRoleARN field's value.
14702func (s *StackSet) SetAdministrationRoleARN(v string) *StackSet {
14703	s.AdministrationRoleARN = &v
14704	return s
14705}
14706
14707// SetAutoDeployment sets the AutoDeployment field's value.
14708func (s *StackSet) SetAutoDeployment(v *AutoDeployment) *StackSet {
14709	s.AutoDeployment = v
14710	return s
14711}
14712
14713// SetCapabilities sets the Capabilities field's value.
14714func (s *StackSet) SetCapabilities(v []*string) *StackSet {
14715	s.Capabilities = v
14716	return s
14717}
14718
14719// SetDescription sets the Description field's value.
14720func (s *StackSet) SetDescription(v string) *StackSet {
14721	s.Description = &v
14722	return s
14723}
14724
14725// SetExecutionRoleName sets the ExecutionRoleName field's value.
14726func (s *StackSet) SetExecutionRoleName(v string) *StackSet {
14727	s.ExecutionRoleName = &v
14728	return s
14729}
14730
14731// SetOrganizationalUnitIds sets the OrganizationalUnitIds field's value.
14732func (s *StackSet) SetOrganizationalUnitIds(v []*string) *StackSet {
14733	s.OrganizationalUnitIds = v
14734	return s
14735}
14736
14737// SetParameters sets the Parameters field's value.
14738func (s *StackSet) SetParameters(v []*Parameter) *StackSet {
14739	s.Parameters = v
14740	return s
14741}
14742
14743// SetPermissionModel sets the PermissionModel field's value.
14744func (s *StackSet) SetPermissionModel(v string) *StackSet {
14745	s.PermissionModel = &v
14746	return s
14747}
14748
14749// SetStackSetARN sets the StackSetARN field's value.
14750func (s *StackSet) SetStackSetARN(v string) *StackSet {
14751	s.StackSetARN = &v
14752	return s
14753}
14754
14755// SetStackSetDriftDetectionDetails sets the StackSetDriftDetectionDetails field's value.
14756func (s *StackSet) SetStackSetDriftDetectionDetails(v *StackSetDriftDetectionDetails) *StackSet {
14757	s.StackSetDriftDetectionDetails = v
14758	return s
14759}
14760
14761// SetStackSetId sets the StackSetId field's value.
14762func (s *StackSet) SetStackSetId(v string) *StackSet {
14763	s.StackSetId = &v
14764	return s
14765}
14766
14767// SetStackSetName sets the StackSetName field's value.
14768func (s *StackSet) SetStackSetName(v string) *StackSet {
14769	s.StackSetName = &v
14770	return s
14771}
14772
14773// SetStatus sets the Status field's value.
14774func (s *StackSet) SetStatus(v string) *StackSet {
14775	s.Status = &v
14776	return s
14777}
14778
14779// SetTags sets the Tags field's value.
14780func (s *StackSet) SetTags(v []*Tag) *StackSet {
14781	s.Tags = v
14782	return s
14783}
14784
14785// SetTemplateBody sets the TemplateBody field's value.
14786func (s *StackSet) SetTemplateBody(v string) *StackSet {
14787	s.TemplateBody = &v
14788	return s
14789}
14790
14791// Detailed information about the drift status of the stack set.
14792//
14793// For stack sets, contains information about the last completed drift operation
14794// performed on the stack set. Information about drift operations in-progress
14795// is not included.
14796//
14797// For stack set operations, includes information about drift operations currently
14798// being performed on the stack set.
14799//
14800// For more information, see Detecting Unmanaged Changes in Stack Sets (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/stacksets-drift.html)
14801// in the AWS CloudFormation User Guide.
14802type StackSetDriftDetectionDetails struct {
14803	_ struct{} `type:"structure"`
14804
14805	// The status of the stack set drift detection operation.
14806	//
14807	//    * COMPLETED: The drift detection operation completed without failing on
14808	//    any stack instances.
14809	//
14810	//    * FAILED: The drift detection operation exceeded the specified failure
14811	//    tolerance.
14812	//
14813	//    * PARTIAL_SUCCESS: The drift detection operation completed without exceeding
14814	//    the failure tolerance for the operation.
14815	//
14816	//    * IN_PROGRESS: The drift detection operation is currently being performed.
14817	//
14818	//    * STOPPED: The user has cancelled the drift detection operation.
14819	DriftDetectionStatus *string `type:"string" enum:"StackSetDriftDetectionStatus"`
14820
14821	// Status of the stack set's actual configuration compared to its expected template
14822	// and parameter configuration. A stack set is considered to have drifted if
14823	// one or more of its stack instances have drifted from their expected template
14824	// and parameter configuration.
14825	//
14826	//    * DRIFTED: One or more of the stack instances belonging to the stack set
14827	//    stack differs from the expected template and parameter configuration.
14828	//    A stack instance is considered to have drifted if one or more of the resources
14829	//    in the associated stack have drifted.
14830	//
14831	//    * NOT_CHECKED: AWS CloudFormation has not checked the stack set for drift.
14832	//
14833	//    * IN_SYNC: All of the stack instances belonging to the stack set stack
14834	//    match from the expected template and parameter configuration.
14835	DriftStatus *string `type:"string" enum:"StackSetDriftStatus"`
14836
14837	// The number of stack instances that have drifted from the expected template
14838	// and parameter configuration of the stack set. A stack instance is considered
14839	// to have drifted if one or more of the resources in the associated stack do
14840	// not match their expected configuration.
14841	DriftedStackInstancesCount *int64 `type:"integer"`
14842
14843	// The number of stack instances for which the drift detection operation failed.
14844	FailedStackInstancesCount *int64 `type:"integer"`
14845
14846	// The number of stack instances that are currently being checked for drift.
14847	InProgressStackInstancesCount *int64 `type:"integer"`
14848
14849	// The number of stack instances which match the expected template and parameter
14850	// configuration of the stack set.
14851	InSyncStackInstancesCount *int64 `type:"integer"`
14852
14853	// Most recent time when CloudFormation performed a drift detection operation
14854	// on the stack set. This value will be NULL for any stack set on which drift
14855	// detection has not yet been performed.
14856	LastDriftCheckTimestamp *time.Time `type:"timestamp"`
14857
14858	// The total number of stack instances belonging to this stack set.
14859	//
14860	// The total number of stack instances is equal to the total of:
14861	//
14862	//    * Stack instances that match the stack set configuration.
14863	//
14864	//    * Stack instances that have drifted from the stack set configuration.
14865	//
14866	//    * Stack instances where the drift detection operation has failed.
14867	//
14868	//    * Stack instances currently being checked for drift.
14869	TotalStackInstancesCount *int64 `type:"integer"`
14870}
14871
14872// String returns the string representation
14873func (s StackSetDriftDetectionDetails) String() string {
14874	return awsutil.Prettify(s)
14875}
14876
14877// GoString returns the string representation
14878func (s StackSetDriftDetectionDetails) GoString() string {
14879	return s.String()
14880}
14881
14882// SetDriftDetectionStatus sets the DriftDetectionStatus field's value.
14883func (s *StackSetDriftDetectionDetails) SetDriftDetectionStatus(v string) *StackSetDriftDetectionDetails {
14884	s.DriftDetectionStatus = &v
14885	return s
14886}
14887
14888// SetDriftStatus sets the DriftStatus field's value.
14889func (s *StackSetDriftDetectionDetails) SetDriftStatus(v string) *StackSetDriftDetectionDetails {
14890	s.DriftStatus = &v
14891	return s
14892}
14893
14894// SetDriftedStackInstancesCount sets the DriftedStackInstancesCount field's value.
14895func (s *StackSetDriftDetectionDetails) SetDriftedStackInstancesCount(v int64) *StackSetDriftDetectionDetails {
14896	s.DriftedStackInstancesCount = &v
14897	return s
14898}
14899
14900// SetFailedStackInstancesCount sets the FailedStackInstancesCount field's value.
14901func (s *StackSetDriftDetectionDetails) SetFailedStackInstancesCount(v int64) *StackSetDriftDetectionDetails {
14902	s.FailedStackInstancesCount = &v
14903	return s
14904}
14905
14906// SetInProgressStackInstancesCount sets the InProgressStackInstancesCount field's value.
14907func (s *StackSetDriftDetectionDetails) SetInProgressStackInstancesCount(v int64) *StackSetDriftDetectionDetails {
14908	s.InProgressStackInstancesCount = &v
14909	return s
14910}
14911
14912// SetInSyncStackInstancesCount sets the InSyncStackInstancesCount field's value.
14913func (s *StackSetDriftDetectionDetails) SetInSyncStackInstancesCount(v int64) *StackSetDriftDetectionDetails {
14914	s.InSyncStackInstancesCount = &v
14915	return s
14916}
14917
14918// SetLastDriftCheckTimestamp sets the LastDriftCheckTimestamp field's value.
14919func (s *StackSetDriftDetectionDetails) SetLastDriftCheckTimestamp(v time.Time) *StackSetDriftDetectionDetails {
14920	s.LastDriftCheckTimestamp = &v
14921	return s
14922}
14923
14924// SetTotalStackInstancesCount sets the TotalStackInstancesCount field's value.
14925func (s *StackSetDriftDetectionDetails) SetTotalStackInstancesCount(v int64) *StackSetDriftDetectionDetails {
14926	s.TotalStackInstancesCount = &v
14927	return s
14928}
14929
14930// The structure that contains information about a stack set operation.
14931type StackSetOperation struct {
14932	_ struct{} `type:"structure"`
14933
14934	// The type of stack set operation: CREATE, UPDATE, or DELETE. Create and delete
14935	// operations affect only the specified stack set instances that are associated
14936	// with the specified stack set. Update operations affect both the stack set
14937	// itself, as well as all associated stack set instances.
14938	Action *string `type:"string" enum:"StackSetOperationAction"`
14939
14940	// The Amazon Resource Number (ARN) of the IAM role used to perform this stack
14941	// set operation.
14942	//
14943	// Use customized administrator roles to control which users or groups can manage
14944	// specific stack sets within the same administrator account. For more information,
14945	// see Define Permissions for Multiple Administrators (http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/stacksets-prereqs.html)
14946	// in the AWS CloudFormation User Guide.
14947	AdministrationRoleARN *string `min:"20" type:"string"`
14948
14949	// The time at which the operation was initiated. Note that the creation times
14950	// for the stack set operation might differ from the creation time of the individual
14951	// stacks themselves. This is because AWS CloudFormation needs to perform preparatory
14952	// work for the operation, such as dispatching the work to the requested Regions,
14953	// before actually creating the first stacks.
14954	CreationTimestamp *time.Time `type:"timestamp"`
14955
14956	// [Service-managed permissions] The AWS Organizations accounts affected by
14957	// the stack operation.
14958	DeploymentTargets *DeploymentTargets `type:"structure"`
14959
14960	// The time at which the stack set operation ended, across all accounts and
14961	// Regions specified. Note that this doesn't necessarily mean that the stack
14962	// set operation was successful, or even attempted, in each account or Region.
14963	EndTimestamp *time.Time `type:"timestamp"`
14964
14965	// The name of the IAM execution role used to create or update the stack set.
14966	//
14967	// Use customized execution roles to control which stack resources users and
14968	// groups can include in their stack sets.
14969	ExecutionRoleName *string `min:"1" type:"string"`
14970
14971	// The unique ID of a stack set operation.
14972	OperationId *string `min:"1" type:"string"`
14973
14974	// The preferences for how AWS CloudFormation performs this stack set operation.
14975	OperationPreferences *StackSetOperationPreferences `type:"structure"`
14976
14977	// For stack set operations of action type DELETE, specifies whether to remove
14978	// the stack instances from the specified stack set, but doesn't delete the
14979	// stacks. You can't reassociate a retained stack, or add an existing, saved
14980	// stack to a new stack set.
14981	RetainStacks *bool `type:"boolean"`
14982
14983	// Detailed information about the drift status of the stack set. This includes
14984	// information about drift operations currently being performed on the stack
14985	// set.
14986	//
14987	// this information will only be present for stack set operations whose Action
14988	// type is DETECT_DRIFT.
14989	//
14990	// For more information, see Detecting Unmanaged Changes in Stack Sets (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/stacksets-drift.html)
14991	// in the AWS CloudFormation User Guide.
14992	StackSetDriftDetectionDetails *StackSetDriftDetectionDetails `type:"structure"`
14993
14994	// The ID of the stack set.
14995	StackSetId *string `type:"string"`
14996
14997	// The status of the operation.
14998	//
14999	//    * FAILED: The operation exceeded the specified failure tolerance. The
15000	//    failure tolerance value that you've set for an operation is applied for
15001	//    each Region during stack create and update operations. If the number of
15002	//    failed stacks within a Region exceeds the failure tolerance, the status
15003	//    of the operation in the Region is set to FAILED. This in turn sets the
15004	//    status of the operation as a whole to FAILED, and AWS CloudFormation cancels
15005	//    the operation in any remaining Regions.
15006	//
15007	//    * QUEUED: [Service-managed permissions] For automatic deployments that
15008	//    require a sequence of operations, the operation is queued to be performed.
15009	//    For more information, see the stack set operation status codes (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/stacksets-concepts.html#stackset-status-codes)
15010	//    in the AWS CloudFormation User Guide.
15011	//
15012	//    * RUNNING: The operation is currently being performed.
15013	//
15014	//    * STOPPED: The user has cancelled the operation.
15015	//
15016	//    * STOPPING: The operation is in the process of stopping, at user request.
15017	//
15018	//    * SUCCEEDED: The operation completed creating or updating all the specified
15019	//    stacks without exceeding the failure tolerance for the operation.
15020	Status *string `type:"string" enum:"StackSetOperationStatus"`
15021}
15022
15023// String returns the string representation
15024func (s StackSetOperation) String() string {
15025	return awsutil.Prettify(s)
15026}
15027
15028// GoString returns the string representation
15029func (s StackSetOperation) GoString() string {
15030	return s.String()
15031}
15032
15033// SetAction sets the Action field's value.
15034func (s *StackSetOperation) SetAction(v string) *StackSetOperation {
15035	s.Action = &v
15036	return s
15037}
15038
15039// SetAdministrationRoleARN sets the AdministrationRoleARN field's value.
15040func (s *StackSetOperation) SetAdministrationRoleARN(v string) *StackSetOperation {
15041	s.AdministrationRoleARN = &v
15042	return s
15043}
15044
15045// SetCreationTimestamp sets the CreationTimestamp field's value.
15046func (s *StackSetOperation) SetCreationTimestamp(v time.Time) *StackSetOperation {
15047	s.CreationTimestamp = &v
15048	return s
15049}
15050
15051// SetDeploymentTargets sets the DeploymentTargets field's value.
15052func (s *StackSetOperation) SetDeploymentTargets(v *DeploymentTargets) *StackSetOperation {
15053	s.DeploymentTargets = v
15054	return s
15055}
15056
15057// SetEndTimestamp sets the EndTimestamp field's value.
15058func (s *StackSetOperation) SetEndTimestamp(v time.Time) *StackSetOperation {
15059	s.EndTimestamp = &v
15060	return s
15061}
15062
15063// SetExecutionRoleName sets the ExecutionRoleName field's value.
15064func (s *StackSetOperation) SetExecutionRoleName(v string) *StackSetOperation {
15065	s.ExecutionRoleName = &v
15066	return s
15067}
15068
15069// SetOperationId sets the OperationId field's value.
15070func (s *StackSetOperation) SetOperationId(v string) *StackSetOperation {
15071	s.OperationId = &v
15072	return s
15073}
15074
15075// SetOperationPreferences sets the OperationPreferences field's value.
15076func (s *StackSetOperation) SetOperationPreferences(v *StackSetOperationPreferences) *StackSetOperation {
15077	s.OperationPreferences = v
15078	return s
15079}
15080
15081// SetRetainStacks sets the RetainStacks field's value.
15082func (s *StackSetOperation) SetRetainStacks(v bool) *StackSetOperation {
15083	s.RetainStacks = &v
15084	return s
15085}
15086
15087// SetStackSetDriftDetectionDetails sets the StackSetDriftDetectionDetails field's value.
15088func (s *StackSetOperation) SetStackSetDriftDetectionDetails(v *StackSetDriftDetectionDetails) *StackSetOperation {
15089	s.StackSetDriftDetectionDetails = v
15090	return s
15091}
15092
15093// SetStackSetId sets the StackSetId field's value.
15094func (s *StackSetOperation) SetStackSetId(v string) *StackSetOperation {
15095	s.StackSetId = &v
15096	return s
15097}
15098
15099// SetStatus sets the Status field's value.
15100func (s *StackSetOperation) SetStatus(v string) *StackSetOperation {
15101	s.Status = &v
15102	return s
15103}
15104
15105// The user-specified preferences for how AWS CloudFormation performs a stack
15106// set operation.
15107//
15108// For more information on maximum concurrent accounts and failure tolerance,
15109// see Stack set operation options (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/stacksets-concepts.html#stackset-ops-options).
15110type StackSetOperationPreferences struct {
15111	_ struct{} `type:"structure"`
15112
15113	// The number of accounts, per Region, for which this operation can fail before
15114	// AWS CloudFormation stops the operation in that Region. If the operation is
15115	// stopped in a Region, AWS CloudFormation doesn't attempt the operation in
15116	// any subsequent Regions.
15117	//
15118	// Conditional: You must specify either FailureToleranceCount or FailureTolerancePercentage
15119	// (but not both).
15120	FailureToleranceCount *int64 `type:"integer"`
15121
15122	// The percentage of accounts, per Region, for which this stack operation can
15123	// fail before AWS CloudFormation stops the operation in that Region. If the
15124	// operation is stopped in a Region, AWS CloudFormation doesn't attempt the
15125	// operation in any subsequent Regions.
15126	//
15127	// When calculating the number of accounts based on the specified percentage,
15128	// AWS CloudFormation rounds down to the next whole number.
15129	//
15130	// Conditional: You must specify either FailureToleranceCount or FailureTolerancePercentage,
15131	// but not both.
15132	FailureTolerancePercentage *int64 `type:"integer"`
15133
15134	// The maximum number of accounts in which to perform this operation at one
15135	// time. This is dependent on the value of FailureToleranceCount. MaxConcurrentCount
15136	// is at most one more than the FailureToleranceCount.
15137	//
15138	// Note that this setting lets you specify the maximum for operations. For large
15139	// deployments, under certain circumstances the actual number of accounts acted
15140	// upon concurrently may be lower due to service throttling.
15141	//
15142	// Conditional: You must specify either MaxConcurrentCount or MaxConcurrentPercentage,
15143	// but not both.
15144	MaxConcurrentCount *int64 `min:"1" type:"integer"`
15145
15146	// The maximum percentage of accounts in which to perform this operation at
15147	// one time.
15148	//
15149	// When calculating the number of accounts based on the specified percentage,
15150	// AWS CloudFormation rounds down to the next whole number. This is true except
15151	// in cases where rounding down would result is zero. In this case, CloudFormation
15152	// sets the number as one instead.
15153	//
15154	// Note that this setting lets you specify the maximum for operations. For large
15155	// deployments, under certain circumstances the actual number of accounts acted
15156	// upon concurrently may be lower due to service throttling.
15157	//
15158	// Conditional: You must specify either MaxConcurrentCount or MaxConcurrentPercentage,
15159	// but not both.
15160	MaxConcurrentPercentage *int64 `min:"1" type:"integer"`
15161
15162	// The order of the Regions in where you want to perform the stack operation.
15163	RegionOrder []*string `type:"list"`
15164}
15165
15166// String returns the string representation
15167func (s StackSetOperationPreferences) String() string {
15168	return awsutil.Prettify(s)
15169}
15170
15171// GoString returns the string representation
15172func (s StackSetOperationPreferences) GoString() string {
15173	return s.String()
15174}
15175
15176// Validate inspects the fields of the type to determine if they are valid.
15177func (s *StackSetOperationPreferences) Validate() error {
15178	invalidParams := request.ErrInvalidParams{Context: "StackSetOperationPreferences"}
15179	if s.MaxConcurrentCount != nil && *s.MaxConcurrentCount < 1 {
15180		invalidParams.Add(request.NewErrParamMinValue("MaxConcurrentCount", 1))
15181	}
15182	if s.MaxConcurrentPercentage != nil && *s.MaxConcurrentPercentage < 1 {
15183		invalidParams.Add(request.NewErrParamMinValue("MaxConcurrentPercentage", 1))
15184	}
15185
15186	if invalidParams.Len() > 0 {
15187		return invalidParams
15188	}
15189	return nil
15190}
15191
15192// SetFailureToleranceCount sets the FailureToleranceCount field's value.
15193func (s *StackSetOperationPreferences) SetFailureToleranceCount(v int64) *StackSetOperationPreferences {
15194	s.FailureToleranceCount = &v
15195	return s
15196}
15197
15198// SetFailureTolerancePercentage sets the FailureTolerancePercentage field's value.
15199func (s *StackSetOperationPreferences) SetFailureTolerancePercentage(v int64) *StackSetOperationPreferences {
15200	s.FailureTolerancePercentage = &v
15201	return s
15202}
15203
15204// SetMaxConcurrentCount sets the MaxConcurrentCount field's value.
15205func (s *StackSetOperationPreferences) SetMaxConcurrentCount(v int64) *StackSetOperationPreferences {
15206	s.MaxConcurrentCount = &v
15207	return s
15208}
15209
15210// SetMaxConcurrentPercentage sets the MaxConcurrentPercentage field's value.
15211func (s *StackSetOperationPreferences) SetMaxConcurrentPercentage(v int64) *StackSetOperationPreferences {
15212	s.MaxConcurrentPercentage = &v
15213	return s
15214}
15215
15216// SetRegionOrder sets the RegionOrder field's value.
15217func (s *StackSetOperationPreferences) SetRegionOrder(v []*string) *StackSetOperationPreferences {
15218	s.RegionOrder = v
15219	return s
15220}
15221
15222// The structure that contains information about a specified operation's results
15223// for a given account in a given Region.
15224type StackSetOperationResultSummary struct {
15225	_ struct{} `type:"structure"`
15226
15227	// [Self-managed permissions] The name of the AWS account for this operation
15228	// result.
15229	Account *string `type:"string"`
15230
15231	// The results of the account gate function AWS CloudFormation invokes, if present,
15232	// before proceeding with stack set operations in an account
15233	AccountGateResult *AccountGateResult `type:"structure"`
15234
15235	// [Service-managed permissions] The organization root ID or organizational
15236	// unit (OU) IDs that you specified for DeploymentTargets (https://docs.aws.amazon.com/AWSCloudFormation/latest/APIReference/API_DeploymentTargets.html).
15237	OrganizationalUnitId *string `type:"string"`
15238
15239	// The name of the AWS Region for this operation result.
15240	Region *string `type:"string"`
15241
15242	// The result status of the stack set operation for the given account in the
15243	// given Region.
15244	//
15245	//    * CANCELLED: The operation in the specified account and Region has been
15246	//    cancelled. This is either because a user has stopped the stack set operation,
15247	//    or because the failure tolerance of the stack set operation has been exceeded.
15248	//
15249	//    * FAILED: The operation in the specified account and Region failed. If
15250	//    the stack set operation fails in enough accounts within a Region, the
15251	//    failure tolerance for the stack set operation as a whole might be exceeded.
15252	//
15253	//    * RUNNING: The operation in the specified account and Region is currently
15254	//    in progress.
15255	//
15256	//    * PENDING: The operation in the specified account and Region has yet to
15257	//    start.
15258	//
15259	//    * SUCCEEDED: The operation in the specified account and Region completed
15260	//    successfully.
15261	Status *string `type:"string" enum:"StackSetOperationResultStatus"`
15262
15263	// The reason for the assigned result status.
15264	StatusReason *string `type:"string"`
15265}
15266
15267// String returns the string representation
15268func (s StackSetOperationResultSummary) String() string {
15269	return awsutil.Prettify(s)
15270}
15271
15272// GoString returns the string representation
15273func (s StackSetOperationResultSummary) GoString() string {
15274	return s.String()
15275}
15276
15277// SetAccount sets the Account field's value.
15278func (s *StackSetOperationResultSummary) SetAccount(v string) *StackSetOperationResultSummary {
15279	s.Account = &v
15280	return s
15281}
15282
15283// SetAccountGateResult sets the AccountGateResult field's value.
15284func (s *StackSetOperationResultSummary) SetAccountGateResult(v *AccountGateResult) *StackSetOperationResultSummary {
15285	s.AccountGateResult = v
15286	return s
15287}
15288
15289// SetOrganizationalUnitId sets the OrganizationalUnitId field's value.
15290func (s *StackSetOperationResultSummary) SetOrganizationalUnitId(v string) *StackSetOperationResultSummary {
15291	s.OrganizationalUnitId = &v
15292	return s
15293}
15294
15295// SetRegion sets the Region field's value.
15296func (s *StackSetOperationResultSummary) SetRegion(v string) *StackSetOperationResultSummary {
15297	s.Region = &v
15298	return s
15299}
15300
15301// SetStatus sets the Status field's value.
15302func (s *StackSetOperationResultSummary) SetStatus(v string) *StackSetOperationResultSummary {
15303	s.Status = &v
15304	return s
15305}
15306
15307// SetStatusReason sets the StatusReason field's value.
15308func (s *StackSetOperationResultSummary) SetStatusReason(v string) *StackSetOperationResultSummary {
15309	s.StatusReason = &v
15310	return s
15311}
15312
15313// The structures that contain summary information about the specified operation.
15314type StackSetOperationSummary struct {
15315	_ struct{} `type:"structure"`
15316
15317	// The type of operation: CREATE, UPDATE, or DELETE. Create and delete operations
15318	// affect only the specified stack instances that are associated with the specified
15319	// stack set. Update operations affect both the stack set itself as well as
15320	// all associated stack set instances.
15321	Action *string `type:"string" enum:"StackSetOperationAction"`
15322
15323	// The time at which the operation was initiated. Note that the creation times
15324	// for the stack set operation might differ from the creation time of the individual
15325	// stacks themselves. This is because AWS CloudFormation needs to perform preparatory
15326	// work for the operation, such as dispatching the work to the requested Regions,
15327	// before actually creating the first stacks.
15328	CreationTimestamp *time.Time `type:"timestamp"`
15329
15330	// The time at which the stack set operation ended, across all accounts and
15331	// Regions specified. Note that this doesn't necessarily mean that the stack
15332	// set operation was successful, or even attempted, in each account or Region.
15333	EndTimestamp *time.Time `type:"timestamp"`
15334
15335	// The unique ID of the stack set operation.
15336	OperationId *string `min:"1" type:"string"`
15337
15338	// The overall status of the operation.
15339	//
15340	//    * FAILED: The operation exceeded the specified failure tolerance. The
15341	//    failure tolerance value that you've set for an operation is applied for
15342	//    each Region during stack create and update operations. If the number of
15343	//    failed stacks within a Region exceeds the failure tolerance, the status
15344	//    of the operation in the Region is set to FAILED. This in turn sets the
15345	//    status of the operation as a whole to FAILED, and AWS CloudFormation cancels
15346	//    the operation in any remaining Regions.
15347	//
15348	//    * QUEUED: [Service-managed permissions] For automatic deployments that
15349	//    require a sequence of operations, the operation is queued to be performed.
15350	//    For more information, see the stack set operation status codes (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/stacksets-concepts.html#stackset-status-codes)
15351	//    in the AWS CloudFormation User Guide.
15352	//
15353	//    * RUNNING: The operation is currently being performed.
15354	//
15355	//    * STOPPED: The user has cancelled the operation.
15356	//
15357	//    * STOPPING: The operation is in the process of stopping, at user request.
15358	//
15359	//    * SUCCEEDED: The operation completed creating or updating all the specified
15360	//    stacks without exceeding the failure tolerance for the operation.
15361	Status *string `type:"string" enum:"StackSetOperationStatus"`
15362}
15363
15364// String returns the string representation
15365func (s StackSetOperationSummary) String() string {
15366	return awsutil.Prettify(s)
15367}
15368
15369// GoString returns the string representation
15370func (s StackSetOperationSummary) GoString() string {
15371	return s.String()
15372}
15373
15374// SetAction sets the Action field's value.
15375func (s *StackSetOperationSummary) SetAction(v string) *StackSetOperationSummary {
15376	s.Action = &v
15377	return s
15378}
15379
15380// SetCreationTimestamp sets the CreationTimestamp field's value.
15381func (s *StackSetOperationSummary) SetCreationTimestamp(v time.Time) *StackSetOperationSummary {
15382	s.CreationTimestamp = &v
15383	return s
15384}
15385
15386// SetEndTimestamp sets the EndTimestamp field's value.
15387func (s *StackSetOperationSummary) SetEndTimestamp(v time.Time) *StackSetOperationSummary {
15388	s.EndTimestamp = &v
15389	return s
15390}
15391
15392// SetOperationId sets the OperationId field's value.
15393func (s *StackSetOperationSummary) SetOperationId(v string) *StackSetOperationSummary {
15394	s.OperationId = &v
15395	return s
15396}
15397
15398// SetStatus sets the Status field's value.
15399func (s *StackSetOperationSummary) SetStatus(v string) *StackSetOperationSummary {
15400	s.Status = &v
15401	return s
15402}
15403
15404// The structures that contain summary information about the specified stack
15405// set.
15406type StackSetSummary struct {
15407	_ struct{} `type:"structure"`
15408
15409	// [Service-managed permissions] Describes whether StackSets automatically deploys
15410	// to AWS Organizations accounts that are added to a target organizational unit
15411	// (OU).
15412	AutoDeployment *AutoDeployment `type:"structure"`
15413
15414	// A description of the stack set that you specify when the stack set is created
15415	// or updated.
15416	Description *string `min:"1" type:"string"`
15417
15418	// Status of the stack set's actual configuration compared to its expected template
15419	// and parameter configuration. A stack set is considered to have drifted if
15420	// one or more of its stack instances have drifted from their expected template
15421	// and parameter configuration.
15422	//
15423	//    * DRIFTED: One or more of the stack instances belonging to the stack set
15424	//    stack differs from the expected template and parameter configuration.
15425	//    A stack instance is considered to have drifted if one or more of the resources
15426	//    in the associated stack have drifted.
15427	//
15428	//    * NOT_CHECKED: AWS CloudFormation has not checked the stack set for drift.
15429	//
15430	//    * IN_SYNC: All of the stack instances belonging to the stack set stack
15431	//    match from the expected template and parameter configuration.
15432	//
15433	//    * UNKNOWN: This value is reserved for future use.
15434	DriftStatus *string `type:"string" enum:"StackDriftStatus"`
15435
15436	// Most recent time when CloudFormation performed a drift detection operation
15437	// on the stack set. This value will be NULL for any stack set on which drift
15438	// detection has not yet been performed.
15439	LastDriftCheckTimestamp *time.Time `type:"timestamp"`
15440
15441	// Describes how the IAM roles required for stack set operations are created.
15442	//
15443	//    * With self-managed permissions, you must create the administrator and
15444	//    execution roles required to deploy to target accounts. For more information,
15445	//    see Grant Self-Managed Stack Set Permissions (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/stacksets-prereqs-self-managed.html).
15446	//
15447	//    * With service-managed permissions, StackSets automatically creates the
15448	//    IAM roles required to deploy to accounts managed by AWS Organizations.
15449	//    For more information, see Grant Service-Managed Stack Set Permissions
15450	//    (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/stacksets-prereqs-service-managed.html).
15451	PermissionModel *string `type:"string" enum:"PermissionModels"`
15452
15453	// The ID of the stack set.
15454	StackSetId *string `type:"string"`
15455
15456	// The name of the stack set.
15457	StackSetName *string `type:"string"`
15458
15459	// The status of the stack set.
15460	Status *string `type:"string" enum:"StackSetStatus"`
15461}
15462
15463// String returns the string representation
15464func (s StackSetSummary) String() string {
15465	return awsutil.Prettify(s)
15466}
15467
15468// GoString returns the string representation
15469func (s StackSetSummary) GoString() string {
15470	return s.String()
15471}
15472
15473// SetAutoDeployment sets the AutoDeployment field's value.
15474func (s *StackSetSummary) SetAutoDeployment(v *AutoDeployment) *StackSetSummary {
15475	s.AutoDeployment = v
15476	return s
15477}
15478
15479// SetDescription sets the Description field's value.
15480func (s *StackSetSummary) SetDescription(v string) *StackSetSummary {
15481	s.Description = &v
15482	return s
15483}
15484
15485// SetDriftStatus sets the DriftStatus field's value.
15486func (s *StackSetSummary) SetDriftStatus(v string) *StackSetSummary {
15487	s.DriftStatus = &v
15488	return s
15489}
15490
15491// SetLastDriftCheckTimestamp sets the LastDriftCheckTimestamp field's value.
15492func (s *StackSetSummary) SetLastDriftCheckTimestamp(v time.Time) *StackSetSummary {
15493	s.LastDriftCheckTimestamp = &v
15494	return s
15495}
15496
15497// SetPermissionModel sets the PermissionModel field's value.
15498func (s *StackSetSummary) SetPermissionModel(v string) *StackSetSummary {
15499	s.PermissionModel = &v
15500	return s
15501}
15502
15503// SetStackSetId sets the StackSetId field's value.
15504func (s *StackSetSummary) SetStackSetId(v string) *StackSetSummary {
15505	s.StackSetId = &v
15506	return s
15507}
15508
15509// SetStackSetName sets the StackSetName field's value.
15510func (s *StackSetSummary) SetStackSetName(v string) *StackSetSummary {
15511	s.StackSetName = &v
15512	return s
15513}
15514
15515// SetStatus sets the Status field's value.
15516func (s *StackSetSummary) SetStatus(v string) *StackSetSummary {
15517	s.Status = &v
15518	return s
15519}
15520
15521// The StackSummary Data Type
15522type StackSummary struct {
15523	_ struct{} `type:"structure"`
15524
15525	// The time the stack was created.
15526	//
15527	// CreationTime is a required field
15528	CreationTime *time.Time `type:"timestamp" required:"true"`
15529
15530	// The time the stack was deleted.
15531	DeletionTime *time.Time `type:"timestamp"`
15532
15533	// Summarizes information on whether a stack's actual configuration differs,
15534	// or has drifted, from it's expected configuration, as defined in the stack
15535	// template and any values specified as template parameters. For more information,
15536	// see Detecting Unregulated Configuration Changes to Stacks and Resources (http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-stack-drift.html).
15537	DriftInformation *StackDriftInformationSummary `type:"structure"`
15538
15539	// The time the stack was last updated. This field will only be returned if
15540	// the stack has been updated at least once.
15541	LastUpdatedTime *time.Time `type:"timestamp"`
15542
15543	// For nested stacks--stacks created as resources for another stack--the stack
15544	// ID of the direct parent of this stack. For the first level of nested stacks,
15545	// the root stack is also the parent stack.
15546	//
15547	// For more information, see Working with Nested Stacks (http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-nested-stacks.html)
15548	// in the AWS CloudFormation User Guide.
15549	ParentId *string `type:"string"`
15550
15551	// For nested stacks--stacks created as resources for another stack--the stack
15552	// ID of the top-level stack to which the nested stack ultimately belongs.
15553	//
15554	// For more information, see Working with Nested Stacks (http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-nested-stacks.html)
15555	// in the AWS CloudFormation User Guide.
15556	RootId *string `type:"string"`
15557
15558	// Unique stack identifier.
15559	StackId *string `type:"string"`
15560
15561	// The name associated with the stack.
15562	//
15563	// StackName is a required field
15564	StackName *string `type:"string" required:"true"`
15565
15566	// The current status of the stack.
15567	//
15568	// StackStatus is a required field
15569	StackStatus *string `type:"string" required:"true" enum:"StackStatus"`
15570
15571	// Success/Failure message associated with the stack status.
15572	StackStatusReason *string `type:"string"`
15573
15574	// The template description of the template used to create the stack.
15575	TemplateDescription *string `type:"string"`
15576}
15577
15578// String returns the string representation
15579func (s StackSummary) String() string {
15580	return awsutil.Prettify(s)
15581}
15582
15583// GoString returns the string representation
15584func (s StackSummary) GoString() string {
15585	return s.String()
15586}
15587
15588// SetCreationTime sets the CreationTime field's value.
15589func (s *StackSummary) SetCreationTime(v time.Time) *StackSummary {
15590	s.CreationTime = &v
15591	return s
15592}
15593
15594// SetDeletionTime sets the DeletionTime field's value.
15595func (s *StackSummary) SetDeletionTime(v time.Time) *StackSummary {
15596	s.DeletionTime = &v
15597	return s
15598}
15599
15600// SetDriftInformation sets the DriftInformation field's value.
15601func (s *StackSummary) SetDriftInformation(v *StackDriftInformationSummary) *StackSummary {
15602	s.DriftInformation = v
15603	return s
15604}
15605
15606// SetLastUpdatedTime sets the LastUpdatedTime field's value.
15607func (s *StackSummary) SetLastUpdatedTime(v time.Time) *StackSummary {
15608	s.LastUpdatedTime = &v
15609	return s
15610}
15611
15612// SetParentId sets the ParentId field's value.
15613func (s *StackSummary) SetParentId(v string) *StackSummary {
15614	s.ParentId = &v
15615	return s
15616}
15617
15618// SetRootId sets the RootId field's value.
15619func (s *StackSummary) SetRootId(v string) *StackSummary {
15620	s.RootId = &v
15621	return s
15622}
15623
15624// SetStackId sets the StackId field's value.
15625func (s *StackSummary) SetStackId(v string) *StackSummary {
15626	s.StackId = &v
15627	return s
15628}
15629
15630// SetStackName sets the StackName field's value.
15631func (s *StackSummary) SetStackName(v string) *StackSummary {
15632	s.StackName = &v
15633	return s
15634}
15635
15636// SetStackStatus sets the StackStatus field's value.
15637func (s *StackSummary) SetStackStatus(v string) *StackSummary {
15638	s.StackStatus = &v
15639	return s
15640}
15641
15642// SetStackStatusReason sets the StackStatusReason field's value.
15643func (s *StackSummary) SetStackStatusReason(v string) *StackSummary {
15644	s.StackStatusReason = &v
15645	return s
15646}
15647
15648// SetTemplateDescription sets the TemplateDescription field's value.
15649func (s *StackSummary) SetTemplateDescription(v string) *StackSummary {
15650	s.TemplateDescription = &v
15651	return s
15652}
15653
15654type StopStackSetOperationInput struct {
15655	_ struct{} `type:"structure"`
15656
15657	// The ID of the stack operation.
15658	//
15659	// OperationId is a required field
15660	OperationId *string `min:"1" type:"string" required:"true"`
15661
15662	// The name or unique ID of the stack set that you want to stop the operation
15663	// for.
15664	//
15665	// StackSetName is a required field
15666	StackSetName *string `type:"string" required:"true"`
15667}
15668
15669// String returns the string representation
15670func (s StopStackSetOperationInput) String() string {
15671	return awsutil.Prettify(s)
15672}
15673
15674// GoString returns the string representation
15675func (s StopStackSetOperationInput) GoString() string {
15676	return s.String()
15677}
15678
15679// Validate inspects the fields of the type to determine if they are valid.
15680func (s *StopStackSetOperationInput) Validate() error {
15681	invalidParams := request.ErrInvalidParams{Context: "StopStackSetOperationInput"}
15682	if s.OperationId == nil {
15683		invalidParams.Add(request.NewErrParamRequired("OperationId"))
15684	}
15685	if s.OperationId != nil && len(*s.OperationId) < 1 {
15686		invalidParams.Add(request.NewErrParamMinLen("OperationId", 1))
15687	}
15688	if s.StackSetName == nil {
15689		invalidParams.Add(request.NewErrParamRequired("StackSetName"))
15690	}
15691
15692	if invalidParams.Len() > 0 {
15693		return invalidParams
15694	}
15695	return nil
15696}
15697
15698// SetOperationId sets the OperationId field's value.
15699func (s *StopStackSetOperationInput) SetOperationId(v string) *StopStackSetOperationInput {
15700	s.OperationId = &v
15701	return s
15702}
15703
15704// SetStackSetName sets the StackSetName field's value.
15705func (s *StopStackSetOperationInput) SetStackSetName(v string) *StopStackSetOperationInput {
15706	s.StackSetName = &v
15707	return s
15708}
15709
15710type StopStackSetOperationOutput struct {
15711	_ struct{} `type:"structure"`
15712}
15713
15714// String returns the string representation
15715func (s StopStackSetOperationOutput) String() string {
15716	return awsutil.Prettify(s)
15717}
15718
15719// GoString returns the string representation
15720func (s StopStackSetOperationOutput) GoString() string {
15721	return s.String()
15722}
15723
15724// The Tag type enables you to specify a key-value pair that can be used to
15725// store information about an AWS CloudFormation stack.
15726type Tag struct {
15727	_ struct{} `type:"structure"`
15728
15729	// Required. A string used to identify this tag. You can specify a maximum of
15730	// 128 characters for a tag key. Tags owned by Amazon Web Services (AWS) have
15731	// the reserved prefix: aws:.
15732	//
15733	// Key is a required field
15734	Key *string `min:"1" type:"string" required:"true"`
15735
15736	// Required. A string containing the value for this tag. You can specify a maximum
15737	// of 256 characters for a tag value.
15738	//
15739	// Value is a required field
15740	Value *string `min:"1" type:"string" required:"true"`
15741}
15742
15743// String returns the string representation
15744func (s Tag) String() string {
15745	return awsutil.Prettify(s)
15746}
15747
15748// GoString returns the string representation
15749func (s Tag) GoString() string {
15750	return s.String()
15751}
15752
15753// Validate inspects the fields of the type to determine if they are valid.
15754func (s *Tag) Validate() error {
15755	invalidParams := request.ErrInvalidParams{Context: "Tag"}
15756	if s.Key == nil {
15757		invalidParams.Add(request.NewErrParamRequired("Key"))
15758	}
15759	if s.Key != nil && len(*s.Key) < 1 {
15760		invalidParams.Add(request.NewErrParamMinLen("Key", 1))
15761	}
15762	if s.Value == nil {
15763		invalidParams.Add(request.NewErrParamRequired("Value"))
15764	}
15765	if s.Value != nil && len(*s.Value) < 1 {
15766		invalidParams.Add(request.NewErrParamMinLen("Value", 1))
15767	}
15768
15769	if invalidParams.Len() > 0 {
15770		return invalidParams
15771	}
15772	return nil
15773}
15774
15775// SetKey sets the Key field's value.
15776func (s *Tag) SetKey(v string) *Tag {
15777	s.Key = &v
15778	return s
15779}
15780
15781// SetValue sets the Value field's value.
15782func (s *Tag) SetValue(v string) *Tag {
15783	s.Value = &v
15784	return s
15785}
15786
15787// The TemplateParameter data type.
15788type TemplateParameter struct {
15789	_ struct{} `type:"structure"`
15790
15791	// The default value associated with the parameter.
15792	DefaultValue *string `type:"string"`
15793
15794	// User defined description associated with the parameter.
15795	Description *string `min:"1" type:"string"`
15796
15797	// Flag indicating whether the parameter should be displayed as plain text in
15798	// logs and UIs.
15799	NoEcho *bool `type:"boolean"`
15800
15801	// The name associated with the parameter.
15802	ParameterKey *string `type:"string"`
15803}
15804
15805// String returns the string representation
15806func (s TemplateParameter) String() string {
15807	return awsutil.Prettify(s)
15808}
15809
15810// GoString returns the string representation
15811func (s TemplateParameter) GoString() string {
15812	return s.String()
15813}
15814
15815// SetDefaultValue sets the DefaultValue field's value.
15816func (s *TemplateParameter) SetDefaultValue(v string) *TemplateParameter {
15817	s.DefaultValue = &v
15818	return s
15819}
15820
15821// SetDescription sets the Description field's value.
15822func (s *TemplateParameter) SetDescription(v string) *TemplateParameter {
15823	s.Description = &v
15824	return s
15825}
15826
15827// SetNoEcho sets the NoEcho field's value.
15828func (s *TemplateParameter) SetNoEcho(v bool) *TemplateParameter {
15829	s.NoEcho = &v
15830	return s
15831}
15832
15833// SetParameterKey sets the ParameterKey field's value.
15834func (s *TemplateParameter) SetParameterKey(v string) *TemplateParameter {
15835	s.ParameterKey = &v
15836	return s
15837}
15838
15839// Contains summary information about the specified CloudFormation type.
15840type TypeSummary struct {
15841	_ struct{} `type:"structure"`
15842
15843	// The ID of the default version of the type. The default version is used when
15844	// the type version is not specified.
15845	//
15846	// To set the default version of a type, use SetTypeDefaultVersion .
15847	DefaultVersionId *string `min:"1" type:"string"`
15848
15849	// The description of the type.
15850	Description *string `min:"1" type:"string"`
15851
15852	// When the current default version of the type was registered.
15853	LastUpdated *time.Time `type:"timestamp"`
15854
15855	// The kind of type.
15856	Type *string `type:"string" enum:"RegistryType"`
15857
15858	// The Amazon Resource Name (ARN) of the type.
15859	TypeArn *string `type:"string"`
15860
15861	// The name of the type.
15862	TypeName *string `min:"10" type:"string"`
15863}
15864
15865// String returns the string representation
15866func (s TypeSummary) String() string {
15867	return awsutil.Prettify(s)
15868}
15869
15870// GoString returns the string representation
15871func (s TypeSummary) GoString() string {
15872	return s.String()
15873}
15874
15875// SetDefaultVersionId sets the DefaultVersionId field's value.
15876func (s *TypeSummary) SetDefaultVersionId(v string) *TypeSummary {
15877	s.DefaultVersionId = &v
15878	return s
15879}
15880
15881// SetDescription sets the Description field's value.
15882func (s *TypeSummary) SetDescription(v string) *TypeSummary {
15883	s.Description = &v
15884	return s
15885}
15886
15887// SetLastUpdated sets the LastUpdated field's value.
15888func (s *TypeSummary) SetLastUpdated(v time.Time) *TypeSummary {
15889	s.LastUpdated = &v
15890	return s
15891}
15892
15893// SetType sets the Type field's value.
15894func (s *TypeSummary) SetType(v string) *TypeSummary {
15895	s.Type = &v
15896	return s
15897}
15898
15899// SetTypeArn sets the TypeArn field's value.
15900func (s *TypeSummary) SetTypeArn(v string) *TypeSummary {
15901	s.TypeArn = &v
15902	return s
15903}
15904
15905// SetTypeName sets the TypeName field's value.
15906func (s *TypeSummary) SetTypeName(v string) *TypeSummary {
15907	s.TypeName = &v
15908	return s
15909}
15910
15911// Contains summary information about a specific version of a CloudFormation
15912// type.
15913type TypeVersionSummary struct {
15914	_ struct{} `type:"structure"`
15915
15916	// The Amazon Resource Name (ARN) of the type version.
15917	Arn *string `type:"string"`
15918
15919	// The description of the type version.
15920	Description *string `min:"1" type:"string"`
15921
15922	// Whether the specified type version is set as the default version.
15923	IsDefaultVersion *bool `type:"boolean"`
15924
15925	// When the version was registered.
15926	TimeCreated *time.Time `type:"timestamp"`
15927
15928	// The kind of type.
15929	Type *string `type:"string" enum:"RegistryType"`
15930
15931	// The name of the type.
15932	TypeName *string `min:"10" type:"string"`
15933
15934	// The ID of a specific version of the type. The version ID is the value at
15935	// the end of the Amazon Resource Name (ARN) assigned to the type version when
15936	// it is registered.
15937	VersionId *string `min:"1" type:"string"`
15938}
15939
15940// String returns the string representation
15941func (s TypeVersionSummary) String() string {
15942	return awsutil.Prettify(s)
15943}
15944
15945// GoString returns the string representation
15946func (s TypeVersionSummary) GoString() string {
15947	return s.String()
15948}
15949
15950// SetArn sets the Arn field's value.
15951func (s *TypeVersionSummary) SetArn(v string) *TypeVersionSummary {
15952	s.Arn = &v
15953	return s
15954}
15955
15956// SetDescription sets the Description field's value.
15957func (s *TypeVersionSummary) SetDescription(v string) *TypeVersionSummary {
15958	s.Description = &v
15959	return s
15960}
15961
15962// SetIsDefaultVersion sets the IsDefaultVersion field's value.
15963func (s *TypeVersionSummary) SetIsDefaultVersion(v bool) *TypeVersionSummary {
15964	s.IsDefaultVersion = &v
15965	return s
15966}
15967
15968// SetTimeCreated sets the TimeCreated field's value.
15969func (s *TypeVersionSummary) SetTimeCreated(v time.Time) *TypeVersionSummary {
15970	s.TimeCreated = &v
15971	return s
15972}
15973
15974// SetType sets the Type field's value.
15975func (s *TypeVersionSummary) SetType(v string) *TypeVersionSummary {
15976	s.Type = &v
15977	return s
15978}
15979
15980// SetTypeName sets the TypeName field's value.
15981func (s *TypeVersionSummary) SetTypeName(v string) *TypeVersionSummary {
15982	s.TypeName = &v
15983	return s
15984}
15985
15986// SetVersionId sets the VersionId field's value.
15987func (s *TypeVersionSummary) SetVersionId(v string) *TypeVersionSummary {
15988	s.VersionId = &v
15989	return s
15990}
15991
15992// The input for an UpdateStack action.
15993type UpdateStackInput struct {
15994	_ struct{} `type:"structure"`
15995
15996	// In some cases, you must explicitly acknowledge that your stack template contains
15997	// certain capabilities in order for AWS CloudFormation to update the stack.
15998	//
15999	//    * CAPABILITY_IAM and CAPABILITY_NAMED_IAM Some stack templates might include
16000	//    resources that can affect permissions in your AWS account; for example,
16001	//    by creating new AWS Identity and Access Management (IAM) users. For those
16002	//    stacks, you must explicitly acknowledge this by specifying one of these
16003	//    capabilities. The following IAM resources require you to specify either
16004	//    the CAPABILITY_IAM or CAPABILITY_NAMED_IAM capability. If you have IAM
16005	//    resources, you can specify either capability. If you have IAM resources
16006	//    with custom names, you must specify CAPABILITY_NAMED_IAM. If you don't
16007	//    specify either of these capabilities, AWS CloudFormation returns an InsufficientCapabilities
16008	//    error. If your stack template contains these resources, we recommend that
16009	//    you review all permissions associated with them and edit their permissions
16010	//    if necessary. AWS::IAM::AccessKey (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iam-accesskey.html)
16011	//    AWS::IAM::Group (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iam-group.html)
16012	//    AWS::IAM::InstanceProfile (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iam-instanceprofile.html)
16013	//    AWS::IAM::Policy (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iam-policy.html)
16014	//    AWS::IAM::Role (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iam-role.html)
16015	//    AWS::IAM::User (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iam-user.html)
16016	//    AWS::IAM::UserToGroupAddition (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iam-addusertogroup.html)
16017	//    For more information, see Acknowledging IAM Resources in AWS CloudFormation
16018	//    Templates (http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-iam-template.html#capabilities).
16019	//
16020	//    * CAPABILITY_AUTO_EXPAND Some template contain macros. Macros perform
16021	//    custom processing on templates; this can include simple actions like find-and-replace
16022	//    operations, all the way to extensive transformations of entire templates.
16023	//    Because of this, users typically create a change set from the processed
16024	//    template, so that they can review the changes resulting from the macros
16025	//    before actually updating the stack. If your stack template contains one
16026	//    or more macros, and you choose to update a stack directly from the processed
16027	//    template, without first reviewing the resulting changes in a change set,
16028	//    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)
16029	//    and AWS::Serverless (http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/transform-aws-serverless.html)
16030	//    transforms, which are macros hosted by AWS CloudFormation. Change sets
16031	//    do not currently support nested stacks. If you want to update a stack
16032	//    from a stack template that contains macros and nested stacks, you must
16033	//    update the stack directly from the template using this capability. You
16034	//    should only update stacks directly from a stack template that contains
16035	//    macros if you know what processing the macro performs. Each macro relies
16036	//    on an underlying Lambda service function for processing stack templates.
16037	//    Be aware that the Lambda function owner can update the function operation
16038	//    without AWS CloudFormation being notified. For more information, see Using
16039	//    AWS CloudFormation Macros to Perform Custom Processing on Templates (http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/template-macros.html).
16040	Capabilities []*string `type:"list"`
16041
16042	// A unique identifier for this UpdateStack request. Specify this token if you
16043	// plan to retry requests so that AWS CloudFormation knows that you're not attempting
16044	// to update a stack with the same name. You might retry UpdateStack requests
16045	// to ensure that AWS CloudFormation successfully received them.
16046	//
16047	// All events triggered by a given stack operation are assigned the same client
16048	// request token, which you can use to track operations. For example, if you
16049	// execute a CreateStack operation with the token token1, then all the StackEvents
16050	// generated by that operation will have ClientRequestToken set as token1.
16051	//
16052	// In the console, stack operations display the client request token on the
16053	// Events tab. Stack operations that are initiated from the console use the
16054	// token format Console-StackOperation-ID, which helps you easily identify the
16055	// stack operation . For example, if you create a stack using the console, each
16056	// stack event would be assigned the same token in the following format: Console-CreateStack-7f59c3cf-00d2-40c7-b2ff-e75db0987002.
16057	ClientRequestToken *string `min:"1" type:"string"`
16058
16059	// Amazon Simple Notification Service topic Amazon Resource Names (ARNs) that
16060	// AWS CloudFormation associates with the stack. Specify an empty list to remove
16061	// all notification topics.
16062	NotificationARNs []*string `type:"list"`
16063
16064	// A list of Parameter structures that specify input parameters for the stack.
16065	// For more information, see the Parameter (https://docs.aws.amazon.com/AWSCloudFormation/latest/APIReference/API_Parameter.html)
16066	// data type.
16067	Parameters []*Parameter `type:"list"`
16068
16069	// The template resource types that you have permissions to work with for this
16070	// update stack action, such as AWS::EC2::Instance, AWS::EC2::*, or Custom::MyCustomInstance.
16071	//
16072	// If the list of resource types doesn't include a resource that you're updating,
16073	// the stack update fails. By default, AWS CloudFormation grants permissions
16074	// to all resource types. AWS Identity and Access Management (IAM) uses this
16075	// parameter for AWS CloudFormation-specific condition keys in IAM policies.
16076	// For more information, see Controlling Access with AWS Identity and Access
16077	// Management (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-iam-template.html).
16078	ResourceTypes []*string `type:"list"`
16079
16080	// The Amazon Resource Name (ARN) of an AWS Identity and Access Management (IAM)
16081	// role that AWS CloudFormation assumes to update the stack. AWS CloudFormation
16082	// uses the role's credentials to make calls on your behalf. AWS CloudFormation
16083	// always uses this role for all future operations on the stack. As long as
16084	// users have permission to operate on the stack, AWS CloudFormation uses this
16085	// role even if the users don't have permission to pass it. Ensure that the
16086	// role grants least privilege.
16087	//
16088	// If you don't specify a value, AWS CloudFormation uses the role that was previously
16089	// associated with the stack. If no role is available, AWS CloudFormation uses
16090	// a temporary session that is generated from your user credentials.
16091	RoleARN *string `min:"20" type:"string"`
16092
16093	// The rollback triggers for AWS CloudFormation to monitor during stack creation
16094	// and updating operations, and for the specified monitoring period afterwards.
16095	RollbackConfiguration *RollbackConfiguration `type:"structure"`
16096
16097	// The name or unique stack ID of the stack to update.
16098	//
16099	// StackName is a required field
16100	StackName *string `type:"string" required:"true"`
16101
16102	// Structure containing a new stack policy body. You can specify either the
16103	// StackPolicyBody or the StackPolicyURL parameter, but not both.
16104	//
16105	// You might update the stack policy, for example, in order to protect a new
16106	// resource that you created during a stack update. If you do not specify a
16107	// stack policy, the current policy that is associated with the stack is unchanged.
16108	StackPolicyBody *string `min:"1" type:"string"`
16109
16110	// Structure containing the temporary overriding stack policy body. You can
16111	// specify either the StackPolicyDuringUpdateBody or the StackPolicyDuringUpdateURL
16112	// parameter, but not both.
16113	//
16114	// If you want to update protected resources, specify a temporary overriding
16115	// stack policy during this update. If you do not specify a stack policy, the
16116	// current policy that is associated with the stack will be used.
16117	StackPolicyDuringUpdateBody *string `min:"1" type:"string"`
16118
16119	// Location of a file containing the temporary overriding stack policy. The
16120	// URL must point to a policy (max size: 16KB) located in an S3 bucket in the
16121	// same Region as the stack. You can specify either the StackPolicyDuringUpdateBody
16122	// or the StackPolicyDuringUpdateURL parameter, but not both.
16123	//
16124	// If you want to update protected resources, specify a temporary overriding
16125	// stack policy during this update. If you do not specify a stack policy, the
16126	// current policy that is associated with the stack will be used.
16127	StackPolicyDuringUpdateURL *string `min:"1" type:"string"`
16128
16129	// Location of a file containing the updated stack policy. The URL must point
16130	// to a policy (max size: 16KB) located in an S3 bucket in the same Region as
16131	// the stack. You can specify either the StackPolicyBody or the StackPolicyURL
16132	// parameter, but not both.
16133	//
16134	// You might update the stack policy, for example, in order to protect a new
16135	// resource that you created during a stack update. If you do not specify a
16136	// stack policy, the current policy that is associated with the stack is unchanged.
16137	StackPolicyURL *string `min:"1" type:"string"`
16138
16139	// Key-value pairs to associate with this stack. AWS CloudFormation also propagates
16140	// these tags to supported resources in the stack. You can specify a maximum
16141	// number of 50 tags.
16142	//
16143	// If you don't specify this parameter, AWS CloudFormation doesn't modify the
16144	// stack's tags. If you specify an empty value, AWS CloudFormation removes all
16145	// associated tags.
16146	Tags []*Tag `type:"list"`
16147
16148	// Structure containing the template body with a minimum length of 1 byte and
16149	// a maximum length of 51,200 bytes. (For more information, go to Template Anatomy
16150	// (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/template-anatomy.html)
16151	// in the AWS CloudFormation User Guide.)
16152	//
16153	// Conditional: You must specify only one of the following parameters: TemplateBody,
16154	// TemplateURL, or set the UsePreviousTemplate to true.
16155	TemplateBody *string `min:"1" type:"string"`
16156
16157	// Location of file containing the template body. The URL must point to a template
16158	// that is located in an Amazon S3 bucket. For more information, go to Template
16159	// Anatomy (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/template-anatomy.html)
16160	// in the AWS CloudFormation User Guide.
16161	//
16162	// Conditional: You must specify only one of the following parameters: TemplateBody,
16163	// TemplateURL, or set the UsePreviousTemplate to true.
16164	TemplateURL *string `min:"1" type:"string"`
16165
16166	// Reuse the existing template that is associated with the stack that you are
16167	// updating.
16168	//
16169	// Conditional: You must specify only one of the following parameters: TemplateBody,
16170	// TemplateURL, or set the UsePreviousTemplate to true.
16171	UsePreviousTemplate *bool `type:"boolean"`
16172}
16173
16174// String returns the string representation
16175func (s UpdateStackInput) String() string {
16176	return awsutil.Prettify(s)
16177}
16178
16179// GoString returns the string representation
16180func (s UpdateStackInput) GoString() string {
16181	return s.String()
16182}
16183
16184// Validate inspects the fields of the type to determine if they are valid.
16185func (s *UpdateStackInput) Validate() error {
16186	invalidParams := request.ErrInvalidParams{Context: "UpdateStackInput"}
16187	if s.ClientRequestToken != nil && len(*s.ClientRequestToken) < 1 {
16188		invalidParams.Add(request.NewErrParamMinLen("ClientRequestToken", 1))
16189	}
16190	if s.RoleARN != nil && len(*s.RoleARN) < 20 {
16191		invalidParams.Add(request.NewErrParamMinLen("RoleARN", 20))
16192	}
16193	if s.StackName == nil {
16194		invalidParams.Add(request.NewErrParamRequired("StackName"))
16195	}
16196	if s.StackPolicyBody != nil && len(*s.StackPolicyBody) < 1 {
16197		invalidParams.Add(request.NewErrParamMinLen("StackPolicyBody", 1))
16198	}
16199	if s.StackPolicyDuringUpdateBody != nil && len(*s.StackPolicyDuringUpdateBody) < 1 {
16200		invalidParams.Add(request.NewErrParamMinLen("StackPolicyDuringUpdateBody", 1))
16201	}
16202	if s.StackPolicyDuringUpdateURL != nil && len(*s.StackPolicyDuringUpdateURL) < 1 {
16203		invalidParams.Add(request.NewErrParamMinLen("StackPolicyDuringUpdateURL", 1))
16204	}
16205	if s.StackPolicyURL != nil && len(*s.StackPolicyURL) < 1 {
16206		invalidParams.Add(request.NewErrParamMinLen("StackPolicyURL", 1))
16207	}
16208	if s.TemplateBody != nil && len(*s.TemplateBody) < 1 {
16209		invalidParams.Add(request.NewErrParamMinLen("TemplateBody", 1))
16210	}
16211	if s.TemplateURL != nil && len(*s.TemplateURL) < 1 {
16212		invalidParams.Add(request.NewErrParamMinLen("TemplateURL", 1))
16213	}
16214	if s.RollbackConfiguration != nil {
16215		if err := s.RollbackConfiguration.Validate(); err != nil {
16216			invalidParams.AddNested("RollbackConfiguration", err.(request.ErrInvalidParams))
16217		}
16218	}
16219	if s.Tags != nil {
16220		for i, v := range s.Tags {
16221			if v == nil {
16222				continue
16223			}
16224			if err := v.Validate(); err != nil {
16225				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Tags", i), err.(request.ErrInvalidParams))
16226			}
16227		}
16228	}
16229
16230	if invalidParams.Len() > 0 {
16231		return invalidParams
16232	}
16233	return nil
16234}
16235
16236// SetCapabilities sets the Capabilities field's value.
16237func (s *UpdateStackInput) SetCapabilities(v []*string) *UpdateStackInput {
16238	s.Capabilities = v
16239	return s
16240}
16241
16242// SetClientRequestToken sets the ClientRequestToken field's value.
16243func (s *UpdateStackInput) SetClientRequestToken(v string) *UpdateStackInput {
16244	s.ClientRequestToken = &v
16245	return s
16246}
16247
16248// SetNotificationARNs sets the NotificationARNs field's value.
16249func (s *UpdateStackInput) SetNotificationARNs(v []*string) *UpdateStackInput {
16250	s.NotificationARNs = v
16251	return s
16252}
16253
16254// SetParameters sets the Parameters field's value.
16255func (s *UpdateStackInput) SetParameters(v []*Parameter) *UpdateStackInput {
16256	s.Parameters = v
16257	return s
16258}
16259
16260// SetResourceTypes sets the ResourceTypes field's value.
16261func (s *UpdateStackInput) SetResourceTypes(v []*string) *UpdateStackInput {
16262	s.ResourceTypes = v
16263	return s
16264}
16265
16266// SetRoleARN sets the RoleARN field's value.
16267func (s *UpdateStackInput) SetRoleARN(v string) *UpdateStackInput {
16268	s.RoleARN = &v
16269	return s
16270}
16271
16272// SetRollbackConfiguration sets the RollbackConfiguration field's value.
16273func (s *UpdateStackInput) SetRollbackConfiguration(v *RollbackConfiguration) *UpdateStackInput {
16274	s.RollbackConfiguration = v
16275	return s
16276}
16277
16278// SetStackName sets the StackName field's value.
16279func (s *UpdateStackInput) SetStackName(v string) *UpdateStackInput {
16280	s.StackName = &v
16281	return s
16282}
16283
16284// SetStackPolicyBody sets the StackPolicyBody field's value.
16285func (s *UpdateStackInput) SetStackPolicyBody(v string) *UpdateStackInput {
16286	s.StackPolicyBody = &v
16287	return s
16288}
16289
16290// SetStackPolicyDuringUpdateBody sets the StackPolicyDuringUpdateBody field's value.
16291func (s *UpdateStackInput) SetStackPolicyDuringUpdateBody(v string) *UpdateStackInput {
16292	s.StackPolicyDuringUpdateBody = &v
16293	return s
16294}
16295
16296// SetStackPolicyDuringUpdateURL sets the StackPolicyDuringUpdateURL field's value.
16297func (s *UpdateStackInput) SetStackPolicyDuringUpdateURL(v string) *UpdateStackInput {
16298	s.StackPolicyDuringUpdateURL = &v
16299	return s
16300}
16301
16302// SetStackPolicyURL sets the StackPolicyURL field's value.
16303func (s *UpdateStackInput) SetStackPolicyURL(v string) *UpdateStackInput {
16304	s.StackPolicyURL = &v
16305	return s
16306}
16307
16308// SetTags sets the Tags field's value.
16309func (s *UpdateStackInput) SetTags(v []*Tag) *UpdateStackInput {
16310	s.Tags = v
16311	return s
16312}
16313
16314// SetTemplateBody sets the TemplateBody field's value.
16315func (s *UpdateStackInput) SetTemplateBody(v string) *UpdateStackInput {
16316	s.TemplateBody = &v
16317	return s
16318}
16319
16320// SetTemplateURL sets the TemplateURL field's value.
16321func (s *UpdateStackInput) SetTemplateURL(v string) *UpdateStackInput {
16322	s.TemplateURL = &v
16323	return s
16324}
16325
16326// SetUsePreviousTemplate sets the UsePreviousTemplate field's value.
16327func (s *UpdateStackInput) SetUsePreviousTemplate(v bool) *UpdateStackInput {
16328	s.UsePreviousTemplate = &v
16329	return s
16330}
16331
16332type UpdateStackInstancesInput struct {
16333	_ struct{} `type:"structure"`
16334
16335	// [Self-managed permissions] The names of one or more AWS accounts for which
16336	// you want to update parameter values for stack instances. The overridden parameter
16337	// values will be applied to all stack instances in the specified accounts and
16338	// Regions.
16339	//
16340	// You can specify Accounts or DeploymentTargets, but not both.
16341	Accounts []*string `type:"list"`
16342
16343	// [Service-managed permissions] The AWS Organizations accounts for which you
16344	// want to update parameter values for stack instances. If your update targets
16345	// OUs, the overridden parameter values only apply to the accounts that are
16346	// currently in the target OUs and their child OUs. Accounts added to the target
16347	// OUs and their child OUs in the future won't use the overridden values.
16348	//
16349	// You can specify Accounts or DeploymentTargets, but not both.
16350	DeploymentTargets *DeploymentTargets `type:"structure"`
16351
16352	// The unique identifier for this stack set operation.
16353	//
16354	// The operation ID also functions as an idempotency token, to ensure that AWS
16355	// CloudFormation performs the stack set operation only once, even if you retry
16356	// the request multiple times. You might retry stack set operation requests
16357	// to ensure that AWS CloudFormation successfully received them.
16358	//
16359	// If you don't specify an operation ID, the SDK generates one automatically.
16360	OperationId *string `min:"1" type:"string" idempotencyToken:"true"`
16361
16362	// Preferences for how AWS CloudFormation performs this stack set operation.
16363	OperationPreferences *StackSetOperationPreferences `type:"structure"`
16364
16365	// A list of input parameters whose values you want to update for the specified
16366	// stack instances.
16367	//
16368	// Any overridden parameter values will be applied to all stack instances in
16369	// the specified accounts and Regions. When specifying parameters and their
16370	// values, be aware of how AWS CloudFormation sets parameter values during stack
16371	// instance update operations:
16372	//
16373	//    * To override the current value for a parameter, include the parameter
16374	//    and specify its value.
16375	//
16376	//    * To leave a parameter set to its present value, you can do one of the
16377	//    following: Do not include the parameter in the list. Include the parameter
16378	//    and specify UsePreviousValue as true. (You cannot specify both a value
16379	//    and set UsePreviousValue to true.)
16380	//
16381	//    * To set all overridden parameter back to the values specified in the
16382	//    stack set, specify a parameter list but do not include any parameters.
16383	//
16384	//    * To leave all parameters set to their present values, do not specify
16385	//    this property at all.
16386	//
16387	// During stack set updates, any parameter values overridden for a stack instance
16388	// are not updated, but retain their overridden value.
16389	//
16390	// You can only override the parameter values that are specified in the stack
16391	// set; to add or delete a parameter itself, use UpdateStackSet to update the
16392	// stack set template. If you add a parameter to a template, before you can
16393	// override the parameter value specified in the stack set you must first use
16394	// UpdateStackSet (https://docs.aws.amazon.com/AWSCloudFormation/latest/APIReference/API_UpdateStackSet.html)
16395	// to update all stack instances with the updated template and parameter value
16396	// specified in the stack set. Once a stack instance has been updated with the
16397	// new parameter, you can then override the parameter value using UpdateStackInstances.
16398	ParameterOverrides []*Parameter `type:"list"`
16399
16400	// The names of one or more Regions in which you want to update parameter values
16401	// for stack instances. The overridden parameter values will be applied to all
16402	// stack instances in the specified accounts and Regions.
16403	//
16404	// Regions is a required field
16405	Regions []*string `type:"list" required:"true"`
16406
16407	// The name or unique ID of the stack set associated with the stack instances.
16408	//
16409	// StackSetName is a required field
16410	StackSetName *string `type:"string" required:"true"`
16411}
16412
16413// String returns the string representation
16414func (s UpdateStackInstancesInput) String() string {
16415	return awsutil.Prettify(s)
16416}
16417
16418// GoString returns the string representation
16419func (s UpdateStackInstancesInput) GoString() string {
16420	return s.String()
16421}
16422
16423// Validate inspects the fields of the type to determine if they are valid.
16424func (s *UpdateStackInstancesInput) Validate() error {
16425	invalidParams := request.ErrInvalidParams{Context: "UpdateStackInstancesInput"}
16426	if s.OperationId != nil && len(*s.OperationId) < 1 {
16427		invalidParams.Add(request.NewErrParamMinLen("OperationId", 1))
16428	}
16429	if s.Regions == nil {
16430		invalidParams.Add(request.NewErrParamRequired("Regions"))
16431	}
16432	if s.StackSetName == nil {
16433		invalidParams.Add(request.NewErrParamRequired("StackSetName"))
16434	}
16435	if s.OperationPreferences != nil {
16436		if err := s.OperationPreferences.Validate(); err != nil {
16437			invalidParams.AddNested("OperationPreferences", err.(request.ErrInvalidParams))
16438		}
16439	}
16440
16441	if invalidParams.Len() > 0 {
16442		return invalidParams
16443	}
16444	return nil
16445}
16446
16447// SetAccounts sets the Accounts field's value.
16448func (s *UpdateStackInstancesInput) SetAccounts(v []*string) *UpdateStackInstancesInput {
16449	s.Accounts = v
16450	return s
16451}
16452
16453// SetDeploymentTargets sets the DeploymentTargets field's value.
16454func (s *UpdateStackInstancesInput) SetDeploymentTargets(v *DeploymentTargets) *UpdateStackInstancesInput {
16455	s.DeploymentTargets = v
16456	return s
16457}
16458
16459// SetOperationId sets the OperationId field's value.
16460func (s *UpdateStackInstancesInput) SetOperationId(v string) *UpdateStackInstancesInput {
16461	s.OperationId = &v
16462	return s
16463}
16464
16465// SetOperationPreferences sets the OperationPreferences field's value.
16466func (s *UpdateStackInstancesInput) SetOperationPreferences(v *StackSetOperationPreferences) *UpdateStackInstancesInput {
16467	s.OperationPreferences = v
16468	return s
16469}
16470
16471// SetParameterOverrides sets the ParameterOverrides field's value.
16472func (s *UpdateStackInstancesInput) SetParameterOverrides(v []*Parameter) *UpdateStackInstancesInput {
16473	s.ParameterOverrides = v
16474	return s
16475}
16476
16477// SetRegions sets the Regions field's value.
16478func (s *UpdateStackInstancesInput) SetRegions(v []*string) *UpdateStackInstancesInput {
16479	s.Regions = v
16480	return s
16481}
16482
16483// SetStackSetName sets the StackSetName field's value.
16484func (s *UpdateStackInstancesInput) SetStackSetName(v string) *UpdateStackInstancesInput {
16485	s.StackSetName = &v
16486	return s
16487}
16488
16489type UpdateStackInstancesOutput struct {
16490	_ struct{} `type:"structure"`
16491
16492	// The unique identifier for this stack set operation.
16493	OperationId *string `min:"1" type:"string"`
16494}
16495
16496// String returns the string representation
16497func (s UpdateStackInstancesOutput) String() string {
16498	return awsutil.Prettify(s)
16499}
16500
16501// GoString returns the string representation
16502func (s UpdateStackInstancesOutput) GoString() string {
16503	return s.String()
16504}
16505
16506// SetOperationId sets the OperationId field's value.
16507func (s *UpdateStackInstancesOutput) SetOperationId(v string) *UpdateStackInstancesOutput {
16508	s.OperationId = &v
16509	return s
16510}
16511
16512// The output for an UpdateStack action.
16513type UpdateStackOutput struct {
16514	_ struct{} `type:"structure"`
16515
16516	// Unique identifier of the stack.
16517	StackId *string `type:"string"`
16518}
16519
16520// String returns the string representation
16521func (s UpdateStackOutput) String() string {
16522	return awsutil.Prettify(s)
16523}
16524
16525// GoString returns the string representation
16526func (s UpdateStackOutput) GoString() string {
16527	return s.String()
16528}
16529
16530// SetStackId sets the StackId field's value.
16531func (s *UpdateStackOutput) SetStackId(v string) *UpdateStackOutput {
16532	s.StackId = &v
16533	return s
16534}
16535
16536type UpdateStackSetInput struct {
16537	_ struct{} `type:"structure"`
16538
16539	// [Self-managed permissions] The accounts in which to update associated stack
16540	// instances. If you specify accounts, you must also specify the Regions in
16541	// which to update stack set instances.
16542	//
16543	// To update all the stack instances associated with this stack set, do not
16544	// specify the Accounts or Regions properties.
16545	//
16546	// If the stack set update includes changes to the template (that is, if the
16547	// TemplateBody or TemplateURL properties are specified), or the Parameters
16548	// property, AWS CloudFormation marks all stack instances with a status of OUTDATED
16549	// prior to updating the stack instances in the specified accounts and Regions.
16550	// If the stack set update does not include changes to the template or parameters,
16551	// AWS CloudFormation updates the stack instances in the specified accounts
16552	// and Regions, while leaving all other stack instances with their existing
16553	// stack instance status.
16554	Accounts []*string `type:"list"`
16555
16556	// The Amazon Resource Number (ARN) of the IAM role to use to update this stack
16557	// set.
16558	//
16559	// Specify an IAM role only if you are using customized administrator roles
16560	// to control which users or groups can manage specific stack sets within the
16561	// same administrator account. For more information, see Granting Permissions
16562	// for Stack Set Operations (http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/stacksets-prereqs.html)
16563	// in the AWS CloudFormation User Guide.
16564	//
16565	// If you specified a customized administrator role when you created the stack
16566	// set, you must specify a customized administrator role, even if it is the
16567	// same customized administrator role used with this stack set previously.
16568	AdministrationRoleARN *string `min:"20" type:"string"`
16569
16570	// [Service-managed permissions] Describes whether StackSets automatically deploys
16571	// to AWS Organizations accounts that are added to a target organization or
16572	// organizational unit (OU).
16573	//
16574	// If you specify AutoDeployment, do not specify DeploymentTargets or Regions.
16575	AutoDeployment *AutoDeployment `type:"structure"`
16576
16577	// In some cases, you must explicitly acknowledge that your stack template contains
16578	// certain capabilities in order for AWS CloudFormation to update the stack
16579	// set and its associated stack instances.
16580	//
16581	//    * CAPABILITY_IAM and CAPABILITY_NAMED_IAM Some stack templates might include
16582	//    resources that can affect permissions in your AWS account; for example,
16583	//    by creating new AWS Identity and Access Management (IAM) users. For those
16584	//    stacks sets, you must explicitly acknowledge this by specifying one of
16585	//    these capabilities. The following IAM resources require you to specify
16586	//    either the CAPABILITY_IAM or CAPABILITY_NAMED_IAM capability. If you have
16587	//    IAM resources, you can specify either capability. If you have IAM resources
16588	//    with custom names, you must specify CAPABILITY_NAMED_IAM. If you don't
16589	//    specify either of these capabilities, AWS CloudFormation returns an InsufficientCapabilities
16590	//    error. If your stack template contains these resources, we recommend that
16591	//    you review all permissions associated with them and edit their permissions
16592	//    if necessary. AWS::IAM::AccessKey (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iam-accesskey.html)
16593	//    AWS::IAM::Group (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iam-group.html)
16594	//    AWS::IAM::InstanceProfile (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iam-instanceprofile.html)
16595	//    AWS::IAM::Policy (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iam-policy.html)
16596	//    AWS::IAM::Role (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iam-role.html)
16597	//    AWS::IAM::User (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iam-user.html)
16598	//    AWS::IAM::UserToGroupAddition (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iam-addusertogroup.html)
16599	//    For more information, see Acknowledging IAM Resources in AWS CloudFormation
16600	//    Templates (http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-iam-template.html#capabilities).
16601	//
16602	//    * CAPABILITY_AUTO_EXPAND Some templates contain macros. If your stack
16603	//    template contains one or more macros, and you choose to update a stack
16604	//    directly from the processed template, without first reviewing the resulting
16605	//    changes in a change set, you must acknowledge this capability. For more
16606	//    information, see Using AWS CloudFormation Macros to Perform Custom Processing
16607	//    on Templates (http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/template-macros.html).
16608	//    Stack sets do not currently support macros in stack templates. (This includes
16609	//    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)
16610	//    and AWS::Serverless (http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/transform-aws-serverless.html)
16611	//    transforms, which are macros hosted by AWS CloudFormation.) Even if you
16612	//    specify this capability, if you include a macro in your template the stack
16613	//    set operation will fail.
16614	Capabilities []*string `type:"list"`
16615
16616	// [Service-managed permissions] The AWS Organizations accounts in which to
16617	// update associated stack instances.
16618	//
16619	// To update all the stack instances associated with this stack set, do not
16620	// specify DeploymentTargets or Regions.
16621	//
16622	// If the stack set update includes changes to the template (that is, if TemplateBody
16623	// or TemplateURL is specified), or the Parameters, AWS CloudFormation marks
16624	// all stack instances with a status of OUTDATED prior to updating the stack
16625	// instances in the specified accounts and Regions. If the stack set update
16626	// does not include changes to the template or parameters, AWS CloudFormation
16627	// updates the stack instances in the specified accounts and Regions, while
16628	// leaving all other stack instances with their existing stack instance status.
16629	DeploymentTargets *DeploymentTargets `type:"structure"`
16630
16631	// A brief description of updates that you are making.
16632	Description *string `min:"1" type:"string"`
16633
16634	// The name of the IAM execution role to use to update the stack set. If you
16635	// do not specify an execution role, AWS CloudFormation uses the AWSCloudFormationStackSetExecutionRole
16636	// role for the stack set operation.
16637	//
16638	// Specify an IAM role only if you are using customized execution roles to control
16639	// which stack resources users and groups can include in their stack sets.
16640	//
16641	// If you specify a customized execution role, AWS CloudFormation uses that
16642	// role to update the stack. If you do not specify a customized execution role,
16643	// AWS CloudFormation performs the update using the role previously associated
16644	// with the stack set, so long as you have permissions to perform operations
16645	// on the stack set.
16646	ExecutionRoleName *string `min:"1" type:"string"`
16647
16648	// The unique ID for this stack set operation.
16649	//
16650	// The operation ID also functions as an idempotency token, to ensure that AWS
16651	// CloudFormation performs the stack set operation only once, even if you retry
16652	// the request multiple times. You might retry stack set operation requests
16653	// to ensure that AWS CloudFormation successfully received them.
16654	//
16655	// If you don't specify an operation ID, AWS CloudFormation generates one automatically.
16656	//
16657	// Repeating this stack set operation with a new operation ID retries all stack
16658	// instances whose status is OUTDATED.
16659	OperationId *string `min:"1" type:"string" idempotencyToken:"true"`
16660
16661	// Preferences for how AWS CloudFormation performs this stack set operation.
16662	OperationPreferences *StackSetOperationPreferences `type:"structure"`
16663
16664	// A list of input parameters for the stack set template.
16665	Parameters []*Parameter `type:"list"`
16666
16667	// Describes how the IAM roles required for stack set operations are created.
16668	// You cannot modify PermissionModel if there are stack instances associated
16669	// with your stack set.
16670	//
16671	//    * With self-managed permissions, you must create the administrator and
16672	//    execution roles required to deploy to target accounts. For more information,
16673	//    see Grant Self-Managed Stack Set Permissions (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/stacksets-prereqs-self-managed.html).
16674	//
16675	//    * With service-managed permissions, StackSets automatically creates the
16676	//    IAM roles required to deploy to accounts managed by AWS Organizations.
16677	//    For more information, see Grant Service-Managed Stack Set Permissions
16678	//    (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/stacksets-prereqs-service-managed.html).
16679	PermissionModel *string `type:"string" enum:"PermissionModels"`
16680
16681	// The Regions in which to update associated stack instances. If you specify
16682	// Regions, you must also specify accounts in which to update stack set instances.
16683	//
16684	// To update all the stack instances associated with this stack set, do not
16685	// specify the Accounts or Regions properties.
16686	//
16687	// If the stack set update includes changes to the template (that is, if the
16688	// TemplateBody or TemplateURL properties are specified), or the Parameters
16689	// property, AWS CloudFormation marks all stack instances with a status of OUTDATED
16690	// prior to updating the stack instances in the specified accounts and Regions.
16691	// If the stack set update does not include changes to the template or parameters,
16692	// AWS CloudFormation updates the stack instances in the specified accounts
16693	// and Regions, while leaving all other stack instances with their existing
16694	// stack instance status.
16695	Regions []*string `type:"list"`
16696
16697	// The name or unique ID of the stack set that you want to update.
16698	//
16699	// StackSetName is a required field
16700	StackSetName *string `type:"string" required:"true"`
16701
16702	// The key-value pairs to associate with this stack set and the stacks created
16703	// from it. AWS CloudFormation also propagates these tags to supported resources
16704	// that are created in the stacks. You can specify a maximum number of 50 tags.
16705	//
16706	// If you specify tags for this parameter, those tags replace any list of tags
16707	// that are currently associated with this stack set. This means:
16708	//
16709	//    * If you don't specify this parameter, AWS CloudFormation doesn't modify
16710	//    the stack's tags.
16711	//
16712	//    * If you specify any tags using this parameter, you must specify all the
16713	//    tags that you want associated with this stack set, even tags you've specifed
16714	//    before (for example, when creating the stack set or during a previous
16715	//    update of the stack set.). Any tags that you don't include in the updated
16716	//    list of tags are removed from the stack set, and therefore from the stacks
16717	//    and resources as well.
16718	//
16719	//    * If you specify an empty value, AWS CloudFormation removes all currently
16720	//    associated tags.
16721	//
16722	// If you specify new tags as part of an UpdateStackSet action, AWS CloudFormation
16723	// checks to see if you have the required IAM permission to tag resources. If
16724	// you omit tags that are currently associated with the stack set from the list
16725	// of tags you specify, AWS CloudFormation assumes that you want to remove those
16726	// tags from the stack set, and checks to see if you have permission to untag
16727	// resources. If you don't have the necessary permission(s), the entire UpdateStackSet
16728	// action fails with an access denied error, and the stack set is not updated.
16729	Tags []*Tag `type:"list"`
16730
16731	// The structure that contains the template body, with a minimum length of 1
16732	// byte and a maximum length of 51,200 bytes. For more information, see Template
16733	// Anatomy (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/template-anatomy.html)
16734	// in the AWS CloudFormation User Guide.
16735	//
16736	// Conditional: You must specify only one of the following parameters: TemplateBody
16737	// or TemplateURL—or set UsePreviousTemplate to true.
16738	TemplateBody *string `min:"1" type:"string"`
16739
16740	// The location of the file that contains the template body. The URL must point
16741	// to a template (maximum size: 460,800 bytes) that is located in an Amazon
16742	// S3 bucket. For more information, see Template Anatomy (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/template-anatomy.html)
16743	// in the AWS CloudFormation User Guide.
16744	//
16745	// Conditional: You must specify only one of the following parameters: TemplateBody
16746	// or TemplateURL—or set UsePreviousTemplate to true.
16747	TemplateURL *string `min:"1" type:"string"`
16748
16749	// Use the existing template that's associated with the stack set that you're
16750	// updating.
16751	//
16752	// Conditional: You must specify only one of the following parameters: TemplateBody
16753	// or TemplateURL—or set UsePreviousTemplate to true.
16754	UsePreviousTemplate *bool `type:"boolean"`
16755}
16756
16757// String returns the string representation
16758func (s UpdateStackSetInput) String() string {
16759	return awsutil.Prettify(s)
16760}
16761
16762// GoString returns the string representation
16763func (s UpdateStackSetInput) GoString() string {
16764	return s.String()
16765}
16766
16767// Validate inspects the fields of the type to determine if they are valid.
16768func (s *UpdateStackSetInput) Validate() error {
16769	invalidParams := request.ErrInvalidParams{Context: "UpdateStackSetInput"}
16770	if s.AdministrationRoleARN != nil && len(*s.AdministrationRoleARN) < 20 {
16771		invalidParams.Add(request.NewErrParamMinLen("AdministrationRoleARN", 20))
16772	}
16773	if s.Description != nil && len(*s.Description) < 1 {
16774		invalidParams.Add(request.NewErrParamMinLen("Description", 1))
16775	}
16776	if s.ExecutionRoleName != nil && len(*s.ExecutionRoleName) < 1 {
16777		invalidParams.Add(request.NewErrParamMinLen("ExecutionRoleName", 1))
16778	}
16779	if s.OperationId != nil && len(*s.OperationId) < 1 {
16780		invalidParams.Add(request.NewErrParamMinLen("OperationId", 1))
16781	}
16782	if s.StackSetName == nil {
16783		invalidParams.Add(request.NewErrParamRequired("StackSetName"))
16784	}
16785	if s.TemplateBody != nil && len(*s.TemplateBody) < 1 {
16786		invalidParams.Add(request.NewErrParamMinLen("TemplateBody", 1))
16787	}
16788	if s.TemplateURL != nil && len(*s.TemplateURL) < 1 {
16789		invalidParams.Add(request.NewErrParamMinLen("TemplateURL", 1))
16790	}
16791	if s.OperationPreferences != nil {
16792		if err := s.OperationPreferences.Validate(); err != nil {
16793			invalidParams.AddNested("OperationPreferences", err.(request.ErrInvalidParams))
16794		}
16795	}
16796	if s.Tags != nil {
16797		for i, v := range s.Tags {
16798			if v == nil {
16799				continue
16800			}
16801			if err := v.Validate(); err != nil {
16802				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Tags", i), err.(request.ErrInvalidParams))
16803			}
16804		}
16805	}
16806
16807	if invalidParams.Len() > 0 {
16808		return invalidParams
16809	}
16810	return nil
16811}
16812
16813// SetAccounts sets the Accounts field's value.
16814func (s *UpdateStackSetInput) SetAccounts(v []*string) *UpdateStackSetInput {
16815	s.Accounts = v
16816	return s
16817}
16818
16819// SetAdministrationRoleARN sets the AdministrationRoleARN field's value.
16820func (s *UpdateStackSetInput) SetAdministrationRoleARN(v string) *UpdateStackSetInput {
16821	s.AdministrationRoleARN = &v
16822	return s
16823}
16824
16825// SetAutoDeployment sets the AutoDeployment field's value.
16826func (s *UpdateStackSetInput) SetAutoDeployment(v *AutoDeployment) *UpdateStackSetInput {
16827	s.AutoDeployment = v
16828	return s
16829}
16830
16831// SetCapabilities sets the Capabilities field's value.
16832func (s *UpdateStackSetInput) SetCapabilities(v []*string) *UpdateStackSetInput {
16833	s.Capabilities = v
16834	return s
16835}
16836
16837// SetDeploymentTargets sets the DeploymentTargets field's value.
16838func (s *UpdateStackSetInput) SetDeploymentTargets(v *DeploymentTargets) *UpdateStackSetInput {
16839	s.DeploymentTargets = v
16840	return s
16841}
16842
16843// SetDescription sets the Description field's value.
16844func (s *UpdateStackSetInput) SetDescription(v string) *UpdateStackSetInput {
16845	s.Description = &v
16846	return s
16847}
16848
16849// SetExecutionRoleName sets the ExecutionRoleName field's value.
16850func (s *UpdateStackSetInput) SetExecutionRoleName(v string) *UpdateStackSetInput {
16851	s.ExecutionRoleName = &v
16852	return s
16853}
16854
16855// SetOperationId sets the OperationId field's value.
16856func (s *UpdateStackSetInput) SetOperationId(v string) *UpdateStackSetInput {
16857	s.OperationId = &v
16858	return s
16859}
16860
16861// SetOperationPreferences sets the OperationPreferences field's value.
16862func (s *UpdateStackSetInput) SetOperationPreferences(v *StackSetOperationPreferences) *UpdateStackSetInput {
16863	s.OperationPreferences = v
16864	return s
16865}
16866
16867// SetParameters sets the Parameters field's value.
16868func (s *UpdateStackSetInput) SetParameters(v []*Parameter) *UpdateStackSetInput {
16869	s.Parameters = v
16870	return s
16871}
16872
16873// SetPermissionModel sets the PermissionModel field's value.
16874func (s *UpdateStackSetInput) SetPermissionModel(v string) *UpdateStackSetInput {
16875	s.PermissionModel = &v
16876	return s
16877}
16878
16879// SetRegions sets the Regions field's value.
16880func (s *UpdateStackSetInput) SetRegions(v []*string) *UpdateStackSetInput {
16881	s.Regions = v
16882	return s
16883}
16884
16885// SetStackSetName sets the StackSetName field's value.
16886func (s *UpdateStackSetInput) SetStackSetName(v string) *UpdateStackSetInput {
16887	s.StackSetName = &v
16888	return s
16889}
16890
16891// SetTags sets the Tags field's value.
16892func (s *UpdateStackSetInput) SetTags(v []*Tag) *UpdateStackSetInput {
16893	s.Tags = v
16894	return s
16895}
16896
16897// SetTemplateBody sets the TemplateBody field's value.
16898func (s *UpdateStackSetInput) SetTemplateBody(v string) *UpdateStackSetInput {
16899	s.TemplateBody = &v
16900	return s
16901}
16902
16903// SetTemplateURL sets the TemplateURL field's value.
16904func (s *UpdateStackSetInput) SetTemplateURL(v string) *UpdateStackSetInput {
16905	s.TemplateURL = &v
16906	return s
16907}
16908
16909// SetUsePreviousTemplate sets the UsePreviousTemplate field's value.
16910func (s *UpdateStackSetInput) SetUsePreviousTemplate(v bool) *UpdateStackSetInput {
16911	s.UsePreviousTemplate = &v
16912	return s
16913}
16914
16915type UpdateStackSetOutput struct {
16916	_ struct{} `type:"structure"`
16917
16918	// The unique ID for this stack set operation.
16919	OperationId *string `min:"1" type:"string"`
16920}
16921
16922// String returns the string representation
16923func (s UpdateStackSetOutput) String() string {
16924	return awsutil.Prettify(s)
16925}
16926
16927// GoString returns the string representation
16928func (s UpdateStackSetOutput) GoString() string {
16929	return s.String()
16930}
16931
16932// SetOperationId sets the OperationId field's value.
16933func (s *UpdateStackSetOutput) SetOperationId(v string) *UpdateStackSetOutput {
16934	s.OperationId = &v
16935	return s
16936}
16937
16938type UpdateTerminationProtectionInput struct {
16939	_ struct{} `type:"structure"`
16940
16941	// Whether to enable termination protection on the specified stack.
16942	//
16943	// EnableTerminationProtection is a required field
16944	EnableTerminationProtection *bool `type:"boolean" required:"true"`
16945
16946	// The name or unique ID of the stack for which you want to set termination
16947	// protection.
16948	//
16949	// StackName is a required field
16950	StackName *string `min:"1" type:"string" required:"true"`
16951}
16952
16953// String returns the string representation
16954func (s UpdateTerminationProtectionInput) String() string {
16955	return awsutil.Prettify(s)
16956}
16957
16958// GoString returns the string representation
16959func (s UpdateTerminationProtectionInput) GoString() string {
16960	return s.String()
16961}
16962
16963// Validate inspects the fields of the type to determine if they are valid.
16964func (s *UpdateTerminationProtectionInput) Validate() error {
16965	invalidParams := request.ErrInvalidParams{Context: "UpdateTerminationProtectionInput"}
16966	if s.EnableTerminationProtection == nil {
16967		invalidParams.Add(request.NewErrParamRequired("EnableTerminationProtection"))
16968	}
16969	if s.StackName == nil {
16970		invalidParams.Add(request.NewErrParamRequired("StackName"))
16971	}
16972	if s.StackName != nil && len(*s.StackName) < 1 {
16973		invalidParams.Add(request.NewErrParamMinLen("StackName", 1))
16974	}
16975
16976	if invalidParams.Len() > 0 {
16977		return invalidParams
16978	}
16979	return nil
16980}
16981
16982// SetEnableTerminationProtection sets the EnableTerminationProtection field's value.
16983func (s *UpdateTerminationProtectionInput) SetEnableTerminationProtection(v bool) *UpdateTerminationProtectionInput {
16984	s.EnableTerminationProtection = &v
16985	return s
16986}
16987
16988// SetStackName sets the StackName field's value.
16989func (s *UpdateTerminationProtectionInput) SetStackName(v string) *UpdateTerminationProtectionInput {
16990	s.StackName = &v
16991	return s
16992}
16993
16994type UpdateTerminationProtectionOutput struct {
16995	_ struct{} `type:"structure"`
16996
16997	// The unique ID of the stack.
16998	StackId *string `type:"string"`
16999}
17000
17001// String returns the string representation
17002func (s UpdateTerminationProtectionOutput) String() string {
17003	return awsutil.Prettify(s)
17004}
17005
17006// GoString returns the string representation
17007func (s UpdateTerminationProtectionOutput) GoString() string {
17008	return s.String()
17009}
17010
17011// SetStackId sets the StackId field's value.
17012func (s *UpdateTerminationProtectionOutput) SetStackId(v string) *UpdateTerminationProtectionOutput {
17013	s.StackId = &v
17014	return s
17015}
17016
17017// The input for ValidateTemplate action.
17018type ValidateTemplateInput struct {
17019	_ struct{} `type:"structure"`
17020
17021	// Structure containing the template body with a minimum length of 1 byte and
17022	// a maximum length of 51,200 bytes. For more information, go to Template Anatomy
17023	// (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/template-anatomy.html)
17024	// in the AWS CloudFormation User Guide.
17025	//
17026	// Conditional: You must pass TemplateURL or TemplateBody. If both are passed,
17027	// only TemplateBody is used.
17028	TemplateBody *string `min:"1" type:"string"`
17029
17030	// Location of file containing the template body. The URL must point to a template
17031	// (max size: 460,800 bytes) that is located in an Amazon S3 bucket. For more
17032	// information, go to Template Anatomy (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/template-anatomy.html)
17033	// in the AWS CloudFormation User Guide.
17034	//
17035	// Conditional: You must pass TemplateURL or TemplateBody. If both are passed,
17036	// only TemplateBody is used.
17037	TemplateURL *string `min:"1" type:"string"`
17038}
17039
17040// String returns the string representation
17041func (s ValidateTemplateInput) String() string {
17042	return awsutil.Prettify(s)
17043}
17044
17045// GoString returns the string representation
17046func (s ValidateTemplateInput) GoString() string {
17047	return s.String()
17048}
17049
17050// Validate inspects the fields of the type to determine if they are valid.
17051func (s *ValidateTemplateInput) Validate() error {
17052	invalidParams := request.ErrInvalidParams{Context: "ValidateTemplateInput"}
17053	if s.TemplateBody != nil && len(*s.TemplateBody) < 1 {
17054		invalidParams.Add(request.NewErrParamMinLen("TemplateBody", 1))
17055	}
17056	if s.TemplateURL != nil && len(*s.TemplateURL) < 1 {
17057		invalidParams.Add(request.NewErrParamMinLen("TemplateURL", 1))
17058	}
17059
17060	if invalidParams.Len() > 0 {
17061		return invalidParams
17062	}
17063	return nil
17064}
17065
17066// SetTemplateBody sets the TemplateBody field's value.
17067func (s *ValidateTemplateInput) SetTemplateBody(v string) *ValidateTemplateInput {
17068	s.TemplateBody = &v
17069	return s
17070}
17071
17072// SetTemplateURL sets the TemplateURL field's value.
17073func (s *ValidateTemplateInput) SetTemplateURL(v string) *ValidateTemplateInput {
17074	s.TemplateURL = &v
17075	return s
17076}
17077
17078// The output for ValidateTemplate action.
17079type ValidateTemplateOutput struct {
17080	_ struct{} `type:"structure"`
17081
17082	// The capabilities found within the template. If your template contains IAM
17083	// resources, you must specify the CAPABILITY_IAM or CAPABILITY_NAMED_IAM value
17084	// for this parameter when you use the CreateStack or UpdateStack actions with
17085	// your template; otherwise, those actions return an InsufficientCapabilities
17086	// error.
17087	//
17088	// For more information, see Acknowledging IAM Resources in AWS CloudFormation
17089	// Templates (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-iam-template.html#capabilities).
17090	Capabilities []*string `type:"list"`
17091
17092	// The list of resources that generated the values in the Capabilities response
17093	// element.
17094	CapabilitiesReason *string `type:"string"`
17095
17096	// A list of the transforms that are declared in the template.
17097	DeclaredTransforms []*string `type:"list"`
17098
17099	// The description found within the template.
17100	Description *string `min:"1" type:"string"`
17101
17102	// A list of TemplateParameter structures.
17103	Parameters []*TemplateParameter `type:"list"`
17104}
17105
17106// String returns the string representation
17107func (s ValidateTemplateOutput) String() string {
17108	return awsutil.Prettify(s)
17109}
17110
17111// GoString returns the string representation
17112func (s ValidateTemplateOutput) GoString() string {
17113	return s.String()
17114}
17115
17116// SetCapabilities sets the Capabilities field's value.
17117func (s *ValidateTemplateOutput) SetCapabilities(v []*string) *ValidateTemplateOutput {
17118	s.Capabilities = v
17119	return s
17120}
17121
17122// SetCapabilitiesReason sets the CapabilitiesReason field's value.
17123func (s *ValidateTemplateOutput) SetCapabilitiesReason(v string) *ValidateTemplateOutput {
17124	s.CapabilitiesReason = &v
17125	return s
17126}
17127
17128// SetDeclaredTransforms sets the DeclaredTransforms field's value.
17129func (s *ValidateTemplateOutput) SetDeclaredTransforms(v []*string) *ValidateTemplateOutput {
17130	s.DeclaredTransforms = v
17131	return s
17132}
17133
17134// SetDescription sets the Description field's value.
17135func (s *ValidateTemplateOutput) SetDescription(v string) *ValidateTemplateOutput {
17136	s.Description = &v
17137	return s
17138}
17139
17140// SetParameters sets the Parameters field's value.
17141func (s *ValidateTemplateOutput) SetParameters(v []*TemplateParameter) *ValidateTemplateOutput {
17142	s.Parameters = v
17143	return s
17144}
17145
17146const (
17147	// AccountGateStatusSucceeded is a AccountGateStatus enum value
17148	AccountGateStatusSucceeded = "SUCCEEDED"
17149
17150	// AccountGateStatusFailed is a AccountGateStatus enum value
17151	AccountGateStatusFailed = "FAILED"
17152
17153	// AccountGateStatusSkipped is a AccountGateStatus enum value
17154	AccountGateStatusSkipped = "SKIPPED"
17155)
17156
17157// AccountGateStatus_Values returns all elements of the AccountGateStatus enum
17158func AccountGateStatus_Values() []string {
17159	return []string{
17160		AccountGateStatusSucceeded,
17161		AccountGateStatusFailed,
17162		AccountGateStatusSkipped,
17163	}
17164}
17165
17166const (
17167	// CapabilityCapabilityIam is a Capability enum value
17168	CapabilityCapabilityIam = "CAPABILITY_IAM"
17169
17170	// CapabilityCapabilityNamedIam is a Capability enum value
17171	CapabilityCapabilityNamedIam = "CAPABILITY_NAMED_IAM"
17172
17173	// CapabilityCapabilityAutoExpand is a Capability enum value
17174	CapabilityCapabilityAutoExpand = "CAPABILITY_AUTO_EXPAND"
17175)
17176
17177// Capability_Values returns all elements of the Capability enum
17178func Capability_Values() []string {
17179	return []string{
17180		CapabilityCapabilityIam,
17181		CapabilityCapabilityNamedIam,
17182		CapabilityCapabilityAutoExpand,
17183	}
17184}
17185
17186const (
17187	// ChangeActionAdd is a ChangeAction enum value
17188	ChangeActionAdd = "Add"
17189
17190	// ChangeActionModify is a ChangeAction enum value
17191	ChangeActionModify = "Modify"
17192
17193	// ChangeActionRemove is a ChangeAction enum value
17194	ChangeActionRemove = "Remove"
17195
17196	// ChangeActionImport is a ChangeAction enum value
17197	ChangeActionImport = "Import"
17198)
17199
17200// ChangeAction_Values returns all elements of the ChangeAction enum
17201func ChangeAction_Values() []string {
17202	return []string{
17203		ChangeActionAdd,
17204		ChangeActionModify,
17205		ChangeActionRemove,
17206		ChangeActionImport,
17207	}
17208}
17209
17210const (
17211	// ChangeSetStatusCreatePending is a ChangeSetStatus enum value
17212	ChangeSetStatusCreatePending = "CREATE_PENDING"
17213
17214	// ChangeSetStatusCreateInProgress is a ChangeSetStatus enum value
17215	ChangeSetStatusCreateInProgress = "CREATE_IN_PROGRESS"
17216
17217	// ChangeSetStatusCreateComplete is a ChangeSetStatus enum value
17218	ChangeSetStatusCreateComplete = "CREATE_COMPLETE"
17219
17220	// ChangeSetStatusDeleteComplete is a ChangeSetStatus enum value
17221	ChangeSetStatusDeleteComplete = "DELETE_COMPLETE"
17222
17223	// ChangeSetStatusFailed is a ChangeSetStatus enum value
17224	ChangeSetStatusFailed = "FAILED"
17225)
17226
17227// ChangeSetStatus_Values returns all elements of the ChangeSetStatus enum
17228func ChangeSetStatus_Values() []string {
17229	return []string{
17230		ChangeSetStatusCreatePending,
17231		ChangeSetStatusCreateInProgress,
17232		ChangeSetStatusCreateComplete,
17233		ChangeSetStatusDeleteComplete,
17234		ChangeSetStatusFailed,
17235	}
17236}
17237
17238const (
17239	// ChangeSetTypeCreate is a ChangeSetType enum value
17240	ChangeSetTypeCreate = "CREATE"
17241
17242	// ChangeSetTypeUpdate is a ChangeSetType enum value
17243	ChangeSetTypeUpdate = "UPDATE"
17244
17245	// ChangeSetTypeImport is a ChangeSetType enum value
17246	ChangeSetTypeImport = "IMPORT"
17247)
17248
17249// ChangeSetType_Values returns all elements of the ChangeSetType enum
17250func ChangeSetType_Values() []string {
17251	return []string{
17252		ChangeSetTypeCreate,
17253		ChangeSetTypeUpdate,
17254		ChangeSetTypeImport,
17255	}
17256}
17257
17258const (
17259	// ChangeSourceResourceReference is a ChangeSource enum value
17260	ChangeSourceResourceReference = "ResourceReference"
17261
17262	// ChangeSourceParameterReference is a ChangeSource enum value
17263	ChangeSourceParameterReference = "ParameterReference"
17264
17265	// ChangeSourceResourceAttribute is a ChangeSource enum value
17266	ChangeSourceResourceAttribute = "ResourceAttribute"
17267
17268	// ChangeSourceDirectModification is a ChangeSource enum value
17269	ChangeSourceDirectModification = "DirectModification"
17270
17271	// ChangeSourceAutomatic is a ChangeSource enum value
17272	ChangeSourceAutomatic = "Automatic"
17273)
17274
17275// ChangeSource_Values returns all elements of the ChangeSource enum
17276func ChangeSource_Values() []string {
17277	return []string{
17278		ChangeSourceResourceReference,
17279		ChangeSourceParameterReference,
17280		ChangeSourceResourceAttribute,
17281		ChangeSourceDirectModification,
17282		ChangeSourceAutomatic,
17283	}
17284}
17285
17286const (
17287	// ChangeTypeResource is a ChangeType enum value
17288	ChangeTypeResource = "Resource"
17289)
17290
17291// ChangeType_Values returns all elements of the ChangeType enum
17292func ChangeType_Values() []string {
17293	return []string{
17294		ChangeTypeResource,
17295	}
17296}
17297
17298const (
17299	// DeprecatedStatusLive is a DeprecatedStatus enum value
17300	DeprecatedStatusLive = "LIVE"
17301
17302	// DeprecatedStatusDeprecated is a DeprecatedStatus enum value
17303	DeprecatedStatusDeprecated = "DEPRECATED"
17304)
17305
17306// DeprecatedStatus_Values returns all elements of the DeprecatedStatus enum
17307func DeprecatedStatus_Values() []string {
17308	return []string{
17309		DeprecatedStatusLive,
17310		DeprecatedStatusDeprecated,
17311	}
17312}
17313
17314const (
17315	// DifferenceTypeAdd is a DifferenceType enum value
17316	DifferenceTypeAdd = "ADD"
17317
17318	// DifferenceTypeRemove is a DifferenceType enum value
17319	DifferenceTypeRemove = "REMOVE"
17320
17321	// DifferenceTypeNotEqual is a DifferenceType enum value
17322	DifferenceTypeNotEqual = "NOT_EQUAL"
17323)
17324
17325// DifferenceType_Values returns all elements of the DifferenceType enum
17326func DifferenceType_Values() []string {
17327	return []string{
17328		DifferenceTypeAdd,
17329		DifferenceTypeRemove,
17330		DifferenceTypeNotEqual,
17331	}
17332}
17333
17334const (
17335	// EvaluationTypeStatic is a EvaluationType enum value
17336	EvaluationTypeStatic = "Static"
17337
17338	// EvaluationTypeDynamic is a EvaluationType enum value
17339	EvaluationTypeDynamic = "Dynamic"
17340)
17341
17342// EvaluationType_Values returns all elements of the EvaluationType enum
17343func EvaluationType_Values() []string {
17344	return []string{
17345		EvaluationTypeStatic,
17346		EvaluationTypeDynamic,
17347	}
17348}
17349
17350const (
17351	// ExecutionStatusUnavailable is a ExecutionStatus enum value
17352	ExecutionStatusUnavailable = "UNAVAILABLE"
17353
17354	// ExecutionStatusAvailable is a ExecutionStatus enum value
17355	ExecutionStatusAvailable = "AVAILABLE"
17356
17357	// ExecutionStatusExecuteInProgress is a ExecutionStatus enum value
17358	ExecutionStatusExecuteInProgress = "EXECUTE_IN_PROGRESS"
17359
17360	// ExecutionStatusExecuteComplete is a ExecutionStatus enum value
17361	ExecutionStatusExecuteComplete = "EXECUTE_COMPLETE"
17362
17363	// ExecutionStatusExecuteFailed is a ExecutionStatus enum value
17364	ExecutionStatusExecuteFailed = "EXECUTE_FAILED"
17365
17366	// ExecutionStatusObsolete is a ExecutionStatus enum value
17367	ExecutionStatusObsolete = "OBSOLETE"
17368)
17369
17370// ExecutionStatus_Values returns all elements of the ExecutionStatus enum
17371func ExecutionStatus_Values() []string {
17372	return []string{
17373		ExecutionStatusUnavailable,
17374		ExecutionStatusAvailable,
17375		ExecutionStatusExecuteInProgress,
17376		ExecutionStatusExecuteComplete,
17377		ExecutionStatusExecuteFailed,
17378		ExecutionStatusObsolete,
17379	}
17380}
17381
17382const (
17383	// HandlerErrorCodeNotUpdatable is a HandlerErrorCode enum value
17384	HandlerErrorCodeNotUpdatable = "NotUpdatable"
17385
17386	// HandlerErrorCodeInvalidRequest is a HandlerErrorCode enum value
17387	HandlerErrorCodeInvalidRequest = "InvalidRequest"
17388
17389	// HandlerErrorCodeAccessDenied is a HandlerErrorCode enum value
17390	HandlerErrorCodeAccessDenied = "AccessDenied"
17391
17392	// HandlerErrorCodeInvalidCredentials is a HandlerErrorCode enum value
17393	HandlerErrorCodeInvalidCredentials = "InvalidCredentials"
17394
17395	// HandlerErrorCodeAlreadyExists is a HandlerErrorCode enum value
17396	HandlerErrorCodeAlreadyExists = "AlreadyExists"
17397
17398	// HandlerErrorCodeNotFound is a HandlerErrorCode enum value
17399	HandlerErrorCodeNotFound = "NotFound"
17400
17401	// HandlerErrorCodeResourceConflict is a HandlerErrorCode enum value
17402	HandlerErrorCodeResourceConflict = "ResourceConflict"
17403
17404	// HandlerErrorCodeThrottling is a HandlerErrorCode enum value
17405	HandlerErrorCodeThrottling = "Throttling"
17406
17407	// HandlerErrorCodeServiceLimitExceeded is a HandlerErrorCode enum value
17408	HandlerErrorCodeServiceLimitExceeded = "ServiceLimitExceeded"
17409
17410	// HandlerErrorCodeNotStabilized is a HandlerErrorCode enum value
17411	HandlerErrorCodeNotStabilized = "NotStabilized"
17412
17413	// HandlerErrorCodeGeneralServiceException is a HandlerErrorCode enum value
17414	HandlerErrorCodeGeneralServiceException = "GeneralServiceException"
17415
17416	// HandlerErrorCodeServiceInternalError is a HandlerErrorCode enum value
17417	HandlerErrorCodeServiceInternalError = "ServiceInternalError"
17418
17419	// HandlerErrorCodeNetworkFailure is a HandlerErrorCode enum value
17420	HandlerErrorCodeNetworkFailure = "NetworkFailure"
17421
17422	// HandlerErrorCodeInternalFailure is a HandlerErrorCode enum value
17423	HandlerErrorCodeInternalFailure = "InternalFailure"
17424)
17425
17426// HandlerErrorCode_Values returns all elements of the HandlerErrorCode enum
17427func HandlerErrorCode_Values() []string {
17428	return []string{
17429		HandlerErrorCodeNotUpdatable,
17430		HandlerErrorCodeInvalidRequest,
17431		HandlerErrorCodeAccessDenied,
17432		HandlerErrorCodeInvalidCredentials,
17433		HandlerErrorCodeAlreadyExists,
17434		HandlerErrorCodeNotFound,
17435		HandlerErrorCodeResourceConflict,
17436		HandlerErrorCodeThrottling,
17437		HandlerErrorCodeServiceLimitExceeded,
17438		HandlerErrorCodeNotStabilized,
17439		HandlerErrorCodeGeneralServiceException,
17440		HandlerErrorCodeServiceInternalError,
17441		HandlerErrorCodeNetworkFailure,
17442		HandlerErrorCodeInternalFailure,
17443	}
17444}
17445
17446const (
17447	// OnFailureDoNothing is a OnFailure enum value
17448	OnFailureDoNothing = "DO_NOTHING"
17449
17450	// OnFailureRollback is a OnFailure enum value
17451	OnFailureRollback = "ROLLBACK"
17452
17453	// OnFailureDelete is a OnFailure enum value
17454	OnFailureDelete = "DELETE"
17455)
17456
17457// OnFailure_Values returns all elements of the OnFailure enum
17458func OnFailure_Values() []string {
17459	return []string{
17460		OnFailureDoNothing,
17461		OnFailureRollback,
17462		OnFailureDelete,
17463	}
17464}
17465
17466const (
17467	// OperationStatusPending is a OperationStatus enum value
17468	OperationStatusPending = "PENDING"
17469
17470	// OperationStatusInProgress is a OperationStatus enum value
17471	OperationStatusInProgress = "IN_PROGRESS"
17472
17473	// OperationStatusSuccess is a OperationStatus enum value
17474	OperationStatusSuccess = "SUCCESS"
17475
17476	// OperationStatusFailed is a OperationStatus enum value
17477	OperationStatusFailed = "FAILED"
17478)
17479
17480// OperationStatus_Values returns all elements of the OperationStatus enum
17481func OperationStatus_Values() []string {
17482	return []string{
17483		OperationStatusPending,
17484		OperationStatusInProgress,
17485		OperationStatusSuccess,
17486		OperationStatusFailed,
17487	}
17488}
17489
17490const (
17491	// PermissionModelsServiceManaged is a PermissionModels enum value
17492	PermissionModelsServiceManaged = "SERVICE_MANAGED"
17493
17494	// PermissionModelsSelfManaged is a PermissionModels enum value
17495	PermissionModelsSelfManaged = "SELF_MANAGED"
17496)
17497
17498// PermissionModels_Values returns all elements of the PermissionModels enum
17499func PermissionModels_Values() []string {
17500	return []string{
17501		PermissionModelsServiceManaged,
17502		PermissionModelsSelfManaged,
17503	}
17504}
17505
17506const (
17507	// ProvisioningTypeNonProvisionable is a ProvisioningType enum value
17508	ProvisioningTypeNonProvisionable = "NON_PROVISIONABLE"
17509
17510	// ProvisioningTypeImmutable is a ProvisioningType enum value
17511	ProvisioningTypeImmutable = "IMMUTABLE"
17512
17513	// ProvisioningTypeFullyMutable is a ProvisioningType enum value
17514	ProvisioningTypeFullyMutable = "FULLY_MUTABLE"
17515)
17516
17517// ProvisioningType_Values returns all elements of the ProvisioningType enum
17518func ProvisioningType_Values() []string {
17519	return []string{
17520		ProvisioningTypeNonProvisionable,
17521		ProvisioningTypeImmutable,
17522		ProvisioningTypeFullyMutable,
17523	}
17524}
17525
17526const (
17527	// RegistrationStatusComplete is a RegistrationStatus enum value
17528	RegistrationStatusComplete = "COMPLETE"
17529
17530	// RegistrationStatusInProgress is a RegistrationStatus enum value
17531	RegistrationStatusInProgress = "IN_PROGRESS"
17532
17533	// RegistrationStatusFailed is a RegistrationStatus enum value
17534	RegistrationStatusFailed = "FAILED"
17535)
17536
17537// RegistrationStatus_Values returns all elements of the RegistrationStatus enum
17538func RegistrationStatus_Values() []string {
17539	return []string{
17540		RegistrationStatusComplete,
17541		RegistrationStatusInProgress,
17542		RegistrationStatusFailed,
17543	}
17544}
17545
17546const (
17547	// RegistryTypeResource is a RegistryType enum value
17548	RegistryTypeResource = "RESOURCE"
17549)
17550
17551// RegistryType_Values returns all elements of the RegistryType enum
17552func RegistryType_Values() []string {
17553	return []string{
17554		RegistryTypeResource,
17555	}
17556}
17557
17558const (
17559	// ReplacementTrue is a Replacement enum value
17560	ReplacementTrue = "True"
17561
17562	// ReplacementFalse is a Replacement enum value
17563	ReplacementFalse = "False"
17564
17565	// ReplacementConditional is a Replacement enum value
17566	ReplacementConditional = "Conditional"
17567)
17568
17569// Replacement_Values returns all elements of the Replacement enum
17570func Replacement_Values() []string {
17571	return []string{
17572		ReplacementTrue,
17573		ReplacementFalse,
17574		ReplacementConditional,
17575	}
17576}
17577
17578const (
17579	// RequiresRecreationNever is a RequiresRecreation enum value
17580	RequiresRecreationNever = "Never"
17581
17582	// RequiresRecreationConditionally is a RequiresRecreation enum value
17583	RequiresRecreationConditionally = "Conditionally"
17584
17585	// RequiresRecreationAlways is a RequiresRecreation enum value
17586	RequiresRecreationAlways = "Always"
17587)
17588
17589// RequiresRecreation_Values returns all elements of the RequiresRecreation enum
17590func RequiresRecreation_Values() []string {
17591	return []string{
17592		RequiresRecreationNever,
17593		RequiresRecreationConditionally,
17594		RequiresRecreationAlways,
17595	}
17596}
17597
17598const (
17599	// ResourceAttributeProperties is a ResourceAttribute enum value
17600	ResourceAttributeProperties = "Properties"
17601
17602	// ResourceAttributeMetadata is a ResourceAttribute enum value
17603	ResourceAttributeMetadata = "Metadata"
17604
17605	// ResourceAttributeCreationPolicy is a ResourceAttribute enum value
17606	ResourceAttributeCreationPolicy = "CreationPolicy"
17607
17608	// ResourceAttributeUpdatePolicy is a ResourceAttribute enum value
17609	ResourceAttributeUpdatePolicy = "UpdatePolicy"
17610
17611	// ResourceAttributeDeletionPolicy is a ResourceAttribute enum value
17612	ResourceAttributeDeletionPolicy = "DeletionPolicy"
17613
17614	// ResourceAttributeTags is a ResourceAttribute enum value
17615	ResourceAttributeTags = "Tags"
17616)
17617
17618// ResourceAttribute_Values returns all elements of the ResourceAttribute enum
17619func ResourceAttribute_Values() []string {
17620	return []string{
17621		ResourceAttributeProperties,
17622		ResourceAttributeMetadata,
17623		ResourceAttributeCreationPolicy,
17624		ResourceAttributeUpdatePolicy,
17625		ResourceAttributeDeletionPolicy,
17626		ResourceAttributeTags,
17627	}
17628}
17629
17630const (
17631	// ResourceSignalStatusSuccess is a ResourceSignalStatus enum value
17632	ResourceSignalStatusSuccess = "SUCCESS"
17633
17634	// ResourceSignalStatusFailure is a ResourceSignalStatus enum value
17635	ResourceSignalStatusFailure = "FAILURE"
17636)
17637
17638// ResourceSignalStatus_Values returns all elements of the ResourceSignalStatus enum
17639func ResourceSignalStatus_Values() []string {
17640	return []string{
17641		ResourceSignalStatusSuccess,
17642		ResourceSignalStatusFailure,
17643	}
17644}
17645
17646const (
17647	// ResourceStatusCreateInProgress is a ResourceStatus enum value
17648	ResourceStatusCreateInProgress = "CREATE_IN_PROGRESS"
17649
17650	// ResourceStatusCreateFailed is a ResourceStatus enum value
17651	ResourceStatusCreateFailed = "CREATE_FAILED"
17652
17653	// ResourceStatusCreateComplete is a ResourceStatus enum value
17654	ResourceStatusCreateComplete = "CREATE_COMPLETE"
17655
17656	// ResourceStatusDeleteInProgress is a ResourceStatus enum value
17657	ResourceStatusDeleteInProgress = "DELETE_IN_PROGRESS"
17658
17659	// ResourceStatusDeleteFailed is a ResourceStatus enum value
17660	ResourceStatusDeleteFailed = "DELETE_FAILED"
17661
17662	// ResourceStatusDeleteComplete is a ResourceStatus enum value
17663	ResourceStatusDeleteComplete = "DELETE_COMPLETE"
17664
17665	// ResourceStatusDeleteSkipped is a ResourceStatus enum value
17666	ResourceStatusDeleteSkipped = "DELETE_SKIPPED"
17667
17668	// ResourceStatusUpdateInProgress is a ResourceStatus enum value
17669	ResourceStatusUpdateInProgress = "UPDATE_IN_PROGRESS"
17670
17671	// ResourceStatusUpdateFailed is a ResourceStatus enum value
17672	ResourceStatusUpdateFailed = "UPDATE_FAILED"
17673
17674	// ResourceStatusUpdateComplete is a ResourceStatus enum value
17675	ResourceStatusUpdateComplete = "UPDATE_COMPLETE"
17676
17677	// ResourceStatusImportFailed is a ResourceStatus enum value
17678	ResourceStatusImportFailed = "IMPORT_FAILED"
17679
17680	// ResourceStatusImportComplete is a ResourceStatus enum value
17681	ResourceStatusImportComplete = "IMPORT_COMPLETE"
17682
17683	// ResourceStatusImportInProgress is a ResourceStatus enum value
17684	ResourceStatusImportInProgress = "IMPORT_IN_PROGRESS"
17685
17686	// ResourceStatusImportRollbackInProgress is a ResourceStatus enum value
17687	ResourceStatusImportRollbackInProgress = "IMPORT_ROLLBACK_IN_PROGRESS"
17688
17689	// ResourceStatusImportRollbackFailed is a ResourceStatus enum value
17690	ResourceStatusImportRollbackFailed = "IMPORT_ROLLBACK_FAILED"
17691
17692	// ResourceStatusImportRollbackComplete is a ResourceStatus enum value
17693	ResourceStatusImportRollbackComplete = "IMPORT_ROLLBACK_COMPLETE"
17694)
17695
17696// ResourceStatus_Values returns all elements of the ResourceStatus enum
17697func ResourceStatus_Values() []string {
17698	return []string{
17699		ResourceStatusCreateInProgress,
17700		ResourceStatusCreateFailed,
17701		ResourceStatusCreateComplete,
17702		ResourceStatusDeleteInProgress,
17703		ResourceStatusDeleteFailed,
17704		ResourceStatusDeleteComplete,
17705		ResourceStatusDeleteSkipped,
17706		ResourceStatusUpdateInProgress,
17707		ResourceStatusUpdateFailed,
17708		ResourceStatusUpdateComplete,
17709		ResourceStatusImportFailed,
17710		ResourceStatusImportComplete,
17711		ResourceStatusImportInProgress,
17712		ResourceStatusImportRollbackInProgress,
17713		ResourceStatusImportRollbackFailed,
17714		ResourceStatusImportRollbackComplete,
17715	}
17716}
17717
17718const (
17719	// StackDriftDetectionStatusDetectionInProgress is a StackDriftDetectionStatus enum value
17720	StackDriftDetectionStatusDetectionInProgress = "DETECTION_IN_PROGRESS"
17721
17722	// StackDriftDetectionStatusDetectionFailed is a StackDriftDetectionStatus enum value
17723	StackDriftDetectionStatusDetectionFailed = "DETECTION_FAILED"
17724
17725	// StackDriftDetectionStatusDetectionComplete is a StackDriftDetectionStatus enum value
17726	StackDriftDetectionStatusDetectionComplete = "DETECTION_COMPLETE"
17727)
17728
17729// StackDriftDetectionStatus_Values returns all elements of the StackDriftDetectionStatus enum
17730func StackDriftDetectionStatus_Values() []string {
17731	return []string{
17732		StackDriftDetectionStatusDetectionInProgress,
17733		StackDriftDetectionStatusDetectionFailed,
17734		StackDriftDetectionStatusDetectionComplete,
17735	}
17736}
17737
17738const (
17739	// StackDriftStatusDrifted is a StackDriftStatus enum value
17740	StackDriftStatusDrifted = "DRIFTED"
17741
17742	// StackDriftStatusInSync is a StackDriftStatus enum value
17743	StackDriftStatusInSync = "IN_SYNC"
17744
17745	// StackDriftStatusUnknown is a StackDriftStatus enum value
17746	StackDriftStatusUnknown = "UNKNOWN"
17747
17748	// StackDriftStatusNotChecked is a StackDriftStatus enum value
17749	StackDriftStatusNotChecked = "NOT_CHECKED"
17750)
17751
17752// StackDriftStatus_Values returns all elements of the StackDriftStatus enum
17753func StackDriftStatus_Values() []string {
17754	return []string{
17755		StackDriftStatusDrifted,
17756		StackDriftStatusInSync,
17757		StackDriftStatusUnknown,
17758		StackDriftStatusNotChecked,
17759	}
17760}
17761
17762const (
17763	// StackInstanceDetailedStatusPending is a StackInstanceDetailedStatus enum value
17764	StackInstanceDetailedStatusPending = "PENDING"
17765
17766	// StackInstanceDetailedStatusRunning is a StackInstanceDetailedStatus enum value
17767	StackInstanceDetailedStatusRunning = "RUNNING"
17768
17769	// StackInstanceDetailedStatusSucceeded is a StackInstanceDetailedStatus enum value
17770	StackInstanceDetailedStatusSucceeded = "SUCCEEDED"
17771
17772	// StackInstanceDetailedStatusFailed is a StackInstanceDetailedStatus enum value
17773	StackInstanceDetailedStatusFailed = "FAILED"
17774
17775	// StackInstanceDetailedStatusCancelled is a StackInstanceDetailedStatus enum value
17776	StackInstanceDetailedStatusCancelled = "CANCELLED"
17777
17778	// StackInstanceDetailedStatusInoperable is a StackInstanceDetailedStatus enum value
17779	StackInstanceDetailedStatusInoperable = "INOPERABLE"
17780)
17781
17782// StackInstanceDetailedStatus_Values returns all elements of the StackInstanceDetailedStatus enum
17783func StackInstanceDetailedStatus_Values() []string {
17784	return []string{
17785		StackInstanceDetailedStatusPending,
17786		StackInstanceDetailedStatusRunning,
17787		StackInstanceDetailedStatusSucceeded,
17788		StackInstanceDetailedStatusFailed,
17789		StackInstanceDetailedStatusCancelled,
17790		StackInstanceDetailedStatusInoperable,
17791	}
17792}
17793
17794const (
17795	// StackInstanceFilterNameDetailedStatus is a StackInstanceFilterName enum value
17796	StackInstanceFilterNameDetailedStatus = "DETAILED_STATUS"
17797)
17798
17799// StackInstanceFilterName_Values returns all elements of the StackInstanceFilterName enum
17800func StackInstanceFilterName_Values() []string {
17801	return []string{
17802		StackInstanceFilterNameDetailedStatus,
17803	}
17804}
17805
17806const (
17807	// StackInstanceStatusCurrent is a StackInstanceStatus enum value
17808	StackInstanceStatusCurrent = "CURRENT"
17809
17810	// StackInstanceStatusOutdated is a StackInstanceStatus enum value
17811	StackInstanceStatusOutdated = "OUTDATED"
17812
17813	// StackInstanceStatusInoperable is a StackInstanceStatus enum value
17814	StackInstanceStatusInoperable = "INOPERABLE"
17815)
17816
17817// StackInstanceStatus_Values returns all elements of the StackInstanceStatus enum
17818func StackInstanceStatus_Values() []string {
17819	return []string{
17820		StackInstanceStatusCurrent,
17821		StackInstanceStatusOutdated,
17822		StackInstanceStatusInoperable,
17823	}
17824}
17825
17826const (
17827	// StackResourceDriftStatusInSync is a StackResourceDriftStatus enum value
17828	StackResourceDriftStatusInSync = "IN_SYNC"
17829
17830	// StackResourceDriftStatusModified is a StackResourceDriftStatus enum value
17831	StackResourceDriftStatusModified = "MODIFIED"
17832
17833	// StackResourceDriftStatusDeleted is a StackResourceDriftStatus enum value
17834	StackResourceDriftStatusDeleted = "DELETED"
17835
17836	// StackResourceDriftStatusNotChecked is a StackResourceDriftStatus enum value
17837	StackResourceDriftStatusNotChecked = "NOT_CHECKED"
17838)
17839
17840// StackResourceDriftStatus_Values returns all elements of the StackResourceDriftStatus enum
17841func StackResourceDriftStatus_Values() []string {
17842	return []string{
17843		StackResourceDriftStatusInSync,
17844		StackResourceDriftStatusModified,
17845		StackResourceDriftStatusDeleted,
17846		StackResourceDriftStatusNotChecked,
17847	}
17848}
17849
17850const (
17851	// StackSetDriftDetectionStatusCompleted is a StackSetDriftDetectionStatus enum value
17852	StackSetDriftDetectionStatusCompleted = "COMPLETED"
17853
17854	// StackSetDriftDetectionStatusFailed is a StackSetDriftDetectionStatus enum value
17855	StackSetDriftDetectionStatusFailed = "FAILED"
17856
17857	// StackSetDriftDetectionStatusPartialSuccess is a StackSetDriftDetectionStatus enum value
17858	StackSetDriftDetectionStatusPartialSuccess = "PARTIAL_SUCCESS"
17859
17860	// StackSetDriftDetectionStatusInProgress is a StackSetDriftDetectionStatus enum value
17861	StackSetDriftDetectionStatusInProgress = "IN_PROGRESS"
17862
17863	// StackSetDriftDetectionStatusStopped is a StackSetDriftDetectionStatus enum value
17864	StackSetDriftDetectionStatusStopped = "STOPPED"
17865)
17866
17867// StackSetDriftDetectionStatus_Values returns all elements of the StackSetDriftDetectionStatus enum
17868func StackSetDriftDetectionStatus_Values() []string {
17869	return []string{
17870		StackSetDriftDetectionStatusCompleted,
17871		StackSetDriftDetectionStatusFailed,
17872		StackSetDriftDetectionStatusPartialSuccess,
17873		StackSetDriftDetectionStatusInProgress,
17874		StackSetDriftDetectionStatusStopped,
17875	}
17876}
17877
17878const (
17879	// StackSetDriftStatusDrifted is a StackSetDriftStatus enum value
17880	StackSetDriftStatusDrifted = "DRIFTED"
17881
17882	// StackSetDriftStatusInSync is a StackSetDriftStatus enum value
17883	StackSetDriftStatusInSync = "IN_SYNC"
17884
17885	// StackSetDriftStatusNotChecked is a StackSetDriftStatus enum value
17886	StackSetDriftStatusNotChecked = "NOT_CHECKED"
17887)
17888
17889// StackSetDriftStatus_Values returns all elements of the StackSetDriftStatus enum
17890func StackSetDriftStatus_Values() []string {
17891	return []string{
17892		StackSetDriftStatusDrifted,
17893		StackSetDriftStatusInSync,
17894		StackSetDriftStatusNotChecked,
17895	}
17896}
17897
17898const (
17899	// StackSetOperationActionCreate is a StackSetOperationAction enum value
17900	StackSetOperationActionCreate = "CREATE"
17901
17902	// StackSetOperationActionUpdate is a StackSetOperationAction enum value
17903	StackSetOperationActionUpdate = "UPDATE"
17904
17905	// StackSetOperationActionDelete is a StackSetOperationAction enum value
17906	StackSetOperationActionDelete = "DELETE"
17907
17908	// StackSetOperationActionDetectDrift is a StackSetOperationAction enum value
17909	StackSetOperationActionDetectDrift = "DETECT_DRIFT"
17910)
17911
17912// StackSetOperationAction_Values returns all elements of the StackSetOperationAction enum
17913func StackSetOperationAction_Values() []string {
17914	return []string{
17915		StackSetOperationActionCreate,
17916		StackSetOperationActionUpdate,
17917		StackSetOperationActionDelete,
17918		StackSetOperationActionDetectDrift,
17919	}
17920}
17921
17922const (
17923	// StackSetOperationResultStatusPending is a StackSetOperationResultStatus enum value
17924	StackSetOperationResultStatusPending = "PENDING"
17925
17926	// StackSetOperationResultStatusRunning is a StackSetOperationResultStatus enum value
17927	StackSetOperationResultStatusRunning = "RUNNING"
17928
17929	// StackSetOperationResultStatusSucceeded is a StackSetOperationResultStatus enum value
17930	StackSetOperationResultStatusSucceeded = "SUCCEEDED"
17931
17932	// StackSetOperationResultStatusFailed is a StackSetOperationResultStatus enum value
17933	StackSetOperationResultStatusFailed = "FAILED"
17934
17935	// StackSetOperationResultStatusCancelled is a StackSetOperationResultStatus enum value
17936	StackSetOperationResultStatusCancelled = "CANCELLED"
17937)
17938
17939// StackSetOperationResultStatus_Values returns all elements of the StackSetOperationResultStatus enum
17940func StackSetOperationResultStatus_Values() []string {
17941	return []string{
17942		StackSetOperationResultStatusPending,
17943		StackSetOperationResultStatusRunning,
17944		StackSetOperationResultStatusSucceeded,
17945		StackSetOperationResultStatusFailed,
17946		StackSetOperationResultStatusCancelled,
17947	}
17948}
17949
17950const (
17951	// StackSetOperationStatusRunning is a StackSetOperationStatus enum value
17952	StackSetOperationStatusRunning = "RUNNING"
17953
17954	// StackSetOperationStatusSucceeded is a StackSetOperationStatus enum value
17955	StackSetOperationStatusSucceeded = "SUCCEEDED"
17956
17957	// StackSetOperationStatusFailed is a StackSetOperationStatus enum value
17958	StackSetOperationStatusFailed = "FAILED"
17959
17960	// StackSetOperationStatusStopping is a StackSetOperationStatus enum value
17961	StackSetOperationStatusStopping = "STOPPING"
17962
17963	// StackSetOperationStatusStopped is a StackSetOperationStatus enum value
17964	StackSetOperationStatusStopped = "STOPPED"
17965
17966	// StackSetOperationStatusQueued is a StackSetOperationStatus enum value
17967	StackSetOperationStatusQueued = "QUEUED"
17968)
17969
17970// StackSetOperationStatus_Values returns all elements of the StackSetOperationStatus enum
17971func StackSetOperationStatus_Values() []string {
17972	return []string{
17973		StackSetOperationStatusRunning,
17974		StackSetOperationStatusSucceeded,
17975		StackSetOperationStatusFailed,
17976		StackSetOperationStatusStopping,
17977		StackSetOperationStatusStopped,
17978		StackSetOperationStatusQueued,
17979	}
17980}
17981
17982const (
17983	// StackSetStatusActive is a StackSetStatus enum value
17984	StackSetStatusActive = "ACTIVE"
17985
17986	// StackSetStatusDeleted is a StackSetStatus enum value
17987	StackSetStatusDeleted = "DELETED"
17988)
17989
17990// StackSetStatus_Values returns all elements of the StackSetStatus enum
17991func StackSetStatus_Values() []string {
17992	return []string{
17993		StackSetStatusActive,
17994		StackSetStatusDeleted,
17995	}
17996}
17997
17998const (
17999	// StackStatusCreateInProgress is a StackStatus enum value
18000	StackStatusCreateInProgress = "CREATE_IN_PROGRESS"
18001
18002	// StackStatusCreateFailed is a StackStatus enum value
18003	StackStatusCreateFailed = "CREATE_FAILED"
18004
18005	// StackStatusCreateComplete is a StackStatus enum value
18006	StackStatusCreateComplete = "CREATE_COMPLETE"
18007
18008	// StackStatusRollbackInProgress is a StackStatus enum value
18009	StackStatusRollbackInProgress = "ROLLBACK_IN_PROGRESS"
18010
18011	// StackStatusRollbackFailed is a StackStatus enum value
18012	StackStatusRollbackFailed = "ROLLBACK_FAILED"
18013
18014	// StackStatusRollbackComplete is a StackStatus enum value
18015	StackStatusRollbackComplete = "ROLLBACK_COMPLETE"
18016
18017	// StackStatusDeleteInProgress is a StackStatus enum value
18018	StackStatusDeleteInProgress = "DELETE_IN_PROGRESS"
18019
18020	// StackStatusDeleteFailed is a StackStatus enum value
18021	StackStatusDeleteFailed = "DELETE_FAILED"
18022
18023	// StackStatusDeleteComplete is a StackStatus enum value
18024	StackStatusDeleteComplete = "DELETE_COMPLETE"
18025
18026	// StackStatusUpdateInProgress is a StackStatus enum value
18027	StackStatusUpdateInProgress = "UPDATE_IN_PROGRESS"
18028
18029	// StackStatusUpdateCompleteCleanupInProgress is a StackStatus enum value
18030	StackStatusUpdateCompleteCleanupInProgress = "UPDATE_COMPLETE_CLEANUP_IN_PROGRESS"
18031
18032	// StackStatusUpdateComplete is a StackStatus enum value
18033	StackStatusUpdateComplete = "UPDATE_COMPLETE"
18034
18035	// StackStatusUpdateRollbackInProgress is a StackStatus enum value
18036	StackStatusUpdateRollbackInProgress = "UPDATE_ROLLBACK_IN_PROGRESS"
18037
18038	// StackStatusUpdateRollbackFailed is a StackStatus enum value
18039	StackStatusUpdateRollbackFailed = "UPDATE_ROLLBACK_FAILED"
18040
18041	// StackStatusUpdateRollbackCompleteCleanupInProgress is a StackStatus enum value
18042	StackStatusUpdateRollbackCompleteCleanupInProgress = "UPDATE_ROLLBACK_COMPLETE_CLEANUP_IN_PROGRESS"
18043
18044	// StackStatusUpdateRollbackComplete is a StackStatus enum value
18045	StackStatusUpdateRollbackComplete = "UPDATE_ROLLBACK_COMPLETE"
18046
18047	// StackStatusReviewInProgress is a StackStatus enum value
18048	StackStatusReviewInProgress = "REVIEW_IN_PROGRESS"
18049
18050	// StackStatusImportInProgress is a StackStatus enum value
18051	StackStatusImportInProgress = "IMPORT_IN_PROGRESS"
18052
18053	// StackStatusImportComplete is a StackStatus enum value
18054	StackStatusImportComplete = "IMPORT_COMPLETE"
18055
18056	// StackStatusImportRollbackInProgress is a StackStatus enum value
18057	StackStatusImportRollbackInProgress = "IMPORT_ROLLBACK_IN_PROGRESS"
18058
18059	// StackStatusImportRollbackFailed is a StackStatus enum value
18060	StackStatusImportRollbackFailed = "IMPORT_ROLLBACK_FAILED"
18061
18062	// StackStatusImportRollbackComplete is a StackStatus enum value
18063	StackStatusImportRollbackComplete = "IMPORT_ROLLBACK_COMPLETE"
18064)
18065
18066// StackStatus_Values returns all elements of the StackStatus enum
18067func StackStatus_Values() []string {
18068	return []string{
18069		StackStatusCreateInProgress,
18070		StackStatusCreateFailed,
18071		StackStatusCreateComplete,
18072		StackStatusRollbackInProgress,
18073		StackStatusRollbackFailed,
18074		StackStatusRollbackComplete,
18075		StackStatusDeleteInProgress,
18076		StackStatusDeleteFailed,
18077		StackStatusDeleteComplete,
18078		StackStatusUpdateInProgress,
18079		StackStatusUpdateCompleteCleanupInProgress,
18080		StackStatusUpdateComplete,
18081		StackStatusUpdateRollbackInProgress,
18082		StackStatusUpdateRollbackFailed,
18083		StackStatusUpdateRollbackCompleteCleanupInProgress,
18084		StackStatusUpdateRollbackComplete,
18085		StackStatusReviewInProgress,
18086		StackStatusImportInProgress,
18087		StackStatusImportComplete,
18088		StackStatusImportRollbackInProgress,
18089		StackStatusImportRollbackFailed,
18090		StackStatusImportRollbackComplete,
18091	}
18092}
18093
18094const (
18095	// TemplateStageOriginal is a TemplateStage enum value
18096	TemplateStageOriginal = "Original"
18097
18098	// TemplateStageProcessed is a TemplateStage enum value
18099	TemplateStageProcessed = "Processed"
18100)
18101
18102// TemplateStage_Values returns all elements of the TemplateStage enum
18103func TemplateStage_Values() []string {
18104	return []string{
18105		TemplateStageOriginal,
18106		TemplateStageProcessed,
18107	}
18108}
18109
18110const (
18111	// VisibilityPublic is a Visibility enum value
18112	VisibilityPublic = "PUBLIC"
18113
18114	// VisibilityPrivate is a Visibility enum value
18115	VisibilityPrivate = "PRIVATE"
18116)
18117
18118// Visibility_Values returns all elements of the Visibility enum
18119func Visibility_Values() []string {
18120	return []string{
18121		VisibilityPublic,
18122		VisibilityPrivate,
18123	}
18124}
18125