aws-sdk-guardduty 1.0.0

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: d66acf57e236c091dadaf105b3db48f2ba8bf684
4
+ data.tar.gz: 1c28e5744f475c04010ecb29db3398f0528fc085
5
+ SHA512:
6
+ metadata.gz: f4d00f3c519dc630fbfd43f4f01e5bc7a3366b9892a32f918d03847611941b9defc80ad6351a282f5b333368ca3d6f38a3d1cce2cc080387e1bb41063ec76605
7
+ data.tar.gz: ba25304ffd4482f98aa8241ddbf499735412892ae66aad572d9ba130f3e09a41913affac014eee3372d4d25d4f57f7e48cf6767e99fcb2eb1ee1f91d19c0dad7
@@ -0,0 +1,47 @@
1
+ # WARNING ABOUT GENERATED CODE
2
+ #
3
+ # This file is generated. See the contributing guide for more information:
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-guardduty/types'
12
+ require_relative 'aws-sdk-guardduty/client_api'
13
+ require_relative 'aws-sdk-guardduty/client'
14
+ require_relative 'aws-sdk-guardduty/errors'
15
+ require_relative 'aws-sdk-guardduty/resource'
16
+ require_relative 'aws-sdk-guardduty/customizations'
17
+
18
+ # This module provides support for Amazon GuardDuty. This module is available in the
19
+ # `aws-sdk-guardduty` 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 Amazon GuardDuty all
32
+ # extend {Errors::ServiceError}.
33
+ #
34
+ # begin
35
+ # # do stuff
36
+ # rescue Aws::GuardDuty::Errors::ServiceError
37
+ # # rescues all service API errors
38
+ # end
39
+ #
40
+ # See {Errors} for more information.
41
+ #
42
+ # @service
43
+ module Aws::GuardDuty
44
+
45
+ GEM_VERSION = '1.0.0'
46
+
47
+ end
@@ -0,0 +1,1578 @@
1
+ # WARNING ABOUT GENERATED CODE
2
+ #
3
+ # This file is generated. See the contributing guide for more information:
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/jsonvalue_converter.rb'
22
+ require 'aws-sdk-core/plugins/signature_v4.rb'
23
+ require 'aws-sdk-core/plugins/protocols/rest_json.rb'
24
+
25
+ Aws::Plugins::GlobalConfiguration.add_identifier(:guardduty)
26
+
27
+ module Aws::GuardDuty
28
+ class Client < Seahorse::Client::Base
29
+
30
+ include Aws::ClientStubs
31
+
32
+ @identifier = :guardduty
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::JsonvalueConverter)
50
+ add_plugin(Aws::Plugins::SignatureV4)
51
+ add_plugin(Aws::Plugins::Protocols::RestJson)
52
+
53
+ # @option options [required, Aws::CredentialProvider] :credentials
54
+ # Your AWS credentials. This can be an instance of any one of the
55
+ # following classes:
56
+ #
57
+ # * `Aws::Credentials` - Used for configuring static, non-refreshing
58
+ # credentials.
59
+ #
60
+ # * `Aws::InstanceProfileCredentials` - Used for loading credentials
61
+ # from an EC2 IMDS on an EC2 instance.
62
+ #
63
+ # * `Aws::SharedCredentials` - Used for loading credentials from a
64
+ # shared file, such as `~/.aws/config`.
65
+ #
66
+ # * `Aws::AssumeRoleCredentials` - Used when you need to assume a role.
67
+ #
68
+ # When `:credentials` are not configured directly, the following
69
+ # locations will be searched for credentials:
70
+ #
71
+ # * `Aws.config[:credentials]`
72
+ # * The `:access_key_id`, `:secret_access_key`, and `:session_token` options.
73
+ # * ENV['AWS_ACCESS_KEY_ID'], ENV['AWS_SECRET_ACCESS_KEY']
74
+ # * `~/.aws/credentials`
75
+ # * `~/.aws/config`
76
+ # * EC2 IMDS instance profile - When used by default, the timeouts are
77
+ # very aggressive. Construct and pass an instance of
78
+ # `Aws::InstanceProfileCredentails` to enable retries and extended
79
+ # timeouts.
80
+ #
81
+ # @option options [required, String] :region
82
+ # The AWS region to connect to. The configured `:region` is
83
+ # used to determine the service `:endpoint`. When not passed,
84
+ # a default `:region` is search for in the following locations:
85
+ #
86
+ # * `Aws.config[:region]`
87
+ # * `ENV['AWS_REGION']`
88
+ # * `ENV['AMAZON_REGION']`
89
+ # * `ENV['AWS_DEFAULT_REGION']`
90
+ # * `~/.aws/credentials`
91
+ # * `~/.aws/config`
92
+ #
93
+ # @option options [String] :access_key_id
94
+ #
95
+ # @option options [Boolean] :convert_params (true)
96
+ # When `true`, an attempt is made to coerce request parameters into
97
+ # the required types.
98
+ #
99
+ # @option options [String] :endpoint
100
+ # The client endpoint is normally constructed from the `:region`
101
+ # option. You should only configure an `:endpoint` when connecting
102
+ # to test endpoints. This should be avalid HTTP(S) URI.
103
+ #
104
+ # @option options [Aws::Log::Formatter] :log_formatter (Aws::Log::Formatter.default)
105
+ # The log formatter.
106
+ #
107
+ # @option options [Symbol] :log_level (:info)
108
+ # The log level to send messages to the `:logger` at.
109
+ #
110
+ # @option options [Logger] :logger
111
+ # The Logger instance to send log messages to. If this option
112
+ # is not set, logging will be disabled.
113
+ #
114
+ # @option options [String] :profile ("default")
115
+ # Used when loading credentials from the shared credentials file
116
+ # at HOME/.aws/credentials. When not specified, 'default' is used.
117
+ #
118
+ # @option options [Integer] :retry_limit (3)
119
+ # The maximum number of times to retry failed requests. Only
120
+ # ~ 500 level server errors and certain ~ 400 level client errors
121
+ # are retried. Generally, these are throttling errors, data
122
+ # checksum errors, networking errors, timeout errors and auth
123
+ # errors from expired credentials.
124
+ #
125
+ # @option options [String] :secret_access_key
126
+ #
127
+ # @option options [String] :session_token
128
+ #
129
+ # @option options [Boolean] :stub_responses (false)
130
+ # Causes the client to return stubbed responses. By default
131
+ # fake responses are generated and returned. You can specify
132
+ # the response data to return or errors to raise by calling
133
+ # {ClientStubs#stub_responses}. See {ClientStubs} for more information.
134
+ #
135
+ # ** Please note ** When response stubbing is enabled, no HTTP
136
+ # requests are made, and retries are disabled.
137
+ #
138
+ # @option options [Boolean] :validate_params (true)
139
+ # When `true`, request parameters are validated before
140
+ # sending the request.
141
+ #
142
+ def initialize(*args)
143
+ super
144
+ end
145
+
146
+ # @!group API Operations
147
+
148
+ # Accepts the invitation to be monitored by a master GuardDuty account.
149
+ #
150
+ # @option params [required, String] :detector_id
151
+ #
152
+ # @option params [String] :invitation_id
153
+ # This value is used to validate the master account to the member
154
+ # account.
155
+ #
156
+ # @option params [String] :master_id
157
+ # The account ID of the master GuardDuty account whose invitation
158
+ # you're accepting.
159
+ #
160
+ # @return [Struct] Returns an empty {Seahorse::Client::Response response}.
161
+ #
162
+ # @example Request syntax with placeholder values
163
+ #
164
+ # resp = client.accept_invitation({
165
+ # detector_id: "__string", # required
166
+ # invitation_id: "InvitationId",
167
+ # master_id: "MasterId",
168
+ # })
169
+ #
170
+ # @see http://docs.aws.amazon.com/goto/WebAPI/guardduty-2017-11-28/AcceptInvitation AWS API Documentation
171
+ #
172
+ # @overload accept_invitation(params = {})
173
+ # @param [Hash] params ({})
174
+ def accept_invitation(params = {}, options = {})
175
+ req = build_request(:accept_invitation, params)
176
+ req.send_request(options)
177
+ end
178
+
179
+ # Archives Amazon GuardDuty findings specified by the list of finding
180
+ # IDs.
181
+ #
182
+ # @option params [required, String] :detector_id
183
+ #
184
+ # @option params [Array<String>] :finding_ids
185
+ # IDs of the findings that you want to archive.
186
+ #
187
+ # @return [Struct] Returns an empty {Seahorse::Client::Response response}.
188
+ #
189
+ # @example Request syntax with placeholder values
190
+ #
191
+ # resp = client.archive_findings({
192
+ # detector_id: "__string", # required
193
+ # finding_ids: ["FindingId"],
194
+ # })
195
+ #
196
+ # @see http://docs.aws.amazon.com/goto/WebAPI/guardduty-2017-11-28/ArchiveFindings AWS API Documentation
197
+ #
198
+ # @overload archive_findings(params = {})
199
+ # @param [Hash] params ({})
200
+ def archive_findings(params = {}, options = {})
201
+ req = build_request(:archive_findings, params)
202
+ req.send_request(options)
203
+ end
204
+
205
+ # Creates a single Amazon GuardDuty detector. A detector is an object
206
+ # that represents the GuardDuty service. A detector must be created in
207
+ # order for GuardDuty to become operational.
208
+ #
209
+ # @option params [Boolean] :enable
210
+ # A boolean value that specifies whether the detector is to be enabled.
211
+ #
212
+ # @return [Types::CreateDetectorResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
213
+ #
214
+ # * {Types::CreateDetectorResponse#detector_id #detector_id} => String
215
+ #
216
+ # @example Request syntax with placeholder values
217
+ #
218
+ # resp = client.create_detector({
219
+ # enable: false,
220
+ # })
221
+ #
222
+ # @example Response structure
223
+ #
224
+ # resp.detector_id #=> String
225
+ #
226
+ # @see http://docs.aws.amazon.com/goto/WebAPI/guardduty-2017-11-28/CreateDetector AWS API Documentation
227
+ #
228
+ # @overload create_detector(params = {})
229
+ # @param [Hash] params ({})
230
+ def create_detector(params = {}, options = {})
231
+ req = build_request(:create_detector, params)
232
+ req.send_request(options)
233
+ end
234
+
235
+ # Creates a new IPSet - a list of trusted IP addresses that have been
236
+ # whitelisted for secure communication with AWS infrastructure and
237
+ # applications.
238
+ #
239
+ # @option params [Boolean] :activate
240
+ # A boolean value that indicates whether GuardDuty is to start using the
241
+ # uploaded IPSet.
242
+ #
243
+ # @option params [required, String] :detector_id
244
+ #
245
+ # @option params [String] :format
246
+ # The format of the file that contains the IPSet.
247
+ #
248
+ # @option params [String] :location
249
+ # The URI of the file that contains the IPSet. For example
250
+ # (https://s3.us-west-2.amazonaws.com/my-bucket/my-object-key)
251
+ #
252
+ # @option params [String] :name
253
+ # The user friendly name to identify the IPSet. This name is displayed
254
+ # in all findings that are triggered by activity that involves IP
255
+ # addresses included in this IPSet.
256
+ #
257
+ # @return [Types::CreateIPSetResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
258
+ #
259
+ # * {Types::CreateIPSetResponse#ip_set_id #ip_set_id} => String
260
+ #
261
+ # @example Request syntax with placeholder values
262
+ #
263
+ # resp = client.create_ip_set({
264
+ # activate: false,
265
+ # detector_id: "__string", # required
266
+ # format: "TXT", # accepts TXT, STIX, OTX_CSV, ALIEN_VAULT, PROOF_POINT, FIRE_EYE
267
+ # location: "Location",
268
+ # name: "Name",
269
+ # })
270
+ #
271
+ # @example Response structure
272
+ #
273
+ # resp.ip_set_id #=> String
274
+ #
275
+ # @see http://docs.aws.amazon.com/goto/WebAPI/guardduty-2017-11-28/CreateIPSet AWS API Documentation
276
+ #
277
+ # @overload create_ip_set(params = {})
278
+ # @param [Hash] params ({})
279
+ def create_ip_set(params = {}, options = {})
280
+ req = build_request(:create_ip_set, params)
281
+ req.send_request(options)
282
+ end
283
+
284
+ # Creates member accounts of the current AWS account by specifying a
285
+ # list of AWS account IDs. The current AWS account can then invite these
286
+ # members to manage GuardDuty in their accounts.
287
+ #
288
+ # @option params [Array<Types::AccountDetail>] :account_details
289
+ # A list of account ID and email address pairs of the accounts that you
290
+ # want to associate with the master GuardDuty account.
291
+ #
292
+ # @option params [required, String] :detector_id
293
+ #
294
+ # @return [Types::CreateMembersResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
295
+ #
296
+ # * {Types::CreateMembersResponse#unprocessed_accounts #unprocessed_accounts} => Array&lt;Types::UnprocessedAccount&gt;
297
+ #
298
+ # @example Request syntax with placeholder values
299
+ #
300
+ # resp = client.create_members({
301
+ # account_details: [
302
+ # {
303
+ # account_id: "AccountId",
304
+ # email: "Email",
305
+ # },
306
+ # ],
307
+ # detector_id: "__string", # required
308
+ # })
309
+ #
310
+ # @example Response structure
311
+ #
312
+ # resp.unprocessed_accounts #=> Array
313
+ # resp.unprocessed_accounts[0].account_id #=> String
314
+ # resp.unprocessed_accounts[0].result #=> String
315
+ #
316
+ # @see http://docs.aws.amazon.com/goto/WebAPI/guardduty-2017-11-28/CreateMembers AWS API Documentation
317
+ #
318
+ # @overload create_members(params = {})
319
+ # @param [Hash] params ({})
320
+ def create_members(params = {}, options = {})
321
+ req = build_request(:create_members, params)
322
+ req.send_request(options)
323
+ end
324
+
325
+ # Generates example findings of types specified by the list of finding
326
+ # types. If 'NULL' is specified for findingTypes, the API generates
327
+ # example findings of all supported finding types.
328
+ #
329
+ # @option params [required, String] :detector_id
330
+ #
331
+ # @option params [Array<String>] :finding_types
332
+ # Types of sample findings that you want to generate.
333
+ #
334
+ # @return [Struct] Returns an empty {Seahorse::Client::Response response}.
335
+ #
336
+ # @example Request syntax with placeholder values
337
+ #
338
+ # resp = client.create_sample_findings({
339
+ # detector_id: "__string", # required
340
+ # finding_types: ["FindingType"],
341
+ # })
342
+ #
343
+ # @see http://docs.aws.amazon.com/goto/WebAPI/guardduty-2017-11-28/CreateSampleFindings AWS API Documentation
344
+ #
345
+ # @overload create_sample_findings(params = {})
346
+ # @param [Hash] params ({})
347
+ def create_sample_findings(params = {}, options = {})
348
+ req = build_request(:create_sample_findings, params)
349
+ req.send_request(options)
350
+ end
351
+
352
+ # Create a new ThreatIntelSet. ThreatIntelSets consist of known
353
+ # malicious IP addresses. GuardDuty generates findings based on
354
+ # ThreatIntelSets.
355
+ #
356
+ # @option params [Boolean] :activate
357
+ # A boolean value that indicates whether GuardDuty is to start using the
358
+ # uploaded ThreatIntelSet.
359
+ #
360
+ # @option params [required, String] :detector_id
361
+ #
362
+ # @option params [String] :format
363
+ # The format of the file that contains the ThreatIntelSet.
364
+ #
365
+ # @option params [String] :location
366
+ # The URI of the file that contains the ThreatIntelSet. For example
367
+ # (https://s3.us-west-2.amazonaws.com/my-bucket/my-object-key).
368
+ #
369
+ # @option params [String] :name
370
+ # A user-friendly ThreatIntelSet name that is displayed in all finding
371
+ # generated by activity that involves IP addresses included in this
372
+ # ThreatIntelSet.
373
+ #
374
+ # @return [Types::CreateThreatIntelSetResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
375
+ #
376
+ # * {Types::CreateThreatIntelSetResponse#threat_intel_set_id #threat_intel_set_id} => String
377
+ #
378
+ # @example Request syntax with placeholder values
379
+ #
380
+ # resp = client.create_threat_intel_set({
381
+ # activate: false,
382
+ # detector_id: "__string", # required
383
+ # format: "TXT", # accepts TXT, STIX, OTX_CSV, ALIEN_VAULT, PROOF_POINT, FIRE_EYE
384
+ # location: "Location",
385
+ # name: "Name",
386
+ # })
387
+ #
388
+ # @example Response structure
389
+ #
390
+ # resp.threat_intel_set_id #=> String
391
+ #
392
+ # @see http://docs.aws.amazon.com/goto/WebAPI/guardduty-2017-11-28/CreateThreatIntelSet AWS API Documentation
393
+ #
394
+ # @overload create_threat_intel_set(params = {})
395
+ # @param [Hash] params ({})
396
+ def create_threat_intel_set(params = {}, options = {})
397
+ req = build_request(:create_threat_intel_set, params)
398
+ req.send_request(options)
399
+ end
400
+
401
+ # Declines invitations sent to the current member account by AWS account
402
+ # specified by their account IDs.
403
+ #
404
+ # @option params [Array<String>] :account_ids
405
+ # A list of account IDs of the AWS accounts that sent invitations to the
406
+ # current member account that you want to decline invitations from.
407
+ #
408
+ # @return [Types::DeclineInvitationsResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
409
+ #
410
+ # * {Types::DeclineInvitationsResponse#unprocessed_accounts #unprocessed_accounts} => Array&lt;Types::UnprocessedAccount&gt;
411
+ #
412
+ # @example Request syntax with placeholder values
413
+ #
414
+ # resp = client.decline_invitations({
415
+ # account_ids: ["__string"],
416
+ # })
417
+ #
418
+ # @example Response structure
419
+ #
420
+ # resp.unprocessed_accounts #=> Array
421
+ # resp.unprocessed_accounts[0].account_id #=> String
422
+ # resp.unprocessed_accounts[0].result #=> String
423
+ #
424
+ # @see http://docs.aws.amazon.com/goto/WebAPI/guardduty-2017-11-28/DeclineInvitations AWS API Documentation
425
+ #
426
+ # @overload decline_invitations(params = {})
427
+ # @param [Hash] params ({})
428
+ def decline_invitations(params = {}, options = {})
429
+ req = build_request(:decline_invitations, params)
430
+ req.send_request(options)
431
+ end
432
+
433
+ # Deletes a Amazon GuardDuty detector specified by the detector ID.
434
+ #
435
+ # @option params [required, String] :detector_id
436
+ #
437
+ # @return [Struct] Returns an empty {Seahorse::Client::Response response}.
438
+ #
439
+ # @example Request syntax with placeholder values
440
+ #
441
+ # resp = client.delete_detector({
442
+ # detector_id: "__string", # required
443
+ # })
444
+ #
445
+ # @see http://docs.aws.amazon.com/goto/WebAPI/guardduty-2017-11-28/DeleteDetector AWS API Documentation
446
+ #
447
+ # @overload delete_detector(params = {})
448
+ # @param [Hash] params ({})
449
+ def delete_detector(params = {}, options = {})
450
+ req = build_request(:delete_detector, params)
451
+ req.send_request(options)
452
+ end
453
+
454
+ # Deletes the IPSet specified by the IPSet ID.
455
+ #
456
+ # @option params [required, String] :detector_id
457
+ #
458
+ # @option params [required, String] :ip_set_id
459
+ #
460
+ # @return [Struct] Returns an empty {Seahorse::Client::Response response}.
461
+ #
462
+ # @example Request syntax with placeholder values
463
+ #
464
+ # resp = client.delete_ip_set({
465
+ # detector_id: "__string", # required
466
+ # ip_set_id: "__string", # required
467
+ # })
468
+ #
469
+ # @see http://docs.aws.amazon.com/goto/WebAPI/guardduty-2017-11-28/DeleteIPSet AWS API Documentation
470
+ #
471
+ # @overload delete_ip_set(params = {})
472
+ # @param [Hash] params ({})
473
+ def delete_ip_set(params = {}, options = {})
474
+ req = build_request(:delete_ip_set, params)
475
+ req.send_request(options)
476
+ end
477
+
478
+ # Deletes invitations sent to the current member account by AWS accounts
479
+ # specified by their account IDs.
480
+ #
481
+ # @option params [Array<String>] :account_ids
482
+ # A list of account IDs of the AWS accounts that sent invitations to the
483
+ # current member account that you want to delete invitations from.
484
+ #
485
+ # @return [Types::DeleteInvitationsResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
486
+ #
487
+ # * {Types::DeleteInvitationsResponse#unprocessed_accounts #unprocessed_accounts} => Array&lt;Types::UnprocessedAccount&gt;
488
+ #
489
+ # @example Request syntax with placeholder values
490
+ #
491
+ # resp = client.delete_invitations({
492
+ # account_ids: ["__string"],
493
+ # })
494
+ #
495
+ # @example Response structure
496
+ #
497
+ # resp.unprocessed_accounts #=> Array
498
+ # resp.unprocessed_accounts[0].account_id #=> String
499
+ # resp.unprocessed_accounts[0].result #=> String
500
+ #
501
+ # @see http://docs.aws.amazon.com/goto/WebAPI/guardduty-2017-11-28/DeleteInvitations AWS API Documentation
502
+ #
503
+ # @overload delete_invitations(params = {})
504
+ # @param [Hash] params ({})
505
+ def delete_invitations(params = {}, options = {})
506
+ req = build_request(:delete_invitations, params)
507
+ req.send_request(options)
508
+ end
509
+
510
+ # Deletes GuardDuty member accounts (to the current GuardDuty master
511
+ # account) specified by the account IDs.
512
+ #
513
+ # @option params [Array<String>] :account_ids
514
+ # A list of account IDs of the GuardDuty member accounts that you want
515
+ # to delete.
516
+ #
517
+ # @option params [required, String] :detector_id
518
+ #
519
+ # @return [Types::DeleteMembersResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
520
+ #
521
+ # * {Types::DeleteMembersResponse#unprocessed_accounts #unprocessed_accounts} => Array&lt;Types::UnprocessedAccount&gt;
522
+ #
523
+ # @example Request syntax with placeholder values
524
+ #
525
+ # resp = client.delete_members({
526
+ # account_ids: ["__string"],
527
+ # detector_id: "__string", # required
528
+ # })
529
+ #
530
+ # @example Response structure
531
+ #
532
+ # resp.unprocessed_accounts #=> Array
533
+ # resp.unprocessed_accounts[0].account_id #=> String
534
+ # resp.unprocessed_accounts[0].result #=> String
535
+ #
536
+ # @see http://docs.aws.amazon.com/goto/WebAPI/guardduty-2017-11-28/DeleteMembers AWS API Documentation
537
+ #
538
+ # @overload delete_members(params = {})
539
+ # @param [Hash] params ({})
540
+ def delete_members(params = {}, options = {})
541
+ req = build_request(:delete_members, params)
542
+ req.send_request(options)
543
+ end
544
+
545
+ # Deletes ThreatIntelSet specified by the ThreatIntelSet ID.
546
+ #
547
+ # @option params [required, String] :detector_id
548
+ #
549
+ # @option params [required, String] :threat_intel_set_id
550
+ #
551
+ # @return [Struct] Returns an empty {Seahorse::Client::Response response}.
552
+ #
553
+ # @example Request syntax with placeholder values
554
+ #
555
+ # resp = client.delete_threat_intel_set({
556
+ # detector_id: "__string", # required
557
+ # threat_intel_set_id: "__string", # required
558
+ # })
559
+ #
560
+ # @see http://docs.aws.amazon.com/goto/WebAPI/guardduty-2017-11-28/DeleteThreatIntelSet AWS API Documentation
561
+ #
562
+ # @overload delete_threat_intel_set(params = {})
563
+ # @param [Hash] params ({})
564
+ def delete_threat_intel_set(params = {}, options = {})
565
+ req = build_request(:delete_threat_intel_set, params)
566
+ req.send_request(options)
567
+ end
568
+
569
+ # Disassociates the current GuardDuty member account from its master
570
+ # account.
571
+ #
572
+ # @option params [required, String] :detector_id
573
+ #
574
+ # @return [Struct] Returns an empty {Seahorse::Client::Response response}.
575
+ #
576
+ # @example Request syntax with placeholder values
577
+ #
578
+ # resp = client.disassociate_from_master_account({
579
+ # detector_id: "__string", # required
580
+ # })
581
+ #
582
+ # @see http://docs.aws.amazon.com/goto/WebAPI/guardduty-2017-11-28/DisassociateFromMasterAccount AWS API Documentation
583
+ #
584
+ # @overload disassociate_from_master_account(params = {})
585
+ # @param [Hash] params ({})
586
+ def disassociate_from_master_account(params = {}, options = {})
587
+ req = build_request(:disassociate_from_master_account, params)
588
+ req.send_request(options)
589
+ end
590
+
591
+ # Disassociates GuardDuty member accounts (to the current GuardDuty
592
+ # master account) specified by the account IDs.
593
+ #
594
+ # @option params [Array<String>] :account_ids
595
+ # A list of account IDs of the GuardDuty member accounts that you want
596
+ # to disassociate from master.
597
+ #
598
+ # @option params [required, String] :detector_id
599
+ #
600
+ # @return [Types::DisassociateMembersResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
601
+ #
602
+ # * {Types::DisassociateMembersResponse#unprocessed_accounts #unprocessed_accounts} => Array&lt;Types::UnprocessedAccount&gt;
603
+ #
604
+ # @example Request syntax with placeholder values
605
+ #
606
+ # resp = client.disassociate_members({
607
+ # account_ids: ["__string"],
608
+ # detector_id: "__string", # required
609
+ # })
610
+ #
611
+ # @example Response structure
612
+ #
613
+ # resp.unprocessed_accounts #=> Array
614
+ # resp.unprocessed_accounts[0].account_id #=> String
615
+ # resp.unprocessed_accounts[0].result #=> String
616
+ #
617
+ # @see http://docs.aws.amazon.com/goto/WebAPI/guardduty-2017-11-28/DisassociateMembers AWS API Documentation
618
+ #
619
+ # @overload disassociate_members(params = {})
620
+ # @param [Hash] params ({})
621
+ def disassociate_members(params = {}, options = {})
622
+ req = build_request(:disassociate_members, params)
623
+ req.send_request(options)
624
+ end
625
+
626
+ # Retrieves an Amazon GuardDuty detector specified by the detectorId.
627
+ #
628
+ # @option params [required, String] :detector_id
629
+ #
630
+ # @return [Types::GetDetectorResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
631
+ #
632
+ # * {Types::GetDetectorResponse#created_at #created_at} => String
633
+ # * {Types::GetDetectorResponse#service_role #service_role} => String
634
+ # * {Types::GetDetectorResponse#status #status} => String
635
+ # * {Types::GetDetectorResponse#updated_at #updated_at} => String
636
+ #
637
+ # @example Request syntax with placeholder values
638
+ #
639
+ # resp = client.get_detector({
640
+ # detector_id: "__string", # required
641
+ # })
642
+ #
643
+ # @example Response structure
644
+ #
645
+ # resp.created_at #=> String
646
+ # resp.service_role #=> String
647
+ # resp.status #=> String, one of "ENABLED", "DISABLED"
648
+ # resp.updated_at #=> String
649
+ #
650
+ # @see http://docs.aws.amazon.com/goto/WebAPI/guardduty-2017-11-28/GetDetector AWS API Documentation
651
+ #
652
+ # @overload get_detector(params = {})
653
+ # @param [Hash] params ({})
654
+ def get_detector(params = {}, options = {})
655
+ req = build_request(:get_detector, params)
656
+ req.send_request(options)
657
+ end
658
+
659
+ # Describes Amazon GuardDuty findings specified by finding IDs.
660
+ #
661
+ # @option params [required, String] :detector_id
662
+ #
663
+ # @option params [Array<String>] :finding_ids
664
+ # IDs of the findings that you want to retrieve.
665
+ #
666
+ # @option params [Types::SortCriteria] :sort_criteria
667
+ # Represents the criteria used for sorting findings.
668
+ #
669
+ # @return [Types::GetFindingsResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
670
+ #
671
+ # * {Types::GetFindingsResponse#findings #findings} => Array&lt;Types::Finding&gt;
672
+ #
673
+ # @example Request syntax with placeholder values
674
+ #
675
+ # resp = client.get_findings({
676
+ # detector_id: "__string", # required
677
+ # finding_ids: ["FindingId"],
678
+ # sort_criteria: {
679
+ # attribute_name: "__string",
680
+ # order_by: "ASC", # accepts ASC, DESC
681
+ # },
682
+ # })
683
+ #
684
+ # @example Response structure
685
+ #
686
+ # resp.findings #=> Array
687
+ # resp.findings[0].account_id #=> String
688
+ # resp.findings[0].arn #=> String
689
+ # resp.findings[0].confidence #=> Float
690
+ # resp.findings[0].created_at #=> String
691
+ # resp.findings[0].description #=> String
692
+ # resp.findings[0].id #=> String
693
+ # resp.findings[0].partition #=> String
694
+ # resp.findings[0].region #=> String
695
+ # resp.findings[0].resource.instance_details.availability_zone #=> String
696
+ # resp.findings[0].resource.instance_details.iam_instance_profile.arn #=> String
697
+ # resp.findings[0].resource.instance_details.iam_instance_profile.id #=> String
698
+ # resp.findings[0].resource.instance_details.image_id #=> String
699
+ # resp.findings[0].resource.instance_details.instance_id #=> String
700
+ # resp.findings[0].resource.instance_details.instance_state #=> String
701
+ # resp.findings[0].resource.instance_details.instance_type #=> String
702
+ # resp.findings[0].resource.instance_details.launch_time #=> String
703
+ # resp.findings[0].resource.instance_details.network_interfaces #=> Array
704
+ # resp.findings[0].resource.instance_details.network_interfaces[0].ipv_6_addresses #=> Array
705
+ # resp.findings[0].resource.instance_details.network_interfaces[0].ipv_6_addresses[0] #=> String
706
+ # resp.findings[0].resource.instance_details.network_interfaces[0].private_dns_name #=> String
707
+ # resp.findings[0].resource.instance_details.network_interfaces[0].private_ip_address #=> String
708
+ # resp.findings[0].resource.instance_details.network_interfaces[0].private_ip_addresses #=> Array
709
+ # resp.findings[0].resource.instance_details.network_interfaces[0].private_ip_addresses[0].private_dns_name #=> String
710
+ # resp.findings[0].resource.instance_details.network_interfaces[0].private_ip_addresses[0].private_ip_address #=> String
711
+ # resp.findings[0].resource.instance_details.network_interfaces[0].public_dns_name #=> String
712
+ # resp.findings[0].resource.instance_details.network_interfaces[0].public_ip #=> String
713
+ # resp.findings[0].resource.instance_details.network_interfaces[0].security_groups #=> Array
714
+ # resp.findings[0].resource.instance_details.network_interfaces[0].security_groups[0].group_id #=> String
715
+ # resp.findings[0].resource.instance_details.network_interfaces[0].security_groups[0].group_name #=> String
716
+ # resp.findings[0].resource.instance_details.network_interfaces[0].subnet_id #=> String
717
+ # resp.findings[0].resource.instance_details.network_interfaces[0].vpc_id #=> String
718
+ # resp.findings[0].resource.instance_details.platform #=> String
719
+ # resp.findings[0].resource.instance_details.product_codes #=> Array
720
+ # resp.findings[0].resource.instance_details.product_codes[0].code #=> String
721
+ # resp.findings[0].resource.instance_details.product_codes[0].product_type #=> String
722
+ # resp.findings[0].resource.instance_details.tags #=> Array
723
+ # resp.findings[0].resource.instance_details.tags[0].key #=> String
724
+ # resp.findings[0].resource.instance_details.tags[0].value #=> String
725
+ # resp.findings[0].resource.resource_type #=> String
726
+ # resp.findings[0].schema_version #=> String
727
+ # resp.findings[0].service.action.action_type #=> String
728
+ # resp.findings[0].service.action.aws_api_call_action.api #=> String
729
+ # resp.findings[0].service.action.aws_api_call_action.caller_type #=> String
730
+ # resp.findings[0].service.action.aws_api_call_action.remote_ip_details.city.city_name #=> String
731
+ # resp.findings[0].service.action.aws_api_call_action.remote_ip_details.country.country_code #=> String
732
+ # resp.findings[0].service.action.aws_api_call_action.remote_ip_details.country.country_name #=> String
733
+ # resp.findings[0].service.action.aws_api_call_action.remote_ip_details.geo_location.lat #=> Float
734
+ # resp.findings[0].service.action.aws_api_call_action.remote_ip_details.geo_location.lon #=> Float
735
+ # resp.findings[0].service.action.aws_api_call_action.remote_ip_details.ip_address_v4 #=> String
736
+ # resp.findings[0].service.action.aws_api_call_action.remote_ip_details.organization.asn #=> String
737
+ # resp.findings[0].service.action.aws_api_call_action.remote_ip_details.organization.asn_org #=> String
738
+ # resp.findings[0].service.action.aws_api_call_action.remote_ip_details.organization.isp #=> String
739
+ # resp.findings[0].service.action.aws_api_call_action.remote_ip_details.organization.org #=> String
740
+ # resp.findings[0].service.action.aws_api_call_action.service_name #=> String
741
+ # resp.findings[0].service.action.dns_request_action.domain #=> String
742
+ # resp.findings[0].service.action.network_connection_action.blocked #=> Boolean
743
+ # resp.findings[0].service.action.network_connection_action.connection_direction #=> String
744
+ # resp.findings[0].service.action.network_connection_action.local_port_details.port #=> Integer
745
+ # resp.findings[0].service.action.network_connection_action.local_port_details.port_name #=> String
746
+ # resp.findings[0].service.action.network_connection_action.protocol #=> String
747
+ # resp.findings[0].service.action.network_connection_action.remote_ip_details.city.city_name #=> String
748
+ # resp.findings[0].service.action.network_connection_action.remote_ip_details.country.country_code #=> String
749
+ # resp.findings[0].service.action.network_connection_action.remote_ip_details.country.country_name #=> String
750
+ # resp.findings[0].service.action.network_connection_action.remote_ip_details.geo_location.lat #=> Float
751
+ # resp.findings[0].service.action.network_connection_action.remote_ip_details.geo_location.lon #=> Float
752
+ # resp.findings[0].service.action.network_connection_action.remote_ip_details.ip_address_v4 #=> String
753
+ # resp.findings[0].service.action.network_connection_action.remote_ip_details.organization.asn #=> String
754
+ # resp.findings[0].service.action.network_connection_action.remote_ip_details.organization.asn_org #=> String
755
+ # resp.findings[0].service.action.network_connection_action.remote_ip_details.organization.isp #=> String
756
+ # resp.findings[0].service.action.network_connection_action.remote_ip_details.organization.org #=> String
757
+ # resp.findings[0].service.action.network_connection_action.remote_port_details.port #=> Integer
758
+ # resp.findings[0].service.action.network_connection_action.remote_port_details.port_name #=> String
759
+ # resp.findings[0].service.archived #=> Boolean
760
+ # resp.findings[0].service.count #=> Integer
761
+ # resp.findings[0].service.detector_id #=> String
762
+ # resp.findings[0].service.event_first_seen #=> String
763
+ # resp.findings[0].service.event_last_seen #=> String
764
+ # resp.findings[0].service.resource_role #=> String
765
+ # resp.findings[0].service.service_name #=> String
766
+ # resp.findings[0].service.user_feedback #=> String
767
+ # resp.findings[0].severity #=> Float
768
+ # resp.findings[0].title #=> String
769
+ # resp.findings[0].type #=> String
770
+ # resp.findings[0].updated_at #=> String
771
+ #
772
+ # @see http://docs.aws.amazon.com/goto/WebAPI/guardduty-2017-11-28/GetFindings AWS API Documentation
773
+ #
774
+ # @overload get_findings(params = {})
775
+ # @param [Hash] params ({})
776
+ def get_findings(params = {}, options = {})
777
+ req = build_request(:get_findings, params)
778
+ req.send_request(options)
779
+ end
780
+
781
+ # Lists Amazon GuardDuty findings' statistics for the specified
782
+ # detector ID.
783
+ #
784
+ # @option params [required, String] :detector_id
785
+ #
786
+ # @option params [Types::FindingCriteria] :finding_criteria
787
+ # Represents the criteria used for querying findings.
788
+ #
789
+ # @option params [Array<String>] :finding_statistic_types
790
+ # Types of finding statistics to retrieve.
791
+ #
792
+ # @return [Types::GetFindingsStatisticsResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
793
+ #
794
+ # * {Types::GetFindingsStatisticsResponse#finding_statistics #finding_statistics} => Types::FindingStatistics
795
+ #
796
+ # @example Request syntax with placeholder values
797
+ #
798
+ # resp = client.get_findings_statistics({
799
+ # detector_id: "__string", # required
800
+ # finding_criteria: {
801
+ # criterion: {
802
+ # "__string" => {
803
+ # eq: ["__string"],
804
+ # gt: 1,
805
+ # gte: 1,
806
+ # lt: 1,
807
+ # lte: 1,
808
+ # neq: ["__string"],
809
+ # },
810
+ # },
811
+ # },
812
+ # finding_statistic_types: ["COUNT_BY_SEVERITY"], # accepts COUNT_BY_SEVERITY
813
+ # })
814
+ #
815
+ # @example Response structure
816
+ #
817
+ # resp.finding_statistics.count_by_severity #=> Hash
818
+ # resp.finding_statistics.count_by_severity["__string"] #=> Integer
819
+ #
820
+ # @see http://docs.aws.amazon.com/goto/WebAPI/guardduty-2017-11-28/GetFindingsStatistics AWS API Documentation
821
+ #
822
+ # @overload get_findings_statistics(params = {})
823
+ # @param [Hash] params ({})
824
+ def get_findings_statistics(params = {}, options = {})
825
+ req = build_request(:get_findings_statistics, params)
826
+ req.send_request(options)
827
+ end
828
+
829
+ # Retrieves the IPSet specified by the IPSet ID.
830
+ #
831
+ # @option params [required, String] :detector_id
832
+ #
833
+ # @option params [required, String] :ip_set_id
834
+ #
835
+ # @return [Types::GetIPSetResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
836
+ #
837
+ # * {Types::GetIPSetResponse#format #format} => String
838
+ # * {Types::GetIPSetResponse#location #location} => String
839
+ # * {Types::GetIPSetResponse#name #name} => String
840
+ # * {Types::GetIPSetResponse#status #status} => String
841
+ #
842
+ # @example Request syntax with placeholder values
843
+ #
844
+ # resp = client.get_ip_set({
845
+ # detector_id: "__string", # required
846
+ # ip_set_id: "__string", # required
847
+ # })
848
+ #
849
+ # @example Response structure
850
+ #
851
+ # resp.format #=> String, one of "TXT", "STIX", "OTX_CSV", "ALIEN_VAULT", "PROOF_POINT", "FIRE_EYE"
852
+ # resp.location #=> String
853
+ # resp.name #=> String
854
+ # resp.status #=> String, one of "INACTIVE", "ACTIVATING", "ACTIVE", "DEACTIVATING", "ERROR", "DELETE_PENDING", "DELETED"
855
+ #
856
+ # @see http://docs.aws.amazon.com/goto/WebAPI/guardduty-2017-11-28/GetIPSet AWS API Documentation
857
+ #
858
+ # @overload get_ip_set(params = {})
859
+ # @param [Hash] params ({})
860
+ def get_ip_set(params = {}, options = {})
861
+ req = build_request(:get_ip_set, params)
862
+ req.send_request(options)
863
+ end
864
+
865
+ # Returns the count of all GuardDuty membership invitations that were
866
+ # sent to the current member account except the currently accepted
867
+ # invitation.
868
+ #
869
+ # @return [Types::GetInvitationsCountResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
870
+ #
871
+ # * {Types::GetInvitationsCountResponse#invitations_count #invitations_count} => Integer
872
+ #
873
+ # @example Response structure
874
+ #
875
+ # resp.invitations_count #=> Integer
876
+ #
877
+ # @see http://docs.aws.amazon.com/goto/WebAPI/guardduty-2017-11-28/GetInvitationsCount AWS API Documentation
878
+ #
879
+ # @overload get_invitations_count(params = {})
880
+ # @param [Hash] params ({})
881
+ def get_invitations_count(params = {}, options = {})
882
+ req = build_request(:get_invitations_count, params)
883
+ req.send_request(options)
884
+ end
885
+
886
+ # Provides the details for the GuardDuty master account to the current
887
+ # GuardDuty member account.
888
+ #
889
+ # @option params [required, String] :detector_id
890
+ #
891
+ # @return [Types::GetMasterAccountResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
892
+ #
893
+ # * {Types::GetMasterAccountResponse#master #master} => Types::Master
894
+ #
895
+ # @example Request syntax with placeholder values
896
+ #
897
+ # resp = client.get_master_account({
898
+ # detector_id: "__string", # required
899
+ # })
900
+ #
901
+ # @example Response structure
902
+ #
903
+ # resp.master.account_id #=> String
904
+ # resp.master.invitation_id #=> String
905
+ # resp.master.invited_at #=> String
906
+ # resp.master.relationship_status #=> String
907
+ #
908
+ # @see http://docs.aws.amazon.com/goto/WebAPI/guardduty-2017-11-28/GetMasterAccount AWS API Documentation
909
+ #
910
+ # @overload get_master_account(params = {})
911
+ # @param [Hash] params ({})
912
+ def get_master_account(params = {}, options = {})
913
+ req = build_request(:get_master_account, params)
914
+ req.send_request(options)
915
+ end
916
+
917
+ # Retrieves GuardDuty member accounts (to the current GuardDuty master
918
+ # account) specified by the account IDs.
919
+ #
920
+ # @option params [Array<String>] :account_ids
921
+ # A list of account IDs of the GuardDuty member accounts that you want
922
+ # to describe.
923
+ #
924
+ # @option params [required, String] :detector_id
925
+ #
926
+ # @return [Types::GetMembersResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
927
+ #
928
+ # * {Types::GetMembersResponse#members #members} => Array&lt;Types::Member&gt;
929
+ # * {Types::GetMembersResponse#unprocessed_accounts #unprocessed_accounts} => Array&lt;Types::UnprocessedAccount&gt;
930
+ #
931
+ # @example Request syntax with placeholder values
932
+ #
933
+ # resp = client.get_members({
934
+ # account_ids: ["__string"],
935
+ # detector_id: "__string", # required
936
+ # })
937
+ #
938
+ # @example Response structure
939
+ #
940
+ # resp.members #=> Array
941
+ # resp.members[0].account_id #=> String
942
+ # resp.members[0].detector_id #=> String
943
+ # resp.members[0].email #=> String
944
+ # resp.members[0].invited_at #=> String
945
+ # resp.members[0].master_id #=> String
946
+ # resp.members[0].relationship_status #=> String
947
+ # resp.members[0].updated_at #=> String
948
+ # resp.unprocessed_accounts #=> Array
949
+ # resp.unprocessed_accounts[0].account_id #=> String
950
+ # resp.unprocessed_accounts[0].result #=> String
951
+ #
952
+ # @see http://docs.aws.amazon.com/goto/WebAPI/guardduty-2017-11-28/GetMembers AWS API Documentation
953
+ #
954
+ # @overload get_members(params = {})
955
+ # @param [Hash] params ({})
956
+ def get_members(params = {}, options = {})
957
+ req = build_request(:get_members, params)
958
+ req.send_request(options)
959
+ end
960
+
961
+ # Retrieves the ThreatIntelSet that is specified by the ThreatIntelSet
962
+ # ID.
963
+ #
964
+ # @option params [required, String] :detector_id
965
+ #
966
+ # @option params [required, String] :threat_intel_set_id
967
+ #
968
+ # @return [Types::GetThreatIntelSetResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
969
+ #
970
+ # * {Types::GetThreatIntelSetResponse#format #format} => String
971
+ # * {Types::GetThreatIntelSetResponse#location #location} => String
972
+ # * {Types::GetThreatIntelSetResponse#name #name} => String
973
+ # * {Types::GetThreatIntelSetResponse#status #status} => String
974
+ #
975
+ # @example Request syntax with placeholder values
976
+ #
977
+ # resp = client.get_threat_intel_set({
978
+ # detector_id: "__string", # required
979
+ # threat_intel_set_id: "__string", # required
980
+ # })
981
+ #
982
+ # @example Response structure
983
+ #
984
+ # resp.format #=> String, one of "TXT", "STIX", "OTX_CSV", "ALIEN_VAULT", "PROOF_POINT", "FIRE_EYE"
985
+ # resp.location #=> String
986
+ # resp.name #=> String
987
+ # resp.status #=> String, one of "INACTIVE", "ACTIVATING", "ACTIVE", "DEACTIVATING", "ERROR", "DELETE_PENDING", "DELETED"
988
+ #
989
+ # @see http://docs.aws.amazon.com/goto/WebAPI/guardduty-2017-11-28/GetThreatIntelSet AWS API Documentation
990
+ #
991
+ # @overload get_threat_intel_set(params = {})
992
+ # @param [Hash] params ({})
993
+ def get_threat_intel_set(params = {}, options = {})
994
+ req = build_request(:get_threat_intel_set, params)
995
+ req.send_request(options)
996
+ end
997
+
998
+ # Invites other AWS accounts (created as members of the current AWS
999
+ # account by CreateMembers) to enable GuardDuty and allow the current
1000
+ # AWS account to view and manage these accounts' GuardDuty findings on
1001
+ # their behalf as the master account.
1002
+ #
1003
+ # @option params [Array<String>] :account_ids
1004
+ # A list of account IDs of the accounts that you want to invite to
1005
+ # GuardDuty as members.
1006
+ #
1007
+ # @option params [required, String] :detector_id
1008
+ #
1009
+ # @option params [String] :message
1010
+ # The invitation message that you want to send to the accounts that
1011
+ # you're inviting to GuardDuty as members.
1012
+ #
1013
+ # @return [Types::InviteMembersResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
1014
+ #
1015
+ # * {Types::InviteMembersResponse#unprocessed_accounts #unprocessed_accounts} => Array&lt;Types::UnprocessedAccount&gt;
1016
+ #
1017
+ # @example Request syntax with placeholder values
1018
+ #
1019
+ # resp = client.invite_members({
1020
+ # account_ids: ["__string"],
1021
+ # detector_id: "__string", # required
1022
+ # message: "Message",
1023
+ # })
1024
+ #
1025
+ # @example Response structure
1026
+ #
1027
+ # resp.unprocessed_accounts #=> Array
1028
+ # resp.unprocessed_accounts[0].account_id #=> String
1029
+ # resp.unprocessed_accounts[0].result #=> String
1030
+ #
1031
+ # @see http://docs.aws.amazon.com/goto/WebAPI/guardduty-2017-11-28/InviteMembers AWS API Documentation
1032
+ #
1033
+ # @overload invite_members(params = {})
1034
+ # @param [Hash] params ({})
1035
+ def invite_members(params = {}, options = {})
1036
+ req = build_request(:invite_members, params)
1037
+ req.send_request(options)
1038
+ end
1039
+
1040
+ # Lists detectorIds of all the existing Amazon GuardDuty detector
1041
+ # resources.
1042
+ #
1043
+ # @option params [Integer] :max_results
1044
+ # You can use this parameter to indicate the maximum number of items
1045
+ # that you want in the response.
1046
+ #
1047
+ # @option params [String] :next_token
1048
+ #
1049
+ # @return [Types::ListDetectorsResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
1050
+ #
1051
+ # * {Types::ListDetectorsResponse#detector_ids #detector_ids} => Array&lt;String&gt;
1052
+ # * {Types::ListDetectorsResponse#next_token #next_token} => String
1053
+ #
1054
+ # @example Request syntax with placeholder values
1055
+ #
1056
+ # resp = client.list_detectors({
1057
+ # max_results: 1,
1058
+ # next_token: "__string",
1059
+ # })
1060
+ #
1061
+ # @example Response structure
1062
+ #
1063
+ # resp.detector_ids #=> Array
1064
+ # resp.detector_ids[0] #=> String
1065
+ # resp.next_token #=> String
1066
+ #
1067
+ # @see http://docs.aws.amazon.com/goto/WebAPI/guardduty-2017-11-28/ListDetectors AWS API Documentation
1068
+ #
1069
+ # @overload list_detectors(params = {})
1070
+ # @param [Hash] params ({})
1071
+ def list_detectors(params = {}, options = {})
1072
+ req = build_request(:list_detectors, params)
1073
+ req.send_request(options)
1074
+ end
1075
+
1076
+ # Lists Amazon GuardDuty findings for the specified detector ID.
1077
+ #
1078
+ # @option params [required, String] :detector_id
1079
+ #
1080
+ # @option params [Types::FindingCriteria] :finding_criteria
1081
+ # Represents the criteria used for querying findings.
1082
+ #
1083
+ # @option params [Integer] :max_results
1084
+ # You can use this parameter to indicate the maximum number of items you
1085
+ # want in the response. The default value is 50. The maximum value is
1086
+ # 50.
1087
+ #
1088
+ # @option params [String] :next_token
1089
+ # You can use this parameter when paginating results. Set the value of
1090
+ # this parameter to null on your first call to the ListFindings action.
1091
+ # For subsequent calls to the action fill nextToken in the request with
1092
+ # the value of nextToken from the previous response to continue listing
1093
+ # data.
1094
+ #
1095
+ # @option params [Types::SortCriteria] :sort_criteria
1096
+ # Represents the criteria used for sorting findings.
1097
+ #
1098
+ # @return [Types::ListFindingsResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
1099
+ #
1100
+ # * {Types::ListFindingsResponse#finding_ids #finding_ids} => Array&lt;String&gt;
1101
+ # * {Types::ListFindingsResponse#next_token #next_token} => String
1102
+ #
1103
+ # @example Request syntax with placeholder values
1104
+ #
1105
+ # resp = client.list_findings({
1106
+ # detector_id: "__string", # required
1107
+ # finding_criteria: {
1108
+ # criterion: {
1109
+ # "__string" => {
1110
+ # eq: ["__string"],
1111
+ # gt: 1,
1112
+ # gte: 1,
1113
+ # lt: 1,
1114
+ # lte: 1,
1115
+ # neq: ["__string"],
1116
+ # },
1117
+ # },
1118
+ # },
1119
+ # max_results: 1,
1120
+ # next_token: "NextToken",
1121
+ # sort_criteria: {
1122
+ # attribute_name: "__string",
1123
+ # order_by: "ASC", # accepts ASC, DESC
1124
+ # },
1125
+ # })
1126
+ #
1127
+ # @example Response structure
1128
+ #
1129
+ # resp.finding_ids #=> Array
1130
+ # resp.finding_ids[0] #=> String
1131
+ # resp.next_token #=> String
1132
+ #
1133
+ # @see http://docs.aws.amazon.com/goto/WebAPI/guardduty-2017-11-28/ListFindings AWS API Documentation
1134
+ #
1135
+ # @overload list_findings(params = {})
1136
+ # @param [Hash] params ({})
1137
+ def list_findings(params = {}, options = {})
1138
+ req = build_request(:list_findings, params)
1139
+ req.send_request(options)
1140
+ end
1141
+
1142
+ # Lists the IPSets of the GuardDuty service specified by the detector
1143
+ # ID.
1144
+ #
1145
+ # @option params [required, String] :detector_id
1146
+ #
1147
+ # @option params [Integer] :max_results
1148
+ # You can use this parameter to indicate the maximum number of items
1149
+ # that you want in the response.
1150
+ #
1151
+ # @option params [String] :next_token
1152
+ #
1153
+ # @return [Types::ListIPSetsResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
1154
+ #
1155
+ # * {Types::ListIPSetsResponse#ip_set_ids #ip_set_ids} => Array&lt;String&gt;
1156
+ # * {Types::ListIPSetsResponse#next_token #next_token} => String
1157
+ #
1158
+ # @example Request syntax with placeholder values
1159
+ #
1160
+ # resp = client.list_ip_sets({
1161
+ # detector_id: "__string", # required
1162
+ # max_results: 1,
1163
+ # next_token: "__string",
1164
+ # })
1165
+ #
1166
+ # @example Response structure
1167
+ #
1168
+ # resp.ip_set_ids #=> Array
1169
+ # resp.ip_set_ids[0] #=> String
1170
+ # resp.next_token #=> String
1171
+ #
1172
+ # @see http://docs.aws.amazon.com/goto/WebAPI/guardduty-2017-11-28/ListIPSets AWS API Documentation
1173
+ #
1174
+ # @overload list_ip_sets(params = {})
1175
+ # @param [Hash] params ({})
1176
+ def list_ip_sets(params = {}, options = {})
1177
+ req = build_request(:list_ip_sets, params)
1178
+ req.send_request(options)
1179
+ end
1180
+
1181
+ # Lists all GuardDuty membership invitations that were sent to the
1182
+ # current AWS account.
1183
+ #
1184
+ # @option params [Integer] :max_results
1185
+ # You can use this parameter to indicate the maximum number of items
1186
+ # that you want in the response.
1187
+ #
1188
+ # @option params [String] :next_token
1189
+ #
1190
+ # @return [Types::ListInvitationsResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
1191
+ #
1192
+ # * {Types::ListInvitationsResponse#invitations #invitations} => Array&lt;Types::Invitation&gt;
1193
+ # * {Types::ListInvitationsResponse#next_token #next_token} => String
1194
+ #
1195
+ # @example Request syntax with placeholder values
1196
+ #
1197
+ # resp = client.list_invitations({
1198
+ # max_results: 1,
1199
+ # next_token: "__string",
1200
+ # })
1201
+ #
1202
+ # @example Response structure
1203
+ #
1204
+ # resp.invitations #=> Array
1205
+ # resp.invitations[0].account_id #=> String
1206
+ # resp.invitations[0].invitation_id #=> String
1207
+ # resp.invitations[0].invited_at #=> String
1208
+ # resp.invitations[0].relationship_status #=> String
1209
+ # resp.next_token #=> String
1210
+ #
1211
+ # @see http://docs.aws.amazon.com/goto/WebAPI/guardduty-2017-11-28/ListInvitations AWS API Documentation
1212
+ #
1213
+ # @overload list_invitations(params = {})
1214
+ # @param [Hash] params ({})
1215
+ def list_invitations(params = {}, options = {})
1216
+ req = build_request(:list_invitations, params)
1217
+ req.send_request(options)
1218
+ end
1219
+
1220
+ # Lists details about all member accounts for the current GuardDuty
1221
+ # master account.
1222
+ #
1223
+ # @option params [required, String] :detector_id
1224
+ #
1225
+ # @option params [Integer] :max_results
1226
+ # You can use this parameter to indicate the maximum number of items
1227
+ # that you want in the response.
1228
+ #
1229
+ # @option params [String] :next_token
1230
+ #
1231
+ # @option params [String] :only_associated
1232
+ #
1233
+ # @return [Types::ListMembersResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
1234
+ #
1235
+ # * {Types::ListMembersResponse#members #members} => Array&lt;Types::Member&gt;
1236
+ # * {Types::ListMembersResponse#next_token #next_token} => String
1237
+ #
1238
+ # @example Request syntax with placeholder values
1239
+ #
1240
+ # resp = client.list_members({
1241
+ # detector_id: "__string", # required
1242
+ # max_results: 1,
1243
+ # next_token: "__string",
1244
+ # only_associated: "__string",
1245
+ # })
1246
+ #
1247
+ # @example Response structure
1248
+ #
1249
+ # resp.members #=> Array
1250
+ # resp.members[0].account_id #=> String
1251
+ # resp.members[0].detector_id #=> String
1252
+ # resp.members[0].email #=> String
1253
+ # resp.members[0].invited_at #=> String
1254
+ # resp.members[0].master_id #=> String
1255
+ # resp.members[0].relationship_status #=> String
1256
+ # resp.members[0].updated_at #=> String
1257
+ # resp.next_token #=> String
1258
+ #
1259
+ # @see http://docs.aws.amazon.com/goto/WebAPI/guardduty-2017-11-28/ListMembers AWS API Documentation
1260
+ #
1261
+ # @overload list_members(params = {})
1262
+ # @param [Hash] params ({})
1263
+ def list_members(params = {}, options = {})
1264
+ req = build_request(:list_members, params)
1265
+ req.send_request(options)
1266
+ end
1267
+
1268
+ # Lists the ThreatIntelSets of the GuardDuty service specified by the
1269
+ # detector ID.
1270
+ #
1271
+ # @option params [required, String] :detector_id
1272
+ #
1273
+ # @option params [Integer] :max_results
1274
+ # You can use this parameter to indicate the maximum number of items
1275
+ # that you want in the response.
1276
+ #
1277
+ # @option params [String] :next_token
1278
+ #
1279
+ # @return [Types::ListThreatIntelSetsResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
1280
+ #
1281
+ # * {Types::ListThreatIntelSetsResponse#next_token #next_token} => String
1282
+ # * {Types::ListThreatIntelSetsResponse#threat_intel_set_ids #threat_intel_set_ids} => Array&lt;String&gt;
1283
+ #
1284
+ # @example Request syntax with placeholder values
1285
+ #
1286
+ # resp = client.list_threat_intel_sets({
1287
+ # detector_id: "__string", # required
1288
+ # max_results: 1,
1289
+ # next_token: "__string",
1290
+ # })
1291
+ #
1292
+ # @example Response structure
1293
+ #
1294
+ # resp.next_token #=> String
1295
+ # resp.threat_intel_set_ids #=> Array
1296
+ # resp.threat_intel_set_ids[0] #=> String
1297
+ #
1298
+ # @see http://docs.aws.amazon.com/goto/WebAPI/guardduty-2017-11-28/ListThreatIntelSets AWS API Documentation
1299
+ #
1300
+ # @overload list_threat_intel_sets(params = {})
1301
+ # @param [Hash] params ({})
1302
+ def list_threat_intel_sets(params = {}, options = {})
1303
+ req = build_request(:list_threat_intel_sets, params)
1304
+ req.send_request(options)
1305
+ end
1306
+
1307
+ # Re-enables GuardDuty to monitor findings of the member accounts
1308
+ # specified by the account IDs. A master GuardDuty account can run this
1309
+ # command after disabling GuardDuty from monitoring these members'
1310
+ # findings by running StopMonitoringMembers.
1311
+ #
1312
+ # @option params [Array<String>] :account_ids
1313
+ # A list of account IDs of the GuardDuty member accounts whose findings
1314
+ # you want the master account to monitor.
1315
+ #
1316
+ # @option params [required, String] :detector_id
1317
+ #
1318
+ # @return [Types::StartMonitoringMembersResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
1319
+ #
1320
+ # * {Types::StartMonitoringMembersResponse#unprocessed_accounts #unprocessed_accounts} => Array&lt;Types::UnprocessedAccount&gt;
1321
+ #
1322
+ # @example Request syntax with placeholder values
1323
+ #
1324
+ # resp = client.start_monitoring_members({
1325
+ # account_ids: ["__string"],
1326
+ # detector_id: "__string", # required
1327
+ # })
1328
+ #
1329
+ # @example Response structure
1330
+ #
1331
+ # resp.unprocessed_accounts #=> Array
1332
+ # resp.unprocessed_accounts[0].account_id #=> String
1333
+ # resp.unprocessed_accounts[0].result #=> String
1334
+ #
1335
+ # @see http://docs.aws.amazon.com/goto/WebAPI/guardduty-2017-11-28/StartMonitoringMembers AWS API Documentation
1336
+ #
1337
+ # @overload start_monitoring_members(params = {})
1338
+ # @param [Hash] params ({})
1339
+ def start_monitoring_members(params = {}, options = {})
1340
+ req = build_request(:start_monitoring_members, params)
1341
+ req.send_request(options)
1342
+ end
1343
+
1344
+ # Disables GuardDuty from monitoring findings of the member accounts
1345
+ # specified by the account IDs. After running this command, a master
1346
+ # GuardDuty account can run StartMonitoringMembers to re-enable
1347
+ # GuardDuty to monitor these members' findings.
1348
+ #
1349
+ # @option params [Array<String>] :account_ids
1350
+ # A list of account IDs of the GuardDuty member accounts whose findings
1351
+ # you want the master account to stop monitoring.
1352
+ #
1353
+ # @option params [required, String] :detector_id
1354
+ #
1355
+ # @return [Types::StopMonitoringMembersResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
1356
+ #
1357
+ # * {Types::StopMonitoringMembersResponse#unprocessed_accounts #unprocessed_accounts} => Array&lt;Types::UnprocessedAccount&gt;
1358
+ #
1359
+ # @example Request syntax with placeholder values
1360
+ #
1361
+ # resp = client.stop_monitoring_members({
1362
+ # account_ids: ["__string"],
1363
+ # detector_id: "__string", # required
1364
+ # })
1365
+ #
1366
+ # @example Response structure
1367
+ #
1368
+ # resp.unprocessed_accounts #=> Array
1369
+ # resp.unprocessed_accounts[0].account_id #=> String
1370
+ # resp.unprocessed_accounts[0].result #=> String
1371
+ #
1372
+ # @see http://docs.aws.amazon.com/goto/WebAPI/guardduty-2017-11-28/StopMonitoringMembers AWS API Documentation
1373
+ #
1374
+ # @overload stop_monitoring_members(params = {})
1375
+ # @param [Hash] params ({})
1376
+ def stop_monitoring_members(params = {}, options = {})
1377
+ req = build_request(:stop_monitoring_members, params)
1378
+ req.send_request(options)
1379
+ end
1380
+
1381
+ # Unarchives Amazon GuardDuty findings specified by the list of finding
1382
+ # IDs.
1383
+ #
1384
+ # @option params [required, String] :detector_id
1385
+ #
1386
+ # @option params [Array<String>] :finding_ids
1387
+ # IDs of the findings that you want to unarchive.
1388
+ #
1389
+ # @return [Struct] Returns an empty {Seahorse::Client::Response response}.
1390
+ #
1391
+ # @example Request syntax with placeholder values
1392
+ #
1393
+ # resp = client.unarchive_findings({
1394
+ # detector_id: "__string", # required
1395
+ # finding_ids: ["FindingId"],
1396
+ # })
1397
+ #
1398
+ # @see http://docs.aws.amazon.com/goto/WebAPI/guardduty-2017-11-28/UnarchiveFindings AWS API Documentation
1399
+ #
1400
+ # @overload unarchive_findings(params = {})
1401
+ # @param [Hash] params ({})
1402
+ def unarchive_findings(params = {}, options = {})
1403
+ req = build_request(:unarchive_findings, params)
1404
+ req.send_request(options)
1405
+ end
1406
+
1407
+ # Updates an Amazon GuardDuty detector specified by the detectorId.
1408
+ #
1409
+ # @option params [required, String] :detector_id
1410
+ #
1411
+ # @option params [Boolean] :enable
1412
+ # Updated boolean value for the detector that specifies whether the
1413
+ # detector is enabled.
1414
+ #
1415
+ # @return [Struct] Returns an empty {Seahorse::Client::Response response}.
1416
+ #
1417
+ # @example Request syntax with placeholder values
1418
+ #
1419
+ # resp = client.update_detector({
1420
+ # detector_id: "__string", # required
1421
+ # enable: false,
1422
+ # })
1423
+ #
1424
+ # @see http://docs.aws.amazon.com/goto/WebAPI/guardduty-2017-11-28/UpdateDetector AWS API Documentation
1425
+ #
1426
+ # @overload update_detector(params = {})
1427
+ # @param [Hash] params ({})
1428
+ def update_detector(params = {}, options = {})
1429
+ req = build_request(:update_detector, params)
1430
+ req.send_request(options)
1431
+ end
1432
+
1433
+ # Marks specified Amazon GuardDuty findings as useful or not useful.
1434
+ #
1435
+ # @option params [String] :comments
1436
+ # Additional feedback about the GuardDuty findings.
1437
+ #
1438
+ # @option params [required, String] :detector_id
1439
+ #
1440
+ # @option params [String] :feedback
1441
+ # Valid values: USEFUL \| NOT\_USEFUL
1442
+ #
1443
+ # @option params [Array<String>] :finding_ids
1444
+ # IDs of the findings that you want to mark as useful or not useful.
1445
+ #
1446
+ # @return [Struct] Returns an empty {Seahorse::Client::Response response}.
1447
+ #
1448
+ # @example Request syntax with placeholder values
1449
+ #
1450
+ # resp = client.update_findings_feedback({
1451
+ # comments: "Comments",
1452
+ # detector_id: "__string", # required
1453
+ # feedback: "USEFUL", # accepts USEFUL, NOT_USEFUL
1454
+ # finding_ids: ["FindingId"],
1455
+ # })
1456
+ #
1457
+ # @see http://docs.aws.amazon.com/goto/WebAPI/guardduty-2017-11-28/UpdateFindingsFeedback AWS API Documentation
1458
+ #
1459
+ # @overload update_findings_feedback(params = {})
1460
+ # @param [Hash] params ({})
1461
+ def update_findings_feedback(params = {}, options = {})
1462
+ req = build_request(:update_findings_feedback, params)
1463
+ req.send_request(options)
1464
+ end
1465
+
1466
+ # Updates the IPSet specified by the IPSet ID.
1467
+ #
1468
+ # @option params [Boolean] :activate
1469
+ # The updated boolean value that specifies whether the IPSet is active
1470
+ # or not.
1471
+ #
1472
+ # @option params [required, String] :detector_id
1473
+ #
1474
+ # @option params [required, String] :ip_set_id
1475
+ #
1476
+ # @option params [String] :location
1477
+ # The updated URI of the file that contains the IPSet. For example
1478
+ # (https://s3.us-west-2.amazonaws.com/my-bucket/my-object-key).
1479
+ #
1480
+ # @option params [String] :name
1481
+ # The unique ID that specifies the IPSet that you want to update.
1482
+ #
1483
+ # @return [Struct] Returns an empty {Seahorse::Client::Response response}.
1484
+ #
1485
+ # @example Request syntax with placeholder values
1486
+ #
1487
+ # resp = client.update_ip_set({
1488
+ # activate: false,
1489
+ # detector_id: "__string", # required
1490
+ # ip_set_id: "__string", # required
1491
+ # location: "Location",
1492
+ # name: "Name",
1493
+ # })
1494
+ #
1495
+ # @see http://docs.aws.amazon.com/goto/WebAPI/guardduty-2017-11-28/UpdateIPSet AWS API Documentation
1496
+ #
1497
+ # @overload update_ip_set(params = {})
1498
+ # @param [Hash] params ({})
1499
+ def update_ip_set(params = {}, options = {})
1500
+ req = build_request(:update_ip_set, params)
1501
+ req.send_request(options)
1502
+ end
1503
+
1504
+ # Updates the ThreatIntelSet specified by ThreatIntelSet ID.
1505
+ #
1506
+ # @option params [Boolean] :activate
1507
+ # The updated boolean value that specifies whether the ThreateIntelSet
1508
+ # is active or not.
1509
+ #
1510
+ # @option params [required, String] :detector_id
1511
+ #
1512
+ # @option params [String] :location
1513
+ # The updated URI of the file that contains the ThreateIntelSet. For
1514
+ # example (https://s3.us-west-2.amazonaws.com/my-bucket/my-object-key)
1515
+ #
1516
+ # @option params [String] :name
1517
+ # The unique ID that specifies the ThreatIntelSet that you want to
1518
+ # update.
1519
+ #
1520
+ # @option params [required, String] :threat_intel_set_id
1521
+ #
1522
+ # @return [Struct] Returns an empty {Seahorse::Client::Response response}.
1523
+ #
1524
+ # @example Request syntax with placeholder values
1525
+ #
1526
+ # resp = client.update_threat_intel_set({
1527
+ # activate: false,
1528
+ # detector_id: "__string", # required
1529
+ # location: "Location",
1530
+ # name: "Name",
1531
+ # threat_intel_set_id: "__string", # required
1532
+ # })
1533
+ #
1534
+ # @see http://docs.aws.amazon.com/goto/WebAPI/guardduty-2017-11-28/UpdateThreatIntelSet AWS API Documentation
1535
+ #
1536
+ # @overload update_threat_intel_set(params = {})
1537
+ # @param [Hash] params ({})
1538
+ def update_threat_intel_set(params = {}, options = {})
1539
+ req = build_request(:update_threat_intel_set, params)
1540
+ req.send_request(options)
1541
+ end
1542
+
1543
+ # @!endgroup
1544
+
1545
+ # @param params ({})
1546
+ # @api private
1547
+ def build_request(operation_name, params = {})
1548
+ handlers = @handlers.for(operation_name)
1549
+ context = Seahorse::Client::RequestContext.new(
1550
+ operation_name: operation_name,
1551
+ operation: config.api.operation(operation_name),
1552
+ client: self,
1553
+ params: params,
1554
+ config: config)
1555
+ context[:gem_name] = 'aws-sdk-guardduty'
1556
+ context[:gem_version] = '1.0.0'
1557
+ Seahorse::Client::Request.new(handlers, context)
1558
+ end
1559
+
1560
+ # @api private
1561
+ # @deprecated
1562
+ def waiter_names
1563
+ []
1564
+ end
1565
+
1566
+ class << self
1567
+
1568
+ # @api private
1569
+ attr_reader :identifier
1570
+
1571
+ # @api private
1572
+ def errors_module
1573
+ Errors
1574
+ end
1575
+
1576
+ end
1577
+ end
1578
+ end