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