aws-sdk-configservice 1.0.0.rc2 → 1.0.0.rc3

Sign up to get free protection for your applications and to get access to all the features.
@@ -1,23 +1,14 @@
1
1
  # WARNING ABOUT GENERATED CODE
2
2
  #
3
- # This file is generated. See the contributing for info on making contributions:
3
+ # This file is generated. See the contributing guide for more information:
4
4
  # https://github.com/aws/aws-sdk-ruby/blob/master/CONTRIBUTING.md
5
5
  #
6
6
  # WARNING ABOUT GENERATED CODE
7
7
 
8
- module Aws
9
- module ConfigService
10
- module Errors
8
+ module Aws::ConfigService
9
+ module Errors
11
10
 
12
- extend Aws::Errors::DynamicErrors
11
+ extend Aws::Errors::DynamicErrors
13
12
 
14
- # Raised when calling #load or #data on a resource class that can not be
15
- # loaded. This can happen when:
16
- #
17
- # * A resource class has identifiers, but no data attributes.
18
- # * Resource data is only available when making an API call that
19
- # enumerates all resources of that type.
20
- class ResourceNotLoadable < RuntimeError; end
21
- end
22
13
  end
23
14
  end
@@ -1,25 +1,23 @@
1
1
  # WARNING ABOUT GENERATED CODE
2
2
  #
3
- # This file is generated. See the contributing for info on making contributions:
3
+ # This file is generated. See the contributing guide for more information:
4
4
  # https://github.com/aws/aws-sdk-ruby/blob/master/CONTRIBUTING.md
5
5
  #
6
6
  # WARNING ABOUT GENERATED CODE
7
7
 
8
- module Aws
9
- module ConfigService
10
- class Resource
8
+ module Aws::ConfigService
9
+ class Resource
11
10
 
12
- # @param options ({})
13
- # @option options [Client] :client
14
- def initialize(options = {})
15
- @client = options[:client] || Client.new(options)
16
- end
17
-
18
- # @return [Client]
19
- def client
20
- @client
21
- end
11
+ # @param options ({})
12
+ # @option options [Client] :client
13
+ def initialize(options = {})
14
+ @client = options[:client] || Client.new(options)
15
+ end
22
16
 
17
+ # @return [Client]
18
+ def client
19
+ @client
23
20
  end
21
+
24
22
  end
25
23
  end
@@ -1,2130 +1,2282 @@
1
1
  # WARNING ABOUT GENERATED CODE
2
2
  #
3
- # This file is generated. See the contributing for info on making contributions:
3
+ # This file is generated. See the contributing guide for more information:
4
4
  # https://github.com/aws/aws-sdk-ruby/blob/master/CONTRIBUTING.md
5
5
  #
6
6
  # WARNING ABOUT GENERATED CODE
7
7
 
8
- module Aws
9
- module ConfigService
10
- module Types
11
-
12
- # Indicates whether an AWS resource or AWS Config rule is compliant and
13
- # provides the number of contributors that affect the compliance.
14
- # @!attribute [rw] compliance_type
15
- # Indicates whether an AWS resource or AWS Config rule is compliant.
16
- #
17
- # A resource is compliant if it complies with all of the AWS Config
18
- # rules that evaluate it, and it is noncompliant if it does not comply
19
- # with one or more of these rules.
20
- #
21
- # A rule is compliant if all of the resources that the rule evaluates
22
- # comply with it, and it is noncompliant if any of these resources do
23
- # not comply.
24
- #
25
- # AWS Config returns the `INSUFFICIENT_DATA` value when no evaluation
26
- # results are available for the AWS resource or Config rule.
27
- #
28
- # For the `Compliance` data type, AWS Config supports only
29
- # `COMPLIANT`, `NON_COMPLIANT`, and `INSUFFICIENT_DATA` values. AWS
30
- # Config does not support the `NOT_APPLICABLE` value for the
31
- # `Compliance` data type.
32
- # @return [String]
33
- #
34
- # @!attribute [rw] compliance_contributor_count
35
- # The number of AWS resources or AWS Config rules that cause a result
36
- # of `NON_COMPLIANT`, up to a maximum number.
37
- # @return [Types::ComplianceContributorCount]
38
- class Compliance < Struct.new(
39
- :compliance_type,
40
- :compliance_contributor_count)
41
- include Aws::Structure
42
- end
43
-
44
- # Indicates whether an AWS Config rule is compliant. A rule is compliant
45
- # if all of the resources that the rule evaluated comply with it, and it
46
- # is noncompliant if any of these resources do not comply.
47
- # @!attribute [rw] config_rule_name
48
- # The name of the AWS Config rule.
49
- # @return [String]
50
- #
51
- # @!attribute [rw] compliance
52
- # Indicates whether the AWS Config rule is compliant.
53
- # @return [Types::Compliance]
54
- class ComplianceByConfigRule < Struct.new(
55
- :config_rule_name,
56
- :compliance)
57
- include Aws::Structure
58
- end
59
-
60
- # Indicates whether an AWS resource that is evaluated according to one
61
- # or more AWS Config rules is compliant. A resource is compliant if it
62
- # complies with all of the rules that evaluate it, and it is
63
- # noncompliant if it does not comply with one or more of these rules.
64
- # @!attribute [rw] resource_type
65
- # The type of the AWS resource that was evaluated.
66
- # @return [String]
67
- #
68
- # @!attribute [rw] resource_id
69
- # The ID of the AWS resource that was evaluated.
70
- # @return [String]
71
- #
72
- # @!attribute [rw] compliance
73
- # Indicates whether the AWS resource complies with all of the AWS
74
- # Config rules that evaluated it.
75
- # @return [Types::Compliance]
76
- class ComplianceByResource < Struct.new(
77
- :resource_type,
78
- :resource_id,
79
- :compliance)
80
- include Aws::Structure
81
- end
82
-
83
- # The number of AWS resources or AWS Config rules responsible for the
84
- # current compliance of the item, up to a maximum number.
85
- # @!attribute [rw] capped_count
86
- # The number of AWS resources or AWS Config rules responsible for the
87
- # current compliance of the item.
88
- # @return [Integer]
89
- #
90
- # @!attribute [rw] cap_exceeded
91
- # Indicates whether the maximum count is reached.
92
- # @return [Boolean]
93
- class ComplianceContributorCount < Struct.new(
94
- :capped_count,
95
- :cap_exceeded)
96
- include Aws::Structure
97
- end
98
-
99
- # The number of AWS Config rules or AWS resources that are compliant and
100
- # noncompliant.
101
- # @!attribute [rw] compliant_resource_count
102
- # The number of AWS Config rules or AWS resources that are compliant,
103
- # up to a maximum of 25 for rules and 100 for resources.
104
- # @return [Types::ComplianceContributorCount]
105
- #
106
- # @!attribute [rw] non_compliant_resource_count
107
- # The number of AWS Config rules or AWS resources that are
108
- # noncompliant, up to a maximum of 25 for rules and 100 for resources.
109
- # @return [Types::ComplianceContributorCount]
110
- #
111
- # @!attribute [rw] compliance_summary_timestamp
112
- # The time that AWS Config created the compliance summary.
113
- # @return [Time]
114
- class ComplianceSummary < Struct.new(
115
- :compliant_resource_count,
116
- :non_compliant_resource_count,
117
- :compliance_summary_timestamp)
118
- include Aws::Structure
119
- end
120
-
121
- # The number of AWS resources of a specific type that are compliant or
122
- # noncompliant, up to a maximum of 100 for each compliance.
123
- # @!attribute [rw] resource_type
124
- # The type of AWS resource.
125
- # @return [String]
126
- #
127
- # @!attribute [rw] compliance_summary
128
- # The number of AWS resources that are compliant or noncompliant, up
129
- # to a maximum of 100 for each compliance.
130
- # @return [Types::ComplianceSummary]
131
- class ComplianceSummaryByResourceType < Struct.new(
132
- :resource_type,
133
- :compliance_summary)
134
- include Aws::Structure
135
- end
136
-
137
- # A list that contains the status of the delivery of either the snapshot
138
- # or the configuration history to the specified Amazon S3 bucket.
139
- # @!attribute [rw] last_status
140
- # Status of the last attempted delivery.
141
- # @return [String]
142
- #
143
- # @!attribute [rw] last_error_code
144
- # The error code from the last attempted delivery.
145
- # @return [String]
146
- #
147
- # @!attribute [rw] last_error_message
148
- # The error message from the last attempted delivery.
149
- # @return [String]
150
- #
151
- # @!attribute [rw] last_attempt_time
152
- # The time of the last attempted delivery.
153
- # @return [Time]
154
- #
155
- # @!attribute [rw] last_successful_time
156
- # The time of the last successful delivery.
157
- # @return [Time]
158
- #
159
- # @!attribute [rw] next_delivery_time
160
- # The time that the next delivery occurs.
161
- # @return [Time]
162
- class ConfigExportDeliveryInfo < Struct.new(
163
- :last_status,
164
- :last_error_code,
165
- :last_error_message,
166
- :last_attempt_time,
167
- :last_successful_time,
168
- :next_delivery_time)
169
- include Aws::Structure
170
- end
171
-
172
- # An AWS Config rule represents an AWS Lambda function that you create
173
- # for a custom rule or a predefined function for an AWS managed rule.
174
- # The function evaluates configuration items to assess whether your AWS
175
- # resources comply with your desired configurations. This function can
176
- # run when AWS Config detects a configuration change to an AWS resource
177
- # and at a periodic frequency that you choose (for example, every 24
178
- # hours).
179
- #
180
- # <note markdown="1"> You can use the AWS CLI and AWS SDKs if you want to create a rule that
181
- # triggers evaluations for your resources when AWS Config delivers the
182
- # configuration snapshot. For more information, see
183
- # ConfigSnapshotDeliveryProperties.
184
- #
185
- # </note>
186
- #
187
- # For more information about developing and using AWS Config rules, see
188
- # [Evaluating AWS Resource Configurations with AWS Config][1] in the
189
- # *AWS Config Developer Guide*.
190
- #
191
- #
192
- #
193
- # [1]: http://docs.aws.amazon.com/config/latest/developerguide/evaluate-config.html
194
- # @note When making an API call, pass ConfigRule
195
- # data as a hash:
196
- #
197
- # {
198
- # config_rule_name: "StringWithCharLimit64",
199
- # config_rule_arn: "String",
200
- # config_rule_id: "String",
201
- # description: "EmptiableStringWithCharLimit256",
202
- # scope: {
203
- # compliance_resource_types: ["StringWithCharLimit256"],
204
- # tag_key: "StringWithCharLimit128",
205
- # tag_value: "StringWithCharLimit256",
206
- # compliance_resource_id: "StringWithCharLimit256",
207
- # },
208
- # source: { # required
209
- # owner: "CUSTOM_LAMBDA", # required, accepts CUSTOM_LAMBDA, AWS
210
- # source_identifier: "StringWithCharLimit256", # required
211
- # source_details: [
212
- # {
213
- # event_source: "aws.config", # accepts aws.config
214
- # message_type: "ConfigurationItemChangeNotification", # accepts ConfigurationItemChangeNotification, ConfigurationSnapshotDeliveryCompleted, ScheduledNotification
215
- # maximum_execution_frequency: "One_Hour", # accepts One_Hour, Three_Hours, Six_Hours, Twelve_Hours, TwentyFour_Hours
216
- # },
217
- # ],
218
- # },
219
- # input_parameters: "StringWithCharLimit1024",
220
- # maximum_execution_frequency: "One_Hour", # accepts One_Hour, Three_Hours, Six_Hours, Twelve_Hours, TwentyFour_Hours
221
- # config_rule_state: "ACTIVE", # accepts ACTIVE, DELETING, DELETING_RESULTS, EVALUATING
222
- # }
223
- # @!attribute [rw] config_rule_name
224
- # The name that you assign to the AWS Config rule. The name is
225
- # required if you are adding a new rule.
226
- # @return [String]
227
- #
228
- # @!attribute [rw] config_rule_arn
229
- # The Amazon Resource Name (ARN) of the AWS Config rule.
230
- # @return [String]
231
- #
232
- # @!attribute [rw] config_rule_id
233
- # The ID of the AWS Config rule.
234
- # @return [String]
235
- #
236
- # @!attribute [rw] description
237
- # The description that you provide for the AWS Config rule.
238
- # @return [String]
239
- #
240
- # @!attribute [rw] scope
241
- # Defines which resources can trigger an evaluation for the rule. The
242
- # scope can include one or more resource types, a combination of one
243
- # resource type and one resource ID, or a combination of a tag key and
244
- # value. Specify a scope to constrain the resources that can trigger
245
- # an evaluation for the rule. If you do not specify a scope,
246
- # evaluations are triggered when any resource in the recording group
247
- # changes.
248
- # @return [Types::Scope]
249
- #
250
- # @!attribute [rw] source
251
- # Provides the rule owner (AWS or customer), the rule identifier, and
252
- # the notifications that cause the function to evaluate your AWS
253
- # resources.
254
- # @return [Types::Source]
255
- #
256
- # @!attribute [rw] input_parameters
257
- # A string in JSON format that is passed to the AWS Config rule Lambda
258
- # function.
259
- # @return [String]
260
- #
261
- # @!attribute [rw] maximum_execution_frequency
262
- # The maximum frequency with which AWS Config runs evaluations for a
263
- # rule. You can specify a value for `MaximumExecutionFrequency` when:
264
- #
265
- # * You are using an AWS managed rule that is triggered at a periodic
266
- # frequency.
267
- #
268
- # * Your custom rule is triggered when AWS Config delivers the
269
- # configuration snapshot.
270
- #
271
- # For more information, see ConfigSnapshotDeliveryProperties.
272
- # @return [String]
273
- #
274
- # @!attribute [rw] config_rule_state
275
- # Indicates whether the AWS Config rule is active or is currently
276
- # being deleted by AWS Config. It can also indicate the evaluation
277
- # status for the Config rule.
278
- #
279
- # AWS Config sets the state of the rule to `EVALUATING` temporarily
280
- # after you use the `StartConfigRulesEvaluation` request to evaluate
281
- # your resources against the Config rule.
282
- #
283
- # AWS Config sets the state of the rule to `DELETING_RESULTS`
284
- # temporarily after you use the `DeleteEvaluationResults` request to
285
- # delete the current evaluation results for the Config rule.
286
- #
287
- # AWS Config sets the state of a rule to `DELETING` temporarily after
288
- # you use the `DeleteConfigRule` request to delete the rule. After AWS
289
- # Config deletes the rule, the rule and all of its evaluations are
290
- # erased and are no longer available.
291
- # @return [String]
292
- class ConfigRule < Struct.new(
293
- :config_rule_name,
294
- :config_rule_arn,
295
- :config_rule_id,
296
- :description,
297
- :scope,
298
- :source,
299
- :input_parameters,
300
- :maximum_execution_frequency,
301
- :config_rule_state)
302
- include Aws::Structure
303
- end
304
-
305
- # Status information for your AWS managed Config rules. The status
306
- # includes information such as the last time the rule ran, the last time
307
- # it failed, and the related error for the last failure.
308
- #
309
- # This action does not return status information about custom Config
310
- # rules.
311
- # @!attribute [rw] config_rule_name
312
- # The name of the AWS Config rule.
313
- # @return [String]
314
- #
315
- # @!attribute [rw] config_rule_arn
316
- # The Amazon Resource Name (ARN) of the AWS Config rule.
317
- # @return [String]
318
- #
319
- # @!attribute [rw] config_rule_id
320
- # The ID of the AWS Config rule.
321
- # @return [String]
322
- #
323
- # @!attribute [rw] last_successful_invocation_time
324
- # The time that AWS Config last successfully invoked the AWS Config
325
- # rule to evaluate your AWS resources.
326
- # @return [Time]
327
- #
328
- # @!attribute [rw] last_failed_invocation_time
329
- # The time that AWS Config last failed to invoke the AWS Config rule
330
- # to evaluate your AWS resources.
331
- # @return [Time]
332
- #
333
- # @!attribute [rw] last_successful_evaluation_time
334
- # The time that AWS Config last successfully evaluated your AWS
335
- # resources against the rule.
336
- # @return [Time]
337
- #
338
- # @!attribute [rw] last_failed_evaluation_time
339
- # The time that AWS Config last failed to evaluate your AWS resources
340
- # against the rule.
341
- # @return [Time]
342
- #
343
- # @!attribute [rw] first_activated_time
344
- # The time that you first activated the AWS Config rule.
345
- # @return [Time]
346
- #
347
- # @!attribute [rw] last_error_code
348
- # The error code that AWS Config returned when the rule last failed.
349
- # @return [String]
350
- #
351
- # @!attribute [rw] last_error_message
352
- # The error message that AWS Config returned when the rule last
353
- # failed.
354
- # @return [String]
355
- #
356
- # @!attribute [rw] first_evaluation_started
357
- # Indicates whether AWS Config has evaluated your resources against
358
- # the rule at least once.
359
- #
360
- # * `true` - AWS Config has evaluated your AWS resources against the
361
- # rule at least once.
362
- #
363
- # * `false` - AWS Config has not once finished evaluating your AWS
364
- # resources against the rule.
365
- # @return [Boolean]
366
- class ConfigRuleEvaluationStatus < Struct.new(
367
- :config_rule_name,
368
- :config_rule_arn,
369
- :config_rule_id,
370
- :last_successful_invocation_time,
371
- :last_failed_invocation_time,
372
- :last_successful_evaluation_time,
373
- :last_failed_evaluation_time,
374
- :first_activated_time,
375
- :last_error_code,
376
- :last_error_message,
377
- :first_evaluation_started)
378
- include Aws::Structure
379
- end
380
-
381
- # Provides options for how often AWS Config delivers configuration
382
- # snapshots to the Amazon S3 bucket in your delivery channel.
383
- #
384
- # <note markdown="1"> If you want to create a rule that triggers evaluations for your
385
- # resources when AWS Config delivers the configuration snapshot, see the
386
- # following:
387
- #
388
- # </note>
389
- #
390
- # The frequency for a rule that triggers evaluations for your resources
391
- # when AWS Config delivers the configuration snapshot is set by one of
392
- # two values, depending on which is less frequent:
393
- #
394
- # * The value for the `deliveryFrequency` parameter within the delivery
395
- # channel configuration, which sets how often AWS Config delivers
396
- # configuration snapshots. This value also sets how often AWS Config
397
- # invokes evaluations for Config rules.
398
- #
399
- # * The value for the `MaximumExecutionFrequency` parameter, which sets
400
- # the maximum frequency with which AWS Config invokes evaluations for
401
- # the rule. For more information, see ConfigRule.
402
- #
403
- # If the `deliveryFrequency` value is less frequent than the
404
- # `MaximumExecutionFrequency` value for a rule, AWS Config invokes the
405
- # rule only as often as the `deliveryFrequency` value.
406
- #
407
- # 1. For example, you want your rule to run evaluations when AWS Config
408
- # delivers the configuration snapshot.
409
- #
410
- # 2. You specify the `MaximumExecutionFrequency` value for `Six_Hours`.
411
- #
412
- # 3. You then specify the delivery channel `deliveryFrequency` value
413
- # for `TwentyFour_Hours`.
414
- #
415
- # 4. Because the value for `deliveryFrequency` is less frequent than
416
- # `MaximumExecutionFrequency`, AWS Config invokes evaluations for
417
- # the rule every 24 hours.
418
- #
419
- # You should set the `MaximumExecutionFrequency` value to be at least as
420
- # frequent as the `deliveryFrequency` value. You can view the
421
- # `deliveryFrequency` value by using the `DescribeDeliveryChannnels`
422
- # action.
423
- #
424
- # To update the `deliveryFrequency` with which AWS Config delivers your
425
- # configuration snapshots, use the `PutDeliveryChannel` action.
426
- # @note When making an API call, pass ConfigSnapshotDeliveryProperties
427
- # data as a hash:
428
- #
429
- # {
430
- # delivery_frequency: "One_Hour", # accepts One_Hour, Three_Hours, Six_Hours, Twelve_Hours, TwentyFour_Hours
431
- # }
432
- # @!attribute [rw] delivery_frequency
433
- # The frequency with which AWS Config delivers configuration
434
- # snapshots.
435
- # @return [String]
436
- class ConfigSnapshotDeliveryProperties < Struct.new(
437
- :delivery_frequency)
438
- include Aws::Structure
439
- end
440
-
441
- # A list that contains the status of the delivery of the configuration
442
- # stream notification to the Amazon SNS topic.
443
- # @!attribute [rw] last_status
444
- # Status of the last attempted delivery.
445
- #
446
- # **Note** Providing an SNS topic on a [DeliveryChannel][1] for AWS
447
- # Config is optional. If the SNS delivery is turned off, the last
448
- # status will be **Not\_Applicable**.
449
- #
450
- #
451
- #
452
- # [1]: http://docs.aws.amazon.com/config/latest/APIReference/API_DeliveryChannel.html
453
- # @return [String]
454
- #
455
- # @!attribute [rw] last_error_code
456
- # The error code from the last attempted delivery.
457
- # @return [String]
458
- #
459
- # @!attribute [rw] last_error_message
460
- # The error message from the last attempted delivery.
461
- # @return [String]
462
- #
463
- # @!attribute [rw] last_status_change_time
464
- # The time from the last status change.
465
- # @return [Time]
466
- class ConfigStreamDeliveryInfo < Struct.new(
467
- :last_status,
468
- :last_error_code,
469
- :last_error_message,
470
- :last_status_change_time)
471
- include Aws::Structure
472
- end
473
-
474
- # A list that contains detailed configurations of a specified resource.
475
- #
476
- # <note markdown="1"> Currently, the list does not contain information about non-AWS
477
- # components (for example, applications on your Amazon EC2 instances).
478
- #
479
- # </note>
480
- # @!attribute [rw] version
481
- # The version number of the resource configuration.
482
- # @return [String]
483
- #
484
- # @!attribute [rw] account_id
485
- # The 12 digit AWS account ID associated with the resource.
486
- # @return [String]
487
- #
488
- # @!attribute [rw] configuration_item_capture_time
489
- # The time when the configuration recording was initiated.
490
- # @return [Time]
491
- #
492
- # @!attribute [rw] configuration_item_status
493
- # The configuration item status.
494
- # @return [String]
495
- #
496
- # @!attribute [rw] configuration_state_id
497
- # An identifier that indicates the ordering of the configuration items
498
- # of a resource.
499
- # @return [String]
500
- #
501
- # @!attribute [rw] configuration_item_md5_hash
502
- # Unique MD5 hash that represents the configuration item's state.
503
- #
504
- # You can use MD5 hash to compare the states of two or more
505
- # configuration items that are associated with the same resource.
506
- # @return [String]
507
- #
508
- # @!attribute [rw] arn
509
- # The Amazon Resource Name (ARN) of the resource.
510
- # @return [String]
511
- #
512
- # @!attribute [rw] resource_type
513
- # The type of AWS resource.
514
- # @return [String]
515
- #
516
- # @!attribute [rw] resource_id
517
- # The ID of the resource (for example., `sg-xxxxxx`).
518
- # @return [String]
519
- #
520
- # @!attribute [rw] resource_name
521
- # The custom name of the resource, if available.
522
- # @return [String]
523
- #
524
- # @!attribute [rw] aws_region
525
- # The region where the resource resides.
526
- # @return [String]
527
- #
528
- # @!attribute [rw] availability_zone
529
- # The Availability Zone associated with the resource.
530
- # @return [String]
531
- #
532
- # @!attribute [rw] resource_creation_time
533
- # The time stamp when the resource was created.
534
- # @return [Time]
535
- #
536
- # @!attribute [rw] tags
537
- # A mapping of key value tags associated with the resource.
538
- # @return [Hash<String,String>]
539
- #
540
- # @!attribute [rw] related_events
541
- # A list of CloudTrail event IDs.
542
- #
543
- # A populated field indicates that the current configuration was
544
- # initiated by the events recorded in the CloudTrail log. For more
545
- # information about CloudTrail, see [What is AWS CloudTrail?][1].
546
- #
547
- # An empty field indicates that the current configuration was not
548
- # initiated by any event.
549
- #
550
- #
551
- #
552
- # [1]: http://docs.aws.amazon.com/awscloudtrail/latest/userguide/what_is_cloud_trail_top_level.html
553
- # @return [Array<String>]
554
- #
555
- # @!attribute [rw] relationships
556
- # A list of related AWS resources.
557
- # @return [Array<Types::Relationship>]
558
- #
559
- # @!attribute [rw] configuration
560
- # The description of the resource configuration.
561
- # @return [String]
562
- #
563
- # @!attribute [rw] supplementary_configuration
564
- # Configuration attributes that AWS Config returns for certain
565
- # resource types to supplement the information returned for the
566
- # `configuration` parameter.
567
- # @return [Hash<String,String>]
568
- class ConfigurationItem < Struct.new(
569
- :version,
570
- :account_id,
571
- :configuration_item_capture_time,
572
- :configuration_item_status,
573
- :configuration_state_id,
574
- :configuration_item_md5_hash,
575
- :arn,
576
- :resource_type,
577
- :resource_id,
578
- :resource_name,
579
- :aws_region,
580
- :availability_zone,
581
- :resource_creation_time,
582
- :tags,
583
- :related_events,
584
- :relationships,
585
- :configuration,
586
- :supplementary_configuration)
587
- include Aws::Structure
588
- end
589
-
590
- # An object that represents the recording of configuration changes of an
591
- # AWS resource.
592
- # @note When making an API call, pass ConfigurationRecorder
593
- # data as a hash:
594
- #
595
- # {
596
- # name: "RecorderName",
597
- # role_arn: "String",
598
- # recording_group: {
599
- # all_supported: false,
600
- # include_global_resource_types: false,
601
- # resource_types: ["AWS::EC2::CustomerGateway"], # accepts AWS::EC2::CustomerGateway, AWS::EC2::EIP, AWS::EC2::Host, AWS::EC2::Instance, AWS::EC2::InternetGateway, AWS::EC2::NetworkAcl, AWS::EC2::NetworkInterface, AWS::EC2::RouteTable, AWS::EC2::SecurityGroup, AWS::EC2::Subnet, AWS::CloudTrail::Trail, AWS::EC2::Volume, AWS::EC2::VPC, AWS::EC2::VPNConnection, AWS::EC2::VPNGateway, AWS::IAM::Group, AWS::IAM::Policy, AWS::IAM::Role, AWS::IAM::User, AWS::ACM::Certificate, AWS::RDS::DBInstance, AWS::RDS::DBSubnetGroup, AWS::RDS::DBSecurityGroup, AWS::RDS::DBSnapshot, AWS::RDS::EventSubscription, AWS::ElasticLoadBalancingV2::LoadBalancer, AWS::S3::Bucket, AWS::SSM::ManagedInstanceInventory, AWS::Redshift::Cluster, AWS::Redshift::ClusterSnapshot, AWS::Redshift::ClusterParameterGroup, AWS::Redshift::ClusterSecurityGroup, AWS::Redshift::ClusterSubnetGroup, AWS::Redshift::EventSubscription
602
- # },
603
- # }
604
- # @!attribute [rw] name
605
- # The name of the recorder. By default, AWS Config automatically
606
- # assigns the name "default" when creating the configuration
607
- # recorder. You cannot change the assigned name.
608
- # @return [String]
609
- #
610
- # @!attribute [rw] role_arn
611
- # Amazon Resource Name (ARN) of the IAM role used to describe the AWS
612
- # resources associated with the account.
613
- # @return [String]
614
- #
615
- # @!attribute [rw] recording_group
616
- # Specifies the types of AWS resource for which AWS Config records
617
- # configuration changes.
618
- # @return [Types::RecordingGroup]
619
- class ConfigurationRecorder < Struct.new(
620
- :name,
621
- :role_arn,
622
- :recording_group)
623
- include Aws::Structure
624
- end
625
-
626
- # The current status of the configuration recorder.
627
- # @!attribute [rw] name
628
- # The name of the configuration recorder.
629
- # @return [String]
630
- #
631
- # @!attribute [rw] last_start_time
632
- # The time the recorder was last started.
633
- # @return [Time]
634
- #
635
- # @!attribute [rw] last_stop_time
636
- # The time the recorder was last stopped.
637
- # @return [Time]
638
- #
639
- # @!attribute [rw] recording
640
- # Specifies whether the recorder is currently recording or not.
641
- # @return [Boolean]
642
- #
643
- # @!attribute [rw] last_status
644
- # The last (previous) status of the recorder.
645
- # @return [String]
646
- #
647
- # @!attribute [rw] last_error_code
648
- # The error code indicating that the recording failed.
649
- # @return [String]
650
- #
651
- # @!attribute [rw] last_error_message
652
- # The message indicating that the recording failed due to an error.
653
- # @return [String]
654
- #
655
- # @!attribute [rw] last_status_change_time
656
- # The time when the status was last changed.
657
- # @return [Time]
658
- class ConfigurationRecorderStatus < Struct.new(
659
- :name,
660
- :last_start_time,
661
- :last_stop_time,
662
- :recording,
663
- :last_status,
664
- :last_error_code,
665
- :last_error_message,
666
- :last_status_change_time)
667
- include Aws::Structure
668
- end
669
-
670
- # @note When making an API call, pass DeleteConfigRuleRequest
671
- # data as a hash:
672
- #
673
- # {
674
- # config_rule_name: "StringWithCharLimit64", # required
675
- # }
676
- # @!attribute [rw] config_rule_name
677
- # The name of the AWS Config rule that you want to delete.
678
- # @return [String]
679
- class DeleteConfigRuleRequest < Struct.new(
680
- :config_rule_name)
681
- include Aws::Structure
682
- end
683
-
684
- # The request object for the `DeleteConfigurationRecorder` action.
685
- # @note When making an API call, pass DeleteConfigurationRecorderRequest
686
- # data as a hash:
687
- #
688
- # {
689
- # configuration_recorder_name: "RecorderName", # required
690
- # }
691
- # @!attribute [rw] configuration_recorder_name
692
- # The name of the configuration recorder to be deleted. You can
693
- # retrieve the name of your configuration recorder by using the
694
- # `DescribeConfigurationRecorders` action.
695
- # @return [String]
696
- class DeleteConfigurationRecorderRequest < Struct.new(
697
- :configuration_recorder_name)
698
- include Aws::Structure
699
- end
700
-
701
- # The input for the DeleteDeliveryChannel action. The action accepts the
702
- # following data in JSON format.
703
- # @note When making an API call, pass DeleteDeliveryChannelRequest
704
- # data as a hash:
705
- #
706
- # {
707
- # delivery_channel_name: "ChannelName", # required
708
- # }
709
- # @!attribute [rw] delivery_channel_name
710
- # The name of the delivery channel to delete.
711
- # @return [String]
712
- class DeleteDeliveryChannelRequest < Struct.new(
713
- :delivery_channel_name)
714
- include Aws::Structure
715
- end
716
-
717
- # @note When making an API call, pass DeleteEvaluationResultsRequest
718
- # data as a hash:
719
- #
720
- # {
721
- # config_rule_name: "StringWithCharLimit64", # required
722
- # }
723
- # @!attribute [rw] config_rule_name
724
- # The name of the Config rule for which you want to delete the
725
- # evaluation results.
726
- # @return [String]
727
- class DeleteEvaluationResultsRequest < Struct.new(
728
- :config_rule_name)
729
- include Aws::Structure
730
- end
731
-
732
- # The output when you delete the evaluation results for the specified
733
- # Config rule.
734
- class DeleteEvaluationResultsResponse < Aws::EmptyStructure; end
735
-
736
- # The input for the DeliverConfigSnapshot action.
737
- # @note When making an API call, pass DeliverConfigSnapshotRequest
738
- # data as a hash:
739
- #
740
- # {
741
- # delivery_channel_name: "ChannelName", # required
742
- # }
743
- # @!attribute [rw] delivery_channel_name
744
- # The name of the delivery channel through which the snapshot is
745
- # delivered.
746
- # @return [String]
747
- class DeliverConfigSnapshotRequest < Struct.new(
748
- :delivery_channel_name)
749
- include Aws::Structure
750
- end
751
-
752
- # The output for the DeliverConfigSnapshot action in JSON format.
753
- # @!attribute [rw] config_snapshot_id
754
- # The ID of the snapshot that is being created.
755
- # @return [String]
756
- class DeliverConfigSnapshotResponse < Struct.new(
757
- :config_snapshot_id)
758
- include Aws::Structure
759
- end
760
-
761
- # The channel through which AWS Config delivers notifications and
762
- # updated configuration states.
763
- # @note When making an API call, pass DeliveryChannel
764
- # data as a hash:
765
- #
766
- # {
767
- # name: "ChannelName",
768
- # s3_bucket_name: "String",
769
- # s3_key_prefix: "String",
770
- # sns_topic_arn: "String",
771
- # config_snapshot_delivery_properties: {
772
- # delivery_frequency: "One_Hour", # accepts One_Hour, Three_Hours, Six_Hours, Twelve_Hours, TwentyFour_Hours
773
- # },
774
- # }
775
- # @!attribute [rw] name
776
- # The name of the delivery channel. By default, AWS Config assigns the
777
- # name "default" when creating the delivery channel. To change the
778
- # delivery channel name, you must use the DeleteDeliveryChannel action
779
- # to delete your current delivery channel, and then you must use the
780
- # PutDeliveryChannel command to create a delivery channel that has the
781
- # desired name.
782
- # @return [String]
783
- #
784
- # @!attribute [rw] s3_bucket_name
785
- # The name of the Amazon S3 bucket to which AWS Config delivers
786
- # configuration snapshots and configuration history files.
787
- #
788
- # If you specify a bucket that belongs to another AWS account, that
789
- # bucket must have policies that grant access permissions to AWS
790
- # Config. For more information, see [Permissions for the Amazon S3
791
- # Bucket][1] in the AWS Config Developer Guide.
792
- #
793
- #
794
- #
795
- # [1]: http://docs.aws.amazon.com/config/latest/developerguide/s3-bucket-policy.html
796
- # @return [String]
797
- #
798
- # @!attribute [rw] s3_key_prefix
799
- # The prefix for the specified Amazon S3 bucket.
800
- # @return [String]
801
- #
802
- # @!attribute [rw] sns_topic_arn
803
- # The Amazon Resource Name (ARN) of the Amazon SNS topic to which AWS
804
- # Config sends notifications about configuration changes.
805
- #
806
- # If you choose a topic from another account, the topic must have
807
- # policies that grant access permissions to AWS Config. For more
808
- # information, see [Permissions for the Amazon SNS Topic][1] in the
809
- # AWS Config Developer Guide.
810
- #
811
- #
812
- #
813
- # [1]: http://docs.aws.amazon.com/config/latest/developerguide/sns-topic-policy.html
814
- # @return [String]
815
- #
816
- # @!attribute [rw] config_snapshot_delivery_properties
817
- # Provides options for how often AWS Config delivers configuration
818
- # snapshots to the Amazon S3 bucket in your delivery channel.
819
- #
820
- # <note markdown="1"> If you want to create a rule that triggers evaluations for your
821
- # resources when AWS Config delivers the configuration snapshot, see
822
- # the following:
823
- #
824
- # </note>
825
- #
826
- # The frequency for a rule that triggers evaluations for your
827
- # resources when AWS Config delivers the configuration snapshot is set
828
- # by one of two values, depending on which is less frequent:
829
- #
830
- # * The value for the `deliveryFrequency` parameter within the
831
- # delivery channel configuration, which sets how often AWS Config
832
- # delivers configuration snapshots. This value also sets how often
833
- # AWS Config invokes evaluations for Config rules.
834
- #
835
- # * The value for the `MaximumExecutionFrequency` parameter, which
836
- # sets the maximum frequency with which AWS Config invokes
837
- # evaluations for the rule. For more information, see ConfigRule.
838
- #
839
- # If the `deliveryFrequency` value is less frequent than the
840
- # `MaximumExecutionFrequency` value for a rule, AWS Config invokes the
841
- # rule only as often as the `deliveryFrequency` value.
842
- #
843
- # 1. For example, you want your rule to run evaluations when AWS
844
- # Config delivers the configuration snapshot.
845
- #
846
- # 2. You specify the `MaximumExecutionFrequency` value for
847
- # `Six_Hours`.
848
- #
849
- # 3. You then specify the delivery channel `deliveryFrequency` value
850
- # for `TwentyFour_Hours`.
851
- #
852
- # 4. Because the value for `deliveryFrequency` is less frequent than
853
- # `MaximumExecutionFrequency`, AWS Config invokes evaluations for
854
- # the rule every 24 hours.
855
- #
856
- # You should set the `MaximumExecutionFrequency` value to be at least
857
- # as frequent as the `deliveryFrequency` value. You can view the
858
- # `deliveryFrequency` value by using the `DescribeDeliveryChannnels`
859
- # action.
860
- #
861
- # To update the `deliveryFrequency` with which AWS Config delivers
862
- # your configuration snapshots, use the `PutDeliveryChannel` action.
863
- # @return [Types::ConfigSnapshotDeliveryProperties]
864
- class DeliveryChannel < Struct.new(
865
- :name,
866
- :s3_bucket_name,
867
- :s3_key_prefix,
868
- :sns_topic_arn,
869
- :config_snapshot_delivery_properties)
870
- include Aws::Structure
871
- end
872
-
873
- # The status of a specified delivery channel.
874
- #
875
- # Valid values: `Success` \| `Failure`
876
- # @!attribute [rw] name
877
- # The name of the delivery channel.
878
- # @return [String]
879
- #
880
- # @!attribute [rw] config_snapshot_delivery_info
881
- # A list containing the status of the delivery of the snapshot to the
882
- # specified Amazon S3 bucket.
883
- # @return [Types::ConfigExportDeliveryInfo]
884
- #
885
- # @!attribute [rw] config_history_delivery_info
886
- # A list that contains the status of the delivery of the configuration
887
- # history to the specified Amazon S3 bucket.
888
- # @return [Types::ConfigExportDeliveryInfo]
889
- #
890
- # @!attribute [rw] config_stream_delivery_info
891
- # A list containing the status of the delivery of the configuration
892
- # stream notification to the specified Amazon SNS topic.
893
- # @return [Types::ConfigStreamDeliveryInfo]
894
- class DeliveryChannelStatus < Struct.new(
895
- :name,
896
- :config_snapshot_delivery_info,
897
- :config_history_delivery_info,
898
- :config_stream_delivery_info)
899
- include Aws::Structure
900
- end
901
-
902
- # @note When making an API call, pass DescribeComplianceByConfigRuleRequest
903
- # data as a hash:
904
- #
905
- # {
906
- # config_rule_names: ["StringWithCharLimit64"],
907
- # compliance_types: ["COMPLIANT"], # accepts COMPLIANT, NON_COMPLIANT, NOT_APPLICABLE, INSUFFICIENT_DATA
908
- # next_token: "String",
909
- # }
910
- # @!attribute [rw] config_rule_names
911
- # Specify one or more AWS Config rule names to filter the results by
912
- # rule.
913
- # @return [Array<String>]
914
- #
915
- # @!attribute [rw] compliance_types
916
- # Filters the results by compliance.
917
- #
918
- # The allowed values are `COMPLIANT`, `NON_COMPLIANT`, and
919
- # `INSUFFICIENT_DATA`.
920
- # @return [Array<String>]
921
- #
922
- # @!attribute [rw] next_token
923
- # The `nextToken` string returned on a previous page that you use to
924
- # get the next page of results in a paginated response.
925
- # @return [String]
926
- class DescribeComplianceByConfigRuleRequest < Struct.new(
927
- :config_rule_names,
928
- :compliance_types,
929
- :next_token)
930
- include Aws::Structure
931
- end
932
-
933
- # @!attribute [rw] compliance_by_config_rules
934
- # Indicates whether each of the specified AWS Config rules is
935
- # compliant.
936
- # @return [Array<Types::ComplianceByConfigRule>]
937
- #
938
- # @!attribute [rw] next_token
939
- # The string that you use in a subsequent request to get the next page
940
- # of results in a paginated response.
941
- # @return [String]
942
- class DescribeComplianceByConfigRuleResponse < Struct.new(
943
- :compliance_by_config_rules,
944
- :next_token)
945
- include Aws::Structure
946
- end
947
-
948
- # @note When making an API call, pass DescribeComplianceByResourceRequest
949
- # data as a hash:
950
- #
951
- # {
952
- # resource_type: "StringWithCharLimit256",
953
- # resource_id: "StringWithCharLimit256",
954
- # compliance_types: ["COMPLIANT"], # accepts COMPLIANT, NON_COMPLIANT, NOT_APPLICABLE, INSUFFICIENT_DATA
955
- # limit: 1,
956
- # next_token: "NextToken",
957
- # }
958
- # @!attribute [rw] resource_type
959
- # The types of AWS resources for which you want compliance
960
- # information; for example, `AWS::EC2::Instance`. For this action, you
961
- # can specify that the resource type is an AWS account by specifying
962
- # `AWS::::Account`.
963
- # @return [String]
964
- #
965
- # @!attribute [rw] resource_id
966
- # The ID of the AWS resource for which you want compliance
967
- # information. You can specify only one resource ID. If you specify a
968
- # resource ID, you must also specify a type for `ResourceType`.
969
- # @return [String]
970
- #
971
- # @!attribute [rw] compliance_types
972
- # Filters the results by compliance.
973
- #
974
- # The allowed values are `COMPLIANT`, `NON_COMPLIANT`, and
975
- # `INSUFFICIENT_DATA`.
976
- # @return [Array<String>]
977
- #
978
- # @!attribute [rw] limit
979
- # The maximum number of evaluation results returned on each page. The
980
- # default is 10. You cannot specify a limit greater than 100. If you
981
- # specify 0, AWS Config uses the default.
982
- # @return [Integer]
983
- #
984
- # @!attribute [rw] next_token
985
- # The `nextToken` string returned on a previous page that you use to
986
- # get the next page of results in a paginated response.
987
- # @return [String]
988
- class DescribeComplianceByResourceRequest < Struct.new(
989
- :resource_type,
990
- :resource_id,
991
- :compliance_types,
992
- :limit,
993
- :next_token)
994
- include Aws::Structure
995
- end
996
-
997
- # @!attribute [rw] compliance_by_resources
998
- # Indicates whether the specified AWS resource complies with all of
999
- # the AWS Config rules that evaluate it.
1000
- # @return [Array<Types::ComplianceByResource>]
1001
- #
1002
- # @!attribute [rw] next_token
1003
- # The string that you use in a subsequent request to get the next page
1004
- # of results in a paginated response.
1005
- # @return [String]
1006
- class DescribeComplianceByResourceResponse < Struct.new(
1007
- :compliance_by_resources,
1008
- :next_token)
1009
- include Aws::Structure
1010
- end
1011
-
1012
- # @note When making an API call, pass DescribeConfigRuleEvaluationStatusRequest
1013
- # data as a hash:
1014
- #
1015
- # {
1016
- # config_rule_names: ["StringWithCharLimit64"],
1017
- # next_token: "String",
1018
- # limit: 1,
1019
- # }
1020
- # @!attribute [rw] config_rule_names
1021
- # The name of the AWS managed Config rules for which you want status
1022
- # information. If you do not specify any names, AWS Config returns
1023
- # status information for all AWS managed Config rules that you use.
1024
- # @return [Array<String>]
1025
- #
1026
- # @!attribute [rw] next_token
1027
- # The `NextToken` string returned on a previous page that you use to
1028
- # get the next page of results in a paginated response.
1029
- # @return [String]
1030
- #
1031
- # @!attribute [rw] limit
1032
- # The number of rule evaluation results that you want returned.
1033
- #
1034
- # This parameter is required if the rule limit for your account is
1035
- # more than the default of 50 rules.
1036
- #
1037
- # For more information about requesting a rule limit increase, see
1038
- # [AWS Config Limits][1] in the *AWS General Reference Guide*.
1039
- #
1040
- #
1041
- #
1042
- # [1]: http://docs.aws.amazon.com/general/latest/gr/aws_service_limits.html#limits_config
1043
- # @return [Integer]
1044
- class DescribeConfigRuleEvaluationStatusRequest < Struct.new(
1045
- :config_rule_names,
1046
- :next_token,
1047
- :limit)
1048
- include Aws::Structure
1049
- end
1050
-
1051
- # @!attribute [rw] config_rules_evaluation_status
1052
- # Status information about your AWS managed Config rules.
1053
- # @return [Array<Types::ConfigRuleEvaluationStatus>]
1054
- #
1055
- # @!attribute [rw] next_token
1056
- # The string that you use in a subsequent request to get the next page
1057
- # of results in a paginated response.
1058
- # @return [String]
1059
- class DescribeConfigRuleEvaluationStatusResponse < Struct.new(
1060
- :config_rules_evaluation_status,
1061
- :next_token)
1062
- include Aws::Structure
1063
- end
1064
-
1065
- # @note When making an API call, pass DescribeConfigRulesRequest
1066
- # data as a hash:
1067
- #
1068
- # {
1069
- # config_rule_names: ["StringWithCharLimit64"],
1070
- # next_token: "String",
1071
- # }
1072
- # @!attribute [rw] config_rule_names
1073
- # The names of the AWS Config rules for which you want details. If you
1074
- # do not specify any names, AWS Config returns details for all your
1075
- # rules.
1076
- # @return [Array<String>]
1077
- #
1078
- # @!attribute [rw] next_token
1079
- # The `nextToken` string returned on a previous page that you use to
1080
- # get the next page of results in a paginated response.
1081
- # @return [String]
1082
- class DescribeConfigRulesRequest < Struct.new(
1083
- :config_rule_names,
1084
- :next_token)
1085
- include Aws::Structure
1086
- end
1087
-
1088
- # @!attribute [rw] config_rules
1089
- # The details about your AWS Config rules.
1090
- # @return [Array<Types::ConfigRule>]
1091
- #
1092
- # @!attribute [rw] next_token
1093
- # The string that you use in a subsequent request to get the next page
1094
- # of results in a paginated response.
1095
- # @return [String]
1096
- class DescribeConfigRulesResponse < Struct.new(
1097
- :config_rules,
1098
- :next_token)
1099
- include Aws::Structure
1100
- end
1101
-
1102
- # The input for the DescribeConfigurationRecorderStatus action.
1103
- # @note When making an API call, pass DescribeConfigurationRecorderStatusRequest
1104
- # data as a hash:
1105
- #
1106
- # {
1107
- # configuration_recorder_names: ["RecorderName"],
1108
- # }
1109
- # @!attribute [rw] configuration_recorder_names
1110
- # The name(s) of the configuration recorder. If the name is not
1111
- # specified, the action returns the current status of all the
1112
- # configuration recorders associated with the account.
1113
- # @return [Array<String>]
1114
- class DescribeConfigurationRecorderStatusRequest < Struct.new(
1115
- :configuration_recorder_names)
1116
- include Aws::Structure
1117
- end
1118
-
1119
- # The output for the DescribeConfigurationRecorderStatus action in JSON
1120
- # format.
1121
- # @!attribute [rw] configuration_recorders_status
1122
- # A list that contains status of the specified recorders.
1123
- # @return [Array<Types::ConfigurationRecorderStatus>]
1124
- class DescribeConfigurationRecorderStatusResponse < Struct.new(
1125
- :configuration_recorders_status)
1126
- include Aws::Structure
1127
- end
1128
-
1129
- # The input for the DescribeConfigurationRecorders action.
1130
- # @note When making an API call, pass DescribeConfigurationRecordersRequest
1131
- # data as a hash:
1132
- #
1133
- # {
1134
- # configuration_recorder_names: ["RecorderName"],
1135
- # }
1136
- # @!attribute [rw] configuration_recorder_names
1137
- # A list of configuration recorder names.
1138
- # @return [Array<String>]
1139
- class DescribeConfigurationRecordersRequest < Struct.new(
1140
- :configuration_recorder_names)
1141
- include Aws::Structure
1142
- end
1143
-
1144
- # The output for the DescribeConfigurationRecorders action.
1145
- # @!attribute [rw] configuration_recorders
1146
- # A list that contains the descriptions of the specified configuration
1147
- # recorders.
1148
- # @return [Array<Types::ConfigurationRecorder>]
1149
- class DescribeConfigurationRecordersResponse < Struct.new(
1150
- :configuration_recorders)
1151
- include Aws::Structure
1152
- end
1153
-
1154
- # The input for the DeliveryChannelStatus action.
1155
- # @note When making an API call, pass DescribeDeliveryChannelStatusRequest
1156
- # data as a hash:
1157
- #
1158
- # {
1159
- # delivery_channel_names: ["ChannelName"],
1160
- # }
1161
- # @!attribute [rw] delivery_channel_names
1162
- # A list of delivery channel names.
1163
- # @return [Array<String>]
1164
- class DescribeDeliveryChannelStatusRequest < Struct.new(
1165
- :delivery_channel_names)
1166
- include Aws::Structure
1167
- end
1168
-
1169
- # The output for the DescribeDeliveryChannelStatus action.
1170
- # @!attribute [rw] delivery_channels_status
1171
- # A list that contains the status of a specified delivery channel.
1172
- # @return [Array<Types::DeliveryChannelStatus>]
1173
- class DescribeDeliveryChannelStatusResponse < Struct.new(
1174
- :delivery_channels_status)
1175
- include Aws::Structure
1176
- end
1177
-
1178
- # The input for the DescribeDeliveryChannels action.
1179
- # @note When making an API call, pass DescribeDeliveryChannelsRequest
1180
- # data as a hash:
1181
- #
1182
- # {
1183
- # delivery_channel_names: ["ChannelName"],
1184
- # }
1185
- # @!attribute [rw] delivery_channel_names
1186
- # A list of delivery channel names.
1187
- # @return [Array<String>]
1188
- class DescribeDeliveryChannelsRequest < Struct.new(
1189
- :delivery_channel_names)
1190
- include Aws::Structure
1191
- end
1192
-
1193
- # The output for the DescribeDeliveryChannels action.
1194
- # @!attribute [rw] delivery_channels
1195
- # A list that contains the descriptions of the specified delivery
1196
- # channel.
1197
- # @return [Array<Types::DeliveryChannel>]
1198
- class DescribeDeliveryChannelsResponse < Struct.new(
1199
- :delivery_channels)
1200
- include Aws::Structure
1201
- end
1202
-
1203
- # Identifies an AWS resource and indicates whether it complies with the
1204
- # AWS Config rule that it was evaluated against.
1205
- # @note When making an API call, pass Evaluation
1206
- # data as a hash:
1207
- #
1208
- # {
1209
- # compliance_resource_type: "StringWithCharLimit256", # required
1210
- # compliance_resource_id: "StringWithCharLimit256", # required
1211
- # compliance_type: "COMPLIANT", # required, accepts COMPLIANT, NON_COMPLIANT, NOT_APPLICABLE, INSUFFICIENT_DATA
1212
- # annotation: "StringWithCharLimit256",
1213
- # ordering_timestamp: Time.now, # required
1214
- # }
1215
- # @!attribute [rw] compliance_resource_type
1216
- # The type of AWS resource that was evaluated.
1217
- # @return [String]
1218
- #
1219
- # @!attribute [rw] compliance_resource_id
1220
- # The ID of the AWS resource that was evaluated.
1221
- # @return [String]
1222
- #
1223
- # @!attribute [rw] compliance_type
1224
- # Indicates whether the AWS resource complies with the AWS Config rule
1225
- # that it was evaluated against.
1226
- #
1227
- # For the `Evaluation` data type, AWS Config supports only the
1228
- # `COMPLIANT`, `NON_COMPLIANT`, and `NOT_APPLICABLE` values. AWS
1229
- # Config does not support the `INSUFFICIENT_DATA` value for this data
1230
- # type.
1231
- #
1232
- # Similarly, AWS Config does not accept `INSUFFICIENT_DATA` as the
1233
- # value for `ComplianceType` from a `PutEvaluations` request. For
1234
- # example, an AWS Lambda function for a custom Config rule cannot pass
1235
- # an `INSUFFICIENT_DATA` value to AWS Config.
1236
- # @return [String]
1237
- #
1238
- # @!attribute [rw] annotation
1239
- # Supplementary information about how the evaluation determined the
1240
- # compliance.
1241
- # @return [String]
1242
- #
1243
- # @!attribute [rw] ordering_timestamp
1244
- # The time of the event in AWS Config that triggered the evaluation.
1245
- # For event-based evaluations, the time indicates when AWS Config
1246
- # created the configuration item that triggered the evaluation. For
1247
- # periodic evaluations, the time indicates when AWS Config triggered
1248
- # the evaluation at the frequency that you specified (for example,
1249
- # every 24 hours).
1250
- # @return [Time]
1251
- class Evaluation < Struct.new(
1252
- :compliance_resource_type,
1253
- :compliance_resource_id,
1254
- :compliance_type,
1255
- :annotation,
1256
- :ordering_timestamp)
1257
- include Aws::Structure
1258
- end
1259
-
1260
- # The details of an AWS Config evaluation. Provides the AWS resource
1261
- # that was evaluated, the compliance of the resource, related
1262
- # timestamps, and supplementary information.
1263
- # @!attribute [rw] evaluation_result_identifier
1264
- # Uniquely identifies the evaluation result.
1265
- # @return [Types::EvaluationResultIdentifier]
1266
- #
1267
- # @!attribute [rw] compliance_type
1268
- # Indicates whether the AWS resource complies with the AWS Config rule
1269
- # that evaluated it.
1270
- #
1271
- # For the `EvaluationResult` data type, AWS Config supports only the
1272
- # `COMPLIANT`, `NON_COMPLIANT`, and `NOT_APPLICABLE` values. AWS
1273
- # Config does not support the `INSUFFICIENT_DATA` value for the
1274
- # `EvaluationResult` data type.
1275
- # @return [String]
1276
- #
1277
- # @!attribute [rw] result_recorded_time
1278
- # The time when AWS Config recorded the evaluation result.
1279
- # @return [Time]
1280
- #
1281
- # @!attribute [rw] config_rule_invoked_time
1282
- # The time when the AWS Config rule evaluated the AWS resource.
1283
- # @return [Time]
1284
- #
1285
- # @!attribute [rw] annotation
1286
- # Supplementary information about how the evaluation determined the
1287
- # compliance.
1288
- # @return [String]
1289
- #
1290
- # @!attribute [rw] result_token
1291
- # An encrypted token that associates an evaluation with an AWS Config
1292
- # rule. The token identifies the rule, the AWS resource being
1293
- # evaluated, and the event that triggered the evaluation.
1294
- # @return [String]
1295
- class EvaluationResult < Struct.new(
1296
- :evaluation_result_identifier,
1297
- :compliance_type,
1298
- :result_recorded_time,
1299
- :config_rule_invoked_time,
1300
- :annotation,
1301
- :result_token)
1302
- include Aws::Structure
1303
- end
1304
-
1305
- # Uniquely identifies an evaluation result.
1306
- # @!attribute [rw] evaluation_result_qualifier
1307
- # Identifies an AWS Config rule used to evaluate an AWS resource, and
1308
- # provides the type and ID of the evaluated resource.
1309
- # @return [Types::EvaluationResultQualifier]
1310
- #
1311
- # @!attribute [rw] ordering_timestamp
1312
- # The time of the event that triggered the evaluation of your AWS
1313
- # resources. The time can indicate when AWS Config delivered a
1314
- # configuration item change notification, or it can indicate when AWS
1315
- # Config delivered the configuration snapshot, depending on which
1316
- # event triggered the evaluation.
1317
- # @return [Time]
1318
- class EvaluationResultIdentifier < Struct.new(
1319
- :evaluation_result_qualifier,
1320
- :ordering_timestamp)
1321
- include Aws::Structure
1322
- end
1323
-
1324
- # Identifies an AWS Config rule that evaluated an AWS resource, and
1325
- # provides the type and ID of the resource that the rule evaluated.
1326
- # @!attribute [rw] config_rule_name
1327
- # The name of the AWS Config rule that was used in the evaluation.
1328
- # @return [String]
1329
- #
1330
- # @!attribute [rw] resource_type
1331
- # The type of AWS resource that was evaluated.
1332
- # @return [String]
1333
- #
1334
- # @!attribute [rw] resource_id
1335
- # The ID of the evaluated AWS resource.
1336
- # @return [String]
1337
- class EvaluationResultQualifier < Struct.new(
1338
- :config_rule_name,
1339
- :resource_type,
1340
- :resource_id)
1341
- include Aws::Structure
1342
- end
1343
-
1344
- # @note When making an API call, pass GetComplianceDetailsByConfigRuleRequest
1345
- # data as a hash:
1346
- #
1347
- # {
1348
- # config_rule_name: "StringWithCharLimit64", # required
1349
- # compliance_types: ["COMPLIANT"], # accepts COMPLIANT, NON_COMPLIANT, NOT_APPLICABLE, INSUFFICIENT_DATA
1350
- # limit: 1,
1351
- # next_token: "NextToken",
1352
- # }
1353
- # @!attribute [rw] config_rule_name
1354
- # The name of the AWS Config rule for which you want compliance
1355
- # information.
1356
- # @return [String]
1357
- #
1358
- # @!attribute [rw] compliance_types
1359
- # Filters the results by compliance.
1360
- #
1361
- # The allowed values are `COMPLIANT`, `NON_COMPLIANT`, and
1362
- # `NOT_APPLICABLE`.
1363
- # @return [Array<String>]
1364
- #
1365
- # @!attribute [rw] limit
1366
- # The maximum number of evaluation results returned on each page. The
1367
- # default is 10. You cannot specify a limit greater than 100. If you
1368
- # specify 0, AWS Config uses the default.
1369
- # @return [Integer]
1370
- #
1371
- # @!attribute [rw] next_token
1372
- # The `nextToken` string returned on a previous page that you use to
1373
- # get the next page of results in a paginated response.
1374
- # @return [String]
1375
- class GetComplianceDetailsByConfigRuleRequest < Struct.new(
1376
- :config_rule_name,
1377
- :compliance_types,
1378
- :limit,
1379
- :next_token)
1380
- include Aws::Structure
1381
- end
1382
-
1383
- # @!attribute [rw] evaluation_results
1384
- # Indicates whether the AWS resource complies with the specified AWS
1385
- # Config rule.
1386
- # @return [Array<Types::EvaluationResult>]
1387
- #
1388
- # @!attribute [rw] next_token
1389
- # The string that you use in a subsequent request to get the next page
1390
- # of results in a paginated response.
1391
- # @return [String]
1392
- class GetComplianceDetailsByConfigRuleResponse < Struct.new(
1393
- :evaluation_results,
1394
- :next_token)
1395
- include Aws::Structure
1396
- end
1397
-
1398
- # @note When making an API call, pass GetComplianceDetailsByResourceRequest
1399
- # data as a hash:
1400
- #
1401
- # {
1402
- # resource_type: "StringWithCharLimit256", # required
1403
- # resource_id: "StringWithCharLimit256", # required
1404
- # compliance_types: ["COMPLIANT"], # accepts COMPLIANT, NON_COMPLIANT, NOT_APPLICABLE, INSUFFICIENT_DATA
1405
- # next_token: "String",
1406
- # }
1407
- # @!attribute [rw] resource_type
1408
- # The type of the AWS resource for which you want compliance
1409
- # information.
1410
- # @return [String]
1411
- #
1412
- # @!attribute [rw] resource_id
1413
- # The ID of the AWS resource for which you want compliance
1414
- # information.
1415
- # @return [String]
1416
- #
1417
- # @!attribute [rw] compliance_types
1418
- # Filters the results by compliance.
1419
- #
1420
- # The allowed values are `COMPLIANT`, `NON_COMPLIANT`, and
1421
- # `NOT_APPLICABLE`.
1422
- # @return [Array<String>]
1423
- #
1424
- # @!attribute [rw] next_token
1425
- # The `nextToken` string returned on a previous page that you use to
1426
- # get the next page of results in a paginated response.
1427
- # @return [String]
1428
- class GetComplianceDetailsByResourceRequest < Struct.new(
1429
- :resource_type,
1430
- :resource_id,
1431
- :compliance_types,
1432
- :next_token)
1433
- include Aws::Structure
1434
- end
1435
-
1436
- # @!attribute [rw] evaluation_results
1437
- # Indicates whether the specified AWS resource complies each AWS
1438
- # Config rule.
1439
- # @return [Array<Types::EvaluationResult>]
1440
- #
1441
- # @!attribute [rw] next_token
1442
- # The string that you use in a subsequent request to get the next page
1443
- # of results in a paginated response.
1444
- # @return [String]
1445
- class GetComplianceDetailsByResourceResponse < Struct.new(
1446
- :evaluation_results,
1447
- :next_token)
1448
- include Aws::Structure
1449
- end
1450
-
1451
- # @!attribute [rw] compliance_summary
1452
- # The number of AWS Config rules that are compliant and the number
1453
- # that are noncompliant, up to a maximum of 25 for each.
1454
- # @return [Types::ComplianceSummary]
1455
- class GetComplianceSummaryByConfigRuleResponse < Struct.new(
1456
- :compliance_summary)
1457
- include Aws::Structure
1458
- end
1459
-
1460
- # @note When making an API call, pass GetComplianceSummaryByResourceTypeRequest
1461
- # data as a hash:
1462
- #
1463
- # {
1464
- # resource_types: ["StringWithCharLimit256"],
1465
- # }
1466
- # @!attribute [rw] resource_types
1467
- # Specify one or more resource types to get the number of resources
1468
- # that are compliant and the number that are noncompliant for each
1469
- # resource type.
1470
- #
1471
- # For this request, you can specify an AWS resource type such as
1472
- # `AWS::EC2::Instance`, and you can specify that the resource type is
1473
- # an AWS account by specifying `AWS::::Account`.
1474
- # @return [Array<String>]
1475
- class GetComplianceSummaryByResourceTypeRequest < Struct.new(
1476
- :resource_types)
1477
- include Aws::Structure
1478
- end
1479
-
1480
- # @!attribute [rw] compliance_summaries_by_resource_type
1481
- # The number of resources that are compliant and the number that are
1482
- # noncompliant. If one or more resource types were provided with the
1483
- # request, the numbers are returned for each resource type. The
1484
- # maximum number returned is 100.
1485
- # @return [Array<Types::ComplianceSummaryByResourceType>]
1486
- class GetComplianceSummaryByResourceTypeResponse < Struct.new(
1487
- :compliance_summaries_by_resource_type)
1488
- include Aws::Structure
1489
- end
1490
-
1491
- # The input for the GetResourceConfigHistory action.
1492
- # @note When making an API call, pass GetResourceConfigHistoryRequest
1493
- # data as a hash:
1494
- #
1495
- # {
1496
- # resource_type: "AWS::EC2::CustomerGateway", # required, accepts AWS::EC2::CustomerGateway, AWS::EC2::EIP, AWS::EC2::Host, AWS::EC2::Instance, AWS::EC2::InternetGateway, AWS::EC2::NetworkAcl, AWS::EC2::NetworkInterface, AWS::EC2::RouteTable, AWS::EC2::SecurityGroup, AWS::EC2::Subnet, AWS::CloudTrail::Trail, AWS::EC2::Volume, AWS::EC2::VPC, AWS::EC2::VPNConnection, AWS::EC2::VPNGateway, AWS::IAM::Group, AWS::IAM::Policy, AWS::IAM::Role, AWS::IAM::User, AWS::ACM::Certificate, AWS::RDS::DBInstance, AWS::RDS::DBSubnetGroup, AWS::RDS::DBSecurityGroup, AWS::RDS::DBSnapshot, AWS::RDS::EventSubscription, AWS::ElasticLoadBalancingV2::LoadBalancer, AWS::S3::Bucket, AWS::SSM::ManagedInstanceInventory, AWS::Redshift::Cluster, AWS::Redshift::ClusterSnapshot, AWS::Redshift::ClusterParameterGroup, AWS::Redshift::ClusterSecurityGroup, AWS::Redshift::ClusterSubnetGroup, AWS::Redshift::EventSubscription
1497
- # resource_id: "ResourceId", # required
1498
- # later_time: Time.now,
1499
- # earlier_time: Time.now,
1500
- # chronological_order: "Reverse", # accepts Reverse, Forward
1501
- # limit: 1,
1502
- # next_token: "NextToken",
1503
- # }
1504
- # @!attribute [rw] resource_type
1505
- # The resource type.
1506
- # @return [String]
1507
- #
1508
- # @!attribute [rw] resource_id
1509
- # The ID of the resource (for example., `sg-xxxxxx`).
1510
- # @return [String]
1511
- #
1512
- # @!attribute [rw] later_time
1513
- # The time stamp that indicates a later time. If not specified,
1514
- # current time is taken.
1515
- # @return [Time]
1516
- #
1517
- # @!attribute [rw] earlier_time
1518
- # The time stamp that indicates an earlier time. If not specified, the
1519
- # action returns paginated results that contain configuration items
1520
- # that start from when the first configuration item was recorded.
1521
- # @return [Time]
1522
- #
1523
- # @!attribute [rw] chronological_order
1524
- # The chronological order for configuration items listed. By default
1525
- # the results are listed in reverse chronological order.
1526
- # @return [String]
1527
- #
1528
- # @!attribute [rw] limit
1529
- # The maximum number of configuration items returned on each page. The
1530
- # default is 10. You cannot specify a limit greater than 100. If you
1531
- # specify 0, AWS Config uses the default.
1532
- # @return [Integer]
1533
- #
1534
- # @!attribute [rw] next_token
1535
- # The `nextToken` string returned on a previous page that you use to
1536
- # get the next page of results in a paginated response.
1537
- # @return [String]
1538
- class GetResourceConfigHistoryRequest < Struct.new(
1539
- :resource_type,
1540
- :resource_id,
1541
- :later_time,
1542
- :earlier_time,
1543
- :chronological_order,
1544
- :limit,
1545
- :next_token)
1546
- include Aws::Structure
1547
- end
1548
-
1549
- # The output for the GetResourceConfigHistory action.
1550
- # @!attribute [rw] configuration_items
1551
- # A list that contains the configuration history of one or more
1552
- # resources.
1553
- # @return [Array<Types::ConfigurationItem>]
1554
- #
1555
- # @!attribute [rw] next_token
1556
- # The string that you use in a subsequent request to get the next page
1557
- # of results in a paginated response.
1558
- # @return [String]
1559
- class GetResourceConfigHistoryResponse < Struct.new(
1560
- :configuration_items,
1561
- :next_token)
1562
- include Aws::Structure
1563
- end
1564
-
1565
- # @note When making an API call, pass ListDiscoveredResourcesRequest
1566
- # data as a hash:
1567
- #
1568
- # {
1569
- # resource_type: "AWS::EC2::CustomerGateway", # required, accepts AWS::EC2::CustomerGateway, AWS::EC2::EIP, AWS::EC2::Host, AWS::EC2::Instance, AWS::EC2::InternetGateway, AWS::EC2::NetworkAcl, AWS::EC2::NetworkInterface, AWS::EC2::RouteTable, AWS::EC2::SecurityGroup, AWS::EC2::Subnet, AWS::CloudTrail::Trail, AWS::EC2::Volume, AWS::EC2::VPC, AWS::EC2::VPNConnection, AWS::EC2::VPNGateway, AWS::IAM::Group, AWS::IAM::Policy, AWS::IAM::Role, AWS::IAM::User, AWS::ACM::Certificate, AWS::RDS::DBInstance, AWS::RDS::DBSubnetGroup, AWS::RDS::DBSecurityGroup, AWS::RDS::DBSnapshot, AWS::RDS::EventSubscription, AWS::ElasticLoadBalancingV2::LoadBalancer, AWS::S3::Bucket, AWS::SSM::ManagedInstanceInventory, AWS::Redshift::Cluster, AWS::Redshift::ClusterSnapshot, AWS::Redshift::ClusterParameterGroup, AWS::Redshift::ClusterSecurityGroup, AWS::Redshift::ClusterSubnetGroup, AWS::Redshift::EventSubscription
1570
- # resource_ids: ["ResourceId"],
1571
- # resource_name: "ResourceName",
1572
- # limit: 1,
1573
- # include_deleted_resources: false,
1574
- # next_token: "NextToken",
1575
- # }
1576
- # @!attribute [rw] resource_type
1577
- # The type of resources that you want AWS Config to list in the
1578
- # response.
1579
- # @return [String]
1580
- #
1581
- # @!attribute [rw] resource_ids
1582
- # The IDs of only those resources that you want AWS Config to list in
1583
- # the response. If you do not specify this parameter, AWS Config lists
1584
- # all resources of the specified type that it has discovered.
1585
- # @return [Array<String>]
1586
- #
1587
- # @!attribute [rw] resource_name
1588
- # The custom name of only those resources that you want AWS Config to
1589
- # list in the response. If you do not specify this parameter, AWS
1590
- # Config lists all resources of the specified type that it has
1591
- # discovered.
1592
- # @return [String]
1593
- #
1594
- # @!attribute [rw] limit
1595
- # The maximum number of resource identifiers returned on each page.
1596
- # The default is 100. You cannot specify a limit greater than 100. If
1597
- # you specify 0, AWS Config uses the default.
1598
- # @return [Integer]
1599
- #
1600
- # @!attribute [rw] include_deleted_resources
1601
- # Specifies whether AWS Config includes deleted resources in the
1602
- # results. By default, deleted resources are not included.
1603
- # @return [Boolean]
1604
- #
1605
- # @!attribute [rw] next_token
1606
- # The `nextToken` string returned on a previous page that you use to
1607
- # get the next page of results in a paginated response.
1608
- # @return [String]
1609
- class ListDiscoveredResourcesRequest < Struct.new(
1610
- :resource_type,
1611
- :resource_ids,
1612
- :resource_name,
1613
- :limit,
1614
- :include_deleted_resources,
1615
- :next_token)
1616
- include Aws::Structure
1617
- end
1618
-
1619
- # @!attribute [rw] resource_identifiers
1620
- # The details that identify a resource that is discovered by AWS
1621
- # Config, including the resource type, ID, and (if available) the
1622
- # custom resource name.
1623
- # @return [Array<Types::ResourceIdentifier>]
1624
- #
1625
- # @!attribute [rw] next_token
1626
- # The string that you use in a subsequent request to get the next page
1627
- # of results in a paginated response.
1628
- # @return [String]
1629
- class ListDiscoveredResourcesResponse < Struct.new(
1630
- :resource_identifiers,
1631
- :next_token)
1632
- include Aws::Structure
1633
- end
1634
-
1635
- # @note When making an API call, pass PutConfigRuleRequest
1636
- # data as a hash:
1637
- #
1638
- # {
1639
- # config_rule: { # required
1640
- # config_rule_name: "StringWithCharLimit64",
1641
- # config_rule_arn: "String",
1642
- # config_rule_id: "String",
1643
- # description: "EmptiableStringWithCharLimit256",
1644
- # scope: {
1645
- # compliance_resource_types: ["StringWithCharLimit256"],
1646
- # tag_key: "StringWithCharLimit128",
1647
- # tag_value: "StringWithCharLimit256",
1648
- # compliance_resource_id: "StringWithCharLimit256",
1649
- # },
1650
- # source: { # required
1651
- # owner: "CUSTOM_LAMBDA", # required, accepts CUSTOM_LAMBDA, AWS
1652
- # source_identifier: "StringWithCharLimit256", # required
1653
- # source_details: [
1654
- # {
1655
- # event_source: "aws.config", # accepts aws.config
1656
- # message_type: "ConfigurationItemChangeNotification", # accepts ConfigurationItemChangeNotification, ConfigurationSnapshotDeliveryCompleted, ScheduledNotification
1657
- # maximum_execution_frequency: "One_Hour", # accepts One_Hour, Three_Hours, Six_Hours, Twelve_Hours, TwentyFour_Hours
1658
- # },
1659
- # ],
1660
- # },
1661
- # input_parameters: "StringWithCharLimit1024",
1662
- # maximum_execution_frequency: "One_Hour", # accepts One_Hour, Three_Hours, Six_Hours, Twelve_Hours, TwentyFour_Hours
1663
- # config_rule_state: "ACTIVE", # accepts ACTIVE, DELETING, DELETING_RESULTS, EVALUATING
1664
- # },
1665
- # }
1666
- # @!attribute [rw] config_rule
1667
- # An AWS Config rule represents an AWS Lambda function that you create
1668
- # for a custom rule or a predefined function for an AWS managed rule.
1669
- # The function evaluates configuration items to assess whether your
1670
- # AWS resources comply with your desired configurations. This function
1671
- # can run when AWS Config detects a configuration change to an AWS
1672
- # resource and at a periodic frequency that you choose (for example,
1673
- # every 24 hours).
1674
- #
1675
- # <note markdown="1"> You can use the AWS CLI and AWS SDKs if you want to create a rule
1676
- # that triggers evaluations for your resources when AWS Config
1677
- # delivers the configuration snapshot. For more information, see
1678
- # ConfigSnapshotDeliveryProperties.
1679
- #
1680
- # </note>
1681
- #
1682
- # For more information about developing and using AWS Config rules,
1683
- # see [Evaluating AWS Resource Configurations with AWS Config][1] in
1684
- # the *AWS Config Developer Guide*.
1685
- #
1686
- #
1687
- #
1688
- # [1]: http://docs.aws.amazon.com/config/latest/developerguide/evaluate-config.html
1689
- # @return [Types::ConfigRule]
1690
- class PutConfigRuleRequest < Struct.new(
1691
- :config_rule)
1692
- include Aws::Structure
1693
- end
1694
-
1695
- # The input for the PutConfigurationRecorder action.
1696
- # @note When making an API call, pass PutConfigurationRecorderRequest
1697
- # data as a hash:
1698
- #
1699
- # {
1700
- # configuration_recorder: { # required
1701
- # name: "RecorderName",
1702
- # role_arn: "String",
1703
- # recording_group: {
1704
- # all_supported: false,
1705
- # include_global_resource_types: false,
1706
- # resource_types: ["AWS::EC2::CustomerGateway"], # accepts AWS::EC2::CustomerGateway, AWS::EC2::EIP, AWS::EC2::Host, AWS::EC2::Instance, AWS::EC2::InternetGateway, AWS::EC2::NetworkAcl, AWS::EC2::NetworkInterface, AWS::EC2::RouteTable, AWS::EC2::SecurityGroup, AWS::EC2::Subnet, AWS::CloudTrail::Trail, AWS::EC2::Volume, AWS::EC2::VPC, AWS::EC2::VPNConnection, AWS::EC2::VPNGateway, AWS::IAM::Group, AWS::IAM::Policy, AWS::IAM::Role, AWS::IAM::User, AWS::ACM::Certificate, AWS::RDS::DBInstance, AWS::RDS::DBSubnetGroup, AWS::RDS::DBSecurityGroup, AWS::RDS::DBSnapshot, AWS::RDS::EventSubscription, AWS::ElasticLoadBalancingV2::LoadBalancer, AWS::S3::Bucket, AWS::SSM::ManagedInstanceInventory, AWS::Redshift::Cluster, AWS::Redshift::ClusterSnapshot, AWS::Redshift::ClusterParameterGroup, AWS::Redshift::ClusterSecurityGroup, AWS::Redshift::ClusterSubnetGroup, AWS::Redshift::EventSubscription
1707
- # },
1708
- # },
1709
- # }
1710
- # @!attribute [rw] configuration_recorder
1711
- # The configuration recorder object that records each configuration
1712
- # change made to the resources.
1713
- # @return [Types::ConfigurationRecorder]
1714
- class PutConfigurationRecorderRequest < Struct.new(
1715
- :configuration_recorder)
1716
- include Aws::Structure
1717
- end
1718
-
1719
- # The input for the PutDeliveryChannel action.
1720
- # @note When making an API call, pass PutDeliveryChannelRequest
1721
- # data as a hash:
1722
- #
1723
- # {
1724
- # delivery_channel: { # required
1725
- # name: "ChannelName",
1726
- # s3_bucket_name: "String",
1727
- # s3_key_prefix: "String",
1728
- # sns_topic_arn: "String",
1729
- # config_snapshot_delivery_properties: {
1730
- # delivery_frequency: "One_Hour", # accepts One_Hour, Three_Hours, Six_Hours, Twelve_Hours, TwentyFour_Hours
1731
- # },
1732
- # },
1733
- # }
1734
- # @!attribute [rw] delivery_channel
1735
- # The configuration delivery channel object that delivers the
1736
- # configuration information to an Amazon S3 bucket, and to an Amazon
1737
- # SNS topic.
1738
- # @return [Types::DeliveryChannel]
1739
- class PutDeliveryChannelRequest < Struct.new(
1740
- :delivery_channel)
1741
- include Aws::Structure
1742
- end
1743
-
1744
- # @note When making an API call, pass PutEvaluationsRequest
1745
- # data as a hash:
1746
- #
1747
- # {
1748
- # evaluations: [
1749
- # {
1750
- # compliance_resource_type: "StringWithCharLimit256", # required
1751
- # compliance_resource_id: "StringWithCharLimit256", # required
1752
- # compliance_type: "COMPLIANT", # required, accepts COMPLIANT, NON_COMPLIANT, NOT_APPLICABLE, INSUFFICIENT_DATA
1753
- # annotation: "StringWithCharLimit256",
1754
- # ordering_timestamp: Time.now, # required
1755
- # },
1756
- # ],
1757
- # result_token: "String", # required
1758
- # }
1759
- # @!attribute [rw] evaluations
1760
- # The assessments that the AWS Lambda function performs. Each
1761
- # evaluation identifies an AWS resource and indicates whether it
1762
- # complies with the AWS Config rule that invokes the AWS Lambda
1763
- # function.
1764
- # @return [Array<Types::Evaluation>]
1765
- #
1766
- # @!attribute [rw] result_token
1767
- # An encrypted token that associates an evaluation with an AWS Config
1768
- # rule. Identifies the rule and the event that triggered the
1769
- # evaluation
1770
- # @return [String]
1771
- class PutEvaluationsRequest < Struct.new(
1772
- :evaluations,
1773
- :result_token)
1774
- include Aws::Structure
1775
- end
1776
-
1777
- # @!attribute [rw] failed_evaluations
1778
- # Requests that failed because of a client or server error.
1779
- # @return [Array<Types::Evaluation>]
1780
- class PutEvaluationsResponse < Struct.new(
1781
- :failed_evaluations)
1782
- include Aws::Structure
1783
- end
1784
-
1785
- # Specifies the types of AWS resource for which AWS Config records
1786
- # configuration changes.
1787
- #
1788
- # In the recording group, you specify whether all supported types or
1789
- # specific types of resources are recorded.
1790
- #
1791
- # By default, AWS Config records configuration changes for all supported
1792
- # types of regional resources that AWS Config discovers in the region in
1793
- # which it is running. Regional resources are tied to a region and can
1794
- # be used only in that region. Examples of regional resources are EC2
1795
- # instances and EBS volumes.
1796
- #
1797
- # You can also have AWS Config record configuration changes for
1798
- # supported types of global resources (for example, IAM resources).
1799
- # Global resources are not tied to an individual region and can be used
1800
- # in all regions.
1801
- #
1802
- # The configuration details for any global resource are the same in all
1803
- # regions. If you customize AWS Config in multiple regions to record
1804
- # global resources, it will create multiple configuration items each
1805
- # time a global resource changes: one configuration item for each
1806
- # region. These configuration items will contain identical data. To
1807
- # prevent duplicate configuration items, you should consider customizing
1808
- # AWS Config in only one region to record global resources, unless you
1809
- # want the configuration items to be available in multiple regions.
1810
- #
1811
- # If you don't want AWS Config to record all resources, you can specify
1812
- # which types of resources it will record with the `resourceTypes`
1813
- # parameter.
1814
- #
1815
- # For a list of supported resource types, see [Supported resource
1816
- # types][1].
1817
- #
1818
- # For more information, see [Selecting Which Resources AWS Config
1819
- # Records][2].
1820
- #
1821
- #
1822
- #
1823
- # [1]: http://docs.aws.amazon.com/config/latest/developerguide/resource-config-reference.html#supported-resources
1824
- # [2]: http://docs.aws.amazon.com/config/latest/developerguide/select-resources.html
1825
- # @note When making an API call, pass RecordingGroup
1826
- # data as a hash:
1827
- #
1828
- # {
1829
- # all_supported: false,
1830
- # include_global_resource_types: false,
1831
- # resource_types: ["AWS::EC2::CustomerGateway"], # accepts AWS::EC2::CustomerGateway, AWS::EC2::EIP, AWS::EC2::Host, AWS::EC2::Instance, AWS::EC2::InternetGateway, AWS::EC2::NetworkAcl, AWS::EC2::NetworkInterface, AWS::EC2::RouteTable, AWS::EC2::SecurityGroup, AWS::EC2::Subnet, AWS::CloudTrail::Trail, AWS::EC2::Volume, AWS::EC2::VPC, AWS::EC2::VPNConnection, AWS::EC2::VPNGateway, AWS::IAM::Group, AWS::IAM::Policy, AWS::IAM::Role, AWS::IAM::User, AWS::ACM::Certificate, AWS::RDS::DBInstance, AWS::RDS::DBSubnetGroup, AWS::RDS::DBSecurityGroup, AWS::RDS::DBSnapshot, AWS::RDS::EventSubscription, AWS::ElasticLoadBalancingV2::LoadBalancer, AWS::S3::Bucket, AWS::SSM::ManagedInstanceInventory, AWS::Redshift::Cluster, AWS::Redshift::ClusterSnapshot, AWS::Redshift::ClusterParameterGroup, AWS::Redshift::ClusterSecurityGroup, AWS::Redshift::ClusterSubnetGroup, AWS::Redshift::EventSubscription
1832
- # }
1833
- # @!attribute [rw] all_supported
1834
- # Specifies whether AWS Config records configuration changes for every
1835
- # supported type of regional resource.
1836
- #
1837
- # If you set this option to `true`, when AWS Config adds support for a
1838
- # new type of regional resource, it automatically starts recording
1839
- # resources of that type.
1840
- #
1841
- # If you set this option to `true`, you cannot enumerate a list of
1842
- # `resourceTypes`.
1843
- # @return [Boolean]
1844
- #
1845
- # @!attribute [rw] include_global_resource_types
1846
- # Specifies whether AWS Config includes all supported types of global
1847
- # resources (for example, IAM resources) with the resources that it
1848
- # records.
1849
- #
1850
- # Before you can set this option to `true`, you must set the
1851
- # `allSupported` option to `true`.
1852
- #
1853
- # If you set this option to `true`, when AWS Config adds support for a
1854
- # new type of global resource, it automatically starts recording
1855
- # resources of that type.
1856
- #
1857
- # The configuration details for any global resource are the same in
1858
- # all regions. To prevent duplicate configuration items, you should
1859
- # consider customizing AWS Config in only one region to record global
1860
- # resources.
1861
- # @return [Boolean]
1862
- #
1863
- # @!attribute [rw] resource_types
1864
- # A comma-separated list that specifies the types of AWS resources for
1865
- # which AWS Config records configuration changes (for example,
1866
- # `AWS::EC2::Instance` or `AWS::CloudTrail::Trail`).
1867
- #
1868
- # Before you can set this option to `true`, you must set the
1869
- # `allSupported` option to `false`.
1870
- #
1871
- # If you set this option to `true`, when AWS Config adds support for a
1872
- # new type of resource, it will not record resources of that type
1873
- # unless you manually add that type to your recording group.
1874
- #
1875
- # For a list of valid `resourceTypes` values, see the **resourceType
1876
- # Value** column in [Supported AWS Resource Types][1].
1877
- #
1878
- #
1879
- #
1880
- # [1]: http://docs.aws.amazon.com/config/latest/developerguide/resource-config-reference.html#supported-resources
1881
- # @return [Array<String>]
1882
- class RecordingGroup < Struct.new(
1883
- :all_supported,
1884
- :include_global_resource_types,
1885
- :resource_types)
1886
- include Aws::Structure
1887
- end
1888
-
1889
- # The relationship of the related resource to the main resource.
1890
- # @!attribute [rw] resource_type
1891
- # The resource type of the related resource.
1892
- # @return [String]
1893
- #
1894
- # @!attribute [rw] resource_id
1895
- # The ID of the related resource (for example, `sg-xxxxxx`).
1896
- # @return [String]
1897
- #
1898
- # @!attribute [rw] resource_name
1899
- # The custom name of the related resource, if available.
1900
- # @return [String]
1901
- #
1902
- # @!attribute [rw] relationship_name
1903
- # The type of relationship with the related resource.
1904
- # @return [String]
1905
- class Relationship < Struct.new(
1906
- :resource_type,
1907
- :resource_id,
1908
- :resource_name,
1909
- :relationship_name)
1910
- include Aws::Structure
1911
- end
1912
-
1913
- # The details that identify a resource that is discovered by AWS Config,
1914
- # including the resource type, ID, and (if available) the custom
1915
- # resource name.
1916
- # @!attribute [rw] resource_type
1917
- # The type of resource.
1918
- # @return [String]
1919
- #
1920
- # @!attribute [rw] resource_id
1921
- # The ID of the resource (for example., `sg-xxxxxx`).
1922
- # @return [String]
1923
- #
1924
- # @!attribute [rw] resource_name
1925
- # The custom name of the resource (if available).
1926
- # @return [String]
1927
- #
1928
- # @!attribute [rw] resource_deletion_time
1929
- # The time that the resource was deleted.
1930
- # @return [Time]
1931
- class ResourceIdentifier < Struct.new(
1932
- :resource_type,
1933
- :resource_id,
1934
- :resource_name,
1935
- :resource_deletion_time)
1936
- include Aws::Structure
1937
- end
1938
-
1939
- # Defines which resources trigger an evaluation for an AWS Config rule.
1940
- # The scope can include one or more resource types, a combination of a
1941
- # tag key and value, or a combination of one resource type and one
1942
- # resource ID. Specify a scope to constrain which resources trigger an
1943
- # evaluation for a rule. Otherwise, evaluations for the rule are
1944
- # triggered when any resource in your recording group changes in
1945
- # configuration.
1946
- # @note When making an API call, pass Scope
1947
- # data as a hash:
1948
- #
1949
- # {
1950
- # compliance_resource_types: ["StringWithCharLimit256"],
1951
- # tag_key: "StringWithCharLimit128",
1952
- # tag_value: "StringWithCharLimit256",
1953
- # compliance_resource_id: "StringWithCharLimit256",
1954
- # }
1955
- # @!attribute [rw] compliance_resource_types
1956
- # The resource types of only those AWS resources that you want to
1957
- # trigger an evaluation for the rule. You can only specify one type if
1958
- # you also specify a resource ID for `ComplianceResourceId`.
1959
- # @return [Array<String>]
1960
- #
1961
- # @!attribute [rw] tag_key
1962
- # The tag key that is applied to only those AWS resources that you
1963
- # want you want to trigger an evaluation for the rule.
1964
- # @return [String]
1965
- #
1966
- # @!attribute [rw] tag_value
1967
- # The tag value applied to only those AWS resources that you want to
1968
- # trigger an evaluation for the rule. If you specify a value for
1969
- # `TagValue`, you must also specify a value for `TagKey`.
1970
- # @return [String]
1971
- #
1972
- # @!attribute [rw] compliance_resource_id
1973
- # The IDs of the only AWS resource that you want to trigger an
1974
- # evaluation for the rule. If you specify a resource ID, you must
1975
- # specify one resource type for `ComplianceResourceTypes`.
1976
- # @return [String]
1977
- class Scope < Struct.new(
1978
- :compliance_resource_types,
1979
- :tag_key,
1980
- :tag_value,
1981
- :compliance_resource_id)
1982
- include Aws::Structure
1983
- end
1984
-
1985
- # Provides the AWS Config rule owner (AWS or customer), the rule
1986
- # identifier, and the events that trigger the evaluation of your AWS
1987
- # resources.
1988
- # @note When making an API call, pass Source
1989
- # data as a hash:
1990
- #
1991
- # {
1992
- # owner: "CUSTOM_LAMBDA", # required, accepts CUSTOM_LAMBDA, AWS
1993
- # source_identifier: "StringWithCharLimit256", # required
1994
- # source_details: [
1995
- # {
1996
- # event_source: "aws.config", # accepts aws.config
1997
- # message_type: "ConfigurationItemChangeNotification", # accepts ConfigurationItemChangeNotification, ConfigurationSnapshotDeliveryCompleted, ScheduledNotification
1998
- # maximum_execution_frequency: "One_Hour", # accepts One_Hour, Three_Hours, Six_Hours, Twelve_Hours, TwentyFour_Hours
1999
- # },
2000
- # ],
2001
- # }
2002
- # @!attribute [rw] owner
2003
- # Indicates whether AWS or the customer owns and manages the AWS
2004
- # Config rule.
2005
- # @return [String]
2006
- #
2007
- # @!attribute [rw] source_identifier
2008
- # For AWS Config managed rules, a predefined identifier from a list.
2009
- # For example, `IAM_PASSWORD_POLICY` is a managed rule. To reference a
2010
- # managed rule, see [Using AWS Managed Config Rules][1].
2011
- #
2012
- # For custom rules, the identifier is the Amazon Resource Name (ARN)
2013
- # of the rule's AWS Lambda function, such as
2014
- # `arn:aws:lambda:us-east-1:123456789012:function:custom_rule_name`.
2015
- #
2016
- #
2017
- #
2018
- # [1]: http://docs.aws.amazon.com/config/latest/developerguide/evaluate-config_use-managed-rules.html
2019
- # @return [String]
2020
- #
2021
- # @!attribute [rw] source_details
2022
- # Provides the source and type of the event that causes AWS Config to
2023
- # evaluate your AWS resources.
2024
- # @return [Array<Types::SourceDetail>]
2025
- class Source < Struct.new(
2026
- :owner,
2027
- :source_identifier,
2028
- :source_details)
2029
- include Aws::Structure
2030
- end
2031
-
2032
- # Provides the source and the message types that trigger AWS Config to
2033
- # evaluate your AWS resources against a rule. It also provides the
2034
- # frequency with which you want AWS Config to run evaluations for the
2035
- # rule if the trigger type is periodic. You can specify the parameter
2036
- # values for `SourceDetail` only for custom rules.
2037
- # @note When making an API call, pass SourceDetail
2038
- # data as a hash:
2039
- #
2040
- # {
2041
- # event_source: "aws.config", # accepts aws.config
2042
- # message_type: "ConfigurationItemChangeNotification", # accepts ConfigurationItemChangeNotification, ConfigurationSnapshotDeliveryCompleted, ScheduledNotification
2043
- # maximum_execution_frequency: "One_Hour", # accepts One_Hour, Three_Hours, Six_Hours, Twelve_Hours, TwentyFour_Hours
2044
- # }
2045
- # @!attribute [rw] event_source
2046
- # The source of the event, such as an AWS service, that triggers AWS
2047
- # Config to evaluate your AWS resources.
2048
- # @return [String]
2049
- #
2050
- # @!attribute [rw] message_type
2051
- # The type of notification that triggers AWS Config to run an
2052
- # evaluation. You can specify the following notification types:
2053
- #
2054
- # `ConfigurationItemChangeNotification` - Triggers an evaluation when
2055
- # AWS Config delivers a configuration item change notification.
2056
- #
2057
- # `ScheduledNotification` - Triggers a periodic evaluation at the
2058
- # frequency specified for `MaximumExecutionFrequency`.
2059
- #
2060
- # `ConfigurationSnapshotDeliveryCompleted` - Triggers a periodic
2061
- # evaluation when AWS Config delivers a configuration snapshot.
2062
- # @return [String]
2063
- #
2064
- # @!attribute [rw] maximum_execution_frequency
2065
- # The frequency that you want AWS Config to run evaluations for a rule
2066
- # that is triggered periodically. If you specify a value for
2067
- # `MaximumExecutionFrequency`, then `MessageType` must use the
2068
- # `ScheduledNotification` value.
2069
- # @return [String]
2070
- class SourceDetail < Struct.new(
2071
- :event_source,
2072
- :message_type,
2073
- :maximum_execution_frequency)
2074
- include Aws::Structure
2075
- end
2076
-
2077
- # @note When making an API call, pass StartConfigRulesEvaluationRequest
2078
- # data as a hash:
2079
- #
2080
- # {
2081
- # config_rule_names: ["StringWithCharLimit64"],
2082
- # }
2083
- # @!attribute [rw] config_rule_names
2084
- # The list of names of Config rules that you want to run evaluations
2085
- # for.
2086
- # @return [Array<String>]
2087
- class StartConfigRulesEvaluationRequest < Struct.new(
2088
- :config_rule_names)
2089
- include Aws::Structure
2090
- end
2091
-
2092
- # The output when you start the evaluation for the specified Config
2093
- # rule.
2094
- class StartConfigRulesEvaluationResponse < Aws::EmptyStructure; end
2095
-
2096
- # The input for the StartConfigurationRecorder action.
2097
- # @note When making an API call, pass StartConfigurationRecorderRequest
2098
- # data as a hash:
2099
- #
2100
- # {
2101
- # configuration_recorder_name: "RecorderName", # required
2102
- # }
2103
- # @!attribute [rw] configuration_recorder_name
2104
- # The name of the recorder object that records each configuration
2105
- # change made to the resources.
2106
- # @return [String]
2107
- class StartConfigurationRecorderRequest < Struct.new(
2108
- :configuration_recorder_name)
2109
- include Aws::Structure
2110
- end
2111
-
2112
- # The input for the StopConfigurationRecorder action.
2113
- # @note When making an API call, pass StopConfigurationRecorderRequest
2114
- # data as a hash:
2115
- #
2116
- # {
2117
- # configuration_recorder_name: "RecorderName", # required
2118
- # }
2119
- # @!attribute [rw] configuration_recorder_name
2120
- # The name of the recorder object that records each configuration
2121
- # change made to the resources.
2122
- # @return [String]
2123
- class StopConfigurationRecorderRequest < Struct.new(
2124
- :configuration_recorder_name)
2125
- include Aws::Structure
2126
- end
8
+ module Aws::ConfigService
9
+ module Types
10
+
11
+ # Indicates whether an AWS resource or AWS Config rule is compliant and
12
+ # provides the number of contributors that affect the compliance.
13
+ #
14
+ # @!attribute [rw] compliance_type
15
+ # Indicates whether an AWS resource or AWS Config rule is compliant.
16
+ #
17
+ # A resource is compliant if it complies with all of the AWS Config
18
+ # rules that evaluate it, and it is noncompliant if it does not comply
19
+ # with one or more of these rules.
20
+ #
21
+ # A rule is compliant if all of the resources that the rule evaluates
22
+ # comply with it, and it is noncompliant if any of these resources do
23
+ # not comply.
24
+ #
25
+ # AWS Config returns the `INSUFFICIENT_DATA` value when no evaluation
26
+ # results are available for the AWS resource or Config rule.
27
+ #
28
+ # For the `Compliance` data type, AWS Config supports only
29
+ # `COMPLIANT`, `NON_COMPLIANT`, and `INSUFFICIENT_DATA` values. AWS
30
+ # Config does not support the `NOT_APPLICABLE` value for the
31
+ # `Compliance` data type.
32
+ # @return [String]
33
+ #
34
+ # @!attribute [rw] compliance_contributor_count
35
+ # The number of AWS resources or AWS Config rules that cause a result
36
+ # of `NON_COMPLIANT`, up to a maximum number.
37
+ # @return [Types::ComplianceContributorCount]
38
+ #
39
+ class Compliance < Struct.new(
40
+ :compliance_type,
41
+ :compliance_contributor_count)
42
+ include Aws::Structure
43
+ end
44
+
45
+ # Indicates whether an AWS Config rule is compliant. A rule is compliant
46
+ # if all of the resources that the rule evaluated comply with it, and it
47
+ # is noncompliant if any of these resources do not comply.
48
+ #
49
+ # @!attribute [rw] config_rule_name
50
+ # The name of the AWS Config rule.
51
+ # @return [String]
52
+ #
53
+ # @!attribute [rw] compliance
54
+ # Indicates whether the AWS Config rule is compliant.
55
+ # @return [Types::Compliance]
56
+ #
57
+ class ComplianceByConfigRule < Struct.new(
58
+ :config_rule_name,
59
+ :compliance)
60
+ include Aws::Structure
61
+ end
62
+
63
+ # Indicates whether an AWS resource that is evaluated according to one
64
+ # or more AWS Config rules is compliant. A resource is compliant if it
65
+ # complies with all of the rules that evaluate it, and it is
66
+ # noncompliant if it does not comply with one or more of these rules.
67
+ #
68
+ # @!attribute [rw] resource_type
69
+ # The type of the AWS resource that was evaluated.
70
+ # @return [String]
71
+ #
72
+ # @!attribute [rw] resource_id
73
+ # The ID of the AWS resource that was evaluated.
74
+ # @return [String]
75
+ #
76
+ # @!attribute [rw] compliance
77
+ # Indicates whether the AWS resource complies with all of the AWS
78
+ # Config rules that evaluated it.
79
+ # @return [Types::Compliance]
80
+ #
81
+ class ComplianceByResource < Struct.new(
82
+ :resource_type,
83
+ :resource_id,
84
+ :compliance)
85
+ include Aws::Structure
86
+ end
87
+
88
+ # The number of AWS resources or AWS Config rules responsible for the
89
+ # current compliance of the item, up to a maximum number.
90
+ #
91
+ # @!attribute [rw] capped_count
92
+ # The number of AWS resources or AWS Config rules responsible for the
93
+ # current compliance of the item.
94
+ # @return [Integer]
95
+ #
96
+ # @!attribute [rw] cap_exceeded
97
+ # Indicates whether the maximum count is reached.
98
+ # @return [Boolean]
99
+ #
100
+ class ComplianceContributorCount < Struct.new(
101
+ :capped_count,
102
+ :cap_exceeded)
103
+ include Aws::Structure
104
+ end
105
+
106
+ # The number of AWS Config rules or AWS resources that are compliant and
107
+ # noncompliant.
108
+ #
109
+ # @!attribute [rw] compliant_resource_count
110
+ # The number of AWS Config rules or AWS resources that are compliant,
111
+ # up to a maximum of 25 for rules and 100 for resources.
112
+ # @return [Types::ComplianceContributorCount]
113
+ #
114
+ # @!attribute [rw] non_compliant_resource_count
115
+ # The number of AWS Config rules or AWS resources that are
116
+ # noncompliant, up to a maximum of 25 for rules and 100 for resources.
117
+ # @return [Types::ComplianceContributorCount]
118
+ #
119
+ # @!attribute [rw] compliance_summary_timestamp
120
+ # The time that AWS Config created the compliance summary.
121
+ # @return [Time]
122
+ #
123
+ class ComplianceSummary < Struct.new(
124
+ :compliant_resource_count,
125
+ :non_compliant_resource_count,
126
+ :compliance_summary_timestamp)
127
+ include Aws::Structure
128
+ end
129
+
130
+ # The number of AWS resources of a specific type that are compliant or
131
+ # noncompliant, up to a maximum of 100 for each compliance.
132
+ #
133
+ # @!attribute [rw] resource_type
134
+ # The type of AWS resource.
135
+ # @return [String]
136
+ #
137
+ # @!attribute [rw] compliance_summary
138
+ # The number of AWS resources that are compliant or noncompliant, up
139
+ # to a maximum of 100 for each compliance.
140
+ # @return [Types::ComplianceSummary]
141
+ #
142
+ class ComplianceSummaryByResourceType < Struct.new(
143
+ :resource_type,
144
+ :compliance_summary)
145
+ include Aws::Structure
146
+ end
147
+
148
+ # A list that contains the status of the delivery of either the snapshot
149
+ # or the configuration history to the specified Amazon S3 bucket.
150
+ #
151
+ # @!attribute [rw] last_status
152
+ # Status of the last attempted delivery.
153
+ # @return [String]
154
+ #
155
+ # @!attribute [rw] last_error_code
156
+ # The error code from the last attempted delivery.
157
+ # @return [String]
158
+ #
159
+ # @!attribute [rw] last_error_message
160
+ # The error message from the last attempted delivery.
161
+ # @return [String]
162
+ #
163
+ # @!attribute [rw] last_attempt_time
164
+ # The time of the last attempted delivery.
165
+ # @return [Time]
166
+ #
167
+ # @!attribute [rw] last_successful_time
168
+ # The time of the last successful delivery.
169
+ # @return [Time]
170
+ #
171
+ # @!attribute [rw] next_delivery_time
172
+ # The time that the next delivery occurs.
173
+ # @return [Time]
174
+ #
175
+ class ConfigExportDeliveryInfo < Struct.new(
176
+ :last_status,
177
+ :last_error_code,
178
+ :last_error_message,
179
+ :last_attempt_time,
180
+ :last_successful_time,
181
+ :next_delivery_time)
182
+ include Aws::Structure
183
+ end
184
+
185
+ # An AWS Config rule represents an AWS Lambda function that you create
186
+ # for a custom rule or a predefined function for an AWS managed rule.
187
+ # The function evaluates configuration items to assess whether your AWS
188
+ # resources comply with your desired configurations. This function can
189
+ # run when AWS Config detects a configuration change to an AWS resource
190
+ # and at a periodic frequency that you choose (for example, every 24
191
+ # hours).
192
+ #
193
+ # <note markdown="1"> You can use the AWS CLI and AWS SDKs if you want to create a rule that
194
+ # triggers evaluations for your resources when AWS Config delivers the
195
+ # configuration snapshot. For more information, see
196
+ # ConfigSnapshotDeliveryProperties.
197
+ #
198
+ # </note>
199
+ #
200
+ # For more information about developing and using AWS Config rules, see
201
+ # [Evaluating AWS Resource Configurations with AWS Config][1] in the
202
+ # *AWS Config Developer Guide*.
203
+ #
204
+ #
205
+ #
206
+ # [1]: http://docs.aws.amazon.com/config/latest/developerguide/evaluate-config.html
207
+ #
208
+ # @note When making an API call, you may pass ConfigRule
209
+ # data as a hash:
210
+ #
211
+ # {
212
+ # config_rule_name: "StringWithCharLimit64",
213
+ # config_rule_arn: "String",
214
+ # config_rule_id: "String",
215
+ # description: "EmptiableStringWithCharLimit256",
216
+ # scope: {
217
+ # compliance_resource_types: ["StringWithCharLimit256"],
218
+ # tag_key: "StringWithCharLimit128",
219
+ # tag_value: "StringWithCharLimit256",
220
+ # compliance_resource_id: "StringWithCharLimit256",
221
+ # },
222
+ # source: { # required
223
+ # owner: "CUSTOM_LAMBDA", # required, accepts CUSTOM_LAMBDA, AWS
224
+ # source_identifier: "StringWithCharLimit256", # required
225
+ # source_details: [
226
+ # {
227
+ # event_source: "aws.config", # accepts aws.config
228
+ # message_type: "ConfigurationItemChangeNotification", # accepts ConfigurationItemChangeNotification, ConfigurationSnapshotDeliveryCompleted, ScheduledNotification, OversizedConfigurationItemChangeNotification
229
+ # maximum_execution_frequency: "One_Hour", # accepts One_Hour, Three_Hours, Six_Hours, Twelve_Hours, TwentyFour_Hours
230
+ # },
231
+ # ],
232
+ # },
233
+ # input_parameters: "StringWithCharLimit1024",
234
+ # maximum_execution_frequency: "One_Hour", # accepts One_Hour, Three_Hours, Six_Hours, Twelve_Hours, TwentyFour_Hours
235
+ # config_rule_state: "ACTIVE", # accepts ACTIVE, DELETING, DELETING_RESULTS, EVALUATING
236
+ # }
237
+ #
238
+ # @!attribute [rw] config_rule_name
239
+ # The name that you assign to the AWS Config rule. The name is
240
+ # required if you are adding a new rule.
241
+ # @return [String]
242
+ #
243
+ # @!attribute [rw] config_rule_arn
244
+ # The Amazon Resource Name (ARN) of the AWS Config rule.
245
+ # @return [String]
246
+ #
247
+ # @!attribute [rw] config_rule_id
248
+ # The ID of the AWS Config rule.
249
+ # @return [String]
250
+ #
251
+ # @!attribute [rw] description
252
+ # The description that you provide for the AWS Config rule.
253
+ # @return [String]
254
+ #
255
+ # @!attribute [rw] scope
256
+ # Defines which resources can trigger an evaluation for the rule. The
257
+ # scope can include one or more resource types, a combination of one
258
+ # resource type and one resource ID, or a combination of a tag key and
259
+ # value. Specify a scope to constrain the resources that can trigger
260
+ # an evaluation for the rule. If you do not specify a scope,
261
+ # evaluations are triggered when any resource in the recording group
262
+ # changes.
263
+ # @return [Types::Scope]
264
+ #
265
+ # @!attribute [rw] source
266
+ # Provides the rule owner (AWS or customer), the rule identifier, and
267
+ # the notifications that cause the function to evaluate your AWS
268
+ # resources.
269
+ # @return [Types::Source]
270
+ #
271
+ # @!attribute [rw] input_parameters
272
+ # A string in JSON format that is passed to the AWS Config rule Lambda
273
+ # function.
274
+ # @return [String]
275
+ #
276
+ # @!attribute [rw] maximum_execution_frequency
277
+ # The maximum frequency with which AWS Config runs evaluations for a
278
+ # rule. You can specify a value for `MaximumExecutionFrequency` when:
279
+ #
280
+ # * You are using an AWS managed rule that is triggered at a periodic
281
+ # frequency.
282
+ #
283
+ # * Your custom rule is triggered when AWS Config delivers the
284
+ # configuration snapshot.
285
+ #
286
+ # For more information, see ConfigSnapshotDeliveryProperties.
287
+ # @return [String]
288
+ #
289
+ # @!attribute [rw] config_rule_state
290
+ # Indicates whether the AWS Config rule is active or is currently
291
+ # being deleted by AWS Config. It can also indicate the evaluation
292
+ # status for the Config rule.
293
+ #
294
+ # AWS Config sets the state of the rule to `EVALUATING` temporarily
295
+ # after you use the `StartConfigRulesEvaluation` request to evaluate
296
+ # your resources against the Config rule.
297
+ #
298
+ # AWS Config sets the state of the rule to `DELETING_RESULTS`
299
+ # temporarily after you use the `DeleteEvaluationResults` request to
300
+ # delete the current evaluation results for the Config rule.
301
+ #
302
+ # AWS Config sets the state of a rule to `DELETING` temporarily after
303
+ # you use the `DeleteConfigRule` request to delete the rule. After AWS
304
+ # Config deletes the rule, the rule and all of its evaluations are
305
+ # erased and are no longer available.
306
+ # @return [String]
307
+ #
308
+ class ConfigRule < Struct.new(
309
+ :config_rule_name,
310
+ :config_rule_arn,
311
+ :config_rule_id,
312
+ :description,
313
+ :scope,
314
+ :source,
315
+ :input_parameters,
316
+ :maximum_execution_frequency,
317
+ :config_rule_state)
318
+ include Aws::Structure
319
+ end
320
+
321
+ # Status information for your AWS managed Config rules. The status
322
+ # includes information such as the last time the rule ran, the last time
323
+ # it failed, and the related error for the last failure.
324
+ #
325
+ # This action does not return status information about custom Config
326
+ # rules.
327
+ #
328
+ # @!attribute [rw] config_rule_name
329
+ # The name of the AWS Config rule.
330
+ # @return [String]
331
+ #
332
+ # @!attribute [rw] config_rule_arn
333
+ # The Amazon Resource Name (ARN) of the AWS Config rule.
334
+ # @return [String]
335
+ #
336
+ # @!attribute [rw] config_rule_id
337
+ # The ID of the AWS Config rule.
338
+ # @return [String]
339
+ #
340
+ # @!attribute [rw] last_successful_invocation_time
341
+ # The time that AWS Config last successfully invoked the AWS Config
342
+ # rule to evaluate your AWS resources.
343
+ # @return [Time]
344
+ #
345
+ # @!attribute [rw] last_failed_invocation_time
346
+ # The time that AWS Config last failed to invoke the AWS Config rule
347
+ # to evaluate your AWS resources.
348
+ # @return [Time]
349
+ #
350
+ # @!attribute [rw] last_successful_evaluation_time
351
+ # The time that AWS Config last successfully evaluated your AWS
352
+ # resources against the rule.
353
+ # @return [Time]
354
+ #
355
+ # @!attribute [rw] last_failed_evaluation_time
356
+ # The time that AWS Config last failed to evaluate your AWS resources
357
+ # against the rule.
358
+ # @return [Time]
359
+ #
360
+ # @!attribute [rw] first_activated_time
361
+ # The time that you first activated the AWS Config rule.
362
+ # @return [Time]
363
+ #
364
+ # @!attribute [rw] last_error_code
365
+ # The error code that AWS Config returned when the rule last failed.
366
+ # @return [String]
367
+ #
368
+ # @!attribute [rw] last_error_message
369
+ # The error message that AWS Config returned when the rule last
370
+ # failed.
371
+ # @return [String]
372
+ #
373
+ # @!attribute [rw] first_evaluation_started
374
+ # Indicates whether AWS Config has evaluated your resources against
375
+ # the rule at least once.
376
+ #
377
+ # * `true` - AWS Config has evaluated your AWS resources against the
378
+ # rule at least once.
379
+ #
380
+ # * `false` - AWS Config has not once finished evaluating your AWS
381
+ # resources against the rule.
382
+ # @return [Boolean]
383
+ #
384
+ class ConfigRuleEvaluationStatus < Struct.new(
385
+ :config_rule_name,
386
+ :config_rule_arn,
387
+ :config_rule_id,
388
+ :last_successful_invocation_time,
389
+ :last_failed_invocation_time,
390
+ :last_successful_evaluation_time,
391
+ :last_failed_evaluation_time,
392
+ :first_activated_time,
393
+ :last_error_code,
394
+ :last_error_message,
395
+ :first_evaluation_started)
396
+ include Aws::Structure
397
+ end
398
+
399
+ # Provides options for how often AWS Config delivers configuration
400
+ # snapshots to the Amazon S3 bucket in your delivery channel.
401
+ #
402
+ # <note markdown="1"> If you want to create a rule that triggers evaluations for your
403
+ # resources when AWS Config delivers the configuration snapshot, see the
404
+ # following:
405
+ #
406
+ # </note>
407
+ #
408
+ # The frequency for a rule that triggers evaluations for your resources
409
+ # when AWS Config delivers the configuration snapshot is set by one of
410
+ # two values, depending on which is less frequent:
411
+ #
412
+ # * The value for the `deliveryFrequency` parameter within the delivery
413
+ # channel configuration, which sets how often AWS Config delivers
414
+ # configuration snapshots. This value also sets how often AWS Config
415
+ # invokes evaluations for Config rules.
416
+ #
417
+ # * The value for the `MaximumExecutionFrequency` parameter, which sets
418
+ # the maximum frequency with which AWS Config invokes evaluations for
419
+ # the rule. For more information, see ConfigRule.
420
+ #
421
+ # If the `deliveryFrequency` value is less frequent than the
422
+ # `MaximumExecutionFrequency` value for a rule, AWS Config invokes the
423
+ # rule only as often as the `deliveryFrequency` value.
424
+ #
425
+ # 1. For example, you want your rule to run evaluations when AWS Config
426
+ # delivers the configuration snapshot.
427
+ #
428
+ # 2. You specify the `MaximumExecutionFrequency` value for `Six_Hours`.
429
+ #
430
+ # 3. You then specify the delivery channel `deliveryFrequency` value
431
+ # for `TwentyFour_Hours`.
432
+ #
433
+ # 4. Because the value for `deliveryFrequency` is less frequent than
434
+ # `MaximumExecutionFrequency`, AWS Config invokes evaluations for
435
+ # the rule every 24 hours.
436
+ #
437
+ # You should set the `MaximumExecutionFrequency` value to be at least as
438
+ # frequent as the `deliveryFrequency` value. You can view the
439
+ # `deliveryFrequency` value by using the `DescribeDeliveryChannnels`
440
+ # action.
441
+ #
442
+ # To update the `deliveryFrequency` with which AWS Config delivers your
443
+ # configuration snapshots, use the `PutDeliveryChannel` action.
444
+ #
445
+ # @note When making an API call, you may pass ConfigSnapshotDeliveryProperties
446
+ # data as a hash:
447
+ #
448
+ # {
449
+ # delivery_frequency: "One_Hour", # accepts One_Hour, Three_Hours, Six_Hours, Twelve_Hours, TwentyFour_Hours
450
+ # }
451
+ #
452
+ # @!attribute [rw] delivery_frequency
453
+ # The frequency with which AWS Config delivers configuration
454
+ # snapshots.
455
+ # @return [String]
456
+ #
457
+ class ConfigSnapshotDeliveryProperties < Struct.new(
458
+ :delivery_frequency)
459
+ include Aws::Structure
460
+ end
461
+
462
+ # A list that contains the status of the delivery of the configuration
463
+ # stream notification to the Amazon SNS topic.
464
+ #
465
+ # @!attribute [rw] last_status
466
+ # Status of the last attempted delivery.
467
+ #
468
+ # **Note** Providing an SNS topic on a [DeliveryChannel][1] for AWS
469
+ # Config is optional. If the SNS delivery is turned off, the last
470
+ # status will be **Not\_Applicable**.
471
+ #
472
+ #
473
+ #
474
+ # [1]: http://docs.aws.amazon.com/config/latest/APIReference/API_DeliveryChannel.html
475
+ # @return [String]
476
+ #
477
+ # @!attribute [rw] last_error_code
478
+ # The error code from the last attempted delivery.
479
+ # @return [String]
480
+ #
481
+ # @!attribute [rw] last_error_message
482
+ # The error message from the last attempted delivery.
483
+ # @return [String]
484
+ #
485
+ # @!attribute [rw] last_status_change_time
486
+ # The time from the last status change.
487
+ # @return [Time]
488
+ #
489
+ class ConfigStreamDeliveryInfo < Struct.new(
490
+ :last_status,
491
+ :last_error_code,
492
+ :last_error_message,
493
+ :last_status_change_time)
494
+ include Aws::Structure
495
+ end
496
+
497
+ # A list that contains detailed configurations of a specified resource.
498
+ #
499
+ # @!attribute [rw] version
500
+ # The version number of the resource configuration.
501
+ # @return [String]
502
+ #
503
+ # @!attribute [rw] account_id
504
+ # The 12 digit AWS account ID associated with the resource.
505
+ # @return [String]
506
+ #
507
+ # @!attribute [rw] configuration_item_capture_time
508
+ # The time when the configuration recording was initiated.
509
+ # @return [Time]
510
+ #
511
+ # @!attribute [rw] configuration_item_status
512
+ # The configuration item status.
513
+ # @return [String]
514
+ #
515
+ # @!attribute [rw] configuration_state_id
516
+ # An identifier that indicates the ordering of the configuration items
517
+ # of a resource.
518
+ # @return [String]
519
+ #
520
+ # @!attribute [rw] configuration_item_md5_hash
521
+ # Unique MD5 hash that represents the configuration item's state.
522
+ #
523
+ # You can use MD5 hash to compare the states of two or more
524
+ # configuration items that are associated with the same resource.
525
+ # @return [String]
526
+ #
527
+ # @!attribute [rw] arn
528
+ # The Amazon Resource Name (ARN) of the resource.
529
+ # @return [String]
530
+ #
531
+ # @!attribute [rw] resource_type
532
+ # The type of AWS resource.
533
+ # @return [String]
534
+ #
535
+ # @!attribute [rw] resource_id
536
+ # The ID of the resource (for example., `sg-xxxxxx`).
537
+ # @return [String]
538
+ #
539
+ # @!attribute [rw] resource_name
540
+ # The custom name of the resource, if available.
541
+ # @return [String]
542
+ #
543
+ # @!attribute [rw] aws_region
544
+ # The region where the resource resides.
545
+ # @return [String]
546
+ #
547
+ # @!attribute [rw] availability_zone
548
+ # The Availability Zone associated with the resource.
549
+ # @return [String]
550
+ #
551
+ # @!attribute [rw] resource_creation_time
552
+ # The time stamp when the resource was created.
553
+ # @return [Time]
554
+ #
555
+ # @!attribute [rw] tags
556
+ # A mapping of key value tags associated with the resource.
557
+ # @return [Hash<String,String>]
558
+ #
559
+ # @!attribute [rw] related_events
560
+ # A list of CloudTrail event IDs.
561
+ #
562
+ # A populated field indicates that the current configuration was
563
+ # initiated by the events recorded in the CloudTrail log. For more
564
+ # information about CloudTrail, see [What is AWS CloudTrail?][1].
565
+ #
566
+ # An empty field indicates that the current configuration was not
567
+ # initiated by any event.
568
+ #
569
+ #
570
+ #
571
+ # [1]: http://docs.aws.amazon.com/awscloudtrail/latest/userguide/what_is_cloud_trail_top_level.html
572
+ # @return [Array<String>]
573
+ #
574
+ # @!attribute [rw] relationships
575
+ # A list of related AWS resources.
576
+ # @return [Array<Types::Relationship>]
577
+ #
578
+ # @!attribute [rw] configuration
579
+ # The description of the resource configuration.
580
+ # @return [String]
581
+ #
582
+ # @!attribute [rw] supplementary_configuration
583
+ # Configuration attributes that AWS Config returns for certain
584
+ # resource types to supplement the information returned for the
585
+ # `configuration` parameter.
586
+ # @return [Hash<String,String>]
587
+ #
588
+ class ConfigurationItem < Struct.new(
589
+ :version,
590
+ :account_id,
591
+ :configuration_item_capture_time,
592
+ :configuration_item_status,
593
+ :configuration_state_id,
594
+ :configuration_item_md5_hash,
595
+ :arn,
596
+ :resource_type,
597
+ :resource_id,
598
+ :resource_name,
599
+ :aws_region,
600
+ :availability_zone,
601
+ :resource_creation_time,
602
+ :tags,
603
+ :related_events,
604
+ :relationships,
605
+ :configuration,
606
+ :supplementary_configuration)
607
+ include Aws::Structure
608
+ end
609
+
610
+ # An object that represents the recording of configuration changes of an
611
+ # AWS resource.
612
+ #
613
+ # @note When making an API call, you may pass ConfigurationRecorder
614
+ # data as a hash:
615
+ #
616
+ # {
617
+ # name: "RecorderName",
618
+ # role_arn: "String",
619
+ # recording_group: {
620
+ # all_supported: false,
621
+ # include_global_resource_types: false,
622
+ # resource_types: ["AWS::EC2::CustomerGateway"], # accepts AWS::EC2::CustomerGateway, AWS::EC2::EIP, AWS::EC2::Host, AWS::EC2::Instance, AWS::EC2::InternetGateway, AWS::EC2::NetworkAcl, AWS::EC2::NetworkInterface, AWS::EC2::RouteTable, AWS::EC2::SecurityGroup, AWS::EC2::Subnet, AWS::CloudTrail::Trail, AWS::EC2::Volume, AWS::EC2::VPC, AWS::EC2::VPNConnection, AWS::EC2::VPNGateway, AWS::IAM::Group, AWS::IAM::Policy, AWS::IAM::Role, AWS::IAM::User, AWS::ACM::Certificate, AWS::RDS::DBInstance, AWS::RDS::DBSubnetGroup, AWS::RDS::DBSecurityGroup, AWS::RDS::DBSnapshot, AWS::RDS::EventSubscription, AWS::ElasticLoadBalancingV2::LoadBalancer, AWS::S3::Bucket, AWS::SSM::ManagedInstanceInventory, AWS::Redshift::Cluster, AWS::Redshift::ClusterSnapshot, AWS::Redshift::ClusterParameterGroup, AWS::Redshift::ClusterSecurityGroup, AWS::Redshift::ClusterSubnetGroup, AWS::Redshift::EventSubscription
623
+ # },
624
+ # }
625
+ #
626
+ # @!attribute [rw] name
627
+ # The name of the recorder. By default, AWS Config automatically
628
+ # assigns the name "default" when creating the configuration
629
+ # recorder. You cannot change the assigned name.
630
+ # @return [String]
631
+ #
632
+ # @!attribute [rw] role_arn
633
+ # Amazon Resource Name (ARN) of the IAM role used to describe the AWS
634
+ # resources associated with the account.
635
+ # @return [String]
636
+ #
637
+ # @!attribute [rw] recording_group
638
+ # Specifies the types of AWS resource for which AWS Config records
639
+ # configuration changes.
640
+ # @return [Types::RecordingGroup]
641
+ #
642
+ class ConfigurationRecorder < Struct.new(
643
+ :name,
644
+ :role_arn,
645
+ :recording_group)
646
+ include Aws::Structure
647
+ end
648
+
649
+ # The current status of the configuration recorder.
650
+ #
651
+ # @!attribute [rw] name
652
+ # The name of the configuration recorder.
653
+ # @return [String]
654
+ #
655
+ # @!attribute [rw] last_start_time
656
+ # The time the recorder was last started.
657
+ # @return [Time]
658
+ #
659
+ # @!attribute [rw] last_stop_time
660
+ # The time the recorder was last stopped.
661
+ # @return [Time]
662
+ #
663
+ # @!attribute [rw] recording
664
+ # Specifies whether the recorder is currently recording or not.
665
+ # @return [Boolean]
666
+ #
667
+ # @!attribute [rw] last_status
668
+ # The last (previous) status of the recorder.
669
+ # @return [String]
670
+ #
671
+ # @!attribute [rw] last_error_code
672
+ # The error code indicating that the recording failed.
673
+ # @return [String]
674
+ #
675
+ # @!attribute [rw] last_error_message
676
+ # The message indicating that the recording failed due to an error.
677
+ # @return [String]
678
+ #
679
+ # @!attribute [rw] last_status_change_time
680
+ # The time when the status was last changed.
681
+ # @return [Time]
682
+ #
683
+ class ConfigurationRecorderStatus < Struct.new(
684
+ :name,
685
+ :last_start_time,
686
+ :last_stop_time,
687
+ :recording,
688
+ :last_status,
689
+ :last_error_code,
690
+ :last_error_message,
691
+ :last_status_change_time)
692
+ include Aws::Structure
693
+ end
694
+
695
+ # @note When making an API call, you may pass DeleteConfigRuleRequest
696
+ # data as a hash:
697
+ #
698
+ # {
699
+ # config_rule_name: "StringWithCharLimit64", # required
700
+ # }
701
+ #
702
+ # @!attribute [rw] config_rule_name
703
+ # The name of the AWS Config rule that you want to delete.
704
+ # @return [String]
705
+ #
706
+ class DeleteConfigRuleRequest < Struct.new(
707
+ :config_rule_name)
708
+ include Aws::Structure
709
+ end
710
+
711
+ # The request object for the `DeleteConfigurationRecorder` action.
712
+ #
713
+ # @note When making an API call, you may pass DeleteConfigurationRecorderRequest
714
+ # data as a hash:
715
+ #
716
+ # {
717
+ # configuration_recorder_name: "RecorderName", # required
718
+ # }
719
+ #
720
+ # @!attribute [rw] configuration_recorder_name
721
+ # The name of the configuration recorder to be deleted. You can
722
+ # retrieve the name of your configuration recorder by using the
723
+ # `DescribeConfigurationRecorders` action.
724
+ # @return [String]
725
+ #
726
+ class DeleteConfigurationRecorderRequest < Struct.new(
727
+ :configuration_recorder_name)
728
+ include Aws::Structure
729
+ end
730
+
731
+ # The input for the DeleteDeliveryChannel action. The action accepts the
732
+ # following data in JSON format.
733
+ #
734
+ # @note When making an API call, you may pass DeleteDeliveryChannelRequest
735
+ # data as a hash:
736
+ #
737
+ # {
738
+ # delivery_channel_name: "ChannelName", # required
739
+ # }
740
+ #
741
+ # @!attribute [rw] delivery_channel_name
742
+ # The name of the delivery channel to delete.
743
+ # @return [String]
744
+ #
745
+ class DeleteDeliveryChannelRequest < Struct.new(
746
+ :delivery_channel_name)
747
+ include Aws::Structure
748
+ end
749
+
750
+ # @note When making an API call, you may pass DeleteEvaluationResultsRequest
751
+ # data as a hash:
752
+ #
753
+ # {
754
+ # config_rule_name: "StringWithCharLimit64", # required
755
+ # }
756
+ #
757
+ # @!attribute [rw] config_rule_name
758
+ # The name of the Config rule for which you want to delete the
759
+ # evaluation results.
760
+ # @return [String]
761
+ #
762
+ class DeleteEvaluationResultsRequest < Struct.new(
763
+ :config_rule_name)
764
+ include Aws::Structure
765
+ end
766
+
767
+ # The output when you delete the evaluation results for the specified
768
+ # Config rule.
769
+ #
770
+ class DeleteEvaluationResultsResponse < Aws::EmptyStructure; end
771
+
772
+ # The input for the DeliverConfigSnapshot action.
773
+ #
774
+ # @note When making an API call, you may pass DeliverConfigSnapshotRequest
775
+ # data as a hash:
776
+ #
777
+ # {
778
+ # delivery_channel_name: "ChannelName", # required
779
+ # }
780
+ #
781
+ # @!attribute [rw] delivery_channel_name
782
+ # The name of the delivery channel through which the snapshot is
783
+ # delivered.
784
+ # @return [String]
785
+ #
786
+ class DeliverConfigSnapshotRequest < Struct.new(
787
+ :delivery_channel_name)
788
+ include Aws::Structure
789
+ end
790
+
791
+ # The output for the DeliverConfigSnapshot action in JSON format.
792
+ #
793
+ # @!attribute [rw] config_snapshot_id
794
+ # The ID of the snapshot that is being created.
795
+ # @return [String]
796
+ #
797
+ class DeliverConfigSnapshotResponse < Struct.new(
798
+ :config_snapshot_id)
799
+ include Aws::Structure
800
+ end
801
+
802
+ # The channel through which AWS Config delivers notifications and
803
+ # updated configuration states.
804
+ #
805
+ # @note When making an API call, you may pass DeliveryChannel
806
+ # data as a hash:
807
+ #
808
+ # {
809
+ # name: "ChannelName",
810
+ # s3_bucket_name: "String",
811
+ # s3_key_prefix: "String",
812
+ # sns_topic_arn: "String",
813
+ # config_snapshot_delivery_properties: {
814
+ # delivery_frequency: "One_Hour", # accepts One_Hour, Three_Hours, Six_Hours, Twelve_Hours, TwentyFour_Hours
815
+ # },
816
+ # }
817
+ #
818
+ # @!attribute [rw] name
819
+ # The name of the delivery channel. By default, AWS Config assigns the
820
+ # name "default" when creating the delivery channel. To change the
821
+ # delivery channel name, you must use the DeleteDeliveryChannel action
822
+ # to delete your current delivery channel, and then you must use the
823
+ # PutDeliveryChannel command to create a delivery channel that has the
824
+ # desired name.
825
+ # @return [String]
826
+ #
827
+ # @!attribute [rw] s3_bucket_name
828
+ # The name of the Amazon S3 bucket to which AWS Config delivers
829
+ # configuration snapshots and configuration history files.
830
+ #
831
+ # If you specify a bucket that belongs to another AWS account, that
832
+ # bucket must have policies that grant access permissions to AWS
833
+ # Config. For more information, see [Permissions for the Amazon S3
834
+ # Bucket][1] in the AWS Config Developer Guide.
835
+ #
836
+ #
837
+ #
838
+ # [1]: http://docs.aws.amazon.com/config/latest/developerguide/s3-bucket-policy.html
839
+ # @return [String]
840
+ #
841
+ # @!attribute [rw] s3_key_prefix
842
+ # The prefix for the specified Amazon S3 bucket.
843
+ # @return [String]
844
+ #
845
+ # @!attribute [rw] sns_topic_arn
846
+ # The Amazon Resource Name (ARN) of the Amazon SNS topic to which AWS
847
+ # Config sends notifications about configuration changes.
848
+ #
849
+ # If you choose a topic from another account, the topic must have
850
+ # policies that grant access permissions to AWS Config. For more
851
+ # information, see [Permissions for the Amazon SNS Topic][1] in the
852
+ # AWS Config Developer Guide.
853
+ #
854
+ #
855
+ #
856
+ # [1]: http://docs.aws.amazon.com/config/latest/developerguide/sns-topic-policy.html
857
+ # @return [String]
858
+ #
859
+ # @!attribute [rw] config_snapshot_delivery_properties
860
+ # Provides options for how often AWS Config delivers configuration
861
+ # snapshots to the Amazon S3 bucket in your delivery channel.
862
+ #
863
+ # <note markdown="1"> If you want to create a rule that triggers evaluations for your
864
+ # resources when AWS Config delivers the configuration snapshot, see
865
+ # the following:
866
+ #
867
+ # </note>
868
+ #
869
+ # The frequency for a rule that triggers evaluations for your
870
+ # resources when AWS Config delivers the configuration snapshot is set
871
+ # by one of two values, depending on which is less frequent:
872
+ #
873
+ # * The value for the `deliveryFrequency` parameter within the
874
+ # delivery channel configuration, which sets how often AWS Config
875
+ # delivers configuration snapshots. This value also sets how often
876
+ # AWS Config invokes evaluations for Config rules.
877
+ #
878
+ # * The value for the `MaximumExecutionFrequency` parameter, which
879
+ # sets the maximum frequency with which AWS Config invokes
880
+ # evaluations for the rule. For more information, see ConfigRule.
881
+ #
882
+ # If the `deliveryFrequency` value is less frequent than the
883
+ # `MaximumExecutionFrequency` value for a rule, AWS Config invokes the
884
+ # rule only as often as the `deliveryFrequency` value.
885
+ #
886
+ # 1. For example, you want your rule to run evaluations when AWS
887
+ # Config delivers the configuration snapshot.
888
+ #
889
+ # 2. You specify the `MaximumExecutionFrequency` value for
890
+ # `Six_Hours`.
891
+ #
892
+ # 3. You then specify the delivery channel `deliveryFrequency` value
893
+ # for `TwentyFour_Hours`.
894
+ #
895
+ # 4. Because the value for `deliveryFrequency` is less frequent than
896
+ # `MaximumExecutionFrequency`, AWS Config invokes evaluations for
897
+ # the rule every 24 hours.
898
+ #
899
+ # You should set the `MaximumExecutionFrequency` value to be at least
900
+ # as frequent as the `deliveryFrequency` value. You can view the
901
+ # `deliveryFrequency` value by using the `DescribeDeliveryChannnels`
902
+ # action.
903
+ #
904
+ # To update the `deliveryFrequency` with which AWS Config delivers
905
+ # your configuration snapshots, use the `PutDeliveryChannel` action.
906
+ # @return [Types::ConfigSnapshotDeliveryProperties]
907
+ #
908
+ class DeliveryChannel < Struct.new(
909
+ :name,
910
+ :s3_bucket_name,
911
+ :s3_key_prefix,
912
+ :sns_topic_arn,
913
+ :config_snapshot_delivery_properties)
914
+ include Aws::Structure
915
+ end
916
+
917
+ # The status of a specified delivery channel.
918
+ #
919
+ # Valid values: `Success` \| `Failure`
920
+ #
921
+ # @!attribute [rw] name
922
+ # The name of the delivery channel.
923
+ # @return [String]
924
+ #
925
+ # @!attribute [rw] config_snapshot_delivery_info
926
+ # A list containing the status of the delivery of the snapshot to the
927
+ # specified Amazon S3 bucket.
928
+ # @return [Types::ConfigExportDeliveryInfo]
929
+ #
930
+ # @!attribute [rw] config_history_delivery_info
931
+ # A list that contains the status of the delivery of the configuration
932
+ # history to the specified Amazon S3 bucket.
933
+ # @return [Types::ConfigExportDeliveryInfo]
934
+ #
935
+ # @!attribute [rw] config_stream_delivery_info
936
+ # A list containing the status of the delivery of the configuration
937
+ # stream notification to the specified Amazon SNS topic.
938
+ # @return [Types::ConfigStreamDeliveryInfo]
939
+ #
940
+ class DeliveryChannelStatus < Struct.new(
941
+ :name,
942
+ :config_snapshot_delivery_info,
943
+ :config_history_delivery_info,
944
+ :config_stream_delivery_info)
945
+ include Aws::Structure
946
+ end
947
+
948
+ # @note When making an API call, you may pass DescribeComplianceByConfigRuleRequest
949
+ # data as a hash:
950
+ #
951
+ # {
952
+ # config_rule_names: ["StringWithCharLimit64"],
953
+ # compliance_types: ["COMPLIANT"], # accepts COMPLIANT, NON_COMPLIANT, NOT_APPLICABLE, INSUFFICIENT_DATA
954
+ # next_token: "String",
955
+ # }
956
+ #
957
+ # @!attribute [rw] config_rule_names
958
+ # Specify one or more AWS Config rule names to filter the results by
959
+ # rule.
960
+ # @return [Array<String>]
961
+ #
962
+ # @!attribute [rw] compliance_types
963
+ # Filters the results by compliance.
964
+ #
965
+ # The allowed values are `COMPLIANT`, `NON_COMPLIANT`, and
966
+ # `INSUFFICIENT_DATA`.
967
+ # @return [Array<String>]
968
+ #
969
+ # @!attribute [rw] next_token
970
+ # The `NextToken` string returned on a previous page that you use to
971
+ # get the next page of results in a paginated response.
972
+ # @return [String]
973
+ #
974
+ class DescribeComplianceByConfigRuleRequest < Struct.new(
975
+ :config_rule_names,
976
+ :compliance_types,
977
+ :next_token)
978
+ include Aws::Structure
979
+ end
980
+
981
+ # @!attribute [rw] compliance_by_config_rules
982
+ # Indicates whether each of the specified AWS Config rules is
983
+ # compliant.
984
+ # @return [Array<Types::ComplianceByConfigRule>]
985
+ #
986
+ # @!attribute [rw] next_token
987
+ # The string that you use in a subsequent request to get the next page
988
+ # of results in a paginated response.
989
+ # @return [String]
990
+ #
991
+ class DescribeComplianceByConfigRuleResponse < Struct.new(
992
+ :compliance_by_config_rules,
993
+ :next_token)
994
+ include Aws::Structure
995
+ end
996
+
997
+ # @note When making an API call, you may pass DescribeComplianceByResourceRequest
998
+ # data as a hash:
999
+ #
1000
+ # {
1001
+ # resource_type: "StringWithCharLimit256",
1002
+ # resource_id: "StringWithCharLimit256",
1003
+ # compliance_types: ["COMPLIANT"], # accepts COMPLIANT, NON_COMPLIANT, NOT_APPLICABLE, INSUFFICIENT_DATA
1004
+ # limit: 1,
1005
+ # next_token: "NextToken",
1006
+ # }
1007
+ #
1008
+ # @!attribute [rw] resource_type
1009
+ # The types of AWS resources for which you want compliance
1010
+ # information; for example, `AWS::EC2::Instance`. For this action, you
1011
+ # can specify that the resource type is an AWS account by specifying
1012
+ # `AWS::::Account`.
1013
+ # @return [String]
1014
+ #
1015
+ # @!attribute [rw] resource_id
1016
+ # The ID of the AWS resource for which you want compliance
1017
+ # information. You can specify only one resource ID. If you specify a
1018
+ # resource ID, you must also specify a type for `ResourceType`.
1019
+ # @return [String]
1020
+ #
1021
+ # @!attribute [rw] compliance_types
1022
+ # Filters the results by compliance.
1023
+ #
1024
+ # The allowed values are `COMPLIANT`, `NON_COMPLIANT`, and
1025
+ # `INSUFFICIENT_DATA`.
1026
+ # @return [Array<String>]
1027
+ #
1028
+ # @!attribute [rw] limit
1029
+ # The maximum number of evaluation results returned on each page. The
1030
+ # default is 10. You cannot specify a limit greater than 100. If you
1031
+ # specify 0, AWS Config uses the default.
1032
+ # @return [Integer]
1033
+ #
1034
+ # @!attribute [rw] next_token
1035
+ # The `NextToken` string returned on a previous page that you use to
1036
+ # get the next page of results in a paginated response.
1037
+ # @return [String]
1038
+ #
1039
+ class DescribeComplianceByResourceRequest < Struct.new(
1040
+ :resource_type,
1041
+ :resource_id,
1042
+ :compliance_types,
1043
+ :limit,
1044
+ :next_token)
1045
+ include Aws::Structure
1046
+ end
1047
+
1048
+ # @!attribute [rw] compliance_by_resources
1049
+ # Indicates whether the specified AWS resource complies with all of
1050
+ # the AWS Config rules that evaluate it.
1051
+ # @return [Array<Types::ComplianceByResource>]
1052
+ #
1053
+ # @!attribute [rw] next_token
1054
+ # The string that you use in a subsequent request to get the next page
1055
+ # of results in a paginated response.
1056
+ # @return [String]
1057
+ #
1058
+ class DescribeComplianceByResourceResponse < Struct.new(
1059
+ :compliance_by_resources,
1060
+ :next_token)
1061
+ include Aws::Structure
1062
+ end
1063
+
1064
+ # @note When making an API call, you may pass DescribeConfigRuleEvaluationStatusRequest
1065
+ # data as a hash:
1066
+ #
1067
+ # {
1068
+ # config_rule_names: ["StringWithCharLimit64"],
1069
+ # next_token: "String",
1070
+ # limit: 1,
1071
+ # }
1072
+ #
1073
+ # @!attribute [rw] config_rule_names
1074
+ # The name of the AWS managed Config rules for which you want status
1075
+ # information. If you do not specify any names, AWS Config returns
1076
+ # status information for all AWS managed Config rules that you use.
1077
+ # @return [Array<String>]
1078
+ #
1079
+ # @!attribute [rw] next_token
1080
+ # The `NextToken` string returned on a previous page that you use to
1081
+ # get the next page of results in a paginated response.
1082
+ # @return [String]
1083
+ #
1084
+ # @!attribute [rw] limit
1085
+ # The number of rule evaluation results that you want returned.
1086
+ #
1087
+ # This parameter is required if the rule limit for your account is
1088
+ # more than the default of 50 rules.
1089
+ #
1090
+ # For more information about requesting a rule limit increase, see
1091
+ # [AWS Config Limits][1] in the *AWS General Reference Guide*.
1092
+ #
1093
+ #
1094
+ #
1095
+ # [1]: http://docs.aws.amazon.com/general/latest/gr/aws_service_limits.html#limits_config
1096
+ # @return [Integer]
1097
+ #
1098
+ class DescribeConfigRuleEvaluationStatusRequest < Struct.new(
1099
+ :config_rule_names,
1100
+ :next_token,
1101
+ :limit)
1102
+ include Aws::Structure
1103
+ end
1104
+
1105
+ # @!attribute [rw] config_rules_evaluation_status
1106
+ # Status information about your AWS managed Config rules.
1107
+ # @return [Array<Types::ConfigRuleEvaluationStatus>]
1108
+ #
1109
+ # @!attribute [rw] next_token
1110
+ # The string that you use in a subsequent request to get the next page
1111
+ # of results in a paginated response.
1112
+ # @return [String]
1113
+ #
1114
+ class DescribeConfigRuleEvaluationStatusResponse < Struct.new(
1115
+ :config_rules_evaluation_status,
1116
+ :next_token)
1117
+ include Aws::Structure
1118
+ end
1119
+
1120
+ # @note When making an API call, you may pass DescribeConfigRulesRequest
1121
+ # data as a hash:
1122
+ #
1123
+ # {
1124
+ # config_rule_names: ["StringWithCharLimit64"],
1125
+ # next_token: "String",
1126
+ # }
1127
+ #
1128
+ # @!attribute [rw] config_rule_names
1129
+ # The names of the AWS Config rules for which you want details. If you
1130
+ # do not specify any names, AWS Config returns details for all your
1131
+ # rules.
1132
+ # @return [Array<String>]
1133
+ #
1134
+ # @!attribute [rw] next_token
1135
+ # The `NextToken` string returned on a previous page that you use to
1136
+ # get the next page of results in a paginated response.
1137
+ # @return [String]
1138
+ #
1139
+ class DescribeConfigRulesRequest < Struct.new(
1140
+ :config_rule_names,
1141
+ :next_token)
1142
+ include Aws::Structure
1143
+ end
1144
+
1145
+ # @!attribute [rw] config_rules
1146
+ # The details about your AWS Config rules.
1147
+ # @return [Array<Types::ConfigRule>]
1148
+ #
1149
+ # @!attribute [rw] next_token
1150
+ # The string that you use in a subsequent request to get the next page
1151
+ # of results in a paginated response.
1152
+ # @return [String]
1153
+ #
1154
+ class DescribeConfigRulesResponse < Struct.new(
1155
+ :config_rules,
1156
+ :next_token)
1157
+ include Aws::Structure
1158
+ end
1159
+
1160
+ # The input for the DescribeConfigurationRecorderStatus action.
1161
+ #
1162
+ # @note When making an API call, you may pass DescribeConfigurationRecorderStatusRequest
1163
+ # data as a hash:
1164
+ #
1165
+ # {
1166
+ # configuration_recorder_names: ["RecorderName"],
1167
+ # }
1168
+ #
1169
+ # @!attribute [rw] configuration_recorder_names
1170
+ # The name(s) of the configuration recorder. If the name is not
1171
+ # specified, the action returns the current status of all the
1172
+ # configuration recorders associated with the account.
1173
+ # @return [Array<String>]
1174
+ #
1175
+ class DescribeConfigurationRecorderStatusRequest < Struct.new(
1176
+ :configuration_recorder_names)
1177
+ include Aws::Structure
1178
+ end
1179
+
1180
+ # The output for the DescribeConfigurationRecorderStatus action in JSON
1181
+ # format.
1182
+ #
1183
+ # @!attribute [rw] configuration_recorders_status
1184
+ # A list that contains status of the specified recorders.
1185
+ # @return [Array<Types::ConfigurationRecorderStatus>]
1186
+ #
1187
+ class DescribeConfigurationRecorderStatusResponse < Struct.new(
1188
+ :configuration_recorders_status)
1189
+ include Aws::Structure
1190
+ end
1191
+
1192
+ # The input for the DescribeConfigurationRecorders action.
1193
+ #
1194
+ # @note When making an API call, you may pass DescribeConfigurationRecordersRequest
1195
+ # data as a hash:
1196
+ #
1197
+ # {
1198
+ # configuration_recorder_names: ["RecorderName"],
1199
+ # }
1200
+ #
1201
+ # @!attribute [rw] configuration_recorder_names
1202
+ # A list of configuration recorder names.
1203
+ # @return [Array<String>]
1204
+ #
1205
+ class DescribeConfigurationRecordersRequest < Struct.new(
1206
+ :configuration_recorder_names)
1207
+ include Aws::Structure
1208
+ end
1209
+
1210
+ # The output for the DescribeConfigurationRecorders action.
1211
+ #
1212
+ # @!attribute [rw] configuration_recorders
1213
+ # A list that contains the descriptions of the specified configuration
1214
+ # recorders.
1215
+ # @return [Array<Types::ConfigurationRecorder>]
1216
+ #
1217
+ class DescribeConfigurationRecordersResponse < Struct.new(
1218
+ :configuration_recorders)
1219
+ include Aws::Structure
1220
+ end
1221
+
1222
+ # The input for the DeliveryChannelStatus action.
1223
+ #
1224
+ # @note When making an API call, you may pass DescribeDeliveryChannelStatusRequest
1225
+ # data as a hash:
1226
+ #
1227
+ # {
1228
+ # delivery_channel_names: ["ChannelName"],
1229
+ # }
1230
+ #
1231
+ # @!attribute [rw] delivery_channel_names
1232
+ # A list of delivery channel names.
1233
+ # @return [Array<String>]
1234
+ #
1235
+ class DescribeDeliveryChannelStatusRequest < Struct.new(
1236
+ :delivery_channel_names)
1237
+ include Aws::Structure
1238
+ end
1239
+
1240
+ # The output for the DescribeDeliveryChannelStatus action.
1241
+ #
1242
+ # @!attribute [rw] delivery_channels_status
1243
+ # A list that contains the status of a specified delivery channel.
1244
+ # @return [Array<Types::DeliveryChannelStatus>]
1245
+ #
1246
+ class DescribeDeliveryChannelStatusResponse < Struct.new(
1247
+ :delivery_channels_status)
1248
+ include Aws::Structure
1249
+ end
1250
+
1251
+ # The input for the DescribeDeliveryChannels action.
1252
+ #
1253
+ # @note When making an API call, you may pass DescribeDeliveryChannelsRequest
1254
+ # data as a hash:
1255
+ #
1256
+ # {
1257
+ # delivery_channel_names: ["ChannelName"],
1258
+ # }
1259
+ #
1260
+ # @!attribute [rw] delivery_channel_names
1261
+ # A list of delivery channel names.
1262
+ # @return [Array<String>]
1263
+ #
1264
+ class DescribeDeliveryChannelsRequest < Struct.new(
1265
+ :delivery_channel_names)
1266
+ include Aws::Structure
1267
+ end
1268
+
1269
+ # The output for the DescribeDeliveryChannels action.
1270
+ #
1271
+ # @!attribute [rw] delivery_channels
1272
+ # A list that contains the descriptions of the specified delivery
1273
+ # channel.
1274
+ # @return [Array<Types::DeliveryChannel>]
1275
+ #
1276
+ class DescribeDeliveryChannelsResponse < Struct.new(
1277
+ :delivery_channels)
1278
+ include Aws::Structure
1279
+ end
1280
+
1281
+ # Identifies an AWS resource and indicates whether it complies with the
1282
+ # AWS Config rule that it was evaluated against.
1283
+ #
1284
+ # @note When making an API call, you may pass Evaluation
1285
+ # data as a hash:
1286
+ #
1287
+ # {
1288
+ # compliance_resource_type: "StringWithCharLimit256", # required
1289
+ # compliance_resource_id: "StringWithCharLimit256", # required
1290
+ # compliance_type: "COMPLIANT", # required, accepts COMPLIANT, NON_COMPLIANT, NOT_APPLICABLE, INSUFFICIENT_DATA
1291
+ # annotation: "StringWithCharLimit256",
1292
+ # ordering_timestamp: Time.now, # required
1293
+ # }
1294
+ #
1295
+ # @!attribute [rw] compliance_resource_type
1296
+ # The type of AWS resource that was evaluated.
1297
+ # @return [String]
1298
+ #
1299
+ # @!attribute [rw] compliance_resource_id
1300
+ # The ID of the AWS resource that was evaluated.
1301
+ # @return [String]
1302
+ #
1303
+ # @!attribute [rw] compliance_type
1304
+ # Indicates whether the AWS resource complies with the AWS Config rule
1305
+ # that it was evaluated against.
1306
+ #
1307
+ # For the `Evaluation` data type, AWS Config supports only the
1308
+ # `COMPLIANT`, `NON_COMPLIANT`, and `NOT_APPLICABLE` values. AWS
1309
+ # Config does not support the `INSUFFICIENT_DATA` value for this data
1310
+ # type.
1311
+ #
1312
+ # Similarly, AWS Config does not accept `INSUFFICIENT_DATA` as the
1313
+ # value for `ComplianceType` from a `PutEvaluations` request. For
1314
+ # example, an AWS Lambda function for a custom Config rule cannot pass
1315
+ # an `INSUFFICIENT_DATA` value to AWS Config.
1316
+ # @return [String]
1317
+ #
1318
+ # @!attribute [rw] annotation
1319
+ # Supplementary information about how the evaluation determined the
1320
+ # compliance.
1321
+ # @return [String]
1322
+ #
1323
+ # @!attribute [rw] ordering_timestamp
1324
+ # The time of the event in AWS Config that triggered the evaluation.
1325
+ # For event-based evaluations, the time indicates when AWS Config
1326
+ # created the configuration item that triggered the evaluation. For
1327
+ # periodic evaluations, the time indicates when AWS Config triggered
1328
+ # the evaluation at the frequency that you specified (for example,
1329
+ # every 24 hours).
1330
+ # @return [Time]
1331
+ #
1332
+ class Evaluation < Struct.new(
1333
+ :compliance_resource_type,
1334
+ :compliance_resource_id,
1335
+ :compliance_type,
1336
+ :annotation,
1337
+ :ordering_timestamp)
1338
+ include Aws::Structure
1339
+ end
1340
+
1341
+ # The details of an AWS Config evaluation. Provides the AWS resource
1342
+ # that was evaluated, the compliance of the resource, related
1343
+ # timestamps, and supplementary information.
1344
+ #
1345
+ # @!attribute [rw] evaluation_result_identifier
1346
+ # Uniquely identifies the evaluation result.
1347
+ # @return [Types::EvaluationResultIdentifier]
1348
+ #
1349
+ # @!attribute [rw] compliance_type
1350
+ # Indicates whether the AWS resource complies with the AWS Config rule
1351
+ # that evaluated it.
1352
+ #
1353
+ # For the `EvaluationResult` data type, AWS Config supports only the
1354
+ # `COMPLIANT`, `NON_COMPLIANT`, and `NOT_APPLICABLE` values. AWS
1355
+ # Config does not support the `INSUFFICIENT_DATA` value for the
1356
+ # `EvaluationResult` data type.
1357
+ # @return [String]
1358
+ #
1359
+ # @!attribute [rw] result_recorded_time
1360
+ # The time when AWS Config recorded the evaluation result.
1361
+ # @return [Time]
1362
+ #
1363
+ # @!attribute [rw] config_rule_invoked_time
1364
+ # The time when the AWS Config rule evaluated the AWS resource.
1365
+ # @return [Time]
1366
+ #
1367
+ # @!attribute [rw] annotation
1368
+ # Supplementary information about how the evaluation determined the
1369
+ # compliance.
1370
+ # @return [String]
1371
+ #
1372
+ # @!attribute [rw] result_token
1373
+ # An encrypted token that associates an evaluation with an AWS Config
1374
+ # rule. The token identifies the rule, the AWS resource being
1375
+ # evaluated, and the event that triggered the evaluation.
1376
+ # @return [String]
1377
+ #
1378
+ class EvaluationResult < Struct.new(
1379
+ :evaluation_result_identifier,
1380
+ :compliance_type,
1381
+ :result_recorded_time,
1382
+ :config_rule_invoked_time,
1383
+ :annotation,
1384
+ :result_token)
1385
+ include Aws::Structure
1386
+ end
1387
+
1388
+ # Uniquely identifies an evaluation result.
1389
+ #
1390
+ # @!attribute [rw] evaluation_result_qualifier
1391
+ # Identifies an AWS Config rule used to evaluate an AWS resource, and
1392
+ # provides the type and ID of the evaluated resource.
1393
+ # @return [Types::EvaluationResultQualifier]
1394
+ #
1395
+ # @!attribute [rw] ordering_timestamp
1396
+ # The time of the event that triggered the evaluation of your AWS
1397
+ # resources. The time can indicate when AWS Config delivered a
1398
+ # configuration item change notification, or it can indicate when AWS
1399
+ # Config delivered the configuration snapshot, depending on which
1400
+ # event triggered the evaluation.
1401
+ # @return [Time]
1402
+ #
1403
+ class EvaluationResultIdentifier < Struct.new(
1404
+ :evaluation_result_qualifier,
1405
+ :ordering_timestamp)
1406
+ include Aws::Structure
1407
+ end
1408
+
1409
+ # Identifies an AWS Config rule that evaluated an AWS resource, and
1410
+ # provides the type and ID of the resource that the rule evaluated.
1411
+ #
1412
+ # @!attribute [rw] config_rule_name
1413
+ # The name of the AWS Config rule that was used in the evaluation.
1414
+ # @return [String]
1415
+ #
1416
+ # @!attribute [rw] resource_type
1417
+ # The type of AWS resource that was evaluated.
1418
+ # @return [String]
1419
+ #
1420
+ # @!attribute [rw] resource_id
1421
+ # The ID of the evaluated AWS resource.
1422
+ # @return [String]
1423
+ #
1424
+ class EvaluationResultQualifier < Struct.new(
1425
+ :config_rule_name,
1426
+ :resource_type,
1427
+ :resource_id)
1428
+ include Aws::Structure
1429
+ end
1430
+
1431
+ # @note When making an API call, you may pass GetComplianceDetailsByConfigRuleRequest
1432
+ # data as a hash:
1433
+ #
1434
+ # {
1435
+ # config_rule_name: "StringWithCharLimit64", # required
1436
+ # compliance_types: ["COMPLIANT"], # accepts COMPLIANT, NON_COMPLIANT, NOT_APPLICABLE, INSUFFICIENT_DATA
1437
+ # limit: 1,
1438
+ # next_token: "NextToken",
1439
+ # }
1440
+ #
1441
+ # @!attribute [rw] config_rule_name
1442
+ # The name of the AWS Config rule for which you want compliance
1443
+ # information.
1444
+ # @return [String]
1445
+ #
1446
+ # @!attribute [rw] compliance_types
1447
+ # Filters the results by compliance.
1448
+ #
1449
+ # The allowed values are `COMPLIANT`, `NON_COMPLIANT`, and
1450
+ # `NOT_APPLICABLE`.
1451
+ # @return [Array<String>]
1452
+ #
1453
+ # @!attribute [rw] limit
1454
+ # The maximum number of evaluation results returned on each page. The
1455
+ # default is 10. You cannot specify a limit greater than 100. If you
1456
+ # specify 0, AWS Config uses the default.
1457
+ # @return [Integer]
1458
+ #
1459
+ # @!attribute [rw] next_token
1460
+ # The `NextToken` string returned on a previous page that you use to
1461
+ # get the next page of results in a paginated response.
1462
+ # @return [String]
1463
+ #
1464
+ class GetComplianceDetailsByConfigRuleRequest < Struct.new(
1465
+ :config_rule_name,
1466
+ :compliance_types,
1467
+ :limit,
1468
+ :next_token)
1469
+ include Aws::Structure
1470
+ end
1471
+
1472
+ # @!attribute [rw] evaluation_results
1473
+ # Indicates whether the AWS resource complies with the specified AWS
1474
+ # Config rule.
1475
+ # @return [Array<Types::EvaluationResult>]
1476
+ #
1477
+ # @!attribute [rw] next_token
1478
+ # The string that you use in a subsequent request to get the next page
1479
+ # of results in a paginated response.
1480
+ # @return [String]
1481
+ #
1482
+ class GetComplianceDetailsByConfigRuleResponse < Struct.new(
1483
+ :evaluation_results,
1484
+ :next_token)
1485
+ include Aws::Structure
1486
+ end
1487
+
1488
+ # @note When making an API call, you may pass GetComplianceDetailsByResourceRequest
1489
+ # data as a hash:
1490
+ #
1491
+ # {
1492
+ # resource_type: "StringWithCharLimit256", # required
1493
+ # resource_id: "StringWithCharLimit256", # required
1494
+ # compliance_types: ["COMPLIANT"], # accepts COMPLIANT, NON_COMPLIANT, NOT_APPLICABLE, INSUFFICIENT_DATA
1495
+ # next_token: "String",
1496
+ # }
1497
+ #
1498
+ # @!attribute [rw] resource_type
1499
+ # The type of the AWS resource for which you want compliance
1500
+ # information.
1501
+ # @return [String]
1502
+ #
1503
+ # @!attribute [rw] resource_id
1504
+ # The ID of the AWS resource for which you want compliance
1505
+ # information.
1506
+ # @return [String]
1507
+ #
1508
+ # @!attribute [rw] compliance_types
1509
+ # Filters the results by compliance.
1510
+ #
1511
+ # The allowed values are `COMPLIANT`, `NON_COMPLIANT`, and
1512
+ # `NOT_APPLICABLE`.
1513
+ # @return [Array<String>]
1514
+ #
1515
+ # @!attribute [rw] next_token
1516
+ # The `NextToken` string returned on a previous page that you use to
1517
+ # get the next page of results in a paginated response.
1518
+ # @return [String]
1519
+ #
1520
+ class GetComplianceDetailsByResourceRequest < Struct.new(
1521
+ :resource_type,
1522
+ :resource_id,
1523
+ :compliance_types,
1524
+ :next_token)
1525
+ include Aws::Structure
1526
+ end
1527
+
1528
+ # @!attribute [rw] evaluation_results
1529
+ # Indicates whether the specified AWS resource complies each AWS
1530
+ # Config rule.
1531
+ # @return [Array<Types::EvaluationResult>]
1532
+ #
1533
+ # @!attribute [rw] next_token
1534
+ # The string that you use in a subsequent request to get the next page
1535
+ # of results in a paginated response.
1536
+ # @return [String]
1537
+ #
1538
+ class GetComplianceDetailsByResourceResponse < Struct.new(
1539
+ :evaluation_results,
1540
+ :next_token)
1541
+ include Aws::Structure
1542
+ end
1543
+
1544
+ # @!attribute [rw] compliance_summary
1545
+ # The number of AWS Config rules that are compliant and the number
1546
+ # that are noncompliant, up to a maximum of 25 for each.
1547
+ # @return [Types::ComplianceSummary]
1548
+ #
1549
+ class GetComplianceSummaryByConfigRuleResponse < Struct.new(
1550
+ :compliance_summary)
1551
+ include Aws::Structure
1552
+ end
1553
+
1554
+ # @note When making an API call, you may pass GetComplianceSummaryByResourceTypeRequest
1555
+ # data as a hash:
1556
+ #
1557
+ # {
1558
+ # resource_types: ["StringWithCharLimit256"],
1559
+ # }
1560
+ #
1561
+ # @!attribute [rw] resource_types
1562
+ # Specify one or more resource types to get the number of resources
1563
+ # that are compliant and the number that are noncompliant for each
1564
+ # resource type.
1565
+ #
1566
+ # For this request, you can specify an AWS resource type such as
1567
+ # `AWS::EC2::Instance`, and you can specify that the resource type is
1568
+ # an AWS account by specifying `AWS::::Account`.
1569
+ # @return [Array<String>]
1570
+ #
1571
+ class GetComplianceSummaryByResourceTypeRequest < Struct.new(
1572
+ :resource_types)
1573
+ include Aws::Structure
1574
+ end
1575
+
1576
+ # @!attribute [rw] compliance_summaries_by_resource_type
1577
+ # The number of resources that are compliant and the number that are
1578
+ # noncompliant. If one or more resource types were provided with the
1579
+ # request, the numbers are returned for each resource type. The
1580
+ # maximum number returned is 100.
1581
+ # @return [Array<Types::ComplianceSummaryByResourceType>]
1582
+ #
1583
+ class GetComplianceSummaryByResourceTypeResponse < Struct.new(
1584
+ :compliance_summaries_by_resource_type)
1585
+ include Aws::Structure
1586
+ end
1587
+
1588
+ # The input for the GetResourceConfigHistory action.
1589
+ #
1590
+ # @note When making an API call, you may pass GetResourceConfigHistoryRequest
1591
+ # data as a hash:
1592
+ #
1593
+ # {
1594
+ # resource_type: "AWS::EC2::CustomerGateway", # required, accepts AWS::EC2::CustomerGateway, AWS::EC2::EIP, AWS::EC2::Host, AWS::EC2::Instance, AWS::EC2::InternetGateway, AWS::EC2::NetworkAcl, AWS::EC2::NetworkInterface, AWS::EC2::RouteTable, AWS::EC2::SecurityGroup, AWS::EC2::Subnet, AWS::CloudTrail::Trail, AWS::EC2::Volume, AWS::EC2::VPC, AWS::EC2::VPNConnection, AWS::EC2::VPNGateway, AWS::IAM::Group, AWS::IAM::Policy, AWS::IAM::Role, AWS::IAM::User, AWS::ACM::Certificate, AWS::RDS::DBInstance, AWS::RDS::DBSubnetGroup, AWS::RDS::DBSecurityGroup, AWS::RDS::DBSnapshot, AWS::RDS::EventSubscription, AWS::ElasticLoadBalancingV2::LoadBalancer, AWS::S3::Bucket, AWS::SSM::ManagedInstanceInventory, AWS::Redshift::Cluster, AWS::Redshift::ClusterSnapshot, AWS::Redshift::ClusterParameterGroup, AWS::Redshift::ClusterSecurityGroup, AWS::Redshift::ClusterSubnetGroup, AWS::Redshift::EventSubscription
1595
+ # resource_id: "ResourceId", # required
1596
+ # later_time: Time.now,
1597
+ # earlier_time: Time.now,
1598
+ # chronological_order: "Reverse", # accepts Reverse, Forward
1599
+ # limit: 1,
1600
+ # next_token: "NextToken",
1601
+ # }
1602
+ #
1603
+ # @!attribute [rw] resource_type
1604
+ # The resource type.
1605
+ # @return [String]
1606
+ #
1607
+ # @!attribute [rw] resource_id
1608
+ # The ID of the resource (for example., `sg-xxxxxx`).
1609
+ # @return [String]
1610
+ #
1611
+ # @!attribute [rw] later_time
1612
+ # The time stamp that indicates a later time. If not specified,
1613
+ # current time is taken.
1614
+ # @return [Time]
1615
+ #
1616
+ # @!attribute [rw] earlier_time
1617
+ # The time stamp that indicates an earlier time. If not specified, the
1618
+ # action returns paginated results that contain configuration items
1619
+ # that start from when the first configuration item was recorded.
1620
+ # @return [Time]
1621
+ #
1622
+ # @!attribute [rw] chronological_order
1623
+ # The chronological order for configuration items listed. By default
1624
+ # the results are listed in reverse chronological order.
1625
+ # @return [String]
1626
+ #
1627
+ # @!attribute [rw] limit
1628
+ # The maximum number of configuration items returned on each page. The
1629
+ # default is 10. You cannot specify a limit greater than 100. If you
1630
+ # specify 0, AWS Config uses the default.
1631
+ # @return [Integer]
1632
+ #
1633
+ # @!attribute [rw] next_token
1634
+ # The `nextToken` string returned on a previous page that you use to
1635
+ # get the next page of results in a paginated response.
1636
+ # @return [String]
1637
+ #
1638
+ class GetResourceConfigHistoryRequest < Struct.new(
1639
+ :resource_type,
1640
+ :resource_id,
1641
+ :later_time,
1642
+ :earlier_time,
1643
+ :chronological_order,
1644
+ :limit,
1645
+ :next_token)
1646
+ include Aws::Structure
1647
+ end
2127
1648
 
1649
+ # The output for the GetResourceConfigHistory action.
1650
+ #
1651
+ # @!attribute [rw] configuration_items
1652
+ # A list that contains the configuration history of one or more
1653
+ # resources.
1654
+ # @return [Array<Types::ConfigurationItem>]
1655
+ #
1656
+ # @!attribute [rw] next_token
1657
+ # The string that you use in a subsequent request to get the next page
1658
+ # of results in a paginated response.
1659
+ # @return [String]
1660
+ #
1661
+ class GetResourceConfigHistoryResponse < Struct.new(
1662
+ :configuration_items,
1663
+ :next_token)
1664
+ include Aws::Structure
2128
1665
  end
1666
+
1667
+ # @note When making an API call, you may pass ListDiscoveredResourcesRequest
1668
+ # data as a hash:
1669
+ #
1670
+ # {
1671
+ # resource_type: "AWS::EC2::CustomerGateway", # required, accepts AWS::EC2::CustomerGateway, AWS::EC2::EIP, AWS::EC2::Host, AWS::EC2::Instance, AWS::EC2::InternetGateway, AWS::EC2::NetworkAcl, AWS::EC2::NetworkInterface, AWS::EC2::RouteTable, AWS::EC2::SecurityGroup, AWS::EC2::Subnet, AWS::CloudTrail::Trail, AWS::EC2::Volume, AWS::EC2::VPC, AWS::EC2::VPNConnection, AWS::EC2::VPNGateway, AWS::IAM::Group, AWS::IAM::Policy, AWS::IAM::Role, AWS::IAM::User, AWS::ACM::Certificate, AWS::RDS::DBInstance, AWS::RDS::DBSubnetGroup, AWS::RDS::DBSecurityGroup, AWS::RDS::DBSnapshot, AWS::RDS::EventSubscription, AWS::ElasticLoadBalancingV2::LoadBalancer, AWS::S3::Bucket, AWS::SSM::ManagedInstanceInventory, AWS::Redshift::Cluster, AWS::Redshift::ClusterSnapshot, AWS::Redshift::ClusterParameterGroup, AWS::Redshift::ClusterSecurityGroup, AWS::Redshift::ClusterSubnetGroup, AWS::Redshift::EventSubscription
1672
+ # resource_ids: ["ResourceId"],
1673
+ # resource_name: "ResourceName",
1674
+ # limit: 1,
1675
+ # include_deleted_resources: false,
1676
+ # next_token: "NextToken",
1677
+ # }
1678
+ #
1679
+ # @!attribute [rw] resource_type
1680
+ # The type of resources that you want AWS Config to list in the
1681
+ # response.
1682
+ # @return [String]
1683
+ #
1684
+ # @!attribute [rw] resource_ids
1685
+ # The IDs of only those resources that you want AWS Config to list in
1686
+ # the response. If you do not specify this parameter, AWS Config lists
1687
+ # all resources of the specified type that it has discovered.
1688
+ # @return [Array<String>]
1689
+ #
1690
+ # @!attribute [rw] resource_name
1691
+ # The custom name of only those resources that you want AWS Config to
1692
+ # list in the response. If you do not specify this parameter, AWS
1693
+ # Config lists all resources of the specified type that it has
1694
+ # discovered.
1695
+ # @return [String]
1696
+ #
1697
+ # @!attribute [rw] limit
1698
+ # The maximum number of resource identifiers returned on each page.
1699
+ # The default is 100. You cannot specify a limit greater than 100. If
1700
+ # you specify 0, AWS Config uses the default.
1701
+ # @return [Integer]
1702
+ #
1703
+ # @!attribute [rw] include_deleted_resources
1704
+ # Specifies whether AWS Config includes deleted resources in the
1705
+ # results. By default, deleted resources are not included.
1706
+ # @return [Boolean]
1707
+ #
1708
+ # @!attribute [rw] next_token
1709
+ # The `nextToken` string returned on a previous page that you use to
1710
+ # get the next page of results in a paginated response.
1711
+ # @return [String]
1712
+ #
1713
+ class ListDiscoveredResourcesRequest < Struct.new(
1714
+ :resource_type,
1715
+ :resource_ids,
1716
+ :resource_name,
1717
+ :limit,
1718
+ :include_deleted_resources,
1719
+ :next_token)
1720
+ include Aws::Structure
1721
+ end
1722
+
1723
+ # @!attribute [rw] resource_identifiers
1724
+ # The details that identify a resource that is discovered by AWS
1725
+ # Config, including the resource type, ID, and (if available) the
1726
+ # custom resource name.
1727
+ # @return [Array<Types::ResourceIdentifier>]
1728
+ #
1729
+ # @!attribute [rw] next_token
1730
+ # The string that you use in a subsequent request to get the next page
1731
+ # of results in a paginated response.
1732
+ # @return [String]
1733
+ #
1734
+ class ListDiscoveredResourcesResponse < Struct.new(
1735
+ :resource_identifiers,
1736
+ :next_token)
1737
+ include Aws::Structure
1738
+ end
1739
+
1740
+ # @note When making an API call, you may pass PutConfigRuleRequest
1741
+ # data as a hash:
1742
+ #
1743
+ # {
1744
+ # config_rule: { # required
1745
+ # config_rule_name: "StringWithCharLimit64",
1746
+ # config_rule_arn: "String",
1747
+ # config_rule_id: "String",
1748
+ # description: "EmptiableStringWithCharLimit256",
1749
+ # scope: {
1750
+ # compliance_resource_types: ["StringWithCharLimit256"],
1751
+ # tag_key: "StringWithCharLimit128",
1752
+ # tag_value: "StringWithCharLimit256",
1753
+ # compliance_resource_id: "StringWithCharLimit256",
1754
+ # },
1755
+ # source: { # required
1756
+ # owner: "CUSTOM_LAMBDA", # required, accepts CUSTOM_LAMBDA, AWS
1757
+ # source_identifier: "StringWithCharLimit256", # required
1758
+ # source_details: [
1759
+ # {
1760
+ # event_source: "aws.config", # accepts aws.config
1761
+ # message_type: "ConfigurationItemChangeNotification", # accepts ConfigurationItemChangeNotification, ConfigurationSnapshotDeliveryCompleted, ScheduledNotification, OversizedConfigurationItemChangeNotification
1762
+ # maximum_execution_frequency: "One_Hour", # accepts One_Hour, Three_Hours, Six_Hours, Twelve_Hours, TwentyFour_Hours
1763
+ # },
1764
+ # ],
1765
+ # },
1766
+ # input_parameters: "StringWithCharLimit1024",
1767
+ # maximum_execution_frequency: "One_Hour", # accepts One_Hour, Three_Hours, Six_Hours, Twelve_Hours, TwentyFour_Hours
1768
+ # config_rule_state: "ACTIVE", # accepts ACTIVE, DELETING, DELETING_RESULTS, EVALUATING
1769
+ # },
1770
+ # }
1771
+ #
1772
+ # @!attribute [rw] config_rule
1773
+ # An AWS Config rule represents an AWS Lambda function that you create
1774
+ # for a custom rule or a predefined function for an AWS managed rule.
1775
+ # The function evaluates configuration items to assess whether your
1776
+ # AWS resources comply with your desired configurations. This function
1777
+ # can run when AWS Config detects a configuration change to an AWS
1778
+ # resource and at a periodic frequency that you choose (for example,
1779
+ # every 24 hours).
1780
+ #
1781
+ # <note markdown="1"> You can use the AWS CLI and AWS SDKs if you want to create a rule
1782
+ # that triggers evaluations for your resources when AWS Config
1783
+ # delivers the configuration snapshot. For more information, see
1784
+ # ConfigSnapshotDeliveryProperties.
1785
+ #
1786
+ # </note>
1787
+ #
1788
+ # For more information about developing and using AWS Config rules,
1789
+ # see [Evaluating AWS Resource Configurations with AWS Config][1] in
1790
+ # the *AWS Config Developer Guide*.
1791
+ #
1792
+ #
1793
+ #
1794
+ # [1]: http://docs.aws.amazon.com/config/latest/developerguide/evaluate-config.html
1795
+ # @return [Types::ConfigRule]
1796
+ #
1797
+ class PutConfigRuleRequest < Struct.new(
1798
+ :config_rule)
1799
+ include Aws::Structure
1800
+ end
1801
+
1802
+ # The input for the PutConfigurationRecorder action.
1803
+ #
1804
+ # @note When making an API call, you may pass PutConfigurationRecorderRequest
1805
+ # data as a hash:
1806
+ #
1807
+ # {
1808
+ # configuration_recorder: { # required
1809
+ # name: "RecorderName",
1810
+ # role_arn: "String",
1811
+ # recording_group: {
1812
+ # all_supported: false,
1813
+ # include_global_resource_types: false,
1814
+ # resource_types: ["AWS::EC2::CustomerGateway"], # accepts AWS::EC2::CustomerGateway, AWS::EC2::EIP, AWS::EC2::Host, AWS::EC2::Instance, AWS::EC2::InternetGateway, AWS::EC2::NetworkAcl, AWS::EC2::NetworkInterface, AWS::EC2::RouteTable, AWS::EC2::SecurityGroup, AWS::EC2::Subnet, AWS::CloudTrail::Trail, AWS::EC2::Volume, AWS::EC2::VPC, AWS::EC2::VPNConnection, AWS::EC2::VPNGateway, AWS::IAM::Group, AWS::IAM::Policy, AWS::IAM::Role, AWS::IAM::User, AWS::ACM::Certificate, AWS::RDS::DBInstance, AWS::RDS::DBSubnetGroup, AWS::RDS::DBSecurityGroup, AWS::RDS::DBSnapshot, AWS::RDS::EventSubscription, AWS::ElasticLoadBalancingV2::LoadBalancer, AWS::S3::Bucket, AWS::SSM::ManagedInstanceInventory, AWS::Redshift::Cluster, AWS::Redshift::ClusterSnapshot, AWS::Redshift::ClusterParameterGroup, AWS::Redshift::ClusterSecurityGroup, AWS::Redshift::ClusterSubnetGroup, AWS::Redshift::EventSubscription
1815
+ # },
1816
+ # },
1817
+ # }
1818
+ #
1819
+ # @!attribute [rw] configuration_recorder
1820
+ # The configuration recorder object that records each configuration
1821
+ # change made to the resources.
1822
+ # @return [Types::ConfigurationRecorder]
1823
+ #
1824
+ class PutConfigurationRecorderRequest < Struct.new(
1825
+ :configuration_recorder)
1826
+ include Aws::Structure
1827
+ end
1828
+
1829
+ # The input for the PutDeliveryChannel action.
1830
+ #
1831
+ # @note When making an API call, you may pass PutDeliveryChannelRequest
1832
+ # data as a hash:
1833
+ #
1834
+ # {
1835
+ # delivery_channel: { # required
1836
+ # name: "ChannelName",
1837
+ # s3_bucket_name: "String",
1838
+ # s3_key_prefix: "String",
1839
+ # sns_topic_arn: "String",
1840
+ # config_snapshot_delivery_properties: {
1841
+ # delivery_frequency: "One_Hour", # accepts One_Hour, Three_Hours, Six_Hours, Twelve_Hours, TwentyFour_Hours
1842
+ # },
1843
+ # },
1844
+ # }
1845
+ #
1846
+ # @!attribute [rw] delivery_channel
1847
+ # The configuration delivery channel object that delivers the
1848
+ # configuration information to an Amazon S3 bucket, and to an Amazon
1849
+ # SNS topic.
1850
+ # @return [Types::DeliveryChannel]
1851
+ #
1852
+ class PutDeliveryChannelRequest < Struct.new(
1853
+ :delivery_channel)
1854
+ include Aws::Structure
1855
+ end
1856
+
1857
+ # @note When making an API call, you may pass PutEvaluationsRequest
1858
+ # data as a hash:
1859
+ #
1860
+ # {
1861
+ # evaluations: [
1862
+ # {
1863
+ # compliance_resource_type: "StringWithCharLimit256", # required
1864
+ # compliance_resource_id: "StringWithCharLimit256", # required
1865
+ # compliance_type: "COMPLIANT", # required, accepts COMPLIANT, NON_COMPLIANT, NOT_APPLICABLE, INSUFFICIENT_DATA
1866
+ # annotation: "StringWithCharLimit256",
1867
+ # ordering_timestamp: Time.now, # required
1868
+ # },
1869
+ # ],
1870
+ # result_token: "String", # required
1871
+ # }
1872
+ #
1873
+ # @!attribute [rw] evaluations
1874
+ # The assessments that the AWS Lambda function performs. Each
1875
+ # evaluation identifies an AWS resource and indicates whether it
1876
+ # complies with the AWS Config rule that invokes the AWS Lambda
1877
+ # function.
1878
+ # @return [Array<Types::Evaluation>]
1879
+ #
1880
+ # @!attribute [rw] result_token
1881
+ # An encrypted token that associates an evaluation with an AWS Config
1882
+ # rule. Identifies the rule and the event that triggered the
1883
+ # evaluation
1884
+ # @return [String]
1885
+ #
1886
+ class PutEvaluationsRequest < Struct.new(
1887
+ :evaluations,
1888
+ :result_token)
1889
+ include Aws::Structure
1890
+ end
1891
+
1892
+ # @!attribute [rw] failed_evaluations
1893
+ # Requests that failed because of a client or server error.
1894
+ # @return [Array<Types::Evaluation>]
1895
+ #
1896
+ class PutEvaluationsResponse < Struct.new(
1897
+ :failed_evaluations)
1898
+ include Aws::Structure
1899
+ end
1900
+
1901
+ # Specifies the types of AWS resource for which AWS Config records
1902
+ # configuration changes.
1903
+ #
1904
+ # In the recording group, you specify whether all supported types or
1905
+ # specific types of resources are recorded.
1906
+ #
1907
+ # By default, AWS Config records configuration changes for all supported
1908
+ # types of regional resources that AWS Config discovers in the region in
1909
+ # which it is running. Regional resources are tied to a region and can
1910
+ # be used only in that region. Examples of regional resources are EC2
1911
+ # instances and EBS volumes.
1912
+ #
1913
+ # You can also have AWS Config record configuration changes for
1914
+ # supported types of global resources (for example, IAM resources).
1915
+ # Global resources are not tied to an individual region and can be used
1916
+ # in all regions.
1917
+ #
1918
+ # The configuration details for any global resource are the same in all
1919
+ # regions. If you customize AWS Config in multiple regions to record
1920
+ # global resources, it will create multiple configuration items each
1921
+ # time a global resource changes: one configuration item for each
1922
+ # region. These configuration items will contain identical data. To
1923
+ # prevent duplicate configuration items, you should consider customizing
1924
+ # AWS Config in only one region to record global resources, unless you
1925
+ # want the configuration items to be available in multiple regions.
1926
+ #
1927
+ # If you don't want AWS Config to record all resources, you can specify
1928
+ # which types of resources it will record with the `resourceTypes`
1929
+ # parameter.
1930
+ #
1931
+ # For a list of supported resource types, see [Supported resource
1932
+ # types][1].
1933
+ #
1934
+ # For more information, see [Selecting Which Resources AWS Config
1935
+ # Records][2].
1936
+ #
1937
+ #
1938
+ #
1939
+ # [1]: http://docs.aws.amazon.com/config/latest/developerguide/resource-config-reference.html#supported-resources
1940
+ # [2]: http://docs.aws.amazon.com/config/latest/developerguide/select-resources.html
1941
+ #
1942
+ # @note When making an API call, you may pass RecordingGroup
1943
+ # data as a hash:
1944
+ #
1945
+ # {
1946
+ # all_supported: false,
1947
+ # include_global_resource_types: false,
1948
+ # resource_types: ["AWS::EC2::CustomerGateway"], # accepts AWS::EC2::CustomerGateway, AWS::EC2::EIP, AWS::EC2::Host, AWS::EC2::Instance, AWS::EC2::InternetGateway, AWS::EC2::NetworkAcl, AWS::EC2::NetworkInterface, AWS::EC2::RouteTable, AWS::EC2::SecurityGroup, AWS::EC2::Subnet, AWS::CloudTrail::Trail, AWS::EC2::Volume, AWS::EC2::VPC, AWS::EC2::VPNConnection, AWS::EC2::VPNGateway, AWS::IAM::Group, AWS::IAM::Policy, AWS::IAM::Role, AWS::IAM::User, AWS::ACM::Certificate, AWS::RDS::DBInstance, AWS::RDS::DBSubnetGroup, AWS::RDS::DBSecurityGroup, AWS::RDS::DBSnapshot, AWS::RDS::EventSubscription, AWS::ElasticLoadBalancingV2::LoadBalancer, AWS::S3::Bucket, AWS::SSM::ManagedInstanceInventory, AWS::Redshift::Cluster, AWS::Redshift::ClusterSnapshot, AWS::Redshift::ClusterParameterGroup, AWS::Redshift::ClusterSecurityGroup, AWS::Redshift::ClusterSubnetGroup, AWS::Redshift::EventSubscription
1949
+ # }
1950
+ #
1951
+ # @!attribute [rw] all_supported
1952
+ # Specifies whether AWS Config records configuration changes for every
1953
+ # supported type of regional resource.
1954
+ #
1955
+ # If you set this option to `true`, when AWS Config adds support for a
1956
+ # new type of regional resource, it automatically starts recording
1957
+ # resources of that type.
1958
+ #
1959
+ # If you set this option to `true`, you cannot enumerate a list of
1960
+ # `resourceTypes`.
1961
+ # @return [Boolean]
1962
+ #
1963
+ # @!attribute [rw] include_global_resource_types
1964
+ # Specifies whether AWS Config includes all supported types of global
1965
+ # resources (for example, IAM resources) with the resources that it
1966
+ # records.
1967
+ #
1968
+ # Before you can set this option to `true`, you must set the
1969
+ # `allSupported` option to `true`.
1970
+ #
1971
+ # If you set this option to `true`, when AWS Config adds support for a
1972
+ # new type of global resource, it automatically starts recording
1973
+ # resources of that type.
1974
+ #
1975
+ # The configuration details for any global resource are the same in
1976
+ # all regions. To prevent duplicate configuration items, you should
1977
+ # consider customizing AWS Config in only one region to record global
1978
+ # resources.
1979
+ # @return [Boolean]
1980
+ #
1981
+ # @!attribute [rw] resource_types
1982
+ # A comma-separated list that specifies the types of AWS resources for
1983
+ # which AWS Config records configuration changes (for example,
1984
+ # `AWS::EC2::Instance` or `AWS::CloudTrail::Trail`).
1985
+ #
1986
+ # Before you can set this option to `true`, you must set the
1987
+ # `allSupported` option to `false`.
1988
+ #
1989
+ # If you set this option to `true`, when AWS Config adds support for a
1990
+ # new type of resource, it will not record resources of that type
1991
+ # unless you manually add that type to your recording group.
1992
+ #
1993
+ # For a list of valid `resourceTypes` values, see the **resourceType
1994
+ # Value** column in [Supported AWS Resource Types][1].
1995
+ #
1996
+ #
1997
+ #
1998
+ # [1]: http://docs.aws.amazon.com/config/latest/developerguide/resource-config-reference.html#supported-resources
1999
+ # @return [Array<String>]
2000
+ #
2001
+ class RecordingGroup < Struct.new(
2002
+ :all_supported,
2003
+ :include_global_resource_types,
2004
+ :resource_types)
2005
+ include Aws::Structure
2006
+ end
2007
+
2008
+ # The relationship of the related resource to the main resource.
2009
+ #
2010
+ # @!attribute [rw] resource_type
2011
+ # The resource type of the related resource.
2012
+ # @return [String]
2013
+ #
2014
+ # @!attribute [rw] resource_id
2015
+ # The ID of the related resource (for example, `sg-xxxxxx`).
2016
+ # @return [String]
2017
+ #
2018
+ # @!attribute [rw] resource_name
2019
+ # The custom name of the related resource, if available.
2020
+ # @return [String]
2021
+ #
2022
+ # @!attribute [rw] relationship_name
2023
+ # The type of relationship with the related resource.
2024
+ # @return [String]
2025
+ #
2026
+ class Relationship < Struct.new(
2027
+ :resource_type,
2028
+ :resource_id,
2029
+ :resource_name,
2030
+ :relationship_name)
2031
+ include Aws::Structure
2032
+ end
2033
+
2034
+ # The details that identify a resource that is discovered by AWS Config,
2035
+ # including the resource type, ID, and (if available) the custom
2036
+ # resource name.
2037
+ #
2038
+ # @!attribute [rw] resource_type
2039
+ # The type of resource.
2040
+ # @return [String]
2041
+ #
2042
+ # @!attribute [rw] resource_id
2043
+ # The ID of the resource (for example., `sg-xxxxxx`).
2044
+ # @return [String]
2045
+ #
2046
+ # @!attribute [rw] resource_name
2047
+ # The custom name of the resource (if available).
2048
+ # @return [String]
2049
+ #
2050
+ # @!attribute [rw] resource_deletion_time
2051
+ # The time that the resource was deleted.
2052
+ # @return [Time]
2053
+ #
2054
+ class ResourceIdentifier < Struct.new(
2055
+ :resource_type,
2056
+ :resource_id,
2057
+ :resource_name,
2058
+ :resource_deletion_time)
2059
+ include Aws::Structure
2060
+ end
2061
+
2062
+ # Defines which resources trigger an evaluation for an AWS Config rule.
2063
+ # The scope can include one or more resource types, a combination of a
2064
+ # tag key and value, or a combination of one resource type and one
2065
+ # resource ID. Specify a scope to constrain which resources trigger an
2066
+ # evaluation for a rule. Otherwise, evaluations for the rule are
2067
+ # triggered when any resource in your recording group changes in
2068
+ # configuration.
2069
+ #
2070
+ # @note When making an API call, you may pass Scope
2071
+ # data as a hash:
2072
+ #
2073
+ # {
2074
+ # compliance_resource_types: ["StringWithCharLimit256"],
2075
+ # tag_key: "StringWithCharLimit128",
2076
+ # tag_value: "StringWithCharLimit256",
2077
+ # compliance_resource_id: "StringWithCharLimit256",
2078
+ # }
2079
+ #
2080
+ # @!attribute [rw] compliance_resource_types
2081
+ # The resource types of only those AWS resources that you want to
2082
+ # trigger an evaluation for the rule. You can only specify one type if
2083
+ # you also specify a resource ID for `ComplianceResourceId`.
2084
+ # @return [Array<String>]
2085
+ #
2086
+ # @!attribute [rw] tag_key
2087
+ # The tag key that is applied to only those AWS resources that you
2088
+ # want you want to trigger an evaluation for the rule.
2089
+ # @return [String]
2090
+ #
2091
+ # @!attribute [rw] tag_value
2092
+ # The tag value applied to only those AWS resources that you want to
2093
+ # trigger an evaluation for the rule. If you specify a value for
2094
+ # `TagValue`, you must also specify a value for `TagKey`.
2095
+ # @return [String]
2096
+ #
2097
+ # @!attribute [rw] compliance_resource_id
2098
+ # The IDs of the only AWS resource that you want to trigger an
2099
+ # evaluation for the rule. If you specify a resource ID, you must
2100
+ # specify one resource type for `ComplianceResourceTypes`.
2101
+ # @return [String]
2102
+ #
2103
+ class Scope < Struct.new(
2104
+ :compliance_resource_types,
2105
+ :tag_key,
2106
+ :tag_value,
2107
+ :compliance_resource_id)
2108
+ include Aws::Structure
2109
+ end
2110
+
2111
+ # Provides the AWS Config rule owner (AWS or customer), the rule
2112
+ # identifier, and the events that trigger the evaluation of your AWS
2113
+ # resources.
2114
+ #
2115
+ # @note When making an API call, you may pass Source
2116
+ # data as a hash:
2117
+ #
2118
+ # {
2119
+ # owner: "CUSTOM_LAMBDA", # required, accepts CUSTOM_LAMBDA, AWS
2120
+ # source_identifier: "StringWithCharLimit256", # required
2121
+ # source_details: [
2122
+ # {
2123
+ # event_source: "aws.config", # accepts aws.config
2124
+ # message_type: "ConfigurationItemChangeNotification", # accepts ConfigurationItemChangeNotification, ConfigurationSnapshotDeliveryCompleted, ScheduledNotification, OversizedConfigurationItemChangeNotification
2125
+ # maximum_execution_frequency: "One_Hour", # accepts One_Hour, Three_Hours, Six_Hours, Twelve_Hours, TwentyFour_Hours
2126
+ # },
2127
+ # ],
2128
+ # }
2129
+ #
2130
+ # @!attribute [rw] owner
2131
+ # Indicates whether AWS or the customer owns and manages the AWS
2132
+ # Config rule.
2133
+ # @return [String]
2134
+ #
2135
+ # @!attribute [rw] source_identifier
2136
+ # For AWS Config managed rules, a predefined identifier from a list.
2137
+ # For example, `IAM_PASSWORD_POLICY` is a managed rule. To reference a
2138
+ # managed rule, see [Using AWS Managed Config Rules][1].
2139
+ #
2140
+ # For custom rules, the identifier is the Amazon Resource Name (ARN)
2141
+ # of the rule's AWS Lambda function, such as
2142
+ # `arn:aws:lambda:us-east-1:123456789012:function:custom_rule_name`.
2143
+ #
2144
+ #
2145
+ #
2146
+ # [1]: http://docs.aws.amazon.com/config/latest/developerguide/evaluate-config_use-managed-rules.html
2147
+ # @return [String]
2148
+ #
2149
+ # @!attribute [rw] source_details
2150
+ # Provides the source and type of the event that causes AWS Config to
2151
+ # evaluate your AWS resources.
2152
+ # @return [Array<Types::SourceDetail>]
2153
+ #
2154
+ class Source < Struct.new(
2155
+ :owner,
2156
+ :source_identifier,
2157
+ :source_details)
2158
+ include Aws::Structure
2159
+ end
2160
+
2161
+ # Provides the source and the message types that trigger AWS Config to
2162
+ # evaluate your AWS resources against a rule. It also provides the
2163
+ # frequency with which you want AWS Config to run evaluations for the
2164
+ # rule if the trigger type is periodic. You can specify the parameter
2165
+ # values for `SourceDetail` only for custom rules.
2166
+ #
2167
+ # @note When making an API call, you may pass SourceDetail
2168
+ # data as a hash:
2169
+ #
2170
+ # {
2171
+ # event_source: "aws.config", # accepts aws.config
2172
+ # message_type: "ConfigurationItemChangeNotification", # accepts ConfigurationItemChangeNotification, ConfigurationSnapshotDeliveryCompleted, ScheduledNotification, OversizedConfigurationItemChangeNotification
2173
+ # maximum_execution_frequency: "One_Hour", # accepts One_Hour, Three_Hours, Six_Hours, Twelve_Hours, TwentyFour_Hours
2174
+ # }
2175
+ #
2176
+ # @!attribute [rw] event_source
2177
+ # The source of the event, such as an AWS service, that triggers AWS
2178
+ # Config to evaluate your AWS resources.
2179
+ # @return [String]
2180
+ #
2181
+ # @!attribute [rw] message_type
2182
+ # The type of notification that triggers AWS Config to run an
2183
+ # evaluation for a rule. You can specify the following notification
2184
+ # types:
2185
+ #
2186
+ # * `ConfigurationItemChangeNotification` - Triggers an evaluation
2187
+ # when AWS Config delivers a configuration item as a result of a
2188
+ # resource change.
2189
+ #
2190
+ # * `OversizedConfigurationItemChangeNotification` - Triggers an
2191
+ # evaluation when AWS Config delivers an oversized configuration
2192
+ # item. AWS Config may generate this notification type when a
2193
+ # resource changes and the notification exceeds the maximum size
2194
+ # allowed by Amazon SNS.
2195
+ #
2196
+ # * `ScheduledNotification` - Triggers a periodic evaluation at the
2197
+ # frequency specified for `MaximumExecutionFrequency`.
2198
+ #
2199
+ # * `ConfigurationSnapshotDeliveryCompleted` - Triggers a periodic
2200
+ # evaluation when AWS Config delivers a configuration snapshot.
2201
+ #
2202
+ # If you want your custom rule to be triggered by configuration
2203
+ # changes, specify both `ConfigurationItemChangeNotification` and
2204
+ # `OversizedConfigurationItemChangeNotification`.
2205
+ # @return [String]
2206
+ #
2207
+ # @!attribute [rw] maximum_execution_frequency
2208
+ # The frequency that you want AWS Config to run evaluations for a rule
2209
+ # that is triggered periodically. If you specify a value for
2210
+ # `MaximumExecutionFrequency`, then `MessageType` must use the
2211
+ # `ScheduledNotification` value.
2212
+ # @return [String]
2213
+ #
2214
+ class SourceDetail < Struct.new(
2215
+ :event_source,
2216
+ :message_type,
2217
+ :maximum_execution_frequency)
2218
+ include Aws::Structure
2219
+ end
2220
+
2221
+ # @note When making an API call, you may pass StartConfigRulesEvaluationRequest
2222
+ # data as a hash:
2223
+ #
2224
+ # {
2225
+ # config_rule_names: ["StringWithCharLimit64"],
2226
+ # }
2227
+ #
2228
+ # @!attribute [rw] config_rule_names
2229
+ # The list of names of Config rules that you want to run evaluations
2230
+ # for.
2231
+ # @return [Array<String>]
2232
+ #
2233
+ class StartConfigRulesEvaluationRequest < Struct.new(
2234
+ :config_rule_names)
2235
+ include Aws::Structure
2236
+ end
2237
+
2238
+ # The output when you start the evaluation for the specified Config
2239
+ # rule.
2240
+ #
2241
+ class StartConfigRulesEvaluationResponse < Aws::EmptyStructure; end
2242
+
2243
+ # The input for the StartConfigurationRecorder action.
2244
+ #
2245
+ # @note When making an API call, you may pass StartConfigurationRecorderRequest
2246
+ # data as a hash:
2247
+ #
2248
+ # {
2249
+ # configuration_recorder_name: "RecorderName", # required
2250
+ # }
2251
+ #
2252
+ # @!attribute [rw] configuration_recorder_name
2253
+ # The name of the recorder object that records each configuration
2254
+ # change made to the resources.
2255
+ # @return [String]
2256
+ #
2257
+ class StartConfigurationRecorderRequest < Struct.new(
2258
+ :configuration_recorder_name)
2259
+ include Aws::Structure
2260
+ end
2261
+
2262
+ # The input for the StopConfigurationRecorder action.
2263
+ #
2264
+ # @note When making an API call, you may pass StopConfigurationRecorderRequest
2265
+ # data as a hash:
2266
+ #
2267
+ # {
2268
+ # configuration_recorder_name: "RecorderName", # required
2269
+ # }
2270
+ #
2271
+ # @!attribute [rw] configuration_recorder_name
2272
+ # The name of the recorder object that records each configuration
2273
+ # change made to the resources.
2274
+ # @return [String]
2275
+ #
2276
+ class StopConfigurationRecorderRequest < Struct.new(
2277
+ :configuration_recorder_name)
2278
+ include Aws::Structure
2279
+ end
2280
+
2129
2281
  end
2130
2282
  end