aws-sdk-configservice 1.0.0.rc1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA1:
3
+ metadata.gz: 3b2cffae583ccc49f39b622020b2ef0d6e7b58c6
4
+ data.tar.gz: b20d5ee4032193561b29e8b8325be819edef6eb6
5
+ SHA512:
6
+ metadata.gz: a69e73cebc3872126e540a38dcb1a259aca9dc8f8dd2aabf4a58174f6fb1de6d723021c7f7f6c50169051e278298d559efedf77178baabea6c854088c714cd22
7
+ data.tar.gz: b632c4291fa264327e076a4fdaa7de63533fc7f0b1dc0ac48cde19aaba2bc880362f72ae3c6969967d996e8be5da28889049a7085f79f1d21c643b94cb48970f
@@ -0,0 +1,47 @@
1
+ # WARNING ABOUT GENERATED CODE
2
+ #
3
+ # This file is generated. See the contributing for info on making contributions:
4
+ # https://github.com/aws/aws-sdk-ruby/blob/master/CONTRIBUTING.md
5
+ #
6
+ # WARNING ABOUT GENERATED CODE
7
+
8
+ require 'aws-sdk-core'
9
+ require 'aws-sigv4'
10
+
11
+ require_relative 'aws-sdk-configservice/types'
12
+ require_relative 'aws-sdk-configservice/client_api'
13
+ require_relative 'aws-sdk-configservice/client'
14
+ require_relative 'aws-sdk-configservice/errors'
15
+ require_relative 'aws-sdk-configservice/resource'
16
+ require_relative 'aws-sdk-configservice/customizations'
17
+
18
+ # This module provides support for AWS Config. This module is available in the
19
+ # `aws-sdk-configservice` gem.
20
+ #
21
+ # # Client
22
+ #
23
+ # The {Client} class provides one method for each API operation. Operation
24
+ # methods each accept a hash of request parameters and return a response
25
+ # structure.
26
+ #
27
+ # See {Client} for more information.
28
+ #
29
+ # # Errors
30
+ #
31
+ # Errors returned from AWS Config all
32
+ # extend {Errors::ServiceError}.
33
+ #
34
+ # begin
35
+ # # do stuff
36
+ # rescue Aws::ConfigService::Errors::ServiceError
37
+ # # rescues all service API errors
38
+ # end
39
+ #
40
+ # See {Errors} for more information.
41
+ #
42
+ # @service
43
+ module Aws::ConfigService
44
+
45
+ GEM_VERSION = '1.0.0.rc1'
46
+
47
+ end
@@ -0,0 +1,1294 @@
1
+ # WARNING ABOUT GENERATED CODE
2
+ #
3
+ # This file is generated. See the contributing for info on making contributions:
4
+ # https://github.com/aws/aws-sdk-ruby/blob/master/CONTRIBUTING.md
5
+ #
6
+ # WARNING ABOUT GENERATED CODE
7
+
8
+ require 'seahorse/client/plugins/content_length.rb'
9
+ require 'aws-sdk-core/plugins/credentials_configuration.rb'
10
+ require 'aws-sdk-core/plugins/logging.rb'
11
+ require 'aws-sdk-core/plugins/param_converter.rb'
12
+ require 'aws-sdk-core/plugins/param_validator.rb'
13
+ require 'aws-sdk-core/plugins/user_agent.rb'
14
+ require 'aws-sdk-core/plugins/helpful_socket_errors.rb'
15
+ require 'aws-sdk-core/plugins/retry_errors.rb'
16
+ require 'aws-sdk-core/plugins/global_configuration.rb'
17
+ require 'aws-sdk-core/plugins/regional_endpoint.rb'
18
+ require 'aws-sdk-core/plugins/response_paging.rb'
19
+ require 'aws-sdk-core/plugins/stub_responses.rb'
20
+ require 'aws-sdk-core/plugins/idempotency_token.rb'
21
+ require 'aws-sdk-core/plugins/signature_v4.rb'
22
+ require 'aws-sdk-core/plugins/protocols/json_rpc.rb'
23
+
24
+ Aws::Plugins::GlobalConfiguration.add_identifier(:configservice)
25
+
26
+ module Aws
27
+ module ConfigService
28
+ class Client < Seahorse::Client::Base
29
+
30
+ include Aws::ClientStubs
31
+
32
+ @identifier = :configservice
33
+
34
+ set_api(ClientApi::API)
35
+
36
+ add_plugin(Seahorse::Client::Plugins::ContentLength)
37
+ add_plugin(Aws::Plugins::CredentialsConfiguration)
38
+ add_plugin(Aws::Plugins::Logging)
39
+ add_plugin(Aws::Plugins::ParamConverter)
40
+ add_plugin(Aws::Plugins::ParamValidator)
41
+ add_plugin(Aws::Plugins::UserAgent)
42
+ add_plugin(Aws::Plugins::HelpfulSocketErrors)
43
+ add_plugin(Aws::Plugins::RetryErrors)
44
+ add_plugin(Aws::Plugins::GlobalConfiguration)
45
+ add_plugin(Aws::Plugins::RegionalEndpoint)
46
+ add_plugin(Aws::Plugins::ResponsePaging)
47
+ add_plugin(Aws::Plugins::StubResponses)
48
+ add_plugin(Aws::Plugins::IdempotencyToken)
49
+ add_plugin(Aws::Plugins::SignatureV4)
50
+ add_plugin(Aws::Plugins::Protocols::JsonRpc)
51
+
52
+ # @option options [required, Aws::CredentialProvider] :credentials
53
+ # Your AWS credentials. This can be an instance of any one of the
54
+ # following classes:
55
+ #
56
+ # * `Aws::Credentials` - Used for configuring static, non-refreshing
57
+ # credentials.
58
+ #
59
+ # * `Aws::InstanceProfileCredentials` - Used for loading credentials
60
+ # from an EC2 IMDS on an EC2 instance.
61
+ #
62
+ # * `Aws::SharedCredentials` - Used for loading credentials from a
63
+ # shared file, such as `~/.aws/config`.
64
+ #
65
+ # * `Aws::AssumeRoleCredentials` - Used when you need to assume a role.
66
+ #
67
+ # When `:credentials` are not configured directly, the following
68
+ # locations will be searched for credentials:
69
+ #
70
+ # * `Aws.config[:credentials]`
71
+ # * The `:access_key_id`, `:secret_access_key`, and `:session_token` options.
72
+ # * ENV['AWS_ACCESS_KEY_ID'], ENV['AWS_SECRET_ACCESS_KEY']
73
+ # * `~/.aws/credentials`
74
+ # * `~/.aws/config`
75
+ # * EC2 IMDS instance profile - When used by default, the timeouts are
76
+ # very aggressive. Construct and pass an instance of
77
+ # `Aws::InstanceProfileCredentails` to enable retries and extended
78
+ # timeouts.
79
+ # @option options [required, String] :region
80
+ # The AWS region to connect to. The configured `:region` is
81
+ # used to determine the service `:endpoint`. When not passed,
82
+ # a default `:region` is search for in the following locations:
83
+ #
84
+ # * `Aws.config[:region]`
85
+ # * `ENV['AWS_REGION']`
86
+ # * `ENV['AMAZON_REGION']`
87
+ # * `ENV['AWS_DEFAULT_REGION']`
88
+ # * `~/.aws/credentials`
89
+ # * `~/.aws/config`
90
+ # @option options [String] :access_key_id
91
+ # @option options [Boolean] :convert_params (true)
92
+ # When `true`, an attempt is made to coerce request parameters into
93
+ # the required types.
94
+ # @option options [String] :endpoint
95
+ # The client endpoint is normally constructed from the `:region`
96
+ # option. You should only configure an `:endpoint` when connecting
97
+ # to test endpoints. This should be avalid HTTP(S) URI.
98
+ # @option options [Aws::Log::Formatter] :log_formatter (Aws::Log::Formatter.default)
99
+ # The log formatter.
100
+ # @option options [Symbol] :log_level (:info)
101
+ # The log level to send messages to the `:logger` at.
102
+ # @option options [Logger] :logger
103
+ # The Logger instance to send log messages to. If this option
104
+ # is not set, logging will be disabled.
105
+ # @option options [String] :profile ("default")
106
+ # Used when loading credentials from the shared credentials file
107
+ # at HOME/.aws/credentials. When not specified, 'default' is used.
108
+ # @option options [Integer] :retry_limit (3)
109
+ # The maximum number of times to retry failed requests. Only
110
+ # ~ 500 level server errors and certain ~ 400 level client errors
111
+ # are retried. Generally, these are throttling errors, data
112
+ # checksum errors, networking errors, timeout errors and auth
113
+ # errors from expired credentials.
114
+ # @option options [String] :secret_access_key
115
+ # @option options [String] :session_token
116
+ # @option options [Boolean] :simple_json (false)
117
+ # Disables request parameter conversion, validation, and formatting.
118
+ # Also disable response data type conversions. This option is useful
119
+ # when you want to ensure the highest level of performance by
120
+ # avoiding overhead of walking request parameters and response data
121
+ # structures.
122
+ #
123
+ # When `:simple_json` is enabled, the request parameters hash must
124
+ # be formatted exactly as the DynamoDB API expects.
125
+ # @option options [Boolean] :stub_responses (false)
126
+ # Causes the client to return stubbed responses. By default
127
+ # fake responses are generated and returned. You can specify
128
+ # the response data to return or errors to raise by calling
129
+ # {ClientStubs#stub_responses}. See {ClientStubs} for more information.
130
+ #
131
+ # ** Please note ** When response stubbing is enabled, no HTTP
132
+ # requests are made, and retries are disabled.
133
+ # @option options [Boolean] :validate_params (true)
134
+ # When `true`, request parameters are validated before
135
+ # sending the request.
136
+ def initialize(*args)
137
+ super
138
+ end
139
+
140
+ # @!group API Operations
141
+
142
+ # Deletes the specified AWS Config rule and all of its evaluation
143
+ # results.
144
+ #
145
+ # AWS Config sets the state of a rule to `DELETING` until the deletion
146
+ # is complete. You cannot update a rule while it is in this state. If
147
+ # you make a `PutConfigRule` or `DeleteConfigRule` request for the rule,
148
+ # you will receive a `ResourceInUseException`.
149
+ #
150
+ # You can check the state of a rule by using the `DescribeConfigRules`
151
+ # request.
152
+ # @option params [required, String] :config_rule_name
153
+ # The name of the AWS Config rule that you want to delete.
154
+ # @return [Struct] Returns an empty {Seahorse::Client::Response response}.
155
+ #
156
+ # @example Request syntax with placeholder values
157
+ # resp = client.delete_config_rule({
158
+ # config_rule_name: "StringWithCharLimit64", # required
159
+ # })
160
+ # @overload delete_config_rule(params = {})
161
+ # @param [Hash] params ({})
162
+ def delete_config_rule(params = {}, options = {})
163
+ req = build_request(:delete_config_rule, params)
164
+ req.send_request(options)
165
+ end
166
+
167
+ # Deletes the configuration recorder.
168
+ #
169
+ # After the configuration recorder is deleted, AWS Config will not
170
+ # record resource configuration changes until you create a new
171
+ # configuration recorder.
172
+ #
173
+ # This action does not delete the configuration information that was
174
+ # previously recorded. You will be able to access the previously
175
+ # recorded information by using the `GetResourceConfigHistory` action,
176
+ # but you will not be able to access this information in the AWS Config
177
+ # console until you create a new configuration recorder.
178
+ # @option params [required, String] :configuration_recorder_name
179
+ # The name of the configuration recorder to be deleted. You can retrieve
180
+ # the name of your configuration recorder by using the
181
+ # `DescribeConfigurationRecorders` action.
182
+ # @return [Struct] Returns an empty {Seahorse::Client::Response response}.
183
+ #
184
+ # @example Request syntax with placeholder values
185
+ # resp = client.delete_configuration_recorder({
186
+ # configuration_recorder_name: "RecorderName", # required
187
+ # })
188
+ # @overload delete_configuration_recorder(params = {})
189
+ # @param [Hash] params ({})
190
+ def delete_configuration_recorder(params = {}, options = {})
191
+ req = build_request(:delete_configuration_recorder, params)
192
+ req.send_request(options)
193
+ end
194
+
195
+ # Deletes the delivery channel.
196
+ #
197
+ # Before you can delete the delivery channel, you must stop the
198
+ # configuration recorder by using the StopConfigurationRecorder action.
199
+ # @option params [required, String] :delivery_channel_name
200
+ # The name of the delivery channel to delete.
201
+ # @return [Struct] Returns an empty {Seahorse::Client::Response response}.
202
+ #
203
+ # @example Request syntax with placeholder values
204
+ # resp = client.delete_delivery_channel({
205
+ # delivery_channel_name: "ChannelName", # required
206
+ # })
207
+ # @overload delete_delivery_channel(params = {})
208
+ # @param [Hash] params ({})
209
+ def delete_delivery_channel(params = {}, options = {})
210
+ req = build_request(:delete_delivery_channel, params)
211
+ req.send_request(options)
212
+ end
213
+
214
+ # Deletes the evaluation results for the specified Config rule. You can
215
+ # specify one Config rule per request. After you delete the evaluation
216
+ # results, you can call the StartConfigRulesEvaluation API to start
217
+ # evaluating your AWS resources against the rule.
218
+ # @option params [required, String] :config_rule_name
219
+ # The name of the Config rule for which you want to delete the
220
+ # evaluation results.
221
+ # @return [Struct] Returns an empty {Seahorse::Client::Response response}.
222
+ #
223
+ # @example Request syntax with placeholder values
224
+ # resp = client.delete_evaluation_results({
225
+ # config_rule_name: "StringWithCharLimit64", # required
226
+ # })
227
+ # @overload delete_evaluation_results(params = {})
228
+ # @param [Hash] params ({})
229
+ def delete_evaluation_results(params = {}, options = {})
230
+ req = build_request(:delete_evaluation_results, params)
231
+ req.send_request(options)
232
+ end
233
+
234
+ # Schedules delivery of a configuration snapshot to the Amazon S3 bucket
235
+ # in the specified delivery channel. After the delivery has started, AWS
236
+ # Config sends following notifications using an Amazon SNS topic that
237
+ # you have specified.
238
+ #
239
+ # * Notification of starting the delivery.
240
+ #
241
+ # * Notification of delivery completed, if the delivery was successfully
242
+ # completed.
243
+ #
244
+ # * Notification of delivery failure, if the delivery failed to
245
+ # complete.
246
+ # @option params [required, String] :delivery_channel_name
247
+ # The name of the delivery channel through which the snapshot is
248
+ # delivered.
249
+ # @return [Types::DeliverConfigSnapshotResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
250
+ #
251
+ # * {Types::DeliverConfigSnapshotResponse#config_snapshot_id #configSnapshotId} => String
252
+ #
253
+ # @example Request syntax with placeholder values
254
+ # resp = client.deliver_config_snapshot({
255
+ # delivery_channel_name: "ChannelName", # required
256
+ # })
257
+ #
258
+ # @example Response structure
259
+ # resp.config_snapshot_id #=> String
260
+ # @overload deliver_config_snapshot(params = {})
261
+ # @param [Hash] params ({})
262
+ def deliver_config_snapshot(params = {}, options = {})
263
+ req = build_request(:deliver_config_snapshot, params)
264
+ req.send_request(options)
265
+ end
266
+
267
+ # Indicates whether the specified AWS Config rules are compliant. If a
268
+ # rule is noncompliant, this action returns the number of AWS resources
269
+ # that do not comply with the rule.
270
+ #
271
+ # A rule is compliant if all of the evaluated resources comply with it,
272
+ # and it is noncompliant if any of these resources do not comply.
273
+ #
274
+ # If AWS Config has no current evaluation results for the rule, it
275
+ # returns `INSUFFICIENT_DATA`. This result might indicate one of the
276
+ # following conditions:
277
+ #
278
+ # * AWS Config has never invoked an evaluation for the rule. To check
279
+ # whether it has, use the `DescribeConfigRuleEvaluationStatus` action
280
+ # to get the `LastSuccessfulInvocationTime` and
281
+ # `LastFailedInvocationTime`.
282
+ #
283
+ # * The rule's AWS Lambda function is failing to send evaluation
284
+ # results to AWS Config. Verify that the role that you assigned to
285
+ # your configuration recorder includes the `config:PutEvaluations`
286
+ # permission. If the rule is a custom rule, verify that the AWS Lambda
287
+ # execution role includes the `config:PutEvaluations` permission.
288
+ #
289
+ # * The rule's AWS Lambda function has returned `NOT_APPLICABLE` for
290
+ # all evaluation results. This can occur if the resources were deleted
291
+ # or removed from the rule's scope.
292
+ # @option params [Array<String>] :config_rule_names
293
+ # Specify one or more AWS Config rule names to filter the results by
294
+ # rule.
295
+ # @option params [Array<String>] :compliance_types
296
+ # Filters the results by compliance.
297
+ #
298
+ # The allowed values are `COMPLIANT`, `NON_COMPLIANT`, and
299
+ # `INSUFFICIENT_DATA`.
300
+ # @option params [String] :next_token
301
+ # The `nextToken` string returned on a previous page that you use to get
302
+ # the next page of results in a paginated response.
303
+ # @return [Types::DescribeComplianceByConfigRuleResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
304
+ #
305
+ # * {Types::DescribeComplianceByConfigRuleResponse#compliance_by_config_rules #ComplianceByConfigRules} => Array&lt;Types::ComplianceByConfigRule&gt;
306
+ # * {Types::DescribeComplianceByConfigRuleResponse#next_token #NextToken} => String
307
+ #
308
+ # @example Request syntax with placeholder values
309
+ # resp = client.describe_compliance_by_config_rule({
310
+ # config_rule_names: ["StringWithCharLimit64"],
311
+ # compliance_types: ["COMPLIANT"], # accepts COMPLIANT, NON_COMPLIANT, NOT_APPLICABLE, INSUFFICIENT_DATA
312
+ # next_token: "String",
313
+ # })
314
+ #
315
+ # @example Response structure
316
+ # resp.compliance_by_config_rules #=> Array
317
+ # resp.compliance_by_config_rules[0].config_rule_name #=> String
318
+ # resp.compliance_by_config_rules[0].compliance.compliance_type #=> String, one of "COMPLIANT", "NON_COMPLIANT", "NOT_APPLICABLE", "INSUFFICIENT_DATA"
319
+ # resp.compliance_by_config_rules[0].compliance.compliance_contributor_count.capped_count #=> Integer
320
+ # resp.compliance_by_config_rules[0].compliance.compliance_contributor_count.cap_exceeded #=> Boolean
321
+ # resp.next_token #=> String
322
+ # @overload describe_compliance_by_config_rule(params = {})
323
+ # @param [Hash] params ({})
324
+ def describe_compliance_by_config_rule(params = {}, options = {})
325
+ req = build_request(:describe_compliance_by_config_rule, params)
326
+ req.send_request(options)
327
+ end
328
+
329
+ # Indicates whether the specified AWS resources are compliant. If a
330
+ # resource is noncompliant, this action returns the number of AWS Config
331
+ # rules that the resource does not comply with.
332
+ #
333
+ # A resource is compliant if it complies with all the AWS Config rules
334
+ # that evaluate it. It is noncompliant if it does not comply with one or
335
+ # more of these rules.
336
+ #
337
+ # If AWS Config has no current evaluation results for the resource, it
338
+ # returns `INSUFFICIENT_DATA`. This result might indicate one of the
339
+ # following conditions about the rules that evaluate the resource:
340
+ #
341
+ # * AWS Config has never invoked an evaluation for the rule. To check
342
+ # whether it has, use the `DescribeConfigRuleEvaluationStatus` action
343
+ # to get the `LastSuccessfulInvocationTime` and
344
+ # `LastFailedInvocationTime`.
345
+ #
346
+ # * The rule's AWS Lambda function is failing to send evaluation
347
+ # results to AWS Config. Verify that the role that you assigned to
348
+ # your configuration recorder includes the `config:PutEvaluations`
349
+ # permission. If the rule is a custom rule, verify that the AWS Lambda
350
+ # execution role includes the `config:PutEvaluations` permission.
351
+ #
352
+ # * The rule's AWS Lambda function has returned `NOT_APPLICABLE` for
353
+ # all evaluation results. This can occur if the resources were deleted
354
+ # or removed from the rule's scope.
355
+ # @option params [String] :resource_type
356
+ # The types of AWS resources for which you want compliance information;
357
+ # for example, `AWS::EC2::Instance`. For this action, you can specify
358
+ # that the resource type is an AWS account by specifying
359
+ # `AWS::::Account`.
360
+ # @option params [String] :resource_id
361
+ # The ID of the AWS resource for which you want compliance information.
362
+ # You can specify only one resource ID. If you specify a resource ID,
363
+ # you must also specify a type for `ResourceType`.
364
+ # @option params [Array<String>] :compliance_types
365
+ # Filters the results by compliance.
366
+ #
367
+ # The allowed values are `COMPLIANT`, `NON_COMPLIANT`, and
368
+ # `INSUFFICIENT_DATA`.
369
+ # @option params [Integer] :limit
370
+ # The maximum number of evaluation results returned on each page. The
371
+ # default is 10. You cannot specify a limit greater than 100. If you
372
+ # specify 0, AWS Config uses the default.
373
+ # @option params [String] :next_token
374
+ # The `nextToken` string returned on a previous page that you use to get
375
+ # the next page of results in a paginated response.
376
+ # @return [Types::DescribeComplianceByResourceResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
377
+ #
378
+ # * {Types::DescribeComplianceByResourceResponse#compliance_by_resources #ComplianceByResources} => Array&lt;Types::ComplianceByResource&gt;
379
+ # * {Types::DescribeComplianceByResourceResponse#next_token #NextToken} => String
380
+ #
381
+ # @example Request syntax with placeholder values
382
+ # resp = client.describe_compliance_by_resource({
383
+ # resource_type: "StringWithCharLimit256",
384
+ # resource_id: "StringWithCharLimit256",
385
+ # compliance_types: ["COMPLIANT"], # accepts COMPLIANT, NON_COMPLIANT, NOT_APPLICABLE, INSUFFICIENT_DATA
386
+ # limit: 1,
387
+ # next_token: "NextToken",
388
+ # })
389
+ #
390
+ # @example Response structure
391
+ # resp.compliance_by_resources #=> Array
392
+ # resp.compliance_by_resources[0].resource_type #=> String
393
+ # resp.compliance_by_resources[0].resource_id #=> String
394
+ # resp.compliance_by_resources[0].compliance.compliance_type #=> String, one of "COMPLIANT", "NON_COMPLIANT", "NOT_APPLICABLE", "INSUFFICIENT_DATA"
395
+ # resp.compliance_by_resources[0].compliance.compliance_contributor_count.capped_count #=> Integer
396
+ # resp.compliance_by_resources[0].compliance.compliance_contributor_count.cap_exceeded #=> Boolean
397
+ # resp.next_token #=> String
398
+ # @overload describe_compliance_by_resource(params = {})
399
+ # @param [Hash] params ({})
400
+ def describe_compliance_by_resource(params = {}, options = {})
401
+ req = build_request(:describe_compliance_by_resource, params)
402
+ req.send_request(options)
403
+ end
404
+
405
+ # Returns status information for each of your AWS managed Config rules.
406
+ # The status includes information such as the last time AWS Config
407
+ # invoked the rule, the last time AWS Config failed to invoke the rule,
408
+ # and the related error for the last failure.
409
+ # @option params [Array<String>] :config_rule_names
410
+ # The name of the AWS managed Config rules for which you want status
411
+ # information. If you do not specify any names, AWS Config returns
412
+ # status information for all AWS managed Config rules that you use.
413
+ # @return [Types::DescribeConfigRuleEvaluationStatusResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
414
+ #
415
+ # * {Types::DescribeConfigRuleEvaluationStatusResponse#config_rules_evaluation_status #ConfigRulesEvaluationStatus} => Array&lt;Types::ConfigRuleEvaluationStatus&gt;
416
+ #
417
+ # @example Request syntax with placeholder values
418
+ # resp = client.describe_config_rule_evaluation_status({
419
+ # config_rule_names: ["StringWithCharLimit64"],
420
+ # })
421
+ #
422
+ # @example Response structure
423
+ # resp.config_rules_evaluation_status #=> Array
424
+ # resp.config_rules_evaluation_status[0].config_rule_name #=> String
425
+ # resp.config_rules_evaluation_status[0].config_rule_arn #=> String
426
+ # resp.config_rules_evaluation_status[0].config_rule_id #=> String
427
+ # resp.config_rules_evaluation_status[0].last_successful_invocation_time #=> Time
428
+ # resp.config_rules_evaluation_status[0].last_failed_invocation_time #=> Time
429
+ # resp.config_rules_evaluation_status[0].last_successful_evaluation_time #=> Time
430
+ # resp.config_rules_evaluation_status[0].last_failed_evaluation_time #=> Time
431
+ # resp.config_rules_evaluation_status[0].first_activated_time #=> Time
432
+ # resp.config_rules_evaluation_status[0].last_error_code #=> String
433
+ # resp.config_rules_evaluation_status[0].last_error_message #=> String
434
+ # resp.config_rules_evaluation_status[0].first_evaluation_started #=> Boolean
435
+ # @overload describe_config_rule_evaluation_status(params = {})
436
+ # @param [Hash] params ({})
437
+ def describe_config_rule_evaluation_status(params = {}, options = {})
438
+ req = build_request(:describe_config_rule_evaluation_status, params)
439
+ req.send_request(options)
440
+ end
441
+
442
+ # Returns details about your AWS Config rules.
443
+ # @option params [Array<String>] :config_rule_names
444
+ # The names of the AWS Config rules for which you want details. If you
445
+ # do not specify any names, AWS Config returns details for all your
446
+ # rules.
447
+ # @option params [String] :next_token
448
+ # The `nextToken` string returned on a previous page that you use to get
449
+ # the next page of results in a paginated response.
450
+ # @return [Types::DescribeConfigRulesResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
451
+ #
452
+ # * {Types::DescribeConfigRulesResponse#config_rules #ConfigRules} => Array&lt;Types::ConfigRule&gt;
453
+ # * {Types::DescribeConfigRulesResponse#next_token #NextToken} => String
454
+ #
455
+ # @example Request syntax with placeholder values
456
+ # resp = client.describe_config_rules({
457
+ # config_rule_names: ["StringWithCharLimit64"],
458
+ # next_token: "String",
459
+ # })
460
+ #
461
+ # @example Response structure
462
+ # resp.config_rules #=> Array
463
+ # resp.config_rules[0].config_rule_name #=> String
464
+ # resp.config_rules[0].config_rule_arn #=> String
465
+ # resp.config_rules[0].config_rule_id #=> String
466
+ # resp.config_rules[0].description #=> String
467
+ # resp.config_rules[0].scope.compliance_resource_types #=> Array
468
+ # resp.config_rules[0].scope.compliance_resource_types[0] #=> String
469
+ # resp.config_rules[0].scope.tag_key #=> String
470
+ # resp.config_rules[0].scope.tag_value #=> String
471
+ # resp.config_rules[0].scope.compliance_resource_id #=> String
472
+ # resp.config_rules[0].source.owner #=> String, one of "CUSTOM_LAMBDA", "AWS"
473
+ # resp.config_rules[0].source.source_identifier #=> String
474
+ # resp.config_rules[0].source.source_details #=> Array
475
+ # resp.config_rules[0].source.source_details[0].event_source #=> String, one of "aws.config"
476
+ # resp.config_rules[0].source.source_details[0].message_type #=> String, one of "ConfigurationItemChangeNotification", "ConfigurationSnapshotDeliveryCompleted", "ScheduledNotification"
477
+ # resp.config_rules[0].source.source_details[0].maximum_execution_frequency #=> String, one of "One_Hour", "Three_Hours", "Six_Hours", "Twelve_Hours", "TwentyFour_Hours"
478
+ # resp.config_rules[0].input_parameters #=> String
479
+ # resp.config_rules[0].maximum_execution_frequency #=> String, one of "One_Hour", "Three_Hours", "Six_Hours", "Twelve_Hours", "TwentyFour_Hours"
480
+ # resp.config_rules[0].config_rule_state #=> String, one of "ACTIVE", "DELETING", "DELETING_RESULTS", "EVALUATING"
481
+ # resp.next_token #=> String
482
+ # @overload describe_config_rules(params = {})
483
+ # @param [Hash] params ({})
484
+ def describe_config_rules(params = {}, options = {})
485
+ req = build_request(:describe_config_rules, params)
486
+ req.send_request(options)
487
+ end
488
+
489
+ # Returns the current status of the specified configuration recorder. If
490
+ # a configuration recorder is not specified, this action returns the
491
+ # status of all configuration recorder associated with the account.
492
+ #
493
+ # <note markdown="1"> Currently, you can specify only one configuration recorder per region
494
+ # in your account.
495
+ #
496
+ # </note>
497
+ # @option params [Array<String>] :configuration_recorder_names
498
+ # The name(s) of the configuration recorder. If the name is not
499
+ # specified, the action returns the current status of all the
500
+ # configuration recorders associated with the account.
501
+ # @return [Types::DescribeConfigurationRecorderStatusResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
502
+ #
503
+ # * {Types::DescribeConfigurationRecorderStatusResponse#configuration_recorders_status #ConfigurationRecordersStatus} => Array&lt;Types::ConfigurationRecorderStatus&gt;
504
+ #
505
+ # @example Request syntax with placeholder values
506
+ # resp = client.describe_configuration_recorder_status({
507
+ # configuration_recorder_names: ["RecorderName"],
508
+ # })
509
+ #
510
+ # @example Response structure
511
+ # resp.configuration_recorders_status #=> Array
512
+ # resp.configuration_recorders_status[0].name #=> String
513
+ # resp.configuration_recorders_status[0].last_start_time #=> Time
514
+ # resp.configuration_recorders_status[0].last_stop_time #=> Time
515
+ # resp.configuration_recorders_status[0].recording #=> Boolean
516
+ # resp.configuration_recorders_status[0].last_status #=> String, one of "Pending", "Success", "Failure"
517
+ # resp.configuration_recorders_status[0].last_error_code #=> String
518
+ # resp.configuration_recorders_status[0].last_error_message #=> String
519
+ # resp.configuration_recorders_status[0].last_status_change_time #=> Time
520
+ # @overload describe_configuration_recorder_status(params = {})
521
+ # @param [Hash] params ({})
522
+ def describe_configuration_recorder_status(params = {}, options = {})
523
+ req = build_request(:describe_configuration_recorder_status, params)
524
+ req.send_request(options)
525
+ end
526
+
527
+ # Returns the details for the specified configuration recorders. If the
528
+ # configuration recorder is not specified, this action returns the
529
+ # details for all configuration recorders associated with the account.
530
+ #
531
+ # <note markdown="1"> Currently, you can specify only one configuration recorder per region
532
+ # in your account.
533
+ #
534
+ # </note>
535
+ # @option params [Array<String>] :configuration_recorder_names
536
+ # A list of configuration recorder names.
537
+ # @return [Types::DescribeConfigurationRecordersResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
538
+ #
539
+ # * {Types::DescribeConfigurationRecordersResponse#configuration_recorders #ConfigurationRecorders} => Array&lt;Types::ConfigurationRecorder&gt;
540
+ #
541
+ # @example Request syntax with placeholder values
542
+ # resp = client.describe_configuration_recorders({
543
+ # configuration_recorder_names: ["RecorderName"],
544
+ # })
545
+ #
546
+ # @example Response structure
547
+ # resp.configuration_recorders #=> Array
548
+ # resp.configuration_recorders[0].name #=> String
549
+ # resp.configuration_recorders[0].role_arn #=> String
550
+ # resp.configuration_recorders[0].recording_group.all_supported #=> Boolean
551
+ # resp.configuration_recorders[0].recording_group.include_global_resource_types #=> Boolean
552
+ # resp.configuration_recorders[0].recording_group.resource_types #=> Array
553
+ # resp.configuration_recorders[0].recording_group.resource_types[0] #=> String, one of "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"
554
+ # @overload describe_configuration_recorders(params = {})
555
+ # @param [Hash] params ({})
556
+ def describe_configuration_recorders(params = {}, options = {})
557
+ req = build_request(:describe_configuration_recorders, params)
558
+ req.send_request(options)
559
+ end
560
+
561
+ # Returns the current status of the specified delivery channel. If a
562
+ # delivery channel is not specified, this action returns the current
563
+ # status of all delivery channels associated with the account.
564
+ #
565
+ # <note markdown="1"> Currently, you can specify only one delivery channel per region in
566
+ # your account.
567
+ #
568
+ # </note>
569
+ # @option params [Array<String>] :delivery_channel_names
570
+ # A list of delivery channel names.
571
+ # @return [Types::DescribeDeliveryChannelStatusResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
572
+ #
573
+ # * {Types::DescribeDeliveryChannelStatusResponse#delivery_channels_status #DeliveryChannelsStatus} => Array&lt;Types::DeliveryChannelStatus&gt;
574
+ #
575
+ # @example Request syntax with placeholder values
576
+ # resp = client.describe_delivery_channel_status({
577
+ # delivery_channel_names: ["ChannelName"],
578
+ # })
579
+ #
580
+ # @example Response structure
581
+ # resp.delivery_channels_status #=> Array
582
+ # resp.delivery_channels_status[0].name #=> String
583
+ # resp.delivery_channels_status[0].config_snapshot_delivery_info.last_status #=> String, one of "Success", "Failure", "Not_Applicable"
584
+ # resp.delivery_channels_status[0].config_snapshot_delivery_info.last_error_code #=> String
585
+ # resp.delivery_channels_status[0].config_snapshot_delivery_info.last_error_message #=> String
586
+ # resp.delivery_channels_status[0].config_snapshot_delivery_info.last_attempt_time #=> Time
587
+ # resp.delivery_channels_status[0].config_snapshot_delivery_info.last_successful_time #=> Time
588
+ # resp.delivery_channels_status[0].config_snapshot_delivery_info.next_delivery_time #=> Time
589
+ # resp.delivery_channels_status[0].config_history_delivery_info.last_status #=> String, one of "Success", "Failure", "Not_Applicable"
590
+ # resp.delivery_channels_status[0].config_history_delivery_info.last_error_code #=> String
591
+ # resp.delivery_channels_status[0].config_history_delivery_info.last_error_message #=> String
592
+ # resp.delivery_channels_status[0].config_history_delivery_info.last_attempt_time #=> Time
593
+ # resp.delivery_channels_status[0].config_history_delivery_info.last_successful_time #=> Time
594
+ # resp.delivery_channels_status[0].config_history_delivery_info.next_delivery_time #=> Time
595
+ # resp.delivery_channels_status[0].config_stream_delivery_info.last_status #=> String, one of "Success", "Failure", "Not_Applicable"
596
+ # resp.delivery_channels_status[0].config_stream_delivery_info.last_error_code #=> String
597
+ # resp.delivery_channels_status[0].config_stream_delivery_info.last_error_message #=> String
598
+ # resp.delivery_channels_status[0].config_stream_delivery_info.last_status_change_time #=> Time
599
+ # @overload describe_delivery_channel_status(params = {})
600
+ # @param [Hash] params ({})
601
+ def describe_delivery_channel_status(params = {}, options = {})
602
+ req = build_request(:describe_delivery_channel_status, params)
603
+ req.send_request(options)
604
+ end
605
+
606
+ # Returns details about the specified delivery channel. If a delivery
607
+ # channel is not specified, this action returns the details of all
608
+ # delivery channels associated with the account.
609
+ #
610
+ # <note markdown="1"> Currently, you can specify only one delivery channel per region in
611
+ # your account.
612
+ #
613
+ # </note>
614
+ # @option params [Array<String>] :delivery_channel_names
615
+ # A list of delivery channel names.
616
+ # @return [Types::DescribeDeliveryChannelsResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
617
+ #
618
+ # * {Types::DescribeDeliveryChannelsResponse#delivery_channels #DeliveryChannels} => Array&lt;Types::DeliveryChannel&gt;
619
+ #
620
+ # @example Request syntax with placeholder values
621
+ # resp = client.describe_delivery_channels({
622
+ # delivery_channel_names: ["ChannelName"],
623
+ # })
624
+ #
625
+ # @example Response structure
626
+ # resp.delivery_channels #=> Array
627
+ # resp.delivery_channels[0].name #=> String
628
+ # resp.delivery_channels[0].s3_bucket_name #=> String
629
+ # resp.delivery_channels[0].s3_key_prefix #=> String
630
+ # resp.delivery_channels[0].sns_topic_arn #=> String
631
+ # resp.delivery_channels[0].config_snapshot_delivery_properties.delivery_frequency #=> String, one of "One_Hour", "Three_Hours", "Six_Hours", "Twelve_Hours", "TwentyFour_Hours"
632
+ # @overload describe_delivery_channels(params = {})
633
+ # @param [Hash] params ({})
634
+ def describe_delivery_channels(params = {}, options = {})
635
+ req = build_request(:describe_delivery_channels, params)
636
+ req.send_request(options)
637
+ end
638
+
639
+ # Returns the evaluation results for the specified AWS Config rule. The
640
+ # results indicate which AWS resources were evaluated by the rule, when
641
+ # each resource was last evaluated, and whether each resource complies
642
+ # with the rule.
643
+ # @option params [required, String] :config_rule_name
644
+ # The name of the AWS Config rule for which you want compliance
645
+ # information.
646
+ # @option params [Array<String>] :compliance_types
647
+ # Filters the results by compliance.
648
+ #
649
+ # The allowed values are `COMPLIANT`, `NON_COMPLIANT`, and
650
+ # `NOT_APPLICABLE`.
651
+ # @option params [Integer] :limit
652
+ # The maximum number of evaluation results returned on each page. The
653
+ # default is 10. You cannot specify a limit greater than 100. If you
654
+ # specify 0, AWS Config uses the default.
655
+ # @option params [String] :next_token
656
+ # The `nextToken` string returned on a previous page that you use to get
657
+ # the next page of results in a paginated response.
658
+ # @return [Types::GetComplianceDetailsByConfigRuleResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
659
+ #
660
+ # * {Types::GetComplianceDetailsByConfigRuleResponse#evaluation_results #EvaluationResults} => Array&lt;Types::EvaluationResult&gt;
661
+ # * {Types::GetComplianceDetailsByConfigRuleResponse#next_token #NextToken} => String
662
+ #
663
+ # @example Request syntax with placeholder values
664
+ # resp = client.get_compliance_details_by_config_rule({
665
+ # config_rule_name: "StringWithCharLimit64", # required
666
+ # compliance_types: ["COMPLIANT"], # accepts COMPLIANT, NON_COMPLIANT, NOT_APPLICABLE, INSUFFICIENT_DATA
667
+ # limit: 1,
668
+ # next_token: "NextToken",
669
+ # })
670
+ #
671
+ # @example Response structure
672
+ # resp.evaluation_results #=> Array
673
+ # resp.evaluation_results[0].evaluation_result_identifier.evaluation_result_qualifier.config_rule_name #=> String
674
+ # resp.evaluation_results[0].evaluation_result_identifier.evaluation_result_qualifier.resource_type #=> String
675
+ # resp.evaluation_results[0].evaluation_result_identifier.evaluation_result_qualifier.resource_id #=> String
676
+ # resp.evaluation_results[0].evaluation_result_identifier.ordering_timestamp #=> Time
677
+ # resp.evaluation_results[0].compliance_type #=> String, one of "COMPLIANT", "NON_COMPLIANT", "NOT_APPLICABLE", "INSUFFICIENT_DATA"
678
+ # resp.evaluation_results[0].result_recorded_time #=> Time
679
+ # resp.evaluation_results[0].config_rule_invoked_time #=> Time
680
+ # resp.evaluation_results[0].annotation #=> String
681
+ # resp.evaluation_results[0].result_token #=> String
682
+ # resp.next_token #=> String
683
+ # @overload get_compliance_details_by_config_rule(params = {})
684
+ # @param [Hash] params ({})
685
+ def get_compliance_details_by_config_rule(params = {}, options = {})
686
+ req = build_request(:get_compliance_details_by_config_rule, params)
687
+ req.send_request(options)
688
+ end
689
+
690
+ # Returns the evaluation results for the specified AWS resource. The
691
+ # results indicate which AWS Config rules were used to evaluate the
692
+ # resource, when each rule was last used, and whether the resource
693
+ # complies with each rule.
694
+ # @option params [required, String] :resource_type
695
+ # The type of the AWS resource for which you want compliance
696
+ # information.
697
+ # @option params [required, String] :resource_id
698
+ # The ID of the AWS resource for which you want compliance information.
699
+ # @option params [Array<String>] :compliance_types
700
+ # Filters the results by compliance.
701
+ #
702
+ # The allowed values are `COMPLIANT`, `NON_COMPLIANT`, and
703
+ # `NOT_APPLICABLE`.
704
+ # @option params [String] :next_token
705
+ # The `nextToken` string returned on a previous page that you use to get
706
+ # the next page of results in a paginated response.
707
+ # @return [Types::GetComplianceDetailsByResourceResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
708
+ #
709
+ # * {Types::GetComplianceDetailsByResourceResponse#evaluation_results #EvaluationResults} => Array&lt;Types::EvaluationResult&gt;
710
+ # * {Types::GetComplianceDetailsByResourceResponse#next_token #NextToken} => String
711
+ #
712
+ # @example Request syntax with placeholder values
713
+ # resp = client.get_compliance_details_by_resource({
714
+ # resource_type: "StringWithCharLimit256", # required
715
+ # resource_id: "StringWithCharLimit256", # required
716
+ # compliance_types: ["COMPLIANT"], # accepts COMPLIANT, NON_COMPLIANT, NOT_APPLICABLE, INSUFFICIENT_DATA
717
+ # next_token: "String",
718
+ # })
719
+ #
720
+ # @example Response structure
721
+ # resp.evaluation_results #=> Array
722
+ # resp.evaluation_results[0].evaluation_result_identifier.evaluation_result_qualifier.config_rule_name #=> String
723
+ # resp.evaluation_results[0].evaluation_result_identifier.evaluation_result_qualifier.resource_type #=> String
724
+ # resp.evaluation_results[0].evaluation_result_identifier.evaluation_result_qualifier.resource_id #=> String
725
+ # resp.evaluation_results[0].evaluation_result_identifier.ordering_timestamp #=> Time
726
+ # resp.evaluation_results[0].compliance_type #=> String, one of "COMPLIANT", "NON_COMPLIANT", "NOT_APPLICABLE", "INSUFFICIENT_DATA"
727
+ # resp.evaluation_results[0].result_recorded_time #=> Time
728
+ # resp.evaluation_results[0].config_rule_invoked_time #=> Time
729
+ # resp.evaluation_results[0].annotation #=> String
730
+ # resp.evaluation_results[0].result_token #=> String
731
+ # resp.next_token #=> String
732
+ # @overload get_compliance_details_by_resource(params = {})
733
+ # @param [Hash] params ({})
734
+ def get_compliance_details_by_resource(params = {}, options = {})
735
+ req = build_request(:get_compliance_details_by_resource, params)
736
+ req.send_request(options)
737
+ end
738
+
739
+ # Returns the number of AWS Config rules that are compliant and
740
+ # noncompliant, up to a maximum of 25 for each.
741
+ # @return [Types::GetComplianceSummaryByConfigRuleResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
742
+ #
743
+ # * {Types::GetComplianceSummaryByConfigRuleResponse#compliance_summary #ComplianceSummary} => Types::ComplianceSummary
744
+ #
745
+ # @example Response structure
746
+ # resp.compliance_summary.compliant_resource_count.capped_count #=> Integer
747
+ # resp.compliance_summary.compliant_resource_count.cap_exceeded #=> Boolean
748
+ # resp.compliance_summary.non_compliant_resource_count.capped_count #=> Integer
749
+ # resp.compliance_summary.non_compliant_resource_count.cap_exceeded #=> Boolean
750
+ # resp.compliance_summary.compliance_summary_timestamp #=> Time
751
+ # @overload get_compliance_summary_by_config_rule(params = {})
752
+ # @param [Hash] params ({})
753
+ def get_compliance_summary_by_config_rule(params = {}, options = {})
754
+ req = build_request(:get_compliance_summary_by_config_rule, params)
755
+ req.send_request(options)
756
+ end
757
+
758
+ # Returns the number of resources that are compliant and the number that
759
+ # are noncompliant. You can specify one or more resource types to get
760
+ # these numbers for each resource type. The maximum number returned is
761
+ # 100.
762
+ # @option params [Array<String>] :resource_types
763
+ # Specify one or more resource types to get the number of resources that
764
+ # are compliant and the number that are noncompliant for each resource
765
+ # type.
766
+ #
767
+ # For this request, you can specify an AWS resource type such as
768
+ # `AWS::EC2::Instance`, and you can specify that the resource type is an
769
+ # AWS account by specifying `AWS::::Account`.
770
+ # @return [Types::GetComplianceSummaryByResourceTypeResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
771
+ #
772
+ # * {Types::GetComplianceSummaryByResourceTypeResponse#compliance_summaries_by_resource_type #ComplianceSummariesByResourceType} => Array&lt;Types::ComplianceSummaryByResourceType&gt;
773
+ #
774
+ # @example Request syntax with placeholder values
775
+ # resp = client.get_compliance_summary_by_resource_type({
776
+ # resource_types: ["StringWithCharLimit256"],
777
+ # })
778
+ #
779
+ # @example Response structure
780
+ # resp.compliance_summaries_by_resource_type #=> Array
781
+ # resp.compliance_summaries_by_resource_type[0].resource_type #=> String
782
+ # resp.compliance_summaries_by_resource_type[0].compliance_summary.compliant_resource_count.capped_count #=> Integer
783
+ # resp.compliance_summaries_by_resource_type[0].compliance_summary.compliant_resource_count.cap_exceeded #=> Boolean
784
+ # resp.compliance_summaries_by_resource_type[0].compliance_summary.non_compliant_resource_count.capped_count #=> Integer
785
+ # resp.compliance_summaries_by_resource_type[0].compliance_summary.non_compliant_resource_count.cap_exceeded #=> Boolean
786
+ # resp.compliance_summaries_by_resource_type[0].compliance_summary.compliance_summary_timestamp #=> Time
787
+ # @overload get_compliance_summary_by_resource_type(params = {})
788
+ # @param [Hash] params ({})
789
+ def get_compliance_summary_by_resource_type(params = {}, options = {})
790
+ req = build_request(:get_compliance_summary_by_resource_type, params)
791
+ req.send_request(options)
792
+ end
793
+
794
+ # Returns a list of configuration items for the specified resource. The
795
+ # list contains details about each state of the resource during the
796
+ # specified time interval.
797
+ #
798
+ # The response is paginated, and by default, AWS Config returns a limit
799
+ # of 10 configuration items per page. You can customize this number with
800
+ # the `limit` parameter. The response includes a `nextToken` string, and
801
+ # to get the next page of results, run the request again and enter this
802
+ # string for the `nextToken` parameter.
803
+ #
804
+ # <note markdown="1"> Each call to the API is limited to span a duration of seven days. It
805
+ # is likely that the number of records returned is smaller than the
806
+ # specified `limit`. In such cases, you can make another call, using the
807
+ # `nextToken`.
808
+ #
809
+ # </note>
810
+ # @option params [required, String] :resource_type
811
+ # The resource type.
812
+ # @option params [required, String] :resource_id
813
+ # The ID of the resource (for example., `sg-xxxxxx`).
814
+ # @option params [Time,DateTime,Date,Integer,String] :later_time
815
+ # The time stamp that indicates a later time. If not specified, current
816
+ # time is taken.
817
+ # @option params [Time,DateTime,Date,Integer,String] :earlier_time
818
+ # The time stamp that indicates an earlier time. If not specified, the
819
+ # action returns paginated results that contain configuration items that
820
+ # start from when the first configuration item was recorded.
821
+ # @option params [String] :chronological_order
822
+ # The chronological order for configuration items listed. By default the
823
+ # results are listed in reverse chronological order.
824
+ # @option params [Integer] :limit
825
+ # The maximum number of configuration items returned on each page. The
826
+ # default is 10. You cannot specify a limit greater than 100. If you
827
+ # specify 0, AWS Config uses the default.
828
+ # @option params [String] :next_token
829
+ # The `nextToken` string returned on a previous page that you use to get
830
+ # the next page of results in a paginated response.
831
+ # @return [Types::GetResourceConfigHistoryResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
832
+ #
833
+ # * {Types::GetResourceConfigHistoryResponse#configuration_items #configurationItems} => Array&lt;Types::ConfigurationItem&gt;
834
+ # * {Types::GetResourceConfigHistoryResponse#next_token #nextToken} => String
835
+ #
836
+ # @example Request syntax with placeholder values
837
+ # resp = client.get_resource_config_history({
838
+ # 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
839
+ # resource_id: "ResourceId", # required
840
+ # later_time: Time.now,
841
+ # earlier_time: Time.now,
842
+ # chronological_order: "Reverse", # accepts Reverse, Forward
843
+ # limit: 1,
844
+ # next_token: "NextToken",
845
+ # })
846
+ #
847
+ # @example Response structure
848
+ # resp.configuration_items #=> Array
849
+ # resp.configuration_items[0].version #=> String
850
+ # resp.configuration_items[0].account_id #=> String
851
+ # resp.configuration_items[0].configuration_item_capture_time #=> Time
852
+ # resp.configuration_items[0].configuration_item_status #=> String, one of "Ok", "Failed", "Discovered", "Deleted"
853
+ # resp.configuration_items[0].configuration_state_id #=> String
854
+ # resp.configuration_items[0].configuration_item_md5_hash #=> String
855
+ # resp.configuration_items[0].arn #=> String
856
+ # resp.configuration_items[0].resource_type #=> String, one of "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"
857
+ # resp.configuration_items[0].resource_id #=> String
858
+ # resp.configuration_items[0].resource_name #=> String
859
+ # resp.configuration_items[0].aws_region #=> String
860
+ # resp.configuration_items[0].availability_zone #=> String
861
+ # resp.configuration_items[0].resource_creation_time #=> Time
862
+ # resp.configuration_items[0].tags #=> Hash
863
+ # resp.configuration_items[0].tags["Name"] #=> String
864
+ # resp.configuration_items[0].related_events #=> Array
865
+ # resp.configuration_items[0].related_events[0] #=> String
866
+ # resp.configuration_items[0].relationships #=> Array
867
+ # resp.configuration_items[0].relationships[0].resource_type #=> String, one of "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"
868
+ # resp.configuration_items[0].relationships[0].resource_id #=> String
869
+ # resp.configuration_items[0].relationships[0].resource_name #=> String
870
+ # resp.configuration_items[0].relationships[0].relationship_name #=> String
871
+ # resp.configuration_items[0].configuration #=> String
872
+ # resp.configuration_items[0].supplementary_configuration #=> Hash
873
+ # resp.configuration_items[0].supplementary_configuration["SupplementaryConfigurationName"] #=> String
874
+ # resp.next_token #=> String
875
+ # @overload get_resource_config_history(params = {})
876
+ # @param [Hash] params ({})
877
+ def get_resource_config_history(params = {}, options = {})
878
+ req = build_request(:get_resource_config_history, params)
879
+ req.send_request(options)
880
+ end
881
+
882
+ # Accepts a resource type and returns a list of resource identifiers for
883
+ # the resources of that type. A resource identifier includes the
884
+ # resource type, ID, and (if available) the custom resource name. The
885
+ # results consist of resources that AWS Config has discovered, including
886
+ # those that AWS Config is not currently recording. You can narrow the
887
+ # results to include only resources that have specific resource IDs or a
888
+ # resource name.
889
+ #
890
+ # <note markdown="1"> You can specify either resource IDs or a resource name but not both in
891
+ # the same request.
892
+ #
893
+ # </note>
894
+ #
895
+ # The response is paginated, and by default AWS Config lists 100
896
+ # resource identifiers on each page. You can customize this number with
897
+ # the `limit` parameter. The response includes a `nextToken` string, and
898
+ # to get the next page of results, run the request again and enter this
899
+ # string for the `nextToken` parameter.
900
+ # @option params [required, String] :resource_type
901
+ # The type of resources that you want AWS Config to list in the
902
+ # response.
903
+ # @option params [Array<String>] :resource_ids
904
+ # The IDs of only those resources that you want AWS Config to list in
905
+ # the response. If you do not specify this parameter, AWS Config lists
906
+ # all resources of the specified type that it has discovered.
907
+ # @option params [String] :resource_name
908
+ # The custom name of only those resources that you want AWS Config to
909
+ # list in the response. If you do not specify this parameter, AWS Config
910
+ # lists all resources of the specified type that it has discovered.
911
+ # @option params [Integer] :limit
912
+ # The maximum number of resource identifiers returned on each page. The
913
+ # default is 100. You cannot specify a limit greater than 100. If you
914
+ # specify 0, AWS Config uses the default.
915
+ # @option params [Boolean] :include_deleted_resources
916
+ # Specifies whether AWS Config includes deleted resources in the
917
+ # results. By default, deleted resources are not included.
918
+ # @option params [String] :next_token
919
+ # The `nextToken` string returned on a previous page that you use to get
920
+ # the next page of results in a paginated response.
921
+ # @return [Types::ListDiscoveredResourcesResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
922
+ #
923
+ # * {Types::ListDiscoveredResourcesResponse#resource_identifiers #resourceIdentifiers} => Array&lt;Types::ResourceIdentifier&gt;
924
+ # * {Types::ListDiscoveredResourcesResponse#next_token #nextToken} => String
925
+ #
926
+ # @example Request syntax with placeholder values
927
+ # resp = client.list_discovered_resources({
928
+ # 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
929
+ # resource_ids: ["ResourceId"],
930
+ # resource_name: "ResourceName",
931
+ # limit: 1,
932
+ # include_deleted_resources: false,
933
+ # next_token: "NextToken",
934
+ # })
935
+ #
936
+ # @example Response structure
937
+ # resp.resource_identifiers #=> Array
938
+ # resp.resource_identifiers[0].resource_type #=> String, one of "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"
939
+ # resp.resource_identifiers[0].resource_id #=> String
940
+ # resp.resource_identifiers[0].resource_name #=> String
941
+ # resp.resource_identifiers[0].resource_deletion_time #=> Time
942
+ # resp.next_token #=> String
943
+ # @overload list_discovered_resources(params = {})
944
+ # @param [Hash] params ({})
945
+ def list_discovered_resources(params = {}, options = {})
946
+ req = build_request(:list_discovered_resources, params)
947
+ req.send_request(options)
948
+ end
949
+
950
+ # Adds or updates an AWS Config rule for evaluating whether your AWS
951
+ # resources comply with your desired configurations.
952
+ #
953
+ # You can use this action for custom Config rules and AWS managed Config
954
+ # rules. A custom Config rule is a rule that you develop and maintain.
955
+ # An AWS managed Config rule is a customizable, predefined rule that AWS
956
+ # Config provides.
957
+ #
958
+ # If you are adding a new custom Config rule, you must first create the
959
+ # AWS Lambda function that the rule invokes to evaluate your resources.
960
+ # When you use the `PutConfigRule` action to add the rule to AWS Config,
961
+ # you must specify the Amazon Resource Name (ARN) that AWS Lambda
962
+ # assigns to the function. Specify the ARN for the `SourceIdentifier`
963
+ # key. This key is part of the `Source` object, which is part of the
964
+ # `ConfigRule` object.
965
+ #
966
+ # If you are adding a new AWS managed Config rule, specify the rule's
967
+ # identifier for the `SourceIdentifier` key. To reference AWS managed
968
+ # Config rule identifiers, see [Using AWS Managed Config Rules][1].
969
+ #
970
+ # For any new rule that you add, specify the `ConfigRuleName` in the
971
+ # `ConfigRule` object. Do not specify the `ConfigRuleArn` or the
972
+ # `ConfigRuleId`. These values are generated by AWS Config for new
973
+ # rules.
974
+ #
975
+ # If you are updating a rule that you added previously, you can specify
976
+ # the rule by `ConfigRuleName`, `ConfigRuleId`, or `ConfigRuleArn` in
977
+ # the `ConfigRule` data type that you use in this request.
978
+ #
979
+ # The maximum number of rules that AWS Config supports is 25.
980
+ #
981
+ # For more information about developing and using AWS Config rules, see
982
+ # [Evaluating AWS Resource Configurations with AWS Config][2] in the
983
+ # *AWS Config Developer Guide*.
984
+ #
985
+ #
986
+ #
987
+ # [1]: http://docs.aws.amazon.com/config/latest/developerguide/evaluate-config_use-managed-rules.html
988
+ # [2]: http://docs.aws.amazon.com/config/latest/developerguide/evaluate-config.html
989
+ # @option params [required, Types::ConfigRule] :config_rule
990
+ # An AWS Config rule represents an AWS Lambda function that you create
991
+ # for a custom rule or a predefined function for an AWS managed rule.
992
+ # The function evaluates configuration items to assess whether your AWS
993
+ # resources comply with your desired configurations. This function can
994
+ # run when AWS Config detects a configuration change to an AWS resource
995
+ # and at a periodic frequency that you choose (for example, every 24
996
+ # hours).
997
+ #
998
+ # <note markdown="1"> You can use the AWS CLI and AWS SDKs if you want to create a rule that
999
+ # triggers evaluations for your resources when AWS Config delivers the
1000
+ # configuration snapshot. For more information, see
1001
+ # ConfigSnapshotDeliveryProperties.
1002
+ #
1003
+ # </note>
1004
+ #
1005
+ # For more information about developing and using AWS Config rules, see
1006
+ # [Evaluating AWS Resource Configurations with AWS Config][1] in the
1007
+ # *AWS Config Developer Guide*.
1008
+ #
1009
+ #
1010
+ #
1011
+ # [1]: http://docs.aws.amazon.com/config/latest/developerguide/evaluate-config.html
1012
+ # @return [Struct] Returns an empty {Seahorse::Client::Response response}.
1013
+ #
1014
+ # @example Request syntax with placeholder values
1015
+ # resp = client.put_config_rule({
1016
+ # config_rule: { # required
1017
+ # config_rule_name: "StringWithCharLimit64",
1018
+ # config_rule_arn: "String",
1019
+ # config_rule_id: "String",
1020
+ # description: "EmptiableStringWithCharLimit256",
1021
+ # scope: {
1022
+ # compliance_resource_types: ["StringWithCharLimit256"],
1023
+ # tag_key: "StringWithCharLimit128",
1024
+ # tag_value: "StringWithCharLimit256",
1025
+ # compliance_resource_id: "StringWithCharLimit256",
1026
+ # },
1027
+ # source: { # required
1028
+ # owner: "CUSTOM_LAMBDA", # accepts CUSTOM_LAMBDA, AWS
1029
+ # source_identifier: "StringWithCharLimit256",
1030
+ # source_details: [
1031
+ # {
1032
+ # event_source: "aws.config", # accepts aws.config
1033
+ # message_type: "ConfigurationItemChangeNotification", # accepts ConfigurationItemChangeNotification, ConfigurationSnapshotDeliveryCompleted, ScheduledNotification
1034
+ # maximum_execution_frequency: "One_Hour", # accepts One_Hour, Three_Hours, Six_Hours, Twelve_Hours, TwentyFour_Hours
1035
+ # },
1036
+ # ],
1037
+ # },
1038
+ # input_parameters: "StringWithCharLimit256",
1039
+ # maximum_execution_frequency: "One_Hour", # accepts One_Hour, Three_Hours, Six_Hours, Twelve_Hours, TwentyFour_Hours
1040
+ # config_rule_state: "ACTIVE", # accepts ACTIVE, DELETING, DELETING_RESULTS, EVALUATING
1041
+ # },
1042
+ # })
1043
+ # @overload put_config_rule(params = {})
1044
+ # @param [Hash] params ({})
1045
+ def put_config_rule(params = {}, options = {})
1046
+ req = build_request(:put_config_rule, params)
1047
+ req.send_request(options)
1048
+ end
1049
+
1050
+ # Creates a new configuration recorder to record the selected resource
1051
+ # configurations.
1052
+ #
1053
+ # You can use this action to change the role `roleARN` and/or the
1054
+ # `recordingGroup` of an existing recorder. To change the role, call the
1055
+ # action on the existing configuration recorder and specify a role.
1056
+ #
1057
+ # <note markdown="1"> Currently, you can specify only one configuration recorder per region
1058
+ # in your account.
1059
+ #
1060
+ # If `ConfigurationRecorder` does not have the **recordingGroup**
1061
+ # parameter specified, the default is to record all supported resource
1062
+ # types.
1063
+ #
1064
+ # </note>
1065
+ # @option params [required, Types::ConfigurationRecorder] :configuration_recorder
1066
+ # The configuration recorder object that records each configuration
1067
+ # change made to the resources.
1068
+ # @return [Struct] Returns an empty {Seahorse::Client::Response response}.
1069
+ #
1070
+ # @example Request syntax with placeholder values
1071
+ # resp = client.put_configuration_recorder({
1072
+ # configuration_recorder: { # required
1073
+ # name: "RecorderName",
1074
+ # role_arn: "String",
1075
+ # recording_group: {
1076
+ # all_supported: false,
1077
+ # include_global_resource_types: false,
1078
+ # 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
1079
+ # },
1080
+ # },
1081
+ # })
1082
+ # @overload put_configuration_recorder(params = {})
1083
+ # @param [Hash] params ({})
1084
+ def put_configuration_recorder(params = {}, options = {})
1085
+ req = build_request(:put_configuration_recorder, params)
1086
+ req.send_request(options)
1087
+ end
1088
+
1089
+ # Creates a delivery channel object to deliver configuration information
1090
+ # to an Amazon S3 bucket and Amazon SNS topic.
1091
+ #
1092
+ # Before you can create a delivery channel, you must create a
1093
+ # configuration recorder.
1094
+ #
1095
+ # You can use this action to change the Amazon S3 bucket or an Amazon
1096
+ # SNS topic of the existing delivery channel. To change the Amazon S3
1097
+ # bucket or an Amazon SNS topic, call this action and specify the
1098
+ # changed values for the S3 bucket and the SNS topic. If you specify a
1099
+ # different value for either the S3 bucket or the SNS topic, this action
1100
+ # will keep the existing value for the parameter that is not changed.
1101
+ #
1102
+ # <note markdown="1"> You can have only one delivery channel per region in your account.
1103
+ #
1104
+ # </note>
1105
+ # @option params [required, Types::DeliveryChannel] :delivery_channel
1106
+ # The configuration delivery channel object that delivers the
1107
+ # configuration information to an Amazon S3 bucket, and to an Amazon SNS
1108
+ # topic.
1109
+ # @return [Struct] Returns an empty {Seahorse::Client::Response response}.
1110
+ #
1111
+ # @example Request syntax with placeholder values
1112
+ # resp = client.put_delivery_channel({
1113
+ # delivery_channel: { # required
1114
+ # name: "ChannelName",
1115
+ # s3_bucket_name: "String",
1116
+ # s3_key_prefix: "String",
1117
+ # sns_topic_arn: "String",
1118
+ # config_snapshot_delivery_properties: {
1119
+ # delivery_frequency: "One_Hour", # accepts One_Hour, Three_Hours, Six_Hours, Twelve_Hours, TwentyFour_Hours
1120
+ # },
1121
+ # },
1122
+ # })
1123
+ # @overload put_delivery_channel(params = {})
1124
+ # @param [Hash] params ({})
1125
+ def put_delivery_channel(params = {}, options = {})
1126
+ req = build_request(:put_delivery_channel, params)
1127
+ req.send_request(options)
1128
+ end
1129
+
1130
+ # Used by an AWS Lambda function to deliver evaluation results to AWS
1131
+ # Config. This action is required in every AWS Lambda function that is
1132
+ # invoked by an AWS Config rule.
1133
+ # @option params [Array<Types::Evaluation>] :evaluations
1134
+ # The assessments that the AWS Lambda function performs. Each evaluation
1135
+ # identifies an AWS resource and indicates whether it complies with the
1136
+ # AWS Config rule that invokes the AWS Lambda function.
1137
+ # @option params [required, String] :result_token
1138
+ # An encrypted token that associates an evaluation with an AWS Config
1139
+ # rule. Identifies the rule and the event that triggered the evaluation
1140
+ # @return [Types::PutEvaluationsResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
1141
+ #
1142
+ # * {Types::PutEvaluationsResponse#failed_evaluations #FailedEvaluations} => Array&lt;Types::Evaluation&gt;
1143
+ #
1144
+ # @example Request syntax with placeholder values
1145
+ # resp = client.put_evaluations({
1146
+ # evaluations: [
1147
+ # {
1148
+ # compliance_resource_type: "StringWithCharLimit256", # required
1149
+ # compliance_resource_id: "StringWithCharLimit256", # required
1150
+ # compliance_type: "COMPLIANT", # required, accepts COMPLIANT, NON_COMPLIANT, NOT_APPLICABLE, INSUFFICIENT_DATA
1151
+ # annotation: "StringWithCharLimit256",
1152
+ # ordering_timestamp: Time.now, # required
1153
+ # },
1154
+ # ],
1155
+ # result_token: "String", # required
1156
+ # })
1157
+ #
1158
+ # @example Response structure
1159
+ # resp.failed_evaluations #=> Array
1160
+ # resp.failed_evaluations[0].compliance_resource_type #=> String
1161
+ # resp.failed_evaluations[0].compliance_resource_id #=> String
1162
+ # resp.failed_evaluations[0].compliance_type #=> String, one of "COMPLIANT", "NON_COMPLIANT", "NOT_APPLICABLE", "INSUFFICIENT_DATA"
1163
+ # resp.failed_evaluations[0].annotation #=> String
1164
+ # resp.failed_evaluations[0].ordering_timestamp #=> Time
1165
+ # @overload put_evaluations(params = {})
1166
+ # @param [Hash] params ({})
1167
+ def put_evaluations(params = {}, options = {})
1168
+ req = build_request(:put_evaluations, params)
1169
+ req.send_request(options)
1170
+ end
1171
+
1172
+ # Evaluates your resources against the specified Config rules. You can
1173
+ # specify up to 25 Config rules per request.
1174
+ #
1175
+ # An existing StartConfigRulesEvaluation call must complete for the
1176
+ # specified rules before you can call the API again. If you chose to
1177
+ # have AWS Config stream to an Amazon SNS topic, you will receive a
1178
+ # `ConfigRuleEvaluationStarted` notification when the evaluation starts.
1179
+ #
1180
+ # <note markdown="1"> You don't need to call the `StartConfigRulesEvaluation` API to run an
1181
+ # evaluation for a new rule. When you create a new rule, AWS Config
1182
+ # automatically evaluates your resources against the rule.
1183
+ #
1184
+ # </note>
1185
+ #
1186
+ # The `StartConfigRulesEvaluation` API is useful if you want to run
1187
+ # on-demand evaluations, such as the following example:
1188
+ #
1189
+ # 1. You have a custom rule that evaluates your IAM resources every 24
1190
+ # hours.
1191
+ #
1192
+ # 2. You update your Lambda function to add additional conditions to
1193
+ # your rule.
1194
+ #
1195
+ # 3. Instead of waiting for the next periodic evaluation, you call the
1196
+ # `StartConfigRulesEvaluation` API.
1197
+ #
1198
+ # 4. AWS Config invokes your Lambda function and evaluates your IAM
1199
+ # resources.
1200
+ #
1201
+ # 5. Your custom rule will still run periodic evaluations every 24
1202
+ # hours.
1203
+ # @option params [Array<String>] :config_rule_names
1204
+ # The list of names of Config rules that you want to run evaluations
1205
+ # for.
1206
+ # @return [Struct] Returns an empty {Seahorse::Client::Response response}.
1207
+ #
1208
+ # @example Request syntax with placeholder values
1209
+ # resp = client.start_config_rules_evaluation({
1210
+ # config_rule_names: ["StringWithCharLimit64"],
1211
+ # })
1212
+ # @overload start_config_rules_evaluation(params = {})
1213
+ # @param [Hash] params ({})
1214
+ def start_config_rules_evaluation(params = {}, options = {})
1215
+ req = build_request(:start_config_rules_evaluation, params)
1216
+ req.send_request(options)
1217
+ end
1218
+
1219
+ # Starts recording configurations of the AWS resources you have selected
1220
+ # to record in your AWS account.
1221
+ #
1222
+ # You must have created at least one delivery channel to successfully
1223
+ # start the configuration recorder.
1224
+ # @option params [required, String] :configuration_recorder_name
1225
+ # The name of the recorder object that records each configuration change
1226
+ # made to the resources.
1227
+ # @return [Struct] Returns an empty {Seahorse::Client::Response response}.
1228
+ #
1229
+ # @example Request syntax with placeholder values
1230
+ # resp = client.start_configuration_recorder({
1231
+ # configuration_recorder_name: "RecorderName", # required
1232
+ # })
1233
+ # @overload start_configuration_recorder(params = {})
1234
+ # @param [Hash] params ({})
1235
+ def start_configuration_recorder(params = {}, options = {})
1236
+ req = build_request(:start_configuration_recorder, params)
1237
+ req.send_request(options)
1238
+ end
1239
+
1240
+ # Stops recording configurations of the AWS resources you have selected
1241
+ # to record in your AWS account.
1242
+ # @option params [required, String] :configuration_recorder_name
1243
+ # The name of the recorder object that records each configuration change
1244
+ # made to the resources.
1245
+ # @return [Struct] Returns an empty {Seahorse::Client::Response response}.
1246
+ #
1247
+ # @example Request syntax with placeholder values
1248
+ # resp = client.stop_configuration_recorder({
1249
+ # configuration_recorder_name: "RecorderName", # required
1250
+ # })
1251
+ # @overload stop_configuration_recorder(params = {})
1252
+ # @param [Hash] params ({})
1253
+ def stop_configuration_recorder(params = {}, options = {})
1254
+ req = build_request(:stop_configuration_recorder, params)
1255
+ req.send_request(options)
1256
+ end
1257
+
1258
+ # @!endgroup
1259
+
1260
+ # @param params ({})
1261
+ # @api private
1262
+ def build_request(operation_name, params = {})
1263
+ handlers = @handlers.for(operation_name)
1264
+ context = Seahorse::Client::RequestContext.new(
1265
+ operation_name: operation_name,
1266
+ operation: config.api.operation(operation_name),
1267
+ client: self,
1268
+ params: params,
1269
+ config: config)
1270
+ context[:gem_name] = 'aws-sdk-configservice'
1271
+ context[:gem_version] = '1.0.0.rc1'
1272
+ Seahorse::Client::Request.new(handlers, context)
1273
+ end
1274
+
1275
+ # @api private
1276
+ # @deprecated
1277
+ def waiter_names
1278
+ []
1279
+ end
1280
+
1281
+ class << self
1282
+
1283
+ # @api private
1284
+ attr_reader :identifier
1285
+
1286
+ # @api private
1287
+ def errors_module
1288
+ Errors
1289
+ end
1290
+
1291
+ end
1292
+ end
1293
+ end
1294
+ end