-
Notifications
You must be signed in to change notification settings - Fork 623
/
api_types.go
2090 lines (1737 loc) · 81.9 KB
/
api_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 private/model/cli/gen-api/main.go. DO NOT EDIT.
package cloudformation
import (
"fmt"
"time"
"github.com/aws/aws-sdk-go-v2/aws"
"github.com/aws/aws-sdk-go-v2/internal/awsutil"
)
var _ aws.Config
var _ = awsutil.Prettify
// Structure that contains the results of the account gate function which AWS
// CloudFormation invokes, if present, before proceeding with a stack set operation
// in an account and region.
//
// For each account and region, AWS CloudFormation lets you specify a Lamdba
// 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 {
_ struct{} `type:"structure"`
// 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.
// AWS CloudFormation proceeds with the stack operation in that account and
// region.
//
// * FAILED: The account gate function has determined that the account and
// region does not meet the requirements for a stack set operation to occur.
// AWS 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: AWS CloudFormation has skipped calling the account gate function
// for this account and region, for one of the following reasons: An account
// gate function has not been specified for the account and region. AWS CloudFormation
// proceeds with the stack set operation in this account and region. The
// AWSCloudFormationStackSetExecutionRole of the stack set adminstration
// account lacks permissions to invoke the function. AWS 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. AWS CloudFormation
// skips the stack set operation in this account and region.
Status AccountGateStatus `type:"string" enum:"true"`
// The reason for the account gate status assigned to this account and region
// for the stack set operation.
StatusReason *string `type:"string"`
}
// String returns the string representation
func (s AccountGateResult) String() string {
return awsutil.Prettify(s)
}
// 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 AWS CloudFormation Limits (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/cloudformation-limits.html)
// in the AWS CloudFormation User Guide.
type AccountLimit struct {
_ struct{} `type:"structure"`
// The name of the account limit.
//
// Values: ConcurrentResourcesLimit | StackLimit | StackOutputsLimit
Name *string `type:"string"`
// The value that is associated with the account limit name.
Value *int64 `type:"integer"`
}
// String returns the string representation
func (s AccountLimit) String() string {
return awsutil.Prettify(s)
}
// The Change structure describes the changes AWS CloudFormation will perform
// if you execute the change set.
type Change struct {
_ struct{} `type:"structure"`
// A ResourceChange structure that describes the resource and action that AWS
// CloudFormation will perform.
ResourceChange *ResourceChange `type:"structure"`
// The type of entity that AWS CloudFormation changes. Currently, the only entity
// type is Resource.
Type ChangeType `type:"string" enum:"true"`
}
// String returns the string representation
func (s Change) String() string {
return awsutil.Prettify(s)
}
// The ChangeSetSummary structure describes a change set, its status, and the
// stack with which it's associated.
type ChangeSetSummary struct {
_ struct{} `type:"structure"`
// The ID of the change set.
ChangeSetId *string `min:"1" type:"string"`
// The name of the change set.
ChangeSetName *string `min:"1" type:"string"`
// The start time when the change set was created, in UTC.
CreationTime *time.Time `type:"timestamp"`
// Descriptive information about the change set.
Description *string `min:"1" type:"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 AWS CloudFormation
// is still creating it or in an OBSOLETE state because the stack was already
// updated.
ExecutionStatus ExecutionStatus `type:"string" enum:"true"`
// The ID of the stack with which the change set is associated.
StackId *string `type:"string"`
// The name of the stack with which the change set is associated.
StackName *string `type:"string"`
// The state of the change set, such as CREATE_IN_PROGRESS, CREATE_COMPLETE,
// or FAILED.
Status ChangeSetStatus `type:"string" enum:"true"`
// A description of the change set's status. For example, if your change set
// is in the FAILED state, AWS CloudFormation shows the error message.
StatusReason *string `type:"string"`
}
// String returns the string representation
func (s ChangeSetSummary) String() string {
return awsutil.Prettify(s)
}
// The Export structure describes the exported output values for a stack.
type Export struct {
_ struct{} `type:"structure"`
// The stack that contains the exported output name and value.
ExportingStackId *string `type:"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 `type:"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 `type:"string"`
}
// String returns the string representation
func (s Export) String() string {
return awsutil.Prettify(s)
}
// Contains logging configuration information for a type.
type LoggingConfig struct {
_ struct{} `type:"structure"`
// The Amazon CloudWatch log group to which CloudFormation sends error logging
// information when invoking the type's handlers.
//
// LogGroupName is a required field
LogGroupName *string `min:"1" type:"string" required:"true"`
// The ARN of the role that CloudFormation should assume when sending log entries
// to CloudWatch logs.
//
// LogRoleArn is a required field
LogRoleArn *string `min:"1" type:"string" required:"true"`
}
// String returns the string representation
func (s LoggingConfig) String() string {
return awsutil.Prettify(s)
}
// Validate inspects the fields of the type to determine if they are valid.
func (s *LoggingConfig) Validate() error {
invalidParams := aws.ErrInvalidParams{Context: "LoggingConfig"}
if s.LogGroupName == nil {
invalidParams.Add(aws.NewErrParamRequired("LogGroupName"))
}
if s.LogGroupName != nil && len(*s.LogGroupName) < 1 {
invalidParams.Add(aws.NewErrParamMinLen("LogGroupName", 1))
}
if s.LogRoleArn == nil {
invalidParams.Add(aws.NewErrParamRequired("LogRoleArn"))
}
if s.LogRoleArn != nil && len(*s.LogRoleArn) < 1 {
invalidParams.Add(aws.NewErrParamMinLen("LogRoleArn", 1))
}
if invalidParams.Len() > 0 {
return invalidParams
}
return nil
}
// The Output data type.
type Output struct {
_ struct{} `type:"structure"`
// User defined description associated with the output.
Description *string `min:"1" type:"string"`
// The name of the export associated with the output.
ExportName *string `type:"string"`
// The key associated with the output.
OutputKey *string `type:"string"`
// The value associated with the output.
OutputValue *string `type:"string"`
}
// String returns the string representation
func (s Output) String() string {
return awsutil.Prettify(s)
}
// The Parameter data type.
type Parameter struct {
_ struct{} `type:"structure"`
// The key associated with the parameter. If you don't specify a key and value
// for a particular parameter, AWS CloudFormation uses the default value that
// is specified in your template.
ParameterKey *string `type:"string"`
// The input value associated with the parameter.
ParameterValue *string `type:"string"`
// Read-only. The value that corresponds to a Systems Manager parameter key.
// This field is returned only for SSM parameter types (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/parameters-section-structure.html#aws-ssm-parameter-types)
// in the template.
ResolvedValue *string `type:"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 `type:"boolean"`
}
// String returns the string representation
func (s Parameter) String() string {
return awsutil.Prettify(s)
}
// A set of criteria that AWS CloudFormation uses to validate parameter values.
// Although other constraints might be defined in the stack template, AWS CloudFormation
// returns only the AllowedValues property.
type ParameterConstraints struct {
_ struct{} `type:"structure"`
// A list of values that are permitted for a parameter.
AllowedValues []string `type:"list"`
}
// String returns the string representation
func (s ParameterConstraints) String() string {
return awsutil.Prettify(s)
}
// The ParameterDeclaration data type.
type ParameterDeclaration struct {
_ struct{} `type:"structure"`
// The default value of the parameter.
DefaultValue *string `type:"string"`
// The description that is associate with the parameter.
Description *string `min:"1" type:"string"`
// Flag that indicates whether the parameter value is shown as plain text in
// logs and in the AWS Management Console.
NoEcho *bool `type:"boolean"`
// The criteria that AWS CloudFormation uses to validate parameter values.
ParameterConstraints *ParameterConstraints `type:"structure"`
// The name that is associated with the parameter.
ParameterKey *string `type:"string"`
// The type of parameter.
ParameterType *string `type:"string"`
}
// String returns the string representation
func (s ParameterDeclaration) String() string {
return awsutil.Prettify(s)
}
// Context information that enables AWS CloudFormation to uniquely identify
// a resource. AWS CloudFormation uses context key-value pairs in cases where
// a resource's logical and physical IDs are not enough to uniquely identify
// that resource. Each context key-value pair specifies a resource that contains
// the targeted resource.
type PhysicalResourceIdContextKeyValuePair struct {
_ struct{} `type:"structure"`
// The resource context key.
//
// Key is a required field
Key *string `type:"string" required:"true"`
// The resource context value.
//
// Value is a required field
Value *string `type:"string" required:"true"`
}
// String returns the string representation
func (s PhysicalResourceIdContextKeyValuePair) String() string {
return awsutil.Prettify(s)
}
// 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 {
_ struct{} `type:"structure"`
// The actual property value of the resource property.
//
// ActualValue is a required field
ActualValue *string `type:"string" required:"true"`
// The type of property difference.
//
// * ADD: A value has been added to a resource property that is 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).
//
// DifferenceType is a required field
DifferenceType DifferenceType `type:"string" required:"true" enum:"true"`
// The expected property value of the resource property, as defined in the stack
// template and any values specified as template parameters.
//
// ExpectedValue is a required field
ExpectedValue *string `type:"string" required:"true"`
// The fully-qualified path to the resource property.
//
// PropertyPath is a required field
PropertyPath *string `type:"string" required:"true"`
}
// String returns the string representation
func (s PropertyDifference) String() string {
return awsutil.Prettify(s)
}
// The ResourceChange structure describes the resource and the action that AWS
// CloudFormation will perform on it if you execute this change set.
type ResourceChange struct {
_ struct{} `type:"structure"`
// The action that AWS CloudFormation takes on the resource, such as Add (adds
// a new resource), Modify (changes a resource), or Remove (deletes a resource).
Action ChangeAction `type:"string" enum:"true"`
// For the Modify action, a list of ResourceChangeDetail structures that describes
// the changes that AWS CloudFormation will make to the resource.
Details []ResourceChangeDetail `type:"list"`
// The resource's logical ID, which is defined in the stack's template.
LogicalResourceId *string `type:"string"`
// 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 `type:"string"`
// For the Modify action, indicates whether AWS 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 `type:"string" enum:"true"`
// The type of AWS CloudFormation resource, such as AWS::S3::Bucket.
ResourceType *string `min:"1" type:"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 `type:"list"`
}
// String returns the string representation
func (s ResourceChange) String() string {
return awsutil.Prettify(s)
}
// For a resource with Modify as the action, the ResourceChange structure describes
// the changes AWS CloudFormation will make to that resource.
type ResourceChangeDetail struct {
_ struct{} `type:"structure"`
// The identity of the entity that triggered this change. This entity is a member
// of the group that is 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 `type:"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, AWS 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 AWS CloudFormation until you run an update
// on the parent stack.
ChangeSource ChangeSource `type:"string" enum:"true"`
// Indicates whether AWS CloudFormation can determine the target value, and
// whether the target value will change before you execute a change set.
//
// For Static evaluations, AWS 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, AWS CloudFormation knows that this
// property value will change, and its value, so this is a Static evaluation.
//
// For Dynamic evaluations, cannot 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 is 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 `type:"string" enum:"true"`
// A ResourceTargetDefinition structure that describes the field that AWS CloudFormation
// will change and whether the resource will be recreated.
Target *ResourceTargetDefinition `type:"structure"`
}
// String returns the string representation
func (s ResourceChangeDetail) String() string {
return awsutil.Prettify(s)
}
// 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 {
_ struct{} `type:"structure"`
// The logical IDs of the target resources of the specified ResourceType, as
// defined in the import template.
LogicalResourceIds []string `min:"1" type:"list"`
// 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 `type:"list"`
// The template resource type of the target resources, such as AWS::S3::Bucket.
ResourceType *string `min:"1" type:"string"`
}
// String returns the string representation
func (s ResourceIdentifierSummary) String() string {
return awsutil.Prettify(s)
}
// The field that AWS CloudFormation will change, such as the name of a resource's
// property, and whether the resource will be recreated.
type ResourceTargetDefinition struct {
_ struct{} `type:"structure"`
// Indicates which resource attribute is triggering this update, such as a change
// in the resource attribute's Metadata, Properties, or Tags.
Attribute ResourceAttribute `type:"string" enum:"true"`
// If the Attribute value is Properties, the name of the property. For all other
// attributes, the value is null.
Name *string `type:"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 AWS CloudFormation User Guide.
RequiresRecreation RequiresRecreation `type:"string" enum:"true"`
}
// String returns the string representation
func (s ResourceTargetDefinition) String() string {
return awsutil.Prettify(s)
}
// Describes the target resource of an import operation.
type ResourceToImport struct {
_ struct{} `type:"structure"`
// The logical ID of the target resource as specified in the template.
//
// LogicalResourceId is a required field
LogicalResourceId *string `type:"string" required:"true"`
// 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).
//
// ResourceIdentifier is a required field
ResourceIdentifier map[string]string `min:"1" type:"map" required:"true"`
// The type of resource to import into your stack, such as AWS::S3::Bucket.
//
// ResourceType is a required field
ResourceType *string `min:"1" type:"string" required:"true"`
}
// String returns the string representation
func (s ResourceToImport) String() string {
return awsutil.Prettify(s)
}
// Validate inspects the fields of the type to determine if they are valid.
func (s *ResourceToImport) Validate() error {
invalidParams := aws.ErrInvalidParams{Context: "ResourceToImport"}
if s.LogicalResourceId == nil {
invalidParams.Add(aws.NewErrParamRequired("LogicalResourceId"))
}
if s.ResourceIdentifier == nil {
invalidParams.Add(aws.NewErrParamRequired("ResourceIdentifier"))
}
if s.ResourceIdentifier != nil && len(s.ResourceIdentifier) < 1 {
invalidParams.Add(aws.NewErrParamMinLen("ResourceIdentifier", 1))
}
if s.ResourceType == nil {
invalidParams.Add(aws.NewErrParamRequired("ResourceType"))
}
if s.ResourceType != nil && len(*s.ResourceType) < 1 {
invalidParams.Add(aws.NewErrParamMinLen("ResourceType", 1))
}
if invalidParams.Len() > 0 {
return invalidParams
}
return nil
}
// Structure containing the rollback triggers for AWS CloudFormation to monitor
// during stack creation and updating operations, and for the specified monitoring
// period afterwards.
//
// Rollback triggers enable you to have AWS 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
// (http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-rollback-triggers.html).
type RollbackConfiguration struct {
_ struct{} `type:"structure"`
// 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 do not 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 *int64 `type:"integer"`
// The triggers to monitor during stack creation or update actions.
//
// By default, AWS 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 specifed
// 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 `type:"list"`
}
// String returns the string representation
func (s RollbackConfiguration) String() string {
return awsutil.Prettify(s)
}
// Validate inspects the fields of the type to determine if they are valid.
func (s *RollbackConfiguration) Validate() error {
invalidParams := aws.ErrInvalidParams{Context: "RollbackConfiguration"}
if s.RollbackTriggers != nil {
for i, v := range s.RollbackTriggers {
if err := v.Validate(); err != nil {
invalidParams.AddNested(fmt.Sprintf("%s[%v]", "RollbackTriggers", i), err.(aws.ErrInvalidParams))
}
}
}
if invalidParams.Len() > 0 {
return invalidParams
}
return nil
}
// A rollback trigger AWS 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 {
_ struct{} `type:"structure"`
// The Amazon Resource Name (ARN) of the rollback trigger.
//
// If a specified trigger is missing, the entire stack operation fails and is
// rolled back.
//
// Arn is a required field
Arn *string `type:"string" required:"true"`
// The resource type of the rollback trigger. Currently, AWS::CloudWatch::Alarm
// (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cw-alarm.html)
// is the only supported resource type.
//
// Type is a required field
Type *string `type:"string" required:"true"`
}
// String returns the string representation
func (s RollbackTrigger) String() string {
return awsutil.Prettify(s)
}
// Validate inspects the fields of the type to determine if they are valid.
func (s *RollbackTrigger) Validate() error {
invalidParams := aws.ErrInvalidParams{Context: "RollbackTrigger"}
if s.Arn == nil {
invalidParams.Add(aws.NewErrParamRequired("Arn"))
}
if s.Type == nil {
invalidParams.Add(aws.NewErrParamRequired("Type"))
}
if invalidParams.Len() > 0 {
return invalidParams
}
return nil
}
// The Stack data type.
type Stack struct {
_ struct{} `type:"structure"`
// The capabilities allowed in the stack.
Capabilities []Capability `type:"list"`
// The unique ID of the change set.
ChangeSetId *string `min:"1" type:"string"`
// The time at which the stack was created.
//
// CreationTime is a required field
CreationTime *time.Time `type:"timestamp" required:"true"`
// The time the stack was deleted.
DeletionTime *time.Time `type:"timestamp"`
// A user-defined description associated with the stack.
Description *string `min:"1" type:"string"`
// Boolean to enable or disable rollback on stack creation failures:
//
// * true: disable rollback
//
// * false: enable rollback
DisableRollback *bool `type:"boolean"`
// Information on whether a stack's actual configuration differs, or has drifted,
// from it's expected configuration, as defined in the stack template and any
// values specified as template parameters. For more information, see Detecting
// Unregulated Configuration Changes to Stacks and Resources (http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-stack-drift.html).
DriftInformation *StackDriftInformation `type:"structure"`
// Whether termination protection is enabled for the stack.
//
// For nested stacks (http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-nested-stacks.html),
// termination protection is set on the root stack and cannot be changed directly
// on the nested stack. For more information, see Protecting a Stack From Being
// Deleted (http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-protect-stacks.html)
// in the AWS CloudFormation User Guide.
EnableTerminationProtection *bool `type:"boolean"`
// The time the stack was last updated. This field will only be returned if
// the stack has been updated at least once.
LastUpdatedTime *time.Time `type:"timestamp"`
// SNS topic ARNs to which stack related events are published.
NotificationARNs []string `type:"list"`
// A list of output structures.
Outputs []Output `type:"list"`
// A list of Parameter structures.
Parameters []Parameter `type:"list"`
// For nested stacks--stacks created as resources for another stack--the stack
// ID of the direct parent of this stack. For the first level of nested stacks,
// the root stack is also the parent stack.
//
// For more information, see Working with Nested Stacks (http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-nested-stacks.html)
// in the AWS CloudFormation User Guide.
ParentId *string `type:"string"`
// The Amazon Resource Name (ARN) of an AWS Identity and Access Management (IAM)
// role that is associated with the stack. During a stack operation, AWS CloudFormation
// uses this role's credentials to make calls on your behalf.
RoleARN *string `min:"20" type:"string"`
// The rollback triggers for AWS CloudFormation to monitor during stack creation
// and updating operations, and for the specified monitoring period afterwards.
RollbackConfiguration *RollbackConfiguration `type:"structure"`
// For nested stacks--stacks created as resources for another stack--the stack
// ID of the top-level stack to which the nested stack ultimately belongs.
//
// For more information, see Working with Nested Stacks (http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-nested-stacks.html)
// in the AWS CloudFormation User Guide.
RootId *string `type:"string"`
// Unique identifier of the stack.
StackId *string `type:"string"`
// The name associated with the stack.
//
// StackName is a required field
StackName *string `type:"string" required:"true"`
// Current status of the stack.
//
// StackStatus is a required field
StackStatus StackStatus `type:"string" required:"true" enum:"true"`
// Success/failure message associated with the stack status.
StackStatusReason *string `type:"string"`
// A list of Tags that specify information about the stack.
Tags []Tag `type:"list"`
// The amount of time within which stack creation should complete.
TimeoutInMinutes *int64 `min:"1" type:"integer"`
}
// String returns the string representation
func (s Stack) String() string {
return awsutil.Prettify(s)
}
// Contains information about whether the stack's actual configuration differs,
// or has drifted, from its expected configuration, as defined in the stack
// template and any values specified as template parameters. A stack is considered
// to have drifted if one or more of its resources have drifted.
type StackDriftInformation struct {
_ struct{} `type:"structure"`
// Most recent time when a drift detection operation was initiated on the stack,
// or any of its individual resources that support drift detection.
LastCheckTimestamp *time.Time `type:"timestamp"`
// Status of the stack's actual configuration compared to its expected template
// configuration.
//
// * DRIFTED: The stack differs from its expected template configuration.
// A stack is considered to have drifted if one or more of its resources
// have drifted.
//
// * NOT_CHECKED: AWS CloudFormation has not checked if the stack differs
// from its expected template configuration.
//
// * IN_SYNC: The stack's actual configuration matches its expected template
// configuration.
//
// * UNKNOWN: This value is reserved for future use.
//
// StackDriftStatus is a required field
StackDriftStatus StackDriftStatus `type:"string" required:"true" enum:"true"`
}
// String returns the string representation
func (s StackDriftInformation) String() string {
return awsutil.Prettify(s)
}
// Contains information about whether the stack's actual configuration differs,
// or has drifted, from its expected configuration, as defined in the stack
// template and any values specified as template parameters. A stack is considered
// to have drifted if one or more of its resources have drifted.
type StackDriftInformationSummary struct {
_ struct{} `type:"structure"`
// Most recent time when a drift detection operation was initiated on the stack,
// or any of its individual resources that support drift detection.
LastCheckTimestamp *time.Time `type:"timestamp"`
// Status of the stack's actual configuration compared to its expected template
// configuration.
//
// * DRIFTED: The stack differs from its expected template configuration.
// A stack is considered to have drifted if one or more of its resources
// have drifted.
//
// * NOT_CHECKED: AWS CloudFormation has not checked if the stack differs
// from its expected template configuration.
//
// * IN_SYNC: The stack's actual configuration matches its expected template
// configuration.
//
// * UNKNOWN: This value is reserved for future use.
//
// StackDriftStatus is a required field
StackDriftStatus StackDriftStatus `type:"string" required:"true" enum:"true"`
}
// String returns the string representation
func (s StackDriftInformationSummary) String() string {
return awsutil.Prettify(s)
}
// The StackEvent data type.
type StackEvent struct {
_ struct{} `type:"structure"`
// The token passed to the operation that generated this event.
//
// All events triggered by a given stack operation are assigned the same client
// request token, which you can use to track operations. For example, if you
// execute a CreateStack operation with the token token1, then all the StackEvents
// generated by that operation will have ClientRequestToken set as token1.
//
// In the console, stack operations display the client request token on the
// Events tab. Stack operations that are initiated from the console use the
// token format Console-StackOperation-ID, which helps you easily identify the
// stack operation . For example, if you create a stack using the console, each
// stack event would be assigned the same token in the following format: Console-CreateStack-7f59c3cf-00d2-40c7-b2ff-e75db0987002.
ClientRequestToken *string `min:"1" type:"string"`
// The unique ID of this event.
//
// EventId is a required field
EventId *string `type:"string" required:"true"`
// The logical name of the resource specified in the template.
LogicalResourceId *string `type:"string"`
// The name or unique identifier associated with the physical instance of the
// resource.
PhysicalResourceId *string `type:"string"`
// BLOB of the properties used to create the resource.
ResourceProperties *string `type:"string"`
// Current status of the resource.
ResourceStatus ResourceStatus `type:"string" enum:"true"`
// Success/failure message associated with the resource.
ResourceStatusReason *string `type:"string"`
// Type of resource. (For more information, go to AWS Resource Types Reference
// (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-template-resource-type-ref.html)
// in the AWS CloudFormation User Guide.)
ResourceType *string `min:"1" type:"string"`
// The unique ID name of the instance of the stack.
//
// StackId is a required field
StackId *string `type:"string" required:"true"`
// The name associated with a stack.
//
// StackName is a required field
StackName *string `type:"string" required:"true"`
// Time the status was updated.
//
// Timestamp is a required field
Timestamp *time.Time `type:"timestamp" required:"true"`
}
// String returns the string representation
func (s StackEvent) String() string {
return awsutil.Prettify(s)
}
// An AWS CloudFormation stack, in a specific account and region, that's part
// of a stack set operation. A stack instance is a reference to an attempted
// or actual stack in a given account within a given region. A stack instance
// can exist without a stack—for example, if the stack couldn't be created
// for some reason. A stack instance is associated with only one stack set.
// Each stack instance contains the ID of its associated stack set, as well
// as the ID of the actual stack and the stack status.
type StackInstance struct {
_ struct{} `type:"structure"`
// The name of the AWS account that the stack instance is associated with.
Account *string `type:"string"`
// Status of the stack instance's actual configuration compared to the expected
// template and parameter configuration of the stack set to which it belongs.
//
// * DRIFTED: The stack differs from the expected template and parameter
// configuration of the stack set to which it belongs. A stack instance is
// considered to have drifted if one or more of the resources in the associated
// stack have drifted.
//
// * NOT_CHECKED: AWS CloudFormation has not checked if the stack instance
// differs from its expected stack set configuration.
//
// * IN_SYNC: The stack instance's actual configuration matches its expected
// stack set configuration.
//
// * UNKNOWN: This value is reserved for future use.
DriftStatus StackDriftStatus `type:"string" enum:"true"`