aws-sdk-configservice 1.0.0.rc1

Sign up to get free protection for your applications and to get access to all the features.
@@ -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