-
Notifications
You must be signed in to change notification settings - Fork 596
/
types.go
3955 lines (3070 loc) · 132 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 (
"time"
)
// Information includes the AWS account ID where the current document is shared and
// the version shared with that account.
type AccountSharingInfo struct {
// The AWS account ID where the current document is shared.
AccountId *string
// The version of the current document shared with the account.
SharedDocumentVersion *string
}
// An activation registers one or more on-premises servers or virtual machines
// (VMs) with AWS so that you can configure those servers or VMs using Run Command.
// A server or VM that has been registered with AWS is called a managed instance.
type Activation struct {
// The ID created by Systems Manager when you submitted the activation.
ActivationId *string
// The date the activation was created.
CreatedDate *time.Time
// A name for the managed instance when it is created.
DefaultInstanceName *string
// A user defined description of the activation.
Description *string
// The date when this activation can no longer be used to register managed
// instances.
ExpirationDate *time.Time
// Whether or not the activation is expired.
Expired *bool
// The Amazon Identity and Access Management (IAM) role to assign to the managed
// instance.
IamRole *string
// The maximum number of managed instances that can be registered using this
// activation.
RegistrationLimit *int32
// The number of managed instances already registered with this activation.
RegistrationsCount *int32
// Tags assigned to the activation.
Tags []*Tag
}
// Describes an association of a Systems Manager document and an instance.
type Association struct {
// The ID created by the system when you create an association. An association is a
// binding between a document and a set of targets with a schedule.
AssociationId *string
// The association name.
AssociationName *string
// The association version.
AssociationVersion *string
// The version of the document used in the association.
DocumentVersion *string
// The ID of the instance.
InstanceId *string
// The date on which the association was last run.
LastExecutionDate *time.Time
// The name of the Systems Manager document.
Name *string
// Information about the association.
Overview *AssociationOverview
// A cron expression that specifies a schedule when the association runs.
ScheduleExpression *string
// The instances targeted by the request to create an association.
Targets []*Target
}
// Describes the parameters for a document.
type AssociationDescription struct {
// By default, when you create a new associations, the system runs it immediately
// after it is created and then according to the schedule you specified. Specify
// this option if you don't want an association to run immediately after you create
// it.
ApplyOnlyAtCronInterval *bool
// The association ID.
AssociationId *string
// The association name.
AssociationName *string
// The association version.
AssociationVersion *string
// Specify the target for the association. This target is required for associations
// that use an Automation document and target resources by using rate controls.
AutomationTargetParameterName *string
// The severity level that is assigned to the association.
ComplianceSeverity AssociationComplianceSeverity
// The date when the association was made.
Date *time.Time
// The document version.
DocumentVersion *string
// The ID of the instance.
InstanceId *string
// The date on which the association was last run.
LastExecutionDate *time.Time
// The last date on which the association was successfully run.
LastSuccessfulExecutionDate *time.Time
// The date when the association was last updated.
LastUpdateAssociationDate *time.Time
// The maximum number of targets allowed to run the association at the same time.
// You can specify a number, for example 10, or a percentage of the target set, for
// example 10%. The default value is 100%, which means all targets run the
// association at the same time. If a new instance starts and attempts to run an
// association while Systems Manager is running MaxConcurrency associations, the
// association is allowed to run. During the next association interval, the new
// instance will process its association within the limit specified for
// MaxConcurrency.
MaxConcurrency *string
// The number of errors that are allowed before the system stops sending requests
// to run the association on additional targets. You can specify either an absolute
// number of errors, for example 10, or a percentage of the target set, for example
// 10%. If you specify 3, for example, the system stops sending requests when the
// fourth error is received. If you specify 0, then the system stops sending
// requests after the first error is returned. If you run an association on 50
// instances and set MaxError to 10%, then the system stops sending the request
// when the sixth error is received. Executions that are already running an
// association when MaxErrors is reached are allowed to complete, but some of these
// executions may fail as well. If you need to ensure that there won't be more than
// max-errors failed executions, set MaxConcurrency to 1 so that executions proceed
// one at a time.
MaxErrors *string
// The name of the Systems Manager document.
Name *string
// An S3 bucket where you want to store the output details of the request.
OutputLocation *InstanceAssociationOutputLocation
// Information about the association.
Overview *AssociationOverview
// A description of the parameters for a document.
Parameters map[string][]*string
// A cron expression that specifies a schedule when the association runs.
ScheduleExpression *string
// The association status.
Status *AssociationStatus
// The mode for generating association compliance. You can specify AUTO or MANUAL.
// In AUTO mode, the system uses the status of the association execution to
// determine the compliance status. If the association execution runs successfully,
// then the association is COMPLIANT. If the association execution doesn't run
// successfully, the association is NON-COMPLIANT. In MANUAL mode, you must specify
// the AssociationId as a parameter for the PutComplianceItems API action. In this
// case, compliance data is not managed by State Manager. It is managed by your
// direct call to the PutComplianceItems API action. By default, all associations
// use AUTO mode.
SyncCompliance AssociationSyncCompliance
// The instances targeted by the request.
Targets []*Target
}
// Includes information about the specified association.
type AssociationExecution struct {
// The association ID.
AssociationId *string
// The association version.
AssociationVersion *string
// The time the execution started.
CreatedTime *time.Time
// Detailed status information about the execution.
DetailedStatus *string
// The execution ID for the association.
ExecutionId *string
// The date of the last execution.
LastExecutionDate *time.Time
// An aggregate status of the resources in the execution based on the status type.
ResourceCountByStatus *string
// The status of the association execution.
Status *string
}
// Filters used in the request.
type AssociationExecutionFilter struct {
// The key value used in the request.
//
// This member is required.
Key AssociationExecutionFilterKey
// The filter type specified in the request.
//
// This member is required.
Type AssociationFilterOperatorType
// The value specified for the key.
//
// This member is required.
Value *string
}
// Includes information about the specified association execution.
type AssociationExecutionTarget struct {
// The association ID.
AssociationId *string
// The association version.
AssociationVersion *string
// Detailed information about the execution status.
DetailedStatus *string
// The execution ID.
ExecutionId *string
// The date of the last execution.
LastExecutionDate *time.Time
// The location where the association details are saved.
OutputSource *OutputSource
// The resource ID, for example, the instance ID where the association ran.
ResourceId *string
// The resource type, for example, instance.
ResourceType *string
// The association execution status.
Status *string
}
// Filters for the association execution.
type AssociationExecutionTargetsFilter struct {
// The key value used in the request.
//
// This member is required.
Key AssociationExecutionTargetsFilterKey
// The value specified for the key.
//
// This member is required.
Value *string
}
// Describes a filter.
type AssociationFilter struct {
// The name of the filter.
//
// This member is required.
Key AssociationFilterKey
// The filter value.
//
// This member is required.
Value *string
}
// Information about the association.
type AssociationOverview struct {
// Returns the number of targets for the association status. For example, if you
// created an association with two instances, and one of them was successful, this
// would return the count of instances by status.
AssociationStatusAggregatedCount map[string]*int32
// A detailed status of the association.
DetailedStatus *string
// The status of the association. Status can be: Pending, Success, or Failed.
Status *string
}
// Describes an association status.
type AssociationStatus struct {
// The date when the status changed.
//
// This member is required.
Date *time.Time
// The reason for the status.
//
// This member is required.
Message *string
// The status.
//
// This member is required.
Name AssociationStatusName
// A user-defined string.
AdditionalInfo *string
}
// Information about the association version.
type AssociationVersionInfo struct {
// By default, when you create a new associations, the system runs it immediately
// after it is created and then according to the schedule you specified. Specify
// this option if you don't want an association to run immediately after you create
// it.
ApplyOnlyAtCronInterval *bool
// The ID created by the system when the association was created.
AssociationId *string
// The name specified for the association version when the association version was
// created.
AssociationName *string
// The association version.
AssociationVersion *string
// The severity level that is assigned to the association.
ComplianceSeverity AssociationComplianceSeverity
// The date the association version was created.
CreatedDate *time.Time
// The version of a Systems Manager document used when the association version was
// created.
DocumentVersion *string
// The maximum number of targets allowed to run the association at the same time.
// You can specify a number, for example 10, or a percentage of the target set, for
// example 10%. The default value is 100%, which means all targets run the
// association at the same time. If a new instance starts and attempts to run an
// association while Systems Manager is running MaxConcurrency associations, the
// association is allowed to run. During the next association interval, the new
// instance will process its association within the limit specified for
// MaxConcurrency.
MaxConcurrency *string
// The number of errors that are allowed before the system stops sending requests
// to run the association on additional targets. You can specify either an absolute
// number of errors, for example 10, or a percentage of the target set, for example
// 10%. If you specify 3, for example, the system stops sending requests when the
// fourth error is received. If you specify 0, then the system stops sending
// requests after the first error is returned. If you run an association on 50
// instances and set MaxError to 10%, then the system stops sending the request
// when the sixth error is received. Executions that are already running an
// association when MaxErrors is reached are allowed to complete, but some of these
// executions may fail as well. If you need to ensure that there won't be more than
// max-errors failed executions, set MaxConcurrency to 1 so that executions proceed
// one at a time.
MaxErrors *string
// The name specified when the association was created.
Name *string
// The location in Amazon S3 specified for the association when the association
// version was created.
OutputLocation *InstanceAssociationOutputLocation
// Parameters specified when the association version was created.
Parameters map[string][]*string
// The cron or rate schedule specified for the association when the association
// version was created.
ScheduleExpression *string
// The mode for generating association compliance. You can specify AUTO or MANUAL.
// In AUTO mode, the system uses the status of the association execution to
// determine the compliance status. If the association execution runs successfully,
// then the association is COMPLIANT. If the association execution doesn't run
// successfully, the association is NON-COMPLIANT. In MANUAL mode, you must specify
// the AssociationId as a parameter for the PutComplianceItems API action. In this
// case, compliance data is not managed by State Manager. It is managed by your
// direct call to the PutComplianceItems API action. By default, all associations
// use AUTO mode.
SyncCompliance AssociationSyncCompliance
// The targets specified for the association when the association version was
// created.
Targets []*Target
}
// A structure that includes attributes that describe a document attachment.
type AttachmentContent struct {
// The cryptographic hash value of the document content.
Hash *string
// The hash algorithm used to calculate the hash value.
HashType AttachmentHashType
// The name of an attachment.
Name *string
// The size of an attachment in bytes.
Size *int64
// The URL location of the attachment content.
Url *string
}
// An attribute of an attachment, such as the attachment name.
type AttachmentInformation struct {
// The name of the attachment.
Name *string
}
// Identifying information about a document attachment, including the file name and
// a key-value pair that identifies the location of an attachment to a document.
type AttachmentsSource struct {
// The key of a key-value pair that identifies the location of an attachment to a
// document.
Key AttachmentsSourceKey
// The name of the document attachment file.
Name *string
// The value of a key-value pair that identifies the location of an attachment to a
// document. The format for Value depends on the type of key you specify.
//
// *
// For the key SourceUrl, the value is an S3 bucket location. For example:
// "Values": [ "s3://my-bucket/my-folder" ]
//
// * For the key S3FileUrl, the value
// is a file in an S3 bucket. For example: "Values": [
// "s3://my-bucket/my-folder/my-file.py" ]
//
// * For the key AttachmentReference,
// the value is constructed from the name of another SSM document in your account,
// a version number of that document, and a file attached to that document version
// that you want to reuse. For example: "Values": [
// "MyOtherDocument/3/my-other-file.py" ] However, if the SSM document is shared
// with you from another account, the full SSM document ARN must be specified
// instead of the document name only. For example: "Values": [
// "arn:aws:ssm:us-east-2:111122223333:document/OtherAccountDocument/3/their-file.py"
// ]
Values []*string
}
// Detailed information about the current state of an individual Automation
// execution.
type AutomationExecution struct {
// The execution ID.
AutomationExecutionId *string
// The execution status of the Automation.
AutomationExecutionStatus AutomationExecutionStatus
// The action of the step that is currently running.
CurrentAction *string
// The name of the step that is currently running.
CurrentStepName *string
// The name of the Automation document used during the execution.
DocumentName *string
// The version of the document to use during execution.
DocumentVersion *string
// The Amazon Resource Name (ARN) of the user who ran the automation.
ExecutedBy *string
// The time the execution finished.
ExecutionEndTime *time.Time
// The time the execution started.
ExecutionStartTime *time.Time
// A message describing why an execution has failed, if the status is set to
// Failed.
FailureMessage *string
// The MaxConcurrency value specified by the user when the execution started.
MaxConcurrency *string
// The MaxErrors value specified by the user when the execution started.
MaxErrors *string
// The automation execution mode.
Mode ExecutionMode
// The list of execution outputs as defined in the automation document.
Outputs map[string][]*string
// The key-value map of execution parameters, which were supplied when calling
// StartAutomationExecution.
Parameters map[string][]*string
// The AutomationExecutionId of the parent automation.
ParentAutomationExecutionId *string
// An aggregate of step execution statuses displayed in the AWS Console for a
// multi-Region and multi-account Automation execution.
ProgressCounters *ProgressCounters
// A list of resolved targets in the rate control execution.
ResolvedTargets *ResolvedTargets
// A list of details about the current state of all steps that comprise an
// execution. An Automation document contains a list of steps that are run in
// order.
StepExecutions []*StepExecution
// A boolean value that indicates if the response contains the full list of the
// Automation step executions. If true, use the DescribeAutomationStepExecutions
// API action to get the full list of step executions.
StepExecutionsTruncated *bool
// The target of the execution.
Target *string
// The combination of AWS Regions and/or AWS accounts where you want to run the
// Automation.
TargetLocations []*TargetLocation
// The specified key-value mapping of document parameters to target resources.
TargetMaps []map[string][]*string
// The parameter name.
TargetParameterName *string
// The specified targets.
Targets []*Target
}
// A filter used to match specific automation executions. This is used to limit the
// scope of Automation execution information returned.
type AutomationExecutionFilter struct {
// One or more keys to limit the results. Valid filter keys include the following:
// DocumentNamePrefix, ExecutionStatus, ExecutionId, ParentExecutionId,
// CurrentAction, StartTimeBefore, StartTimeAfter.
//
// This member is required.
Key AutomationExecutionFilterKey
// The values used to limit the execution information associated with the filter's
// key.
//
// This member is required.
Values []*string
}
// Details about a specific Automation execution.
type AutomationExecutionMetadata struct {
// The execution ID.
AutomationExecutionId *string
// The status of the execution.
AutomationExecutionStatus AutomationExecutionStatus
// Use this filter with DescribeAutomationExecutions. Specify either Local or
// CrossAccount. CrossAccount is an Automation that runs in multiple AWS Regions
// and accounts. For more information, see Running Automation workflows in multiple
// AWS Regions and accounts
// (https://docs.aws.amazon.com/systems-manager/latest/userguide/systems-manager-automation-multiple-accounts-and-regions.html)
// in the AWS Systems Manager User Guide.
AutomationType AutomationType
// The action of the step that is currently running.
CurrentAction *string
// The name of the step that is currently running.
CurrentStepName *string
// The name of the Automation document used during execution.
DocumentName *string
// The document version used during the execution.
DocumentVersion *string
// The IAM role ARN of the user who ran the Automation.
ExecutedBy *string
// The time the execution finished. This is not populated if the execution is still
// in progress.
ExecutionEndTime *time.Time
// The time the execution started.
ExecutionStartTime *time.Time
// The list of execution outputs as defined in the Automation document.
FailureMessage *string
// An S3 bucket where execution information is stored.
LogFile *string
// The MaxConcurrency value specified by the user when starting the Automation.
MaxConcurrency *string
// The MaxErrors value specified by the user when starting the Automation.
MaxErrors *string
// The Automation execution mode.
Mode ExecutionMode
// The list of execution outputs as defined in the Automation document.
Outputs map[string][]*string
// The ExecutionId of the parent Automation.
ParentAutomationExecutionId *string
// A list of targets that resolved during the execution.
ResolvedTargets *ResolvedTargets
// The list of execution outputs as defined in the Automation document.
Target *string
// The specified key-value mapping of document parameters to target resources.
TargetMaps []map[string][]*string
// The list of execution outputs as defined in the Automation document.
TargetParameterName *string
// The targets defined by the user when starting the Automation.
Targets []*Target
}
// Configuration options for sending command output to CloudWatch Logs.
type CloudWatchOutputConfig struct {
// The name of the CloudWatch log group where you want to send command output. If
// you don't specify a group name, Systems Manager automatically creates a log
// group for you. The log group uses the following naming format:
// aws/ssm/SystemsManagerDocumentName.
CloudWatchLogGroupName *string
// Enables Systems Manager to send command output to CloudWatch Logs.
CloudWatchOutputEnabled *bool
}
// Describes a command request.
type Command struct {
// CloudWatch Logs information where you want Systems Manager to send the command
// output.
CloudWatchOutputConfig *CloudWatchOutputConfig
// A unique identifier for this command.
CommandId *string
// User-specified information about the command, such as a brief description of
// what the command should do.
Comment *string
// The number of targets for which the command invocation reached a terminal state.
// Terminal states include the following: Success, Failed, Execution Timed Out,
// Delivery Timed Out, Canceled, Terminated, or Undeliverable.
CompletedCount *int32
// The number of targets for which the status is Delivery Timed Out.
DeliveryTimedOutCount *int32
// The name of the document requested for execution.
DocumentName *string
// The SSM document version.
DocumentVersion *string
// The number of targets for which the status is Failed or Execution Timed Out.
ErrorCount *int32
// If this time is reached and the command has not already started running, it will
// not run. Calculated based on the ExpiresAfter user input provided as part of the
// SendCommand API.
ExpiresAfter *time.Time
// The instance IDs against which this command was requested.
InstanceIds []*string
// The maximum number of instances that are allowed to run the command at the same
// time. You can specify a number of instances, such as 10, or a percentage of
// instances, such as 10%. The default value is 50. For more information about how
// to use MaxConcurrency, see Running commands using Systems Manager Run Command
// (https://docs.aws.amazon.com/systems-manager/latest/userguide/run-command.html)
// in the AWS Systems Manager User Guide.
MaxConcurrency *string
// The maximum number of errors allowed before the system stops sending the command
// to additional targets. You can specify a number of errors, such as 10, or a
// percentage or errors, such as 10%. The default value is 0. For more information
// about how to use MaxErrors, see Running commands using Systems Manager Run
// Command
// (https://docs.aws.amazon.com/systems-manager/latest/userguide/run-command.html)
// in the AWS Systems Manager User Guide.
MaxErrors *string
// Configurations for sending notifications about command status changes.
NotificationConfig *NotificationConfig
// The S3 bucket where the responses to the command executions should be stored.
// This was requested when issuing the command.
OutputS3BucketName *string
// The S3 directory path inside the bucket where the responses to the command
// executions should be stored. This was requested when issuing the command.
OutputS3KeyPrefix *string
// (Deprecated) You can no longer specify this parameter. The system ignores it.
// Instead, Systems Manager automatically determines the Region of the S3 bucket.
OutputS3Region *string
// The parameter values to be inserted in the document when running the command.
Parameters map[string][]*string
// The date and time the command was requested.
RequestedDateTime *time.Time
// The IAM service role that Run Command uses to act on your behalf when sending
// notifications about command status changes.
ServiceRole *string
// The status of the command.
Status CommandStatus
// A detailed status of the command execution. StatusDetails includes more
// information than Status because it includes states resulting from error and
// concurrency control parameters. StatusDetails can show different results than
// Status. For more information about these statuses, see Understanding command
// statuses
// (https://docs.aws.amazon.com/systems-manager/latest/userguide/monitor-commands.html)
// in the AWS Systems Manager User Guide. StatusDetails can be one of the following
// values:
//
// * Pending: The command has not been sent to any instances.
//
// *
// In Progress: The command has been sent to at least one instance but has not
// reached a final state on all instances.
//
// * Success: The command successfully
// ran on all invocations. This is a terminal state.
//
// * Delivery Timed Out: The
// value of MaxErrors or more command invocations shows a status of Delivery Timed
// Out. This is a terminal state.
//
// * Execution Timed Out: The value of
// MaxErrors or more command invocations shows a status of Execution Timed Out.
// This is a terminal state.
//
// * Failed: The value of MaxErrors or more command
// invocations shows a status of Failed. This is a terminal state.
//
// *
// Incomplete: The command was attempted on all instances and one or more
// invocations does not have a value of Success but not enough invocations failed
// for the status to be Failed. This is a terminal state.
//
// * Canceled: The
// command was terminated before it was completed. This is a terminal state.
//
// *
// Rate Exceeded: The number of instances targeted by the command exceeded the
// account limit for pending invocations. The system has canceled the command
// before running it on any instance. This is a terminal state.
StatusDetails *string
// The number of targets for the command.
TargetCount *int32
// An array of search criteria that targets instances using a Key,Value combination
// that you specify. Targets is required if you don't provide one or more instance
// IDs in the call.
Targets []*Target
// The TimeoutSeconds value specified for a command.
TimeoutSeconds *int32
}
// Describes a command filter. An instance ID can't be specified when a command
// status is Pending because the command hasn't run on the instance yet.
type CommandFilter struct {
// The name of the filter.
//
// This member is required.
Key CommandFilterKey
// The filter value. Valid values for each filter key are as follows:
//
// *
// InvokedAfter: Specify a timestamp to limit your results. For example, specify
// 2018-07-07T00:00:00Z to see a list of command executions occurring July 7, 2018,
// and later.
//
// * InvokedBefore: Specify a timestamp to limit your results. For
// example, specify 2018-07-07T00:00:00Z to see a list of command executions from
// before July 7, 2018.
//
// * Status: Specify a valid command status to see a list
// of all command executions with that status. Status values you can specify
// include:
//
// * Pending
//
// * InProgress
//
// * Success
//
// *
// Cancelled
//
// * Failed
//
// * TimedOut
//
// * Cancelling
//
// *
// DocumentName: Specify name of the SSM document for which you want to see command
// execution results. For example, specify AWS-RunPatchBaseline to see command
// executions that used this SSM document to perform security patching operations
// on instances.
//
// * ExecutionStage: Specify one of the following values:
//
//
// * Executing: Returns a list of command executions that are currently still
// running.
//
// * Complete: Returns a list of command executions that have
// already completed.
//
// This member is required.
Value *string
}
// An invocation is copy of a command sent to a specific instance. A command can
// apply to one or more instances. A command invocation applies to one instance.
// For example, if a user runs SendCommand against three instances, then a command
// invocation is created for each requested instance ID. A command invocation
// returns status and detail information about a command you ran.
type CommandInvocation struct {
// CloudWatch Logs information where you want Systems Manager to send the command
// output.
CloudWatchOutputConfig *CloudWatchOutputConfig
// The command against which this invocation was requested.
CommandId *string
CommandPlugins []*CommandPlugin
// User-specified information about the command, such as a brief description of
// what the command should do.
Comment *string
// The document name that was requested for execution.
DocumentName *string
// The SSM document version.
DocumentVersion *string
// The instance ID in which this invocation was requested.
InstanceId *string
// The name of the invocation target. For EC2 instances this is the value for the
// aws:Name tag. For on-premises instances, this is the name of the instance.
InstanceName *string
// Configurations for sending notifications about command status changes on a per
// instance basis.
NotificationConfig *NotificationConfig
// The time and date the request was sent to this instance.
RequestedDateTime *time.Time
// The IAM service role that Run Command uses to act on your behalf when sending
// notifications about command status changes on a per instance basis.
ServiceRole *string
// The URL to the plugin's StdErr file in Amazon S3, if the S3 bucket was defined
// for the parent command. For an invocation, StandardErrorUrl is populated if
// there is just one plugin defined for the command, and the S3 bucket was defined
// for the command.
StandardErrorUrl *string
// The URL to the plugin's StdOut file in Amazon S3, if the S3 bucket was defined
// for the parent command. For an invocation, StandardOutputUrl is populated if
// there is just one plugin defined for the command, and the S3 bucket was defined
// for the command.
StandardOutputUrl *string
// Whether or not the invocation succeeded, failed, or is pending.
Status CommandInvocationStatus
// A detailed status of the command execution for each invocation (each instance
// targeted by the command). StatusDetails includes more information than Status
// because it includes states resulting from error and concurrency control
// parameters. StatusDetails can show different results than Status. For more
// information about these statuses, see Understanding command statuses
// (https://docs.aws.amazon.com/systems-manager/latest/userguide/monitor-commands.html)
// in the AWS Systems Manager User Guide. StatusDetails can be one of the following
// values:
//
// * Pending: The command has not been sent to the instance.
//
// * In
// Progress: The command has been sent to the instance but has not reached a
// terminal state.
//
// * Success: The execution of the command or plugin was
// successfully completed. This is a terminal state.
//
// * Delivery Timed Out: The
// command was not delivered to the instance before the delivery timeout expired.
// Delivery timeouts do not count against the parent command's MaxErrors limit, but
// they do contribute to whether the parent command status is Success or
// Incomplete. This is a terminal state.
//
// * Execution Timed Out: Command
// execution started on the instance, but the execution was not complete before the
// execution timeout expired. Execution timeouts count against the MaxErrors limit
// of the parent command. This is a terminal state.
//
// * Failed: The command was
// not successful on the instance. For a plugin, this indicates that the result
// code was not zero. For a command invocation, this indicates that the result code
// for one or more plugins was not zero. Invocation failures count against the
// MaxErrors limit of the parent command. This is a terminal state.
//
// *
// Canceled: The command was terminated before it was completed. This is a terminal
// state.
//
// * Undeliverable: The command can't be delivered to the instance. The
// instance might not exist or might not be responding. Undeliverable invocations
// don't count against the parent command's MaxErrors limit and don't contribute to
// whether the parent command status is Success or Incomplete. This is a terminal
// state.
//
// * Terminated: The parent command exceeded its MaxErrors limit and
// subsequent command invocations were canceled by the system. This is a terminal
// state.
StatusDetails *string
// Gets the trace output sent by the agent.
TraceOutput *string
}
// Describes plugin details.
type CommandPlugin struct {
// The name of the plugin. Must be one of the following: aws:updateAgent,
// aws:domainjoin, aws:applications, aws:runPowerShellScript, aws:psmodule,
// aws:cloudWatch, aws:runShellScript, or aws:updateSSMAgent.
Name *string
// Output of the plugin execution.
Output *string
// The S3 bucket where the responses to the command executions should be stored.
// This was requested when issuing the command. For example, in the following
// response:
// test_folder/ab19cb99-a030-46dd-9dfc-8eSAMPLEPre-Fix/i-1234567876543/awsrunShellScript
// test_folder is the name of the S3 bucket;