1// Code generated by smithy-go-codegen DO NOT EDIT.
2
3package types
4
5import (
6	"time"
7)
8
9// Structure that contains the results of the account gate function which AWS
10// CloudFormation invokes, if present, before proceeding with a stack set operation
11// in an account and Region. For each account and Region, AWS CloudFormation lets
12// you specify a Lamdba function that encapsulates any requirements that must be
13// met before CloudFormation can proceed with a stack set operation in that account
14// and Region. CloudFormation invokes the function each time a stack set operation
15// is requested for that account and Region; if the function returns FAILED,
16// CloudFormation cancels the operation in that account and Region, and sets the
17// stack set operation result status for that account and Region to FAILED. For
18// more information, see Configuring a target account gate
19// (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/stacksets-account-gating.html).
20type AccountGateResult struct {
21
22	// The status of the account gate function.
23	//
24	// * SUCCEEDED: The account gate function
25	// has determined that the account and Region passes any requirements for a stack
26	// set operation to occur. AWS CloudFormation proceeds with the stack operation in
27	// that account and Region.
28	//
29	// * FAILED: The account gate function has determined
30	// that the account and Region does not meet the requirements for a stack set
31	// operation to occur. AWS CloudFormation cancels the stack set operation in that
32	// account and Region, and sets the stack set operation result status for that
33	// account and Region to FAILED.
34	//
35	// * SKIPPED: AWS CloudFormation has skipped calling
36	// the account gate function for this account and Region, for one of the following
37	// reasons:
38	//
39	// * An account gate function has not been specified for the account and
40	// Region. AWS CloudFormation proceeds with the stack set operation in this account
41	// and Region.
42	//
43	// * The AWSCloudFormationStackSetExecutionRole of the stack set
44	// adminstration account lacks permissions to invoke the function. AWS
45	// CloudFormation proceeds with the stack set operation in this account and
46	// Region.
47	//
48	// * Either no action is necessary, or no action is possible, on the
49	// stack. AWS CloudFormation skips the stack set operation in this account and
50	// Region.
51	Status AccountGateStatus
52
53	// The reason for the account gate status assigned to this account and Region for
54	// the stack set operation.
55	StatusReason *string
56}
57
58// The AccountLimit data type. CloudFormation has the following limits per
59// account:
60//
61// * Number of concurrent resources
62//
63// * Number of stacks
64//
65// * Number of
66// stack outputs
67//
68// For more information about these account limits, and other
69// CloudFormation limits, see AWS CloudFormation Limits
70// (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/cloudformation-limits.html)
71// in the AWS CloudFormation User Guide.
72type AccountLimit struct {
73
74	// The name of the account limit. Values: ConcurrentResourcesLimit | StackLimit |
75	// StackOutputsLimit
76	Name *string
77
78	// The value that is associated with the account limit name.
79	Value *int32
80}
81
82// [Service-managed permissions] Describes whether StackSets automatically deploys
83// to AWS Organizations accounts that are added to a target organization or
84// organizational unit (OU).
85type AutoDeployment struct {
86
87	// If set to true, StackSets automatically deploys additional stack instances to
88	// AWS Organizations accounts that are added to a target organization or
89	// organizational unit (OU) in the specified Regions. If an account is removed from
90	// a target organization or OU, StackSets deletes stack instances from the account
91	// in the specified Regions.
92	Enabled *bool
93
94	// If set to true, stack resources are retained when an account is removed from a
95	// target organization or OU. If set to false, stack resources are deleted. Specify
96	// only if Enabled is set to True.
97	RetainStacksOnAccountRemoval *bool
98}
99
100// The Change structure describes the changes AWS CloudFormation will perform if
101// you execute the change set.
102type Change struct {
103
104	// A ResourceChange structure that describes the resource and action that AWS
105	// CloudFormation will perform.
106	ResourceChange *ResourceChange
107
108	// The type of entity that AWS CloudFormation changes. Currently, the only entity
109	// type is Resource.
110	Type ChangeType
111}
112
113// The ChangeSetSummary structure describes a change set, its status, and the stack
114// with which it's associated.
115type ChangeSetSummary struct {
116
117	// The ID of the change set.
118	ChangeSetId *string
119
120	// The name of the change set.
121	ChangeSetName *string
122
123	// The start time when the change set was created, in UTC.
124	CreationTime *time.Time
125
126	// Descriptive information about the change set.
127	Description *string
128
129	// If the change set execution status is AVAILABLE, you can execute the change set.
130	// If you can’t execute the change set, the status indicates why. For example, a
131	// change set might be in an UNAVAILABLE state because AWS CloudFormation is still
132	// creating it or in an OBSOLETE state because the stack was already updated.
133	ExecutionStatus ExecutionStatus
134
135	// Specifies the current setting of IncludeNestedStacks for the change set.
136	IncludeNestedStacks *bool
137
138	// The parent change set ID.
139	ParentChangeSetId *string
140
141	// The root change set ID.
142	RootChangeSetId *string
143
144	// The ID of the stack with which the change set is associated.
145	StackId *string
146
147	// The name of the stack with which the change set is associated.
148	StackName *string
149
150	// The state of the change set, such as CREATE_IN_PROGRESS, CREATE_COMPLETE, or
151	// FAILED.
152	Status ChangeSetStatus
153
154	// A description of the change set's status. For example, if your change set is in
155	// the FAILED state, AWS CloudFormation shows the error message.
156	StatusReason *string
157}
158
159// [Service-managed permissions] The AWS Organizations accounts to which StackSets
160// deploys. StackSets does not deploy stack instances to the organization
161// management account, even if the organization management account is in your
162// organization or in an OU in your organization. For update operations, you can
163// specify either Accounts or OrganizationalUnitIds. For create and delete
164// operations, specify OrganizationalUnitIds.
165type DeploymentTargets struct {
166
167	// The names of one or more AWS accounts for which you want to deploy stack set
168	// updates.
169	Accounts []string
170
171	// The organization root ID or organizational unit (OU) IDs to which StackSets
172	// deploys.
173	OrganizationalUnitIds []string
174}
175
176// The Export structure describes the exported output values for a stack.
177type Export struct {
178
179	// The stack that contains the exported output name and value.
180	ExportingStackId *string
181
182	// The name of exported output value. Use this name and the Fn::ImportValue
183	// function to import the associated value into other stacks. The name is defined
184	// in the Export field in the associated stack's Outputs section.
185	Name *string
186
187	// The value of the exported output, such as a resource physical ID. This value is
188	// defined in the Export field in the associated stack's Outputs section.
189	Value *string
190}
191
192// Contains logging configuration information for a type.
193type LoggingConfig struct {
194
195	// The Amazon CloudWatch log group to which CloudFormation sends error logging
196	// information when invoking the type's handlers.
197	//
198	// This member is required.
199	LogGroupName *string
200
201	// The ARN of the role that CloudFormation should assume when sending log entries
202	// to CloudWatch logs.
203	//
204	// This member is required.
205	LogRoleArn *string
206}
207
208// Contains information about the module from which the resource was created, if
209// the resource was created from a module included in the stack template. For more
210// information on modules, see Using modules to encapsulate and reuse resource
211// configurations in the CloudFormation User Guide.
212type ModuleInfo struct {
213
214	// A concantenated list of the logical IDs of the module or modules containing the
215	// resource. Modules are listed starting with the inner-most nested module, and
216	// separated by /. In the following example, the resource was created from a
217	// module, moduleA, that is nested inside a parent module, moduleB. moduleA/moduleB
218	// For more information, see Referencing resources in a module in the
219	// CloudFormation User Guide.
220	LogicalIdHierarchy *string
221
222	// A concantenated list of the the module type or types containing the resource.
223	// Module types are listed starting with the inner-most nested module, and
224	// separated by /. In the following example, the resource was created from a module
225	// of type AWS::First::Example::MODULE, that is nested inside a parent module of
226	// type AWS::Second::Example::MODULE.
227	// AWS::First::Example::MODULE/AWS::Second::Example::MODULE
228	TypeHierarchy *string
229}
230
231// The Output data type.
232type Output struct {
233
234	// User defined description associated with the output.
235	Description *string
236
237	// The name of the export associated with the output.
238	ExportName *string
239
240	// The key associated with the output.
241	OutputKey *string
242
243	// The value associated with the output.
244	OutputValue *string
245}
246
247// The Parameter data type.
248type Parameter struct {
249
250	// The key associated with the parameter. If you don't specify a key and value for
251	// a particular parameter, AWS CloudFormation uses the default value that is
252	// specified in your template.
253	ParameterKey *string
254
255	// The input value associated with the parameter.
256	ParameterValue *string
257
258	// Read-only. The value that corresponds to a Systems Manager parameter key. This
259	// field is returned only for SSM parameter types
260	// (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/parameters-section-structure.html#aws-ssm-parameter-types)
261	// in the template.
262	ResolvedValue *string
263
264	// During a stack update, use the existing parameter value that the stack is using
265	// for a given parameter key. If you specify true, do not specify a parameter
266	// value.
267	UsePreviousValue *bool
268}
269
270// A set of criteria that AWS CloudFormation uses to validate parameter values.
271// Although other constraints might be defined in the stack template, AWS
272// CloudFormation returns only the AllowedValues property.
273type ParameterConstraints struct {
274
275	// A list of values that are permitted for a parameter.
276	AllowedValues []string
277}
278
279// The ParameterDeclaration data type.
280type ParameterDeclaration struct {
281
282	// The default value of the parameter.
283	DefaultValue *string
284
285	// The description that is associate with the parameter.
286	Description *string
287
288	// Flag that indicates whether the parameter value is shown as plain text in logs
289	// and in the AWS Management Console.
290	NoEcho *bool
291
292	// The criteria that AWS CloudFormation uses to validate parameter values.
293	ParameterConstraints *ParameterConstraints
294
295	// The name that is associated with the parameter.
296	ParameterKey *string
297
298	// The type of parameter.
299	ParameterType *string
300}
301
302// Context information that enables AWS CloudFormation to uniquely identify a
303// resource. AWS CloudFormation uses context key-value pairs in cases where a
304// resource's logical and physical IDs are not enough to uniquely identify that
305// resource. Each context key-value pair specifies a resource that contains the
306// targeted resource.
307type PhysicalResourceIdContextKeyValuePair struct {
308
309	// The resource context key.
310	//
311	// This member is required.
312	Key *string
313
314	// The resource context value.
315	//
316	// This member is required.
317	Value *string
318}
319
320// Information about a resource property whose actual value differs from its
321// expected value, as defined in the stack template and any values specified as
322// template parameters. These will be present only for resources whose
323// StackResourceDriftStatus is MODIFIED. For more information, see Detecting
324// Unregulated Configuration Changes to Stacks and Resources
325// (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-stack-drift.html).
326type PropertyDifference struct {
327
328	// The actual property value of the resource property.
329	//
330	// This member is required.
331	ActualValue *string
332
333	// The type of property difference.
334	//
335	// * ADD: A value has been added to a resource
336	// property that is an array or list data type.
337	//
338	// * REMOVE: The property has been
339	// removed from the current resource configuration.
340	//
341	// * NOT_EQUAL: The current
342	// property value differs from its expected value (as defined in the stack template
343	// and any values specified as template parameters).
344	//
345	// This member is required.
346	DifferenceType DifferenceType
347
348	// The expected property value of the resource property, as defined in the stack
349	// template and any values specified as template parameters.
350	//
351	// This member is required.
352	ExpectedValue *string
353
354	// The fully-qualified path to the resource property.
355	//
356	// This member is required.
357	PropertyPath *string
358}
359
360// The ResourceChange structure describes the resource and the action that AWS
361// CloudFormation will perform on it if you execute this change set.
362type ResourceChange struct {
363
364	// The action that AWS CloudFormation takes on the resource, such as Add (adds a
365	// new resource), Modify (changes a resource), Remove (deletes a resource), Import
366	// (imports a resource), or Dynamic (exact action for the resource cannot be
367	// determined).
368	Action ChangeAction
369
370	// The change set ID of the nested change set.
371	ChangeSetId *string
372
373	// For the Modify action, a list of ResourceChangeDetail structures that describes
374	// the changes that AWS CloudFormation will make to the resource.
375	Details []ResourceChangeDetail
376
377	// The resource's logical ID, which is defined in the stack's template.
378	LogicalResourceId *string
379
380	// Contains information about the module from which the resource was created, if
381	// the resource was created from a module included in the stack template.
382	ModuleInfo *ModuleInfo
383
384	// The resource's physical ID (resource name). Resources that you are adding don't
385	// have physical IDs because they haven't been created.
386	PhysicalResourceId *string
387
388	// For the Modify action, indicates whether AWS CloudFormation will replace the
389	// resource by creating a new one and deleting the old one. This value depends on
390	// the value of the RequiresRecreation property in the ResourceTargetDefinition
391	// structure. For example, if the RequiresRecreation field is Always and the
392	// Evaluation field is Static, Replacement is True. If the RequiresRecreation field
393	// is Always and the Evaluation field is Dynamic, Replacement is Conditionally. If
394	// you have multiple changes with different RequiresRecreation values, the
395	// Replacement value depends on the change with the most impact. A
396	// RequiresRecreation value of Always has the most impact, followed by
397	// Conditionally, and then Never.
398	Replacement Replacement
399
400	// The type of AWS CloudFormation resource, such as AWS::S3::Bucket.
401	ResourceType *string
402
403	// For the Modify action, indicates which resource attribute is triggering this
404	// update, such as a change in the resource attribute's Metadata, Properties, or
405	// Tags.
406	Scope []ResourceAttribute
407}
408
409// For a resource with Modify as the action, the ResourceChange structure describes
410// the changes AWS CloudFormation will make to that resource.
411type ResourceChangeDetail struct {
412
413	// The identity of the entity that triggered this change. This entity is a member
414	// of the group that is specified by the ChangeSource field. For example, if you
415	// modified the value of the KeyPairName parameter, the CausingEntity is the name
416	// of the parameter (KeyPairName). If the ChangeSource value is DirectModification,
417	// no value is given for CausingEntity.
418	CausingEntity *string
419
420	// The group to which the CausingEntity value belongs. There are five entity
421	// groups:
422	//
423	// * ResourceReference entities are Ref intrinsic functions that refer to
424	// resources in the template, such as { "Ref" : "MyEC2InstanceResource" }.
425	//
426	// *
427	// ParameterReference entities are Ref intrinsic functions that get template
428	// parameter values, such as { "Ref" : "MyPasswordParameter" }.
429	//
430	// *
431	// ResourceAttribute entities are Fn::GetAtt intrinsic functions that get resource
432	// attribute values, such as { "Fn::GetAtt" : [ "MyEC2InstanceResource",
433	// "PublicDnsName" ] }.
434	//
435	// * DirectModification entities are changes that are made
436	// directly to the template.
437	//
438	// * Automatic entities are AWS::CloudFormation::Stack
439	// resource types, which are also known as nested stacks. If you made no changes to
440	// the AWS::CloudFormation::Stack resource, AWS CloudFormation sets the
441	// ChangeSource to Automatic because the nested stack's template might have
442	// changed. Changes to a nested stack's template aren't visible to AWS
443	// CloudFormation until you run an update on the parent stack.
444	ChangeSource ChangeSource
445
446	// Indicates whether AWS CloudFormation can determine the target value, and whether
447	// the target value will change before you execute a change set. For Static
448	// evaluations, AWS CloudFormation can determine that the target value will change,
449	// and its value. For example, if you directly modify the InstanceType property of
450	// an EC2 instance, AWS CloudFormation knows that this property value will change,
451	// and its value, so this is a Static evaluation. For Dynamic evaluations, cannot
452	// determine the target value because it depends on the result of an intrinsic
453	// function, such as a Ref or Fn::GetAtt intrinsic function, when the stack is
454	// updated. For example, if your template includes a reference to a resource that
455	// is conditionally recreated, the value of the reference (the physical ID of the
456	// resource) might change, depending on if the resource is recreated. If the
457	// resource is recreated, it will have a new physical ID, so all references to that
458	// resource will also be updated.
459	Evaluation EvaluationType
460
461	// A ResourceTargetDefinition structure that describes the field that AWS
462	// CloudFormation will change and whether the resource will be recreated.
463	Target *ResourceTargetDefinition
464}
465
466// Describes the target resources of a specific type in your import template (for
467// example, all AWS::S3::Bucket resources) and the properties you can provide
468// during the import to identify resources of that type.
469type ResourceIdentifierSummary struct {
470
471	// The logical IDs of the target resources of the specified ResourceType, as
472	// defined in the import template.
473	LogicalResourceIds []string
474
475	// The resource properties you can provide during the import to identify your
476	// target resources. For example, BucketName is a possible identifier property for
477	// AWS::S3::Bucket resources.
478	ResourceIdentifiers []string
479
480	// The template resource type of the target resources, such as AWS::S3::Bucket.
481	ResourceType *string
482}
483
484// The field that AWS CloudFormation will change, such as the name of a resource's
485// property, and whether the resource will be recreated.
486type ResourceTargetDefinition struct {
487
488	// Indicates which resource attribute is triggering this update, such as a change
489	// in the resource attribute's Metadata, Properties, or Tags.
490	Attribute ResourceAttribute
491
492	// If the Attribute value is Properties, the name of the property. For all other
493	// attributes, the value is null.
494	Name *string
495
496	// If the Attribute value is Properties, indicates whether a change to this
497	// property causes the resource to be recreated. The value can be Never, Always, or
498	// Conditionally. To determine the conditions for a Conditionally recreation, see
499	// the update behavior for that property
500	// (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-template-resource-type-ref.html)
501	// in the AWS CloudFormation User Guide.
502	RequiresRecreation RequiresRecreation
503}
504
505// Describes the target resource of an import operation.
506type ResourceToImport struct {
507
508	// The logical ID of the target resource as specified in the template.
509	//
510	// This member is required.
511	LogicalResourceId *string
512
513	// A key-value pair that identifies the target resource. The key is an identifier
514	// property (for example, BucketName for AWS::S3::Bucket resources) and the value
515	// is the actual property value (for example, MyS3Bucket).
516	//
517	// This member is required.
518	ResourceIdentifier map[string]string
519
520	// The type of resource to import into your stack, such as AWS::S3::Bucket. For a
521	// list of supported resource types, see Resources that support import operations
522	// (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/resource-import-supported-resources.html)
523	// in the AWS CloudFormation User Guide.
524	//
525	// This member is required.
526	ResourceType *string
527}
528
529// Structure containing the rollback triggers for AWS CloudFormation to monitor
530// during stack creation and updating operations, and for the specified monitoring
531// period afterwards. Rollback triggers enable you to have AWS CloudFormation
532// monitor the state of your application during stack creation and updating, and to
533// roll back that operation if the application breaches the threshold of any of the
534// alarms you've specified. For more information, see Monitor and Roll Back Stack
535// Operations
536// (http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-rollback-triggers.html).
537type RollbackConfiguration struct {
538
539	// The amount of time, in minutes, during which CloudFormation should monitor all
540	// the rollback triggers after the stack creation or update operation deploys all
541	// necessary resources. The default is 0 minutes. If you specify a monitoring
542	// period but do not specify any rollback triggers, CloudFormation still waits the
543	// specified period of time before cleaning up old resources after update
544	// operations. You can use this monitoring period to perform any manual stack
545	// validation desired, and manually cancel the stack creation or update (using
546	// CancelUpdateStack
547	// (https://docs.aws.amazon.com/AWSCloudFormation/latest/APIReference/API_CancelUpdateStack.html),
548	// for example) as necessary. If you specify 0 for this parameter, CloudFormation
549	// still monitors the specified rollback triggers during stack creation and update
550	// operations. Then, for update operations, it begins disposing of old resources
551	// immediately once the operation completes.
552	MonitoringTimeInMinutes *int32
553
554	// The triggers to monitor during stack creation or update actions. By default, AWS
555	// CloudFormation saves the rollback triggers specified for a stack and applies
556	// them to any subsequent update operations for the stack, unless you specify
557	// otherwise. If you do specify rollback triggers for this parameter, those
558	// triggers replace any list of triggers previously specified for the stack. This
559	// means:
560	//
561	// * To use the rollback triggers previously specified for this stack, if
562	// any, don't specify this parameter.
563	//
564	// * To specify new or updated rollback
565	// triggers, you must specify all the triggers that you want used for this stack,
566	// even triggers you've specifed before (for example, when creating the stack or
567	// during a previous stack update). Any triggers that you don't include in the
568	// updated list of triggers are no longer applied to the stack.
569	//
570	// * To remove all
571	// currently specified triggers, specify an empty list for this parameter.
572	//
573	// If a
574	// specified trigger is missing, the entire stack operation fails and is rolled
575	// back.
576	RollbackTriggers []RollbackTrigger
577}
578
579// A rollback trigger AWS CloudFormation monitors during creation and updating of
580// stacks. If any of the alarms you specify goes to ALARM state during the stack
581// operation or within the specified monitoring period afterwards, CloudFormation
582// rolls back the entire stack operation.
583type RollbackTrigger struct {
584
585	// The Amazon Resource Name (ARN) of the rollback trigger. If a specified trigger
586	// is missing, the entire stack operation fails and is rolled back.
587	//
588	// This member is required.
589	Arn *string
590
591	// The resource type of the rollback trigger. Currently, AWS::CloudWatch::Alarm
592	// (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cw-alarm.html)
593	// is the only supported resource type.
594	//
595	// This member is required.
596	Type *string
597}
598
599// The Stack data type.
600type Stack struct {
601
602	// The time at which the stack was created.
603	//
604	// This member is required.
605	CreationTime *time.Time
606
607	// The name associated with the stack.
608	//
609	// This member is required.
610	StackName *string
611
612	// Current status of the stack.
613	//
614	// This member is required.
615	StackStatus StackStatus
616
617	// The capabilities allowed in the stack.
618	Capabilities []Capability
619
620	// The unique ID of the change set.
621	ChangeSetId *string
622
623	// The time the stack was deleted.
624	DeletionTime *time.Time
625
626	// A user-defined description associated with the stack.
627	Description *string
628
629	// Boolean to enable or disable rollback on stack creation failures:
630	//
631	// * true:
632	// disable rollback
633	//
634	// * false: enable rollback
635	DisableRollback *bool
636
637	// Information on whether a stack's actual configuration differs, or has drifted,
638	// from it's expected configuration, as defined in the stack template and any
639	// values specified as template parameters. For more information, see Detecting
640	// Unregulated Configuration Changes to Stacks and Resources
641	// (http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-stack-drift.html).
642	DriftInformation *StackDriftInformation
643
644	// Whether termination protection is enabled for the stack. For nested stacks
645	// (http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-nested-stacks.html),
646	// termination protection is set on the root stack and cannot be changed directly
647	// on the nested stack. For more information, see Protecting a Stack From Being
648	// Deleted
649	// (http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-protect-stacks.html)
650	// in the AWS CloudFormation User Guide.
651	EnableTerminationProtection *bool
652
653	// The time the stack was last updated. This field will only be returned if the
654	// stack has been updated at least once.
655	LastUpdatedTime *time.Time
656
657	// SNS topic ARNs to which stack related events are published.
658	NotificationARNs []string
659
660	// A list of output structures.
661	Outputs []Output
662
663	// A list of Parameter structures.
664	Parameters []Parameter
665
666	// For nested stacks--stacks created as resources for another stack--the stack ID
667	// of the direct parent of this stack. For the first level of nested stacks, the
668	// root stack is also the parent stack. For more information, see Working with
669	// Nested Stacks
670	// (http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-nested-stacks.html)
671	// in the AWS CloudFormation User Guide.
672	ParentId *string
673
674	// The Amazon Resource Name (ARN) of an AWS Identity and Access Management (IAM)
675	// role that is associated with the stack. During a stack operation, AWS
676	// CloudFormation uses this role's credentials to make calls on your behalf.
677	RoleARN *string
678
679	// The rollback triggers for AWS CloudFormation to monitor during stack creation
680	// and updating operations, and for the specified monitoring period afterwards.
681	RollbackConfiguration *RollbackConfiguration
682
683	// For nested stacks--stacks created as resources for another stack--the stack ID
684	// of the top-level stack to which the nested stack ultimately belongs. For more
685	// information, see Working with Nested Stacks
686	// (http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-nested-stacks.html)
687	// in the AWS CloudFormation User Guide.
688	RootId *string
689
690	// Unique identifier of the stack.
691	StackId *string
692
693	// Success/failure message associated with the stack status.
694	StackStatusReason *string
695
696	// A list of Tags that specify information about the stack.
697	Tags []Tag
698
699	// The amount of time within which stack creation should complete.
700	TimeoutInMinutes *int32
701}
702
703// Contains information about whether the stack's actual configuration differs, or
704// has drifted, from its expected configuration, as defined in the stack template
705// and any values specified as template parameters. A stack is considered to have
706// drifted if one or more of its resources have drifted.
707type StackDriftInformation struct {
708
709	// Status of the stack's actual configuration compared to its expected template
710	// configuration.
711	//
712	// * DRIFTED: The stack differs from its expected template
713	// configuration. A stack is considered to have drifted if one or more of its
714	// resources have drifted.
715	//
716	// * NOT_CHECKED: AWS CloudFormation has not checked if
717	// the stack differs from its expected template configuration.
718	//
719	// * IN_SYNC: The
720	// stack's actual configuration matches its expected template configuration.
721	//
722	// *
723	// UNKNOWN: This value is reserved for future use.
724	//
725	// This member is required.
726	StackDriftStatus StackDriftStatus
727
728	// Most recent time when a drift detection operation was initiated on the stack, or
729	// any of its individual resources that support drift detection.
730	LastCheckTimestamp *time.Time
731}
732
733// Contains information about whether the stack's actual configuration differs, or
734// has drifted, from its expected configuration, as defined in the stack template
735// and any values specified as template parameters. A stack is considered to have
736// drifted if one or more of its resources have drifted.
737type StackDriftInformationSummary struct {
738
739	// Status of the stack's actual configuration compared to its expected template
740	// configuration.
741	//
742	// * DRIFTED: The stack differs from its expected template
743	// configuration. A stack is considered to have drifted if one or more of its
744	// resources have drifted.
745	//
746	// * NOT_CHECKED: AWS CloudFormation has not checked if
747	// the stack differs from its expected template configuration.
748	//
749	// * IN_SYNC: The
750	// stack's actual configuration matches its expected template configuration.
751	//
752	// *
753	// UNKNOWN: This value is reserved for future use.
754	//
755	// This member is required.
756	StackDriftStatus StackDriftStatus
757
758	// Most recent time when a drift detection operation was initiated on the stack, or
759	// any of its individual resources that support drift detection.
760	LastCheckTimestamp *time.Time
761}
762
763// The StackEvent data type.
764type StackEvent struct {
765
766	// The unique ID of this event.
767	//
768	// This member is required.
769	EventId *string
770
771	// The unique ID name of the instance of the stack.
772	//
773	// This member is required.
774	StackId *string
775
776	// The name associated with a stack.
777	//
778	// This member is required.
779	StackName *string
780
781	// Time the status was updated.
782	//
783	// This member is required.
784	Timestamp *time.Time
785
786	// The token passed to the operation that generated this event. All events
787	// triggered by a given stack operation are assigned the same client request token,
788	// which you can use to track operations. For example, if you execute a CreateStack
789	// operation with the token token1, then all the StackEvents generated by that
790	// operation will have ClientRequestToken set as token1. In the console, stack
791	// operations display the client request token on the Events tab. Stack operations
792	// that are initiated from the console use the token format
793	// Console-StackOperation-ID, which helps you easily identify the stack operation .
794	// For example, if you create a stack using the console, each stack event would be
795	// assigned the same token in the following format:
796	// Console-CreateStack-7f59c3cf-00d2-40c7-b2ff-e75db0987002.
797	ClientRequestToken *string
798
799	// The logical name of the resource specified in the template.
800	LogicalResourceId *string
801
802	// The name or unique identifier associated with the physical instance of the
803	// resource.
804	PhysicalResourceId *string
805
806	// BLOB of the properties used to create the resource.
807	ResourceProperties *string
808
809	// Current status of the resource.
810	ResourceStatus ResourceStatus
811
812	// Success/failure message associated with the resource.
813	ResourceStatusReason *string
814
815	// Type of resource. (For more information, go to  AWS Resource Types Reference
816	// (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-template-resource-type-ref.html)
817	// in the AWS CloudFormation User Guide.)
818	ResourceType *string
819}
820
821// An AWS CloudFormation stack, in a specific account and Region, that's part of a
822// stack set operation. A stack instance is a reference to an attempted or actual
823// stack in a given account within a given Region. A stack instance can exist
824// without a stack—for example, if the stack couldn't be created for some reason. A
825// stack instance is associated with only one stack set. Each stack instance
826// contains the ID of its associated stack set, as well as the ID of the actual
827// stack and the stack status.
828type StackInstance struct {
829
830	// [Self-managed permissions] The name of the AWS account that the stack instance
831	// is associated with.
832	Account *string
833
834	// Status of the stack instance's actual configuration compared to the expected
835	// template and parameter configuration of the stack set to which it belongs.
836	//
837	// *
838	// DRIFTED: The stack differs from the expected template and parameter
839	// configuration of the stack set to which it belongs. A stack instance is
840	// considered to have drifted if one or more of the resources in the associated
841	// stack have drifted.
842	//
843	// * NOT_CHECKED: AWS CloudFormation has not checked if the
844	// stack instance differs from its expected stack set configuration.
845	//
846	// * IN_SYNC:
847	// The stack instance's actual configuration matches its expected stack set
848	// configuration.
849	//
850	// * UNKNOWN: This value is reserved for future use.
851	DriftStatus StackDriftStatus
852
853	// Most recent time when CloudFormation performed a drift detection operation on
854	// the stack instance. This value will be NULL for any stack instance on which
855	// drift detection has not yet been performed.
856	LastDriftCheckTimestamp *time.Time
857
858	// [Service-managed permissions] The organization root ID or organizational unit
859	// (OU) IDs that you specified for DeploymentTargets
860	// (https://docs.aws.amazon.com/AWSCloudFormation/latest/APIReference/API_DeploymentTargets.html).
861	OrganizationalUnitId *string
862
863	// A list of parameters from the stack set template whose values have been
864	// overridden in this stack instance.
865	ParameterOverrides []Parameter
866
867	// The name of the AWS Region that the stack instance is associated with.
868	Region *string
869
870	// The ID of the stack instance.
871	StackId *string
872
873	// The detailed status of the stack instance.
874	StackInstanceStatus *StackInstanceComprehensiveStatus
875
876	// The name or unique ID of the stack set that the stack instance is associated
877	// with.
878	StackSetId *string
879
880	// The status of the stack instance, in terms of its synchronization with its
881	// associated stack set.
882	//
883	// * INOPERABLE: A DeleteStackInstances operation has failed
884	// and left the stack in an unstable state. Stacks in this state are excluded from
885	// further UpdateStackSet operations. You might need to perform a
886	// DeleteStackInstances operation, with RetainStacks set to true, to delete the
887	// stack instance, and then delete the stack manually.
888	//
889	// * OUTDATED: The stack isn't
890	// currently up to date with the stack set because:
891	//
892	// * The associated stack failed
893	// during a CreateStackSet or UpdateStackSet operation.
894	//
895	// * The stack was part of a
896	// CreateStackSet or UpdateStackSet operation that failed or was stopped before the
897	// stack was created or updated.
898	//
899	// * CURRENT: The stack is currently up to date with
900	// the stack set.
901	Status StackInstanceStatus
902
903	// The explanation for the specific status code that is assigned to this stack
904	// instance.
905	StatusReason *string
906}
907
908// The detailed status of the stack instance.
909type StackInstanceComprehensiveStatus struct {
910
911	// * CANCELLED: The operation in the specified account and Region has been
912	// cancelled. This is either because a user has stopped the stack set operation, or
913	// because the failure tolerance of the stack set operation has been exceeded.
914	//
915	// *
916	// FAILED: The operation in the specified account and Region failed. If the stack
917	// set operation fails in enough accounts within a Region, the failure tolerance
918	// for the stack set operation as a whole might be exceeded.
919	//
920	// * INOPERABLE: A
921	// DeleteStackInstances operation has failed and left the stack in an unstable
922	// state. Stacks in this state are excluded from further UpdateStackSet operations.
923	// You might need to perform a DeleteStackInstances operation, with RetainStacks
924	// set to true, to delete the stack instance, and then delete the stack
925	// manually.
926	//
927	// * PENDING: The operation in the specified account and Region has yet
928	// to start.
929	//
930	// * RUNNING: The operation in the specified account and Region is
931	// currently in progress.
932	//
933	// * SUCCEEDED: The operation in the specified account and
934	// Region completed successfully.
935	DetailedStatus StackInstanceDetailedStatus
936}
937
938// The status that stack instances are filtered by.
939type StackInstanceFilter struct {
940
941	// The type of filter to apply.
942	Name StackInstanceFilterName
943
944	// The status to filter by.
945	Values *string
946}
947
948// The structure that contains summary information about a stack instance.
949type StackInstanceSummary struct {
950
951	// [Self-managed permissions] The name of the AWS account that the stack instance
952	// is associated with.
953	Account *string
954
955	// Status of the stack instance's actual configuration compared to the expected
956	// template and parameter configuration of the stack set to which it belongs.
957	//
958	// *
959	// DRIFTED: The stack differs from the expected template and parameter
960	// configuration of the stack set to which it belongs. A stack instance is
961	// considered to have drifted if one or more of the resources in the associated
962	// stack have drifted.
963	//
964	// * NOT_CHECKED: AWS CloudFormation has not checked if the
965	// stack instance differs from its expected stack set configuration.
966	//
967	// * IN_SYNC:
968	// The stack instance's actual configuration matches its expected stack set
969	// configuration.
970	//
971	// * UNKNOWN: This value is reserved for future use.
972	DriftStatus StackDriftStatus
973
974	// Most recent time when CloudFormation performed a drift detection operation on
975	// the stack instance. This value will be NULL for any stack instance on which
976	// drift detection has not yet been performed.
977	LastDriftCheckTimestamp *time.Time
978
979	// [Service-managed permissions] The organization root ID or organizational unit
980	// (OU) IDs that you specified for DeploymentTargets
981	// (https://docs.aws.amazon.com/AWSCloudFormation/latest/APIReference/API_DeploymentTargets.html).
982	OrganizationalUnitId *string
983
984	// The name of the AWS Region that the stack instance is associated with.
985	Region *string
986
987	// The ID of the stack instance.
988	StackId *string
989
990	// The detailed status of the stack instance.
991	StackInstanceStatus *StackInstanceComprehensiveStatus
992
993	// The name or unique ID of the stack set that the stack instance is associated
994	// with.
995	StackSetId *string
996
997	// The status of the stack instance, in terms of its synchronization with its
998	// associated stack set.
999	//
1000	// * INOPERABLE: A DeleteStackInstances operation has failed
1001	// and left the stack in an unstable state. Stacks in this state are excluded from
1002	// further UpdateStackSet operations. You might need to perform a
1003	// DeleteStackInstances operation, with RetainStacks set to true, to delete the
1004	// stack instance, and then delete the stack manually.
1005	//
1006	// * OUTDATED: The stack isn't
1007	// currently up to date with the stack set because:
1008	//
1009	// * The associated stack failed
1010	// during a CreateStackSet or UpdateStackSet operation.
1011	//
1012	// * The stack was part of a
1013	// CreateStackSet or UpdateStackSet operation that failed or was stopped before the
1014	// stack was created or updated.
1015	//
1016	// * CURRENT: The stack is currently up to date with
1017	// the stack set.
1018	Status StackInstanceStatus
1019
1020	// The explanation for the specific status code assigned to this stack instance.
1021	StatusReason *string
1022}
1023
1024// The StackResource data type.
1025type StackResource struct {
1026
1027	// The logical name of the resource specified in the template.
1028	//
1029	// This member is required.
1030	LogicalResourceId *string
1031
1032	// Current status of the resource.
1033	//
1034	// This member is required.
1035	ResourceStatus ResourceStatus
1036
1037	// Type of resource. (For more information, go to  AWS Resource Types Reference
1038	// (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-template-resource-type-ref.html)
1039	// in the AWS CloudFormation User Guide.)
1040	//
1041	// This member is required.
1042	ResourceType *string
1043
1044	// Time the status was updated.
1045	//
1046	// This member is required.
1047	Timestamp *time.Time
1048
1049	// User defined description associated with the resource.
1050	Description *string
1051
1052	// Information about whether the resource's actual configuration differs, or has
1053	// drifted, from its expected configuration, as defined in the stack template and
1054	// any values specified as template parameters. For more information, see Detecting
1055	// Unregulated Configuration Changes to Stacks and Resources
1056	// (http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-stack-drift.html).
1057	DriftInformation *StackResourceDriftInformation
1058
1059	// Contains information about the module from which the resource was created, if
1060	// the resource was created from a module included in the stack template.
1061	ModuleInfo *ModuleInfo
1062
1063	// The name or unique identifier that corresponds to a physical instance ID of a
1064	// resource supported by AWS CloudFormation.
1065	PhysicalResourceId *string
1066
1067	// Success/failure message associated with the resource.
1068	ResourceStatusReason *string
1069
1070	// Unique identifier of the stack.
1071	StackId *string
1072
1073	// The name associated with the stack.
1074	StackName *string
1075}
1076
1077// Contains detailed information about the specified stack resource.
1078type StackResourceDetail struct {
1079
1080	// Time the status was updated.
1081	//
1082	// This member is required.
1083	LastUpdatedTimestamp *time.Time
1084
1085	// The logical name of the resource specified in the template.
1086	//
1087	// This member is required.
1088	LogicalResourceId *string
1089
1090	// Current status of the resource.
1091	//
1092	// This member is required.
1093	ResourceStatus ResourceStatus
1094
1095	// Type of resource. ((For more information, go to  AWS Resource Types Reference
1096	// (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-template-resource-type-ref.html)
1097	// in the AWS CloudFormation User Guide.)
1098	//
1099	// This member is required.
1100	ResourceType *string
1101
1102	// User defined description associated with the resource.
1103	Description *string
1104
1105	// Information about whether the resource's actual configuration differs, or has
1106	// drifted, from its expected configuration, as defined in the stack template and
1107	// any values specified as template parameters. For more information, see Detecting
1108	// Unregulated Configuration Changes to Stacks and Resources
1109	// (http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-stack-drift.html).
1110	DriftInformation *StackResourceDriftInformation
1111
1112	// The content of the Metadata attribute declared for the resource. For more
1113	// information, see Metadata Attribute
1114	// (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-metadata.html)
1115	// in the AWS CloudFormation User Guide.
1116	Metadata *string
1117
1118	// Contains information about the module from which the resource was created, if
1119	// the resource was created from a module included in the stack template.
1120	ModuleInfo *ModuleInfo
1121
1122	// The name or unique identifier that corresponds to a physical instance ID of a
1123	// resource supported by AWS CloudFormation.
1124	PhysicalResourceId *string
1125
1126	// Success/failure message associated with the resource.
1127	ResourceStatusReason *string
1128
1129	// Unique identifier of the stack.
1130	StackId *string
1131
1132	// The name associated with the stack.
1133	StackName *string
1134}
1135
1136// Contains the drift information for a resource that has been checked for drift.
1137// This includes actual and expected property values for resources in which AWS
1138// CloudFormation has detected drift. Only resource properties explicitly defined
1139// in the stack template are checked for drift. For more information, see Detecting
1140// Unregulated Configuration Changes to Stacks and Resources
1141// (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-stack-drift.html).
1142// Resources that do not currently support drift detection cannot be checked. For a
1143// list of resources that support drift detection, see Resources that Support Drift
1144// Detection
1145// (http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-stack-drift-resource-list.html).
1146// Use DetectStackResourceDrift to detect drift on individual resources, or
1147// DetectStackDrift to detect drift on all resources in a given stack that support
1148// drift detection.
1149type StackResourceDrift struct {
1150
1151	// The logical name of the resource specified in the template.
1152	//
1153	// This member is required.
1154	LogicalResourceId *string
1155
1156	// The type of the resource.
1157	//
1158	// This member is required.
1159	ResourceType *string
1160
1161	// The ID of the stack.
1162	//
1163	// This member is required.
1164	StackId *string
1165
1166	// Status of the resource's actual configuration compared to its expected
1167	// configuration
1168	//
1169	// * DELETED: The resource differs from its expected template
1170	// configuration because the resource has been deleted.
1171	//
1172	// * MODIFIED: One or more
1173	// resource properties differ from their expected values (as defined in the stack
1174	// template and any values specified as template parameters).
1175	//
1176	// * IN_SYNC: The
1177	// resources's actual configuration matches its expected template configuration.
1178	//
1179	// *
1180	// NOT_CHECKED: AWS CloudFormation does not currently return this value.
1181	//
1182	// This member is required.
1183	StackResourceDriftStatus StackResourceDriftStatus
1184
1185	// Time at which AWS CloudFormation performed drift detection on the stack
1186	// resource.
1187	//
1188	// This member is required.
1189	Timestamp *time.Time
1190
1191	// A JSON structure containing the actual property values of the stack resource.
1192	// For resources whose StackResourceDriftStatus is DELETED, this structure will not
1193	// be present.
1194	ActualProperties *string
1195
1196	// A JSON structure containing the expected property values of the stack resource,
1197	// as defined in the stack template and any values specified as template
1198	// parameters. For resources whose StackResourceDriftStatus is DELETED, this
1199	// structure will not be present.
1200	ExpectedProperties *string
1201
1202	// Contains information about the module from which the resource was created, if
1203	// the resource was created from a module included in the stack template.
1204	ModuleInfo *ModuleInfo
1205
1206	// The name or unique identifier that corresponds to a physical instance ID of a
1207	// resource supported by AWS CloudFormation.
1208	PhysicalResourceId *string
1209
1210	// Context information that enables AWS CloudFormation to uniquely identify a
1211	// resource. AWS CloudFormation uses context key-value pairs in cases where a
1212	// resource's logical and physical IDs are not enough to uniquely identify that
1213	// resource. Each context key-value pair specifies a unique resource that contains
1214	// the targeted resource.
1215	PhysicalResourceIdContext []PhysicalResourceIdContextKeyValuePair
1216
1217	// A collection of the resource properties whose actual values differ from their
1218	// expected values. These will be present only for resources whose
1219	// StackResourceDriftStatus is MODIFIED.
1220	PropertyDifferences []PropertyDifference
1221}
1222
1223// Contains information about whether the resource's actual configuration differs,
1224// or has drifted, from its expected configuration.
1225type StackResourceDriftInformation struct {
1226
1227	// Status of the resource's actual configuration compared to its expected
1228	// configuration
1229	//
1230	// * DELETED: The resource differs from its expected configuration
1231	// in that it has been deleted.
1232	//
1233	// * MODIFIED: The resource differs from its expected
1234	// configuration.
1235	//
1236	// * NOT_CHECKED: AWS CloudFormation has not checked if the
1237	// resource differs from its expected configuration. Any resources that do not
1238	// currently support drift detection have a status of NOT_CHECKED. For more
1239	// information, see Resources that Support Drift Detection
1240	// (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-stack-drift-resource-list.html).
1241	//
1242	// *
1243	// IN_SYNC: The resources's actual configuration matches its expected
1244	// configuration.
1245	//
1246	// This member is required.
1247	StackResourceDriftStatus StackResourceDriftStatus
1248
1249	// When AWS CloudFormation last checked if the resource had drifted from its
1250	// expected configuration.
1251	LastCheckTimestamp *time.Time
1252}
1253
1254// Summarizes information about whether the resource's actual configuration
1255// differs, or has drifted, from its expected configuration.
1256type StackResourceDriftInformationSummary struct {
1257
1258	// Status of the resource's actual configuration compared to its expected
1259	// configuration
1260	//
1261	// * DELETED: The resource differs from its expected configuration
1262	// in that it has been deleted.
1263	//
1264	// * MODIFIED: The resource differs from its expected
1265	// configuration.
1266	//
1267	// * NOT_CHECKED: AWS CloudFormation has not checked if the
1268	// resource differs from its expected configuration. Any resources that do not
1269	// currently support drift detection have a status of NOT_CHECKED. For more
1270	// information, see Resources that Support Drift Detection
1271	// (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-stack-drift-resource-list.html).
1272	// If you performed an ContinueUpdateRollback operation on a stack, any resources
1273	// included in ResourcesToSkip will also have a status of NOT_CHECKED. For more
1274	// information on skipping resources during rollback operations, see Continue
1275	// Rolling Back an Update
1276	// (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-continueupdaterollback.html)
1277	// in the AWS CloudFormation User Guide.
1278	//
1279	// * IN_SYNC: The resources's actual
1280	// configuration matches its expected configuration.
1281	//
1282	// This member is required.
1283	StackResourceDriftStatus StackResourceDriftStatus
1284
1285	// When AWS CloudFormation last checked if the resource had drifted from its
1286	// expected configuration.
1287	LastCheckTimestamp *time.Time
1288}
1289
1290// Contains high-level information about the specified stack resource.
1291type StackResourceSummary struct {
1292
1293	// Time the status was updated.
1294	//
1295	// This member is required.
1296	LastUpdatedTimestamp *time.Time
1297
1298	// The logical name of the resource specified in the template.
1299	//
1300	// This member is required.
1301	LogicalResourceId *string
1302
1303	// Current status of the resource.
1304	//
1305	// This member is required.
1306	ResourceStatus ResourceStatus
1307
1308	// Type of resource. (For more information, go to  AWS Resource Types Reference
1309	// (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-template-resource-type-ref.html)
1310	// in the AWS CloudFormation User Guide.)
1311	//
1312	// This member is required.
1313	ResourceType *string
1314
1315	// Information about whether the resource's actual configuration differs, or has
1316	// drifted, from its expected configuration, as defined in the stack template and
1317	// any values specified as template parameters. For more information, see Detecting
1318	// Unregulated Configuration Changes to Stacks and Resources
1319	// (http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-stack-drift.html).
1320	DriftInformation *StackResourceDriftInformationSummary
1321
1322	// Contains information about the module from which the resource was created, if
1323	// the resource was created from a module included in the stack template.
1324	ModuleInfo *ModuleInfo
1325
1326	// The name or unique identifier that corresponds to a physical instance ID of the
1327	// resource.
1328	PhysicalResourceId *string
1329
1330	// Success/failure message associated with the resource.
1331	ResourceStatusReason *string
1332}
1333
1334// A structure that contains information about a stack set. A stack set enables you
1335// to provision stacks into AWS accounts and across Regions by using a single
1336// CloudFormation template. In the stack set, you specify the template to use, as
1337// well as any parameters and capabilities that the template requires.
1338type StackSet struct {
1339
1340	// The Amazon Resource Number (ARN) of the IAM role used to create or update the
1341	// stack set. Use customized administrator roles to control which users or groups
1342	// can manage specific stack sets within the same administrator account. For more
1343	// information, see Prerequisites: Granting Permissions for Stack Set Operations
1344	// (http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/stacksets-prereqs.html)
1345	// in the AWS CloudFormation User Guide.
1346	AdministrationRoleARN *string
1347
1348	// [Service-managed permissions] Describes whether StackSets automatically deploys
1349	// to AWS Organizations accounts that are added to a target organization or
1350	// organizational unit (OU).
1351	AutoDeployment *AutoDeployment
1352
1353	// The capabilities that are allowed in the stack set. Some stack set templates
1354	// might include resources that can affect permissions in your AWS account—for
1355	// example, by creating new AWS Identity and Access Management (IAM) users. For
1356	// more information, see Acknowledging IAM Resources in AWS CloudFormation
1357	// Templates.
1358	// (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-iam-template.html#capabilities)
1359	Capabilities []Capability
1360
1361	// A description of the stack set that you specify when the stack set is created or
1362	// updated.
1363	Description *string
1364
1365	// The name of the IAM execution role used to create or update the stack set. Use
1366	// customized execution roles to control which stack resources users and groups can
1367	// include in their stack sets.
1368	ExecutionRoleName *string
1369
1370	// [Service-managed permissions] The organization root ID or organizational unit
1371	// (OU) IDs that you specified for DeploymentTargets
1372	// (https://docs.aws.amazon.com/AWSCloudFormation/latest/APIReference/API_DeploymentTargets.html).
1373	OrganizationalUnitIds []string
1374
1375	// A list of input parameters for a stack set.
1376	Parameters []Parameter
1377
1378	// Describes how the IAM roles required for stack set operations are created.
1379	//
1380	// *
1381	// With self-managed permissions, you must create the administrator and execution
1382	// roles required to deploy to target accounts. For more information, see Grant
1383	// Self-Managed Stack Set Permissions
1384	// (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/stacksets-prereqs-self-managed.html).
1385	//
1386	// *
1387	// With service-managed permissions, StackSets automatically creates the IAM roles
1388	// required to deploy to accounts managed by AWS Organizations. For more
1389	// information, see Grant Service-Managed Stack Set Permissions
1390	// (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/stacksets-prereqs-service-managed.html).
1391	PermissionModel PermissionModels
1392
1393	// The Amazon Resource Number (ARN) of the stack set.
1394	StackSetARN *string
1395
1396	// Detailed information about the drift status of the stack set. For stack sets,
1397	// contains information about the last completed drift operation performed on the
1398	// stack set. Information about drift operations currently in progress is not
1399	// included.
1400	StackSetDriftDetectionDetails *StackSetDriftDetectionDetails
1401
1402	// The ID of the stack set.
1403	StackSetId *string
1404
1405	// The name that's associated with the stack set.
1406	StackSetName *string
1407
1408	// The status of the stack set.
1409	Status StackSetStatus
1410
1411	// A list of tags that specify information about the stack set. A maximum number of
1412	// 50 tags can be specified.
1413	Tags []Tag
1414
1415	// The structure that contains the body of the template that was used to create or
1416	// update the stack set.
1417	TemplateBody *string
1418}
1419
1420// Detailed information about the drift status of the stack set. For stack sets,
1421// contains information about the last completed drift operation performed on the
1422// stack set. Information about drift operations in-progress is not included. For
1423// stack set operations, includes information about drift operations currently
1424// being performed on the stack set. For more information, see Detecting Unmanaged
1425// Changes in Stack Sets
1426// (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/stacksets-drift.html)
1427// in the AWS CloudFormation User Guide.
1428type StackSetDriftDetectionDetails struct {
1429
1430	// The status of the stack set drift detection operation.
1431	//
1432	// * COMPLETED: The drift
1433	// detection operation completed without failing on any stack instances.
1434	//
1435	// * FAILED:
1436	// The drift detection operation exceeded the specified failure tolerance.
1437	//
1438	// *
1439	// PARTIAL_SUCCESS: The drift detection operation completed without exceeding the
1440	// failure tolerance for the operation.
1441	//
1442	// * IN_PROGRESS: The drift detection
1443	// operation is currently being performed.
1444	//
1445	// * STOPPED: The user has cancelled the
1446	// drift detection operation.
1447	DriftDetectionStatus StackSetDriftDetectionStatus
1448
1449	// Status of the stack set's actual configuration compared to its expected template
1450	// and parameter configuration. A stack set is considered to have drifted if one or
1451	// more of its stack instances have drifted from their expected template and
1452	// parameter configuration.
1453	//
1454	// * DRIFTED: One or more of the stack instances
1455	// belonging to the stack set stack differs from the expected template and
1456	// parameter configuration. A stack instance is considered to have drifted if one
1457	// or more of the resources in the associated stack have drifted.
1458	//
1459	// * NOT_CHECKED:
1460	// AWS CloudFormation has not checked the stack set for drift.
1461	//
1462	// * IN_SYNC: All of
1463	// the stack instances belonging to the stack set stack match from the expected
1464	// template and parameter configuration.
1465	DriftStatus StackSetDriftStatus
1466
1467	// The number of stack instances that have drifted from the expected template and
1468	// parameter configuration of the stack set. A stack instance is considered to have
1469	// drifted if one or more of the resources in the associated stack do not match
1470	// their expected configuration.
1471	DriftedStackInstancesCount int32
1472
1473	// The number of stack instances for which the drift detection operation failed.
1474	FailedStackInstancesCount int32
1475
1476	// The number of stack instances that are currently being checked for drift.
1477	InProgressStackInstancesCount int32
1478
1479	// The number of stack instances which match the expected template and parameter
1480	// configuration of the stack set.
1481	InSyncStackInstancesCount int32
1482
1483	// Most recent time when CloudFormation performed a drift detection operation on
1484	// the stack set. This value will be NULL for any stack set on which drift
1485	// detection has not yet been performed.
1486	LastDriftCheckTimestamp *time.Time
1487
1488	// The total number of stack instances belonging to this stack set. The total
1489	// number of stack instances is equal to the total of:
1490	//
1491	// * Stack instances that
1492	// match the stack set configuration.
1493	//
1494	// * Stack instances that have drifted from the
1495	// stack set configuration.
1496	//
1497	// * Stack instances where the drift detection operation
1498	// has failed.
1499	//
1500	// * Stack instances currently being checked for drift.
1501	TotalStackInstancesCount int32
1502}
1503
1504// The structure that contains information about a stack set operation.
1505type StackSetOperation struct {
1506
1507	// The type of stack set operation: CREATE, UPDATE, or DELETE. Create and delete
1508	// operations affect only the specified stack set instances that are associated
1509	// with the specified stack set. Update operations affect both the stack set
1510	// itself, as well as all associated stack set instances.
1511	Action StackSetOperationAction
1512
1513	// The Amazon Resource Number (ARN) of the IAM role used to perform this stack set
1514	// operation. Use customized administrator roles to control which users or groups
1515	// can manage specific stack sets within the same administrator account. For more
1516	// information, see Define Permissions for Multiple Administrators
1517	// (http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/stacksets-prereqs.html)
1518	// in the AWS CloudFormation User Guide.
1519	AdministrationRoleARN *string
1520
1521	// The time at which the operation was initiated. Note that the creation times for
1522	// the stack set operation might differ from the creation time of the individual
1523	// stacks themselves. This is because AWS CloudFormation needs to perform
1524	// preparatory work for the operation, such as dispatching the work to the
1525	// requested Regions, before actually creating the first stacks.
1526	CreationTimestamp *time.Time
1527
1528	// [Service-managed permissions] The AWS Organizations accounts affected by the
1529	// stack operation.
1530	DeploymentTargets *DeploymentTargets
1531
1532	// The time at which the stack set operation ended, across all accounts and Regions
1533	// specified. Note that this doesn't necessarily mean that the stack set operation
1534	// was successful, or even attempted, in each account or Region.
1535	EndTimestamp *time.Time
1536
1537	// The name of the IAM execution role used to create or update the stack set. Use
1538	// customized execution roles to control which stack resources users and groups can
1539	// include in their stack sets.
1540	ExecutionRoleName *string
1541
1542	// The unique ID of a stack set operation.
1543	OperationId *string
1544
1545	// The preferences for how AWS CloudFormation performs this stack set operation.
1546	OperationPreferences *StackSetOperationPreferences
1547
1548	// For stack set operations of action type DELETE, specifies whether to remove the
1549	// stack instances from the specified stack set, but doesn't delete the stacks. You
1550	// can't reassociate a retained stack, or add an existing, saved stack to a new
1551	// stack set.
1552	RetainStacks *bool
1553
1554	// Detailed information about the drift status of the stack set. This includes
1555	// information about drift operations currently being performed on the stack set.
1556	// this information will only be present for stack set operations whose Action type
1557	// is DETECT_DRIFT. For more information, see Detecting Unmanaged Changes in Stack
1558	// Sets
1559	// (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/stacksets-drift.html)
1560	// in the AWS CloudFormation User Guide.
1561	StackSetDriftDetectionDetails *StackSetDriftDetectionDetails
1562
1563	// The ID of the stack set.
1564	StackSetId *string
1565
1566	// The status of the operation.
1567	//
1568	// * FAILED: The operation exceeded the specified
1569	// failure tolerance. The failure tolerance value that you've set for an operation
1570	// is applied for each Region during stack create and update operations. If the
1571	// number of failed stacks within a Region exceeds the failure tolerance, the
1572	// status of the operation in the Region is set to FAILED. This in turn sets the
1573	// status of the operation as a whole to FAILED, and AWS CloudFormation cancels the
1574	// operation in any remaining Regions.
1575	//
1576	// * QUEUED: [Service-managed permissions] For
1577	// automatic deployments that require a sequence of operations, the operation is
1578	// queued to be performed. For more information, see the stack set operation status
1579	// codes
1580	// (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/stacksets-concepts.html#stackset-status-codes)
1581	// in the AWS CloudFormation User Guide.
1582	//
1583	// * RUNNING: The operation is currently
1584	// being performed.
1585	//
1586	// * STOPPED: The user has cancelled the operation.
1587	//
1588	// * STOPPING:
1589	// The operation is in the process of stopping, at user request.
1590	//
1591	// * SUCCEEDED: The
1592	// operation completed creating or updating all the specified stacks without
1593	// exceeding the failure tolerance for the operation.
1594	Status StackSetOperationStatus
1595}
1596
1597// The user-specified preferences for how AWS CloudFormation performs a stack set
1598// operation. For more information on maximum concurrent accounts and failure
1599// tolerance, see Stack set operation options
1600// (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/stacksets-concepts.html#stackset-ops-options).
1601type StackSetOperationPreferences struct {
1602
1603	// The number of accounts, per Region, for which this operation can fail before AWS
1604	// CloudFormation stops the operation in that Region. If the operation is stopped
1605	// in a Region, AWS CloudFormation doesn't attempt the operation in any subsequent
1606	// Regions. Conditional: You must specify either FailureToleranceCount or
1607	// FailureTolerancePercentage (but not both).
1608	FailureToleranceCount *int32
1609
1610	// The percentage of accounts, per Region, for which this stack operation can fail
1611	// before AWS CloudFormation stops the operation in that Region. If the operation
1612	// is stopped in a Region, AWS CloudFormation doesn't attempt the operation in any
1613	// subsequent Regions. When calculating the number of accounts based on the
1614	// specified percentage, AWS CloudFormation rounds down to the next whole number.
1615	// Conditional: You must specify either FailureToleranceCount or
1616	// FailureTolerancePercentage, but not both.
1617	FailureTolerancePercentage *int32
1618
1619	// The maximum number of accounts in which to perform this operation at one time.
1620	// This is dependent on the value of FailureToleranceCount. MaxConcurrentCount is
1621	// at most one more than the FailureToleranceCount. Note that this setting lets you
1622	// specify the maximum for operations. For large deployments, under certain
1623	// circumstances the actual number of accounts acted upon concurrently may be lower
1624	// due to service throttling. Conditional: You must specify either
1625	// MaxConcurrentCount or MaxConcurrentPercentage, but not both.
1626	MaxConcurrentCount *int32
1627
1628	// The maximum percentage of accounts in which to perform this operation at one
1629	// time. When calculating the number of accounts based on the specified percentage,
1630	// AWS CloudFormation rounds down to the next whole number. This is true except in
1631	// cases where rounding down would result is zero. In this case, CloudFormation
1632	// sets the number as one instead. Note that this setting lets you specify the
1633	// maximum for operations. For large deployments, under certain circumstances the
1634	// actual number of accounts acted upon concurrently may be lower due to service
1635	// throttling. Conditional: You must specify either MaxConcurrentCount or
1636	// MaxConcurrentPercentage, but not both.
1637	MaxConcurrentPercentage *int32
1638
1639	// The order of the Regions in where you want to perform the stack operation.
1640	RegionOrder []string
1641}
1642
1643// The structure that contains information about a specified operation's results
1644// for a given account in a given Region.
1645type StackSetOperationResultSummary struct {
1646
1647	// [Self-managed permissions] The name of the AWS account for this operation
1648	// result.
1649	Account *string
1650
1651	// The results of the account gate function AWS CloudFormation invokes, if present,
1652	// before proceeding with stack set operations in an account
1653	AccountGateResult *AccountGateResult
1654
1655	// [Service-managed permissions] The organization root ID or organizational unit
1656	// (OU) IDs that you specified for DeploymentTargets
1657	// (https://docs.aws.amazon.com/AWSCloudFormation/latest/APIReference/API_DeploymentTargets.html).
1658	OrganizationalUnitId *string
1659
1660	// The name of the AWS Region for this operation result.
1661	Region *string
1662
1663	// The result status of the stack set operation for the given account in the given
1664	// Region.
1665	//
1666	// * CANCELLED: The operation in the specified account and Region has been
1667	// cancelled. This is either because a user has stopped the stack set operation, or
1668	// because the failure tolerance of the stack set operation has been exceeded.
1669	//
1670	// *
1671	// FAILED: The operation in the specified account and Region failed. If the stack
1672	// set operation fails in enough accounts within a Region, the failure tolerance
1673	// for the stack set operation as a whole might be exceeded.
1674	//
1675	// * RUNNING: The
1676	// operation in the specified account and Region is currently in progress.
1677	//
1678	// *
1679	// PENDING: The operation in the specified account and Region has yet to start.
1680	//
1681	// *
1682	// SUCCEEDED: The operation in the specified account and Region completed
1683	// successfully.
1684	Status StackSetOperationResultStatus
1685
1686	// The reason for the assigned result status.
1687	StatusReason *string
1688}
1689
1690// The structures that contain summary information about the specified operation.
1691type StackSetOperationSummary struct {
1692
1693	// The type of operation: CREATE, UPDATE, or DELETE. Create and delete operations
1694	// affect only the specified stack instances that are associated with the specified
1695	// stack set. Update operations affect both the stack set itself as well as all
1696	// associated stack set instances.
1697	Action StackSetOperationAction
1698
1699	// The time at which the operation was initiated. Note that the creation times for
1700	// the stack set operation might differ from the creation time of the individual
1701	// stacks themselves. This is because AWS CloudFormation needs to perform
1702	// preparatory work for the operation, such as dispatching the work to the
1703	// requested Regions, before actually creating the first stacks.
1704	CreationTimestamp *time.Time
1705
1706	// The time at which the stack set operation ended, across all accounts and Regions
1707	// specified. Note that this doesn't necessarily mean that the stack set operation
1708	// was successful, or even attempted, in each account or Region.
1709	EndTimestamp *time.Time
1710
1711	// The unique ID of the stack set operation.
1712	OperationId *string
1713
1714	// The overall status of the operation.
1715	//
1716	// * FAILED: The operation exceeded the
1717	// specified failure tolerance. The failure tolerance value that you've set for an
1718	// operation is applied for each Region during stack create and update operations.
1719	// If the number of failed stacks within a Region exceeds the failure tolerance,
1720	// the status of the operation in the Region is set to FAILED. This in turn sets
1721	// the status of the operation as a whole to FAILED, and AWS CloudFormation cancels
1722	// the operation in any remaining Regions.
1723	//
1724	// * QUEUED: [Service-managed permissions]
1725	// For automatic deployments that require a sequence of operations, the operation
1726	// is queued to be performed. For more information, see the stack set operation
1727	// status codes
1728	// (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/stacksets-concepts.html#stackset-status-codes)
1729	// in the AWS CloudFormation User Guide.
1730	//
1731	// * RUNNING: The operation is currently
1732	// being performed.
1733	//
1734	// * STOPPED: The user has cancelled the operation.
1735	//
1736	// * STOPPING:
1737	// The operation is in the process of stopping, at user request.
1738	//
1739	// * SUCCEEDED: The
1740	// operation completed creating or updating all the specified stacks without
1741	// exceeding the failure tolerance for the operation.
1742	Status StackSetOperationStatus
1743}
1744
1745// The structures that contain summary information about the specified stack set.
1746type StackSetSummary struct {
1747
1748	// [Service-managed permissions] Describes whether StackSets automatically deploys
1749	// to AWS Organizations accounts that are added to a target organizational unit
1750	// (OU).
1751	AutoDeployment *AutoDeployment
1752
1753	// A description of the stack set that you specify when the stack set is created or
1754	// updated.
1755	Description *string
1756
1757	// Status of the stack set's actual configuration compared to its expected template
1758	// and parameter configuration. A stack set is considered to have drifted if one or
1759	// more of its stack instances have drifted from their expected template and
1760	// parameter configuration.
1761	//
1762	// * DRIFTED: One or more of the stack instances
1763	// belonging to the stack set stack differs from the expected template and
1764	// parameter configuration. A stack instance is considered to have drifted if one
1765	// or more of the resources in the associated stack have drifted.
1766	//
1767	// * NOT_CHECKED:
1768	// AWS CloudFormation has not checked the stack set for drift.
1769	//
1770	// * IN_SYNC: All of
1771	// the stack instances belonging to the stack set stack match from the expected
1772	// template and parameter configuration.
1773	//
1774	// * UNKNOWN: This value is reserved for
1775	// future use.
1776	DriftStatus StackDriftStatus
1777
1778	// Most recent time when CloudFormation performed a drift detection operation on
1779	// the stack set. This value will be NULL for any stack set on which drift
1780	// detection has not yet been performed.
1781	LastDriftCheckTimestamp *time.Time
1782
1783	// Describes how the IAM roles required for stack set operations are created.
1784	//
1785	// *
1786	// With self-managed permissions, you must create the administrator and execution
1787	// roles required to deploy to target accounts. For more information, see Grant
1788	// Self-Managed Stack Set Permissions
1789	// (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/stacksets-prereqs-self-managed.html).
1790	//
1791	// *
1792	// With service-managed permissions, StackSets automatically creates the IAM roles
1793	// required to deploy to accounts managed by AWS Organizations. For more
1794	// information, see Grant Service-Managed Stack Set Permissions
1795	// (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/stacksets-prereqs-service-managed.html).
1796	PermissionModel PermissionModels
1797
1798	// The ID of the stack set.
1799	StackSetId *string
1800
1801	// The name of the stack set.
1802	StackSetName *string
1803
1804	// The status of the stack set.
1805	Status StackSetStatus
1806}
1807
1808// The StackSummary Data Type
1809type StackSummary struct {
1810
1811	// The time the stack was created.
1812	//
1813	// This member is required.
1814	CreationTime *time.Time
1815
1816	// The name associated with the stack.
1817	//
1818	// This member is required.
1819	StackName *string
1820
1821	// The current status of the stack.
1822	//
1823	// This member is required.
1824	StackStatus StackStatus
1825
1826	// The time the stack was deleted.
1827	DeletionTime *time.Time
1828
1829	// Summarizes information on whether a stack's actual configuration differs, or has
1830	// drifted, from it's expected configuration, as defined in the stack template and
1831	// any values specified as template parameters. For more information, see Detecting
1832	// Unregulated Configuration Changes to Stacks and Resources
1833	// (http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-stack-drift.html).
1834	DriftInformation *StackDriftInformationSummary
1835
1836	// The time the stack was last updated. This field will only be returned if the
1837	// stack has been updated at least once.
1838	LastUpdatedTime *time.Time
1839
1840	// For nested stacks--stacks created as resources for another stack--the stack ID
1841	// of the direct parent of this stack. For the first level of nested stacks, the
1842	// root stack is also the parent stack. For more information, see Working with
1843	// Nested Stacks
1844	// (http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-nested-stacks.html)
1845	// in the AWS CloudFormation User Guide.
1846	ParentId *string
1847
1848	// For nested stacks--stacks created as resources for another stack--the stack ID
1849	// of the top-level stack to which the nested stack ultimately belongs. For more
1850	// information, see Working with Nested Stacks
1851	// (http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-nested-stacks.html)
1852	// in the AWS CloudFormation User Guide.
1853	RootId *string
1854
1855	// Unique stack identifier.
1856	StackId *string
1857
1858	// Success/Failure message associated with the stack status.
1859	StackStatusReason *string
1860
1861	// The template description of the template used to create the stack.
1862	TemplateDescription *string
1863}
1864
1865// The Tag type enables you to specify a key-value pair that can be used to store
1866// information about an AWS CloudFormation stack.
1867type Tag struct {
1868
1869	// Required. A string used to identify this tag. You can specify a maximum of 128
1870	// characters for a tag key. Tags owned by Amazon Web Services (AWS) have the
1871	// reserved prefix: aws:.
1872	//
1873	// This member is required.
1874	Key *string
1875
1876	// Required. A string containing the value for this tag. You can specify a maximum
1877	// of 256 characters for a tag value.
1878	//
1879	// This member is required.
1880	Value *string
1881}
1882
1883// The TemplateParameter data type.
1884type TemplateParameter struct {
1885
1886	// The default value associated with the parameter.
1887	DefaultValue *string
1888
1889	// User defined description associated with the parameter.
1890	Description *string
1891
1892	// Flag indicating whether the parameter should be displayed as plain text in logs
1893	// and UIs.
1894	NoEcho *bool
1895
1896	// The name associated with the parameter.
1897	ParameterKey *string
1898}
1899
1900// Contains summary information about the specified CloudFormation type.
1901type TypeSummary struct {
1902
1903	// The ID of the default version of the type. The default version is used when the
1904	// type version is not specified. To set the default version of a type, use
1905	// SetTypeDefaultVersion.
1906	DefaultVersionId *string
1907
1908	// The description of the type.
1909	Description *string
1910
1911	// When the current default version of the type was registered.
1912	LastUpdated *time.Time
1913
1914	// The kind of type.
1915	Type RegistryType
1916
1917	// The Amazon Resource Name (ARN) of the type.
1918	TypeArn *string
1919
1920	// The name of the type.
1921	TypeName *string
1922}
1923
1924// Contains summary information about a specific version of a CloudFormation type.
1925type TypeVersionSummary struct {
1926
1927	// The Amazon Resource Name (ARN) of the type version.
1928	Arn *string
1929
1930	// The description of the type version.
1931	Description *string
1932
1933	// Whether the specified type version is set as the default version.
1934	IsDefaultVersion *bool
1935
1936	// When the version was registered.
1937	TimeCreated *time.Time
1938
1939	// The kind of type.
1940	Type RegistryType
1941
1942	// The name of the type.
1943	TypeName *string
1944
1945	// The ID of a specific version of the type. The version ID is the value at the end
1946	// of the Amazon Resource Name (ARN) assigned to the type version when it is
1947	// registered.
1948	VersionId *string
1949}
1950