/
types.go
2735 lines (2188 loc) · 114 KB
/
types.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
// Code generated by smithy-go-codegen DO NOT EDIT.
package types
import (
smithydocument "github.com/aws/smithy-go/document"
"time"
)
// Structure that contains the results of the account gate function which
// CloudFormation invokes, if present, before proceeding with a stack set operation
// in an account and Region. For each account and Region, CloudFormation lets you
// specify a Lambda function that encapsulates any requirements that must be met
// before CloudFormation can proceed with a stack set operation in that account and
// Region. CloudFormation invokes the function each time a stack set operation is
// requested for that account and Region; if the function returns FAILED ,
// CloudFormation cancels the operation in that account and Region, and sets the
// stack set operation result status for that account and Region to FAILED . For
// more information, see Configuring a target account gate (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/stacksets-account-gating.html)
// .
type AccountGateResult struct {
// The status of the account gate function.
// - SUCCEEDED : The account gate function has determined that the account and
// Region passes any requirements for a stack set operation to occur.
// CloudFormation proceeds with the stack operation in that account and Region.
// - FAILED : The account gate function has determined that the account and
// Region doesn't meet the requirements for a stack set operation to occur.
// CloudFormation cancels the stack set operation in that account and Region, and
// sets the stack set operation result status for that account and Region to
// FAILED .
// - SKIPPED : CloudFormation has skipped calling the account gate function for
// this account and Region, for one of the following reasons:
// - An account gate function hasn't been specified for the account and Region.
// CloudFormation proceeds with the stack set operation in this account and Region.
//
// - The AWSCloudFormationStackSetExecutionRole of the stack set administration
// account lacks permissions to invoke the function. CloudFormation proceeds with
// the stack set operation in this account and Region.
// - Either no action is necessary, or no action is possible, on the stack.
// CloudFormation skips the stack set operation in this account and Region.
Status AccountGateStatus
// The reason for the account gate status assigned to this account and Region for
// the stack set operation.
StatusReason *string
noSmithyDocumentSerde
}
// The AccountLimit data type. CloudFormation has the following limits per
// account:
// - Number of concurrent resources
// - Number of stacks
// - Number of stack outputs
//
// For more information about these account limits, and other CloudFormation
// limits, see CloudFormation quotas (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/cloudformation-limits.html)
// in the CloudFormation User Guide.
type AccountLimit struct {
// The name of the account limit. Values: ConcurrentResourcesLimit | StackLimit |
// StackOutputsLimit
Name *string
// The value that's associated with the account limit name.
Value *int32
noSmithyDocumentSerde
}
// [Service-managed permissions] Describes whether StackSets automatically deploys
// to Organizations accounts that are added to a target organization or
// organizational unit (OU).
type AutoDeployment struct {
// If set to true , StackSets automatically deploys additional stack instances to
// Organizations accounts that are added to a target organization or organizational
// unit (OU) in the specified Regions. If an account is removed from a target
// organization or OU, StackSets deletes stack instances from the account in the
// specified Regions.
Enabled *bool
// If set to true , stack resources are retained when an account is removed from a
// target organization or OU. If set to false , stack resources are deleted.
// Specify only if Enabled is set to True .
RetainStacksOnAccountRemoval *bool
noSmithyDocumentSerde
}
// Detailed information concerning an error generated during the setting of
// configuration data for a CloudFormation extension.
type BatchDescribeTypeConfigurationsError struct {
// The error code.
ErrorCode *string
// The error message.
ErrorMessage *string
// Identifying information for the configuration of a CloudFormation extension.
TypeConfigurationIdentifier *TypeConfigurationIdentifier
noSmithyDocumentSerde
}
// The Change structure describes the changes CloudFormation will perform if you
// execute the change set.
type Change struct {
// Is either null , if no hooks invoke for the resource, or contains the number of
// hooks that will invoke for the resource.
HookInvocationCount *int32
// A ResourceChange structure that describes the resource and action that
// CloudFormation will perform.
ResourceChange *ResourceChange
// The type of entity that CloudFormation changes.
// - Resource This change is for a resource.
Type ChangeType
noSmithyDocumentSerde
}
// Specifies the resource, the hook, and the hook version to be invoked.
type ChangeSetHook struct {
// Specify the hook failure mode for non-compliant resources in the followings
// ways.
// - FAIL Stops provisioning resources.
// - WARN Allows provisioning to continue with a warning message.
FailureMode HookFailureMode
// Specifies the points in provisioning logic where a hook is invoked.
InvocationPoint HookInvocationPoint
// Specifies details about the target that the hook will run against.
TargetDetails *ChangeSetHookTargetDetails
// The version ID of the type configuration.
TypeConfigurationVersionId *string
// The unique name for your hook. Specifies a three-part namespace for your hook,
// with a recommended pattern of Organization::Service::Hook . The following
// organization namespaces are reserved and can't be used in your hook type names:
// - Alexa
// - AMZN
// - Amazon
// - ASK
// - AWS
// - Custom
// - Dev
TypeName *string
// The version ID of the type specified.
TypeVersionId *string
noSmithyDocumentSerde
}
// Specifies RESOURCE type target details for activated hooks.
type ChangeSetHookResourceTargetDetails struct {
// The resource's logical ID, which is defined in the stack's template.
LogicalResourceId *string
// Specifies the action of the resource.
ResourceAction ChangeAction
// The type of CloudFormation resource, such as AWS::S3::Bucket .
ResourceType *string
noSmithyDocumentSerde
}
// Specifies target details for an activated hook.
type ChangeSetHookTargetDetails struct {
// Required if TargetType is RESOURCE .
ResourceTargetDetails *ChangeSetHookResourceTargetDetails
// The name of the type.
TargetType HookTargetType
noSmithyDocumentSerde
}
// The ChangeSetSummary structure describes a change set, its status, and the
// stack with which it's associated.
type ChangeSetSummary struct {
// The ID of the change set.
ChangeSetId *string
// The name of the change set.
ChangeSetName *string
// The start time when the change set was created, in UTC.
CreationTime *time.Time
// Descriptive information about the change set.
Description *string
// If the change set execution status is AVAILABLE , you can execute the change
// set. If you can't execute the change set, the status indicates why. For example,
// a change set might be in an UNAVAILABLE state because CloudFormation is still
// creating it or in an OBSOLETE state because the stack was already updated.
ExecutionStatus ExecutionStatus
// Indicates if the change set imports resources that already exist.
ImportExistingResources *bool
// Specifies the current setting of IncludeNestedStacks for the change set.
IncludeNestedStacks *bool
// The parent change set ID.
ParentChangeSetId *string
// The root change set ID.
RootChangeSetId *string
// The ID of the stack with which the change set is associated.
StackId *string
// The name of the stack with which the change set is associated.
StackName *string
// The state of the change set, such as CREATE_IN_PROGRESS , CREATE_COMPLETE , or
// FAILED .
Status ChangeSetStatus
// A description of the change set's status. For example, if your change set is in
// the FAILED state, CloudFormation shows the error message.
StatusReason *string
noSmithyDocumentSerde
}
// [Service-managed permissions] The Organizations accounts to which StackSets
// deploys. StackSets doesn't deploy stack instances to the organization management
// account, even if the organization management account is in your organization or
// in an OU in your organization. For update operations, you can specify either
// Accounts or OrganizationalUnitIds . For create and delete operations, specify
// OrganizationalUnitIds .
type DeploymentTargets struct {
// Limit deployment targets to individual accounts or include additional accounts
// with provided OUs. The following is a list of possible values for the
// AccountFilterType operation.
// - INTERSECTION : StackSets deploys to the accounts specified in Accounts
// parameter.
// - DIFFERENCE : StackSets excludes the accounts specified in Accounts
// parameter. This enables user to avoid certain accounts within an OU such as
// suspended accounts.
// - UNION : StackSets includes additional accounts deployment targets. This is
// the default value if AccountFilterType is not provided. This enables user to
// update an entire OU and individual accounts from a different OU in one request,
// which used to be two separate requests.
// - NONE : Deploys to all the accounts in specified organizational units (OU).
AccountFilterType AccountFilterType
// The names of one or more Amazon Web Services accounts for which you want to
// deploy stack set updates.
Accounts []string
// Returns the value of the AccountsUrl property.
AccountsUrl *string
// The organization root ID or organizational unit (OU) IDs to which StackSets
// deploys.
OrganizationalUnitIds []string
noSmithyDocumentSerde
}
// The Export structure describes the exported output values for a stack.
type Export struct {
// The stack that contains the exported output name and value.
ExportingStackId *string
// The name of exported output value. Use this name and the Fn::ImportValue
// function to import the associated value into other stacks. The name is defined
// in the Export field in the associated stack's Outputs section.
Name *string
// The value of the exported output, such as a resource physical ID. This value is
// defined in the Export field in the associated stack's Outputs section.
Value *string
noSmithyDocumentSerde
}
// Contains logging configuration information for an extension.
type LoggingConfig struct {
// The Amazon CloudWatch Logs group to which CloudFormation sends error logging
// information when invoking the extension's handlers.
//
// This member is required.
LogGroupName *string
// The Amazon Resource Name (ARN) of the role that CloudFormation should assume
// when sending log entries to CloudWatch Logs.
//
// This member is required.
LogRoleArn *string
noSmithyDocumentSerde
}
// Describes whether StackSets performs non-conflicting operations concurrently
// and queues conflicting operations.
type ManagedExecution struct {
// When true , StackSets performs non-conflicting operations concurrently and
// queues conflicting operations. After conflicting operations finish, StackSets
// starts queued operations in request order. If there are already running or
// queued operations, StackSets queues all incoming operations even if they are
// non-conflicting. You can't modify your stack set's execution configuration while
// there are running or queued operations for that stack set. When false
// (default), StackSets performs one operation at a time in request order.
Active *bool
noSmithyDocumentSerde
}
// Contains information about the module from which the resource was created, if
// the resource was created from a module included in the stack template. For more
// information about modules, see Using modules to encapsulate and reuse resource
// configurations (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/modules.html)
// in the CloudFormation User Guide.
type ModuleInfo struct {
// A concatenated list of the logical IDs of the module or modules containing the
// resource. Modules are listed starting with the inner-most nested module, and
// separated by / . In the following example, the resource was created from a
// module, moduleA , that's nested inside a parent module, moduleB .
// moduleA/moduleB For more information, see Referencing resources in a module (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/modules.html#module-ref-resources)
// in the CloudFormation User Guide.
LogicalIdHierarchy *string
// A concatenated list of the module type or types containing the resource. Module
// types are listed starting with the inner-most nested module, and separated by /
// . In the following example, the resource was created from a module of type
// AWS::First::Example::MODULE , that's nested inside a parent module of type
// AWS::Second::Example::MODULE .
// AWS::First::Example::MODULE/AWS::Second::Example::MODULE
TypeHierarchy *string
noSmithyDocumentSerde
}
// The status that operation results are filtered by.
type OperationResultFilter struct {
// The type of filter to apply.
Name OperationResultFilterName
// The value to filter by.
Values *string
noSmithyDocumentSerde
}
// The Output data type.
type Output struct {
// User defined description associated with the output.
Description *string
// The name of the export associated with the output.
ExportName *string
// The key associated with the output.
OutputKey *string
// The value associated with the output.
OutputValue *string
noSmithyDocumentSerde
}
// The Parameter data type.
type Parameter struct {
// The key associated with the parameter. If you don't specify a key and value for
// a particular parameter, CloudFormation uses the default value that's specified
// in your template.
ParameterKey *string
// The input value associated with the parameter.
ParameterValue *string
// Read-only. The value that corresponds to a SSM parameter key. This field is
// returned only for SSM (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/parameters-section-structure.html#aws-ssm-parameter-types)
// parameter types in the template.
ResolvedValue *string
// During a stack update, use the existing parameter value that the stack is using
// for a given parameter key. If you specify true , do not specify a parameter
// value.
UsePreviousValue *bool
noSmithyDocumentSerde
}
// A set of criteria that CloudFormation uses to validate parameter values.
// Although other constraints might be defined in the stack template,
// CloudFormation returns only the AllowedValues property.
type ParameterConstraints struct {
// A list of values that are permitted for a parameter.
AllowedValues []string
noSmithyDocumentSerde
}
// The ParameterDeclaration data type.
type ParameterDeclaration struct {
// The default value of the parameter.
DefaultValue *string
// The description that's associate with the parameter.
Description *string
// Flag that indicates whether the parameter value is shown as plain text in logs
// and in the Amazon Web Services Management Console.
NoEcho *bool
// The criteria that CloudFormation uses to validate parameter values.
ParameterConstraints *ParameterConstraints
// The name that's associated with the parameter.
ParameterKey *string
// The type of parameter.
ParameterType *string
noSmithyDocumentSerde
}
// Context information that enables CloudFormation to uniquely identify a
// resource. CloudFormation uses context key-value pairs in cases where a
// resource's logical and physical IDs aren't enough to uniquely identify that
// resource. Each context key-value pair specifies a resource that contains the
// targeted resource.
type PhysicalResourceIdContextKeyValuePair struct {
// The resource context key.
//
// This member is required.
Key *string
// The resource context value.
//
// This member is required.
Value *string
noSmithyDocumentSerde
}
// Information about a resource property whose actual value differs from its
// expected value, as defined in the stack template and any values specified as
// template parameters. These will be present only for resources whose
// StackResourceDriftStatus is MODIFIED . For more information, see Detecting
// Unregulated Configuration Changes to Stacks and Resources (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-stack-drift.html)
// .
type PropertyDifference struct {
// The actual property value of the resource property.
//
// This member is required.
ActualValue *string
// The type of property difference.
// - ADD : A value has been added to a resource property that's an array or list
// data type.
// - REMOVE : The property has been removed from the current resource
// configuration.
// - NOT_EQUAL : The current property value differs from its expected value (as
// defined in the stack template and any values specified as template parameters).
//
// This member is required.
DifferenceType DifferenceType
// The expected property value of the resource property, as defined in the stack
// template and any values specified as template parameters.
//
// This member is required.
ExpectedValue *string
// The fully-qualified path to the resource property.
//
// This member is required.
PropertyPath *string
noSmithyDocumentSerde
}
// For extensions that are modules, a public third-party extension that must be
// activated in your account in order for the module itself to be activated. For
// more information, see Activating public modules for use in your account (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/modules.html#module-enabling)
// in the CloudFormation User Guide.
type RequiredActivatedType struct {
// The type name of the public extension. If you specified a TypeNameAlias when
// enabling the extension in this account and Region, CloudFormation treats that
// alias as the extension's type name within the account and Region, not the type
// name of the public extension. For more information, see Specifying aliases to
// refer to extensions (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/registry-public.html#registry-public-enable-alias)
// in the CloudFormation User Guide.
OriginalTypeName *string
// The publisher ID of the extension publisher.
PublisherId *string
// A list of the major versions of the extension type that the macro supports.
SupportedMajorVersions []int32
// An alias assigned to the public extension, in this account and Region. If you
// specify an alias for the extension, CloudFormation treats the alias as the
// extension type name within this account and Region. You must use the alias to
// refer to the extension in your templates, API calls, and CloudFormation console.
TypeNameAlias *string
noSmithyDocumentSerde
}
// The ResourceChange structure describes the resource and the action that
// CloudFormation will perform on it if you execute this change set.
type ResourceChange struct {
// The action that CloudFormation takes on the resource, such as Add (adds a new
// resource), Modify (changes a resource), Remove (deletes a resource), Import
// (imports a resource), or Dynamic (exact action for the resource can't be
// determined).
Action ChangeAction
// An encoded JSON string containing the context of the resource after the change
// is executed.
AfterContext *string
// An encoded JSON string containing the context of the resource before the change
// is executed.
BeforeContext *string
// The change set ID of the nested change set.
ChangeSetId *string
// For the Modify action, a list of ResourceChangeDetail structures that describes
// the changes that CloudFormation will make to the resource.
Details []ResourceChangeDetail
// The resource's logical ID, which is defined in the stack's template.
LogicalResourceId *string
// Contains information about the module from which the resource was created, if
// the resource was created from a module included in the stack template.
ModuleInfo *ModuleInfo
// The resource's physical ID (resource name). Resources that you are adding don't
// have physical IDs because they haven't been created.
PhysicalResourceId *string
// The action that will be taken on the physical resource when the change set is
// executed.
// - Delete The resource will be deleted.
// - Retain The resource will be retained.
// - Snapshot The resource will have a snapshot taken.
// - ReplaceAndDelete The resource will be replaced and then deleted.
// - ReplaceAndRetain The resource will be replaced and then retained.
// - ReplaceAndSnapshot The resource will be replaced and then have a snapshot
// taken.
PolicyAction PolicyAction
// For the Modify action, indicates whether CloudFormation will replace the
// resource by creating a new one and deleting the old one. This value depends on
// the value of the RequiresRecreation property in the ResourceTargetDefinition
// structure. For example, if the RequiresRecreation field is Always and the
// Evaluation field is Static , Replacement is True . If the RequiresRecreation
// field is Always and the Evaluation field is Dynamic , Replacement is
// Conditionally . If you have multiple changes with different RequiresRecreation
// values, the Replacement value depends on the change with the most impact. A
// RequiresRecreation value of Always has the most impact, followed by
// Conditionally , and then Never .
Replacement Replacement
// The type of CloudFormation resource, such as AWS::S3::Bucket .
ResourceType *string
// For the Modify action, indicates which resource attribute is triggering this
// update, such as a change in the resource attribute's Metadata , Properties , or
// Tags .
Scope []ResourceAttribute
noSmithyDocumentSerde
}
// For a resource with Modify as the action, the ResourceChange structure
// describes the changes CloudFormation will make to that resource.
type ResourceChangeDetail struct {
// The identity of the entity that triggered this change. This entity is a member
// of the group that's specified by the ChangeSource field. For example, if you
// modified the value of the KeyPairName parameter, the CausingEntity is the name
// of the parameter ( KeyPairName ). If the ChangeSource value is
// DirectModification , no value is given for CausingEntity .
CausingEntity *string
// The group to which the CausingEntity value belongs. There are five entity
// groups:
// - ResourceReference entities are Ref intrinsic functions that refer to
// resources in the template, such as { "Ref" : "MyEC2InstanceResource" } .
// - ParameterReference entities are Ref intrinsic functions that get template
// parameter values, such as { "Ref" : "MyPasswordParameter" } .
// - ResourceAttribute entities are Fn::GetAtt intrinsic functions that get
// resource attribute values, such as { "Fn::GetAtt" : [
// "MyEC2InstanceResource", "PublicDnsName" ] } .
// - DirectModification entities are changes that are made directly to the
// template.
// - Automatic entities are AWS::CloudFormation::Stack resource types, which are
// also known as nested stacks. If you made no changes to the
// AWS::CloudFormation::Stack resource, CloudFormation sets the ChangeSource to
// Automatic because the nested stack's template might have changed. Changes to a
// nested stack's template aren't visible to CloudFormation until you run an update
// on the parent stack.
ChangeSource ChangeSource
// Indicates whether CloudFormation can determine the target value, and whether
// the target value will change before you execute a change set. For Static
// evaluations, CloudFormation can determine that the target value will change, and
// its value. For example, if you directly modify the InstanceType property of an
// EC2 instance, CloudFormation knows that this property value will change, and its
// value, so this is a Static evaluation. For Dynamic evaluations, can't determine
// the target value because it depends on the result of an intrinsic function, such
// as a Ref or Fn::GetAtt intrinsic function, when the stack is updated. For
// example, if your template includes a reference to a resource that's
// conditionally recreated, the value of the reference (the physical ID of the
// resource) might change, depending on if the resource is recreated. If the
// resource is recreated, it will have a new physical ID, so all references to that
// resource will also be updated.
Evaluation EvaluationType
// A ResourceTargetDefinition structure that describes the field that
// CloudFormation will change and whether the resource will be recreated.
Target *ResourceTargetDefinition
noSmithyDocumentSerde
}
// A resource included in a generated template. This data type is used with the
// CreateGeneratedTemplate and UpdateGeneratedTemplate API actions.
type ResourceDefinition struct {
// A list of up to 256 key-value pairs that identifies the scanned resource. The
// key is the name of one of the primary identifiers for the resource. (Primary
// identifiers are specified in the primaryIdentifier list in the resource
// schema.) The value is the value of that primary identifier. For example, for a
// AWS::DynamoDB::Table resource, the primary identifiers is TableName so the
// key-value pair could be "TableName": "MyDDBTable" . For more information, see
// primaryIdentifier (https://docs.aws.amazon.com/cloudformation-cli/latest/userguide/resource-type-schema.html#schema-properties-primaryidentifier)
// in the CloudFormation Command Line Interface User guide for extension
// development.
//
// This member is required.
ResourceIdentifier map[string]string
// The type of the resource, such as AWS::DynamoDB::Table . For the list of
// supported resources, see IaC generator supported resource types (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/resource-import-supported-resources.html)
// in the CloudFormation User Guide
//
// This member is required.
ResourceType *string
// The logical resource id for this resource in the generated template.
LogicalResourceId *string
noSmithyDocumentSerde
}
// Details about a resource in a generated template
type ResourceDetail struct {
// The logical id for this resource in the final generated template.
LogicalResourceId *string
// A list of up to 256 key-value pairs that identifies the resource in the
// generated template. The key is the name of one of the primary identifiers for
// the resource. (Primary identifiers are specified in the primaryIdentifier list
// in the resource schema.) The value is the value of that primary identifier. For
// example, for a AWS::DynamoDB::Table resource, the primary identifiers is
// TableName so the key-value pair could be "TableName": "MyDDBTable" . For more
// information, see primaryIdentifier (https://docs.aws.amazon.com/cloudformation-cli/latest/userguide/resource-type-schema.html#schema-properties-primaryidentifier)
// in the CloudFormation Command Line Interface User guide for extension
// development.
ResourceIdentifier map[string]string
// Status of the processing of a resource in a generated template. InProgress The
// resource processing is still in progress. Complete The resource processing is
// complete. Pending The resource processing is pending. Failed The resource
// processing has failed.
ResourceStatus GeneratedTemplateResourceStatus
// The reason for the resource detail, providing more information if a failure
// happened.
ResourceStatusReason *string
// The type of the resource, such as AWS::DynamoDB::Table . For the list of
// supported resources, see IaC generator supported resource types (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/resource-import-supported-resources.html)
// In the CloudFormation User Guide
ResourceType *string
// The warnings generated for this resource.
Warnings []WarningDetail
noSmithyDocumentSerde
}
// Describes the target resources of a specific type in your import template (for
// example, all AWS::S3::Bucket resources) and the properties you can provide
// during the import to identify resources of that type.
type ResourceIdentifierSummary struct {
// The logical IDs of the target resources of the specified ResourceType , as
// defined in the import template.
LogicalResourceIds []string
// The resource properties you can provide during the import to identify your
// target resources. For example, BucketName is a possible identifier property for
// AWS::S3::Bucket resources.
ResourceIdentifiers []string
// The template resource type of the target resources, such as AWS::S3::Bucket .
ResourceType *string
noSmithyDocumentSerde
}
// A summary of the resource scan. This is returned by the ListResourceScan API
// action.
type ResourceScanSummary struct {
// The time that the resource scan was finished.
EndTime *time.Time
// The percentage of the resource scan that has been completed.
PercentageCompleted *float64
// The Amazon Resource Name (ARN) of the resource scan.
ResourceScanId *string
// The time that the resource scan was started.
StartTime *time.Time
// Status of the resource scan. INPROGRESS The resource scan is still in progress.
// COMPLETE The resource scan is complete. EXPIRED The resource scan has expired.
// FAILED The resource scan has failed.
Status ResourceScanStatus
// The reason for the resource scan status, providing more information if a
// failure happened.
StatusReason *string
noSmithyDocumentSerde
}
// The field that CloudFormation will change, such as the name of a resource's
// property, and whether the resource will be recreated.
type ResourceTargetDefinition struct {
// The value of the property after the change is executed. Large values can be
// truncated.
AfterValue *string
// Indicates which resource attribute is triggering this update, such as a change
// in the resource attribute's Metadata , Properties , or Tags .
Attribute ResourceAttribute
// The type of change to be made to the property if the change is executed.
// - Add The item will be added.
// - Remove The item will be removed.
// - Modify The item will be modified.
AttributeChangeType AttributeChangeType
// The value of the property before the change is executed. Large values can be
// truncated.
BeforeValue *string
// If the Attribute value is Properties , the name of the property. For all other
// attributes, the value is null.
Name *string
// The property path of the property.
Path *string
// If the Attribute value is Properties , indicates whether a change to this
// property causes the resource to be recreated. The value can be Never , Always ,
// or Conditionally . To determine the conditions for a Conditionally recreation,
// see the update behavior for that property (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-template-resource-type-ref.html)
// in the CloudFormation User Guide.
RequiresRecreation RequiresRecreation
noSmithyDocumentSerde
}
// Describes the target resource of an import operation.
type ResourceToImport struct {
// The logical ID of the target resource as specified in the template.
//
// This member is required.
LogicalResourceId *string
// A key-value pair that identifies the target resource. The key is an identifier
// property (for example, BucketName for AWS::S3::Bucket resources) and the value
// is the actual property value (for example, MyS3Bucket ).
//
// This member is required.
ResourceIdentifier map[string]string
// The type of resource to import into your stack, such as AWS::S3::Bucket . For a
// list of supported resource types, see Resources that support import operations (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/resource-import-supported-resources.html)
// in the CloudFormation User Guide.
//
// This member is required.
ResourceType *string
noSmithyDocumentSerde
}
// Structure containing the rollback triggers for CloudFormation to monitor during
// stack creation and updating operations, and for the specified monitoring period
// afterwards. Rollback triggers enable you to have CloudFormation monitor the
// state of your application during stack creation and updating, and to roll back
// that operation if the application breaches the threshold of any of the alarms
// you've specified. For more information, see Monitor and Roll Back Stack
// Operations (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-rollback-triggers.html)
// .
type RollbackConfiguration struct {
// The amount of time, in minutes, during which CloudFormation should monitor all
// the rollback triggers after the stack creation or update operation deploys all
// necessary resources. The default is 0 minutes. If you specify a monitoring
// period but don't specify any rollback triggers, CloudFormation still waits the
// specified period of time before cleaning up old resources after update
// operations. You can use this monitoring period to perform any manual stack
// validation desired, and manually cancel the stack creation or update (using
// CancelUpdateStack (https://docs.aws.amazon.com/AWSCloudFormation/latest/APIReference/API_CancelUpdateStack.html)
// , for example) as necessary. If you specify 0 for this parameter, CloudFormation
// still monitors the specified rollback triggers during stack creation and update
// operations. Then, for update operations, it begins disposing of old resources
// immediately once the operation completes.
MonitoringTimeInMinutes *int32
// The triggers to monitor during stack creation or update actions. By default,
// CloudFormation saves the rollback triggers specified for a stack and applies
// them to any subsequent update operations for the stack, unless you specify
// otherwise. If you do specify rollback triggers for this parameter, those
// triggers replace any list of triggers previously specified for the stack. This
// means:
// - To use the rollback triggers previously specified for this stack, if any,
// don't specify this parameter.
// - To specify new or updated rollback triggers, you must specify all the
// triggers that you want used for this stack, even triggers you've specified
// before (for example, when creating the stack or during a previous stack update).
// Any triggers that you don't include in the updated list of triggers are no
// longer applied to the stack.
// - To remove all currently specified triggers, specify an empty list for this
// parameter.
// If a specified trigger is missing, the entire stack operation fails and is
// rolled back.
RollbackTriggers []RollbackTrigger
noSmithyDocumentSerde
}
// A rollback trigger CloudFormation monitors during creation and updating of
// stacks. If any of the alarms you specify goes to ALARM state during the stack
// operation or within the specified monitoring period afterwards, CloudFormation
// rolls back the entire stack operation.
type RollbackTrigger struct {
// The Amazon Resource Name (ARN) of the rollback trigger. If a specified trigger
// is missing, the entire stack operation fails and is rolled back.
//
// This member is required.
Arn *string
// The resource type of the rollback trigger. Specify either AWS::CloudWatch::Alarm (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cw-alarm.html)
// or AWS::CloudWatch::CompositeAlarm (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloudwatch-compositealarm.html)
// resource types.
//
// This member is required.
Type *string
noSmithyDocumentSerde
}
// A scanned resource returned by ListResourceScanResources or
// ListResourceScanRelatedResources .
type ScannedResource struct {
// If true , the resource is managed by a CloudFormation stack.
ManagedByStack *bool
// A list of up to 256 key-value pairs that identifies for the scanned resource.
// The key is the name of one of the primary identifiers for the resource. (Primary
// identifiers are specified in the primaryIdentifier list in the resource
// schema.) The value is the value of that primary identifier. For example, for a
// AWS::DynamoDB::Table resource, the primary identifiers is TableName so the
// key-value pair could be "TableName": "MyDDBTable" . For more information, see
// primaryIdentifier (https://docs.aws.amazon.com/cloudformation-cli/latest/userguide/resource-type-schema.html#schema-properties-primaryidentifier)
// in the CloudFormation Command Line Interface User guide for extension
// development.
ResourceIdentifier map[string]string
// The type of the resource, such as AWS::DynamoDB::Table . For the list of
// supported resources, see Resource type support (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/resource-import-supported-resources.html)
// In the CloudFormation User Guide
ResourceType *string
noSmithyDocumentSerde
}
// Identifies a scanned resource. This is used with the
// ListResourceScanRelatedResources API action.
type ScannedResourceIdentifier struct {
// A list of up to 256 key-value pairs that identifies the scanned resource. The
// key is the name of one of the primary identifiers for the resource. (Primary
// identifiers are specified in the primaryIdentifier list in the resource
// schema.) The value is the value of that primary identifier. For example, for a
// AWS::DynamoDB::Table resource, the primary identifiers is TableName so the
// key-value pair could be "TableName": "MyDDBTable" . For more information, see
// primaryIdentifier (https://docs.aws.amazon.com/cloudformation-cli/latest/userguide/resource-type-schema.html#schema-properties-primaryidentifier)
// in the CloudFormation Command Line Interface User guide for extension
// development.
//
// This member is required.
ResourceIdentifier map[string]string
// The type of the resource, such as AWS::DynamoDB::Table . For the list of
// supported resources, see IaC generator supported resource types (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/resource-import-supported-resources.html)
// In the CloudFormation User Guide.
//
// This member is required.
ResourceType *string
noSmithyDocumentSerde
}
// The Stack data type.
type Stack struct {
// The time at which the stack was created.
//
// This member is required.
CreationTime *time.Time
// The name associated with the stack.
//
// This member is required.
StackName *string
// Current status of the stack.
//
// This member is required.
StackStatus StackStatus
// The capabilities allowed in the stack.
Capabilities []Capability
// The unique ID of the change set.
ChangeSetId *string
// The time the stack was deleted.
DeletionTime *time.Time
// A user-defined description associated with the stack.
Description *string
// The detailed status of the resource or stack. If CONFIGURATION_COMPLETE is
// present, the resource or resource configuration phase has completed and the
// stabilization of the resources is in progress. The stack sets
// CONFIGURATION_COMPLETE when all of the resources in the stack have reached that
// event. For more information, see CloudFormation stack deployment (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/stack-resource-configuration-complete.html)
// in the CloudFormation User Guide.
DetailedStatus DetailedStatus
// Boolean to enable or disable rollback on stack creation failures:
// - true : disable rollback.
// - false : enable rollback.
DisableRollback *bool
// Information about whether a stack's actual configuration differs, or has
// drifted, from its expected configuration, as defined in the stack template and