aws-sdk-guardduty 1.154.0 → 1.155.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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 52bcf647e9275664f8705f5cf312175aea0f4de960cecb5e7be5e88cefb993f1
4
- data.tar.gz: b707f5264aeec56481c7aefd48e6846f9847014a7cad5d9a05ba297ca9960f6b
3
+ metadata.gz: be0ea6000a8150d0e4e7f4b509af744c53a4bbf8d85390c4e129374e27b335e4
4
+ data.tar.gz: c3058413d6ece21d3556cbd842c70aa40ac61c4c550dcb8b872b2d8229f669ef
5
5
  SHA512:
6
- metadata.gz: c9e426ff95aac71fd0f7847feb060d592115df28b7425dd70a46191c066aad140737f8fdd06adbd3c1a3d5f2fae02f82eeec3640b59e854f1562f2df716b5833
7
- data.tar.gz: 16cc33db93b74f911e79dabbf60f4889a830140776502dbaf8fa2058cd061f92f8a2467c7e35564499db04a36660a45f875cb70f40004f5e0e737953f7908c22
6
+ metadata.gz: 475a9bf4c9e3e9f80c89fa17a6c63ae27310d7bc4fde116bea40b7b3d69724dca8db06e36b771525f47ad7d50fea555e07dfe2ca4363f9dc57edd1419a1458e9
7
+ data.tar.gz: cc999e46310471846a386887e7a6b176baf7f3f8be6f145cd5b3a1b36756594316c180f6d130711e748ae63d1a4a057a73602677a38da676d940e8cbaa716ea1
data/CHANGELOG.md CHANGED
@@ -1,6 +1,11 @@
1
1
  Unreleased Changes
2
2
  ------------------
3
3
 
4
+ 1.155.0 (2026-06-22)
5
+ ------------------
6
+
7
+ * Feature - Added AI-powered investigations that automatically analyze security findings, correlate related activity, and produce structured summaries with risk assessment, confidence scoring, MITRE technique classification, and actionable next steps.
8
+
4
9
  1.154.0 (2026-06-04)
5
10
  ------------------
6
11
 
data/VERSION CHANGED
@@ -1 +1 @@
1
- 1.154.0
1
+ 1.155.0
@@ -2207,6 +2207,93 @@ module Aws::GuardDuty
2207
2207
  req.send_request(options)
2208
2208
  end
2209
2209
 
2210
+ # This API is currently available as a preview. During the preview, you
2211
+ # can initiate up to 10 investigations per account per day, with a total
2212
+ # limit of 100 investigations per account. This feature is available in
2213
+ # the following Amazon Web Services Regions: US East (N. Virginia), US
2214
+ # East (Ohio), US West (Oregon), Canada (Central), Europe (Frankfurt),
2215
+ # Europe (Ireland), Europe (London), Europe (Paris), Europe (Stockholm),
2216
+ # and Asia Pacific (Tokyo).
2217
+ #
2218
+ # Initiates a GuardDuty investigation that automatically analyzes
2219
+ # security findings, correlates related activity, performs account-level
2220
+ # analysis, and produces a structured investigation summary with
2221
+ # recommended next steps.
2222
+ #
2223
+ # Only the administrator account can create an investigation. Member
2224
+ # accounts don't have permission to create investigations from their
2225
+ # accounts.
2226
+ #
2227
+ # To use this operation, the `AI_ANALYST` feature must be enabled on
2228
+ # your detector.
2229
+ #
2230
+ # This feature uses Amazon Bedrock models that leverage Cross-Region
2231
+ # Inference (CRIS), which automatically selects the optimal Amazon Web
2232
+ # Services Region within your geography to process the investigation
2233
+ # analysis and generate the investigation report. This maximizes
2234
+ # available compute resources, model availability, and delivers the best
2235
+ # customer experience. Your data remains stored only in the Region where
2236
+ # the investigation request originates, however, investigation data and
2237
+ # summary results may be processed outside that Region. All data is
2238
+ # transmitted encrypted across Amazon's secure network. For more
2239
+ # information, see [GuardDuty Investigation][1].
2240
+ #
2241
+ #
2242
+ #
2243
+ # [1]: https://docs.aws.amazon.com/guardduty/latest/ug/guardduty-investigation.html
2244
+ #
2245
+ # @option params [required, String] :detector_id
2246
+ # The unique ID of the GuardDuty detector for the account in which the
2247
+ # investigation is created.
2248
+ #
2249
+ # To find the `detectorId` in the current Region, see the Settings page
2250
+ # in the GuardDuty console, or run the [ListDetectors][1] API.
2251
+ #
2252
+ #
2253
+ #
2254
+ # [1]: https://docs.aws.amazon.com/guardduty/latest/APIReference/API_ListDetectors.html
2255
+ #
2256
+ # @option params [required, String] :trigger_prompt
2257
+ # A natural-language description of what to investigate. For example:
2258
+ #
2259
+ # * `"Investigate finding 1ab2c3d4e5f6a7b8c9d0e1f2a3b4c5d6 in account
2260
+ # 123456789012"`
2261
+ #
2262
+ # * `"Analyze findings in account with id 123456789012"`
2263
+ #
2264
+ # * `"Analyze findings in my organization"`
2265
+ #
2266
+ # @option params [String] :client_token
2267
+ # The idempotency token for the create request.
2268
+ #
2269
+ # **A suitable default value is auto-generated.** You should normally
2270
+ # not need to pass this option.**
2271
+ #
2272
+ # @return [Types::CreateInvestigationResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
2273
+ #
2274
+ # * {Types::CreateInvestigationResponse#investigation_id #investigation_id} => String
2275
+ #
2276
+ # @example Request syntax with placeholder values
2277
+ #
2278
+ # resp = client.create_investigation({
2279
+ # detector_id: "DetectorId", # required
2280
+ # trigger_prompt: "TriggerPrompt", # required
2281
+ # client_token: "ClientToken",
2282
+ # })
2283
+ #
2284
+ # @example Response structure
2285
+ #
2286
+ # resp.investigation_id #=> String
2287
+ #
2288
+ # @see http://docs.aws.amazon.com/goto/WebAPI/guardduty-2017-11-28/CreateInvestigation AWS API Documentation
2289
+ #
2290
+ # @overload create_investigation(params = {})
2291
+ # @param [Hash] params ({})
2292
+ def create_investigation(params = {}, options = {})
2293
+ req = build_request(:create_investigation, params)
2294
+ req.send_request(options)
2295
+ end
2296
+
2210
2297
  # Creates a new Malware Protection plan for the protected resource.
2211
2298
  #
2212
2299
  # When you create a Malware Protection plan, the Amazon Web Services
@@ -4659,6 +4746,73 @@ module Aws::GuardDuty
4659
4746
  req.send_request(options)
4660
4747
  end
4661
4748
 
4749
+ # This API is currently available as a preview. This feature is
4750
+ # available in the following Amazon Web Services Regions: US East (N.
4751
+ # Virginia), US East (Ohio), US West (Oregon), Canada (Central), Europe
4752
+ # (Frankfurt), Europe (Ireland), Europe (London), Europe (Paris), Europe
4753
+ # (Stockholm), and Asia Pacific (Tokyo).
4754
+ #
4755
+ # Retrieves the results and status of a specific GuardDuty
4756
+ # investigation.
4757
+ #
4758
+ # An administrator account can retrieve any investigation within the
4759
+ # organization. Member accounts can only retrieve investigations that
4760
+ # belong to them.
4761
+ #
4762
+ # @option params [required, String] :detector_id
4763
+ # The unique ID of the GuardDuty detector associated with the
4764
+ # investigation.
4765
+ #
4766
+ # To find the `detectorId` in the current Region, see the Settings page
4767
+ # in the GuardDuty console, or run the [ListDetectors][1] API.
4768
+ #
4769
+ #
4770
+ #
4771
+ # [1]: https://docs.aws.amazon.com/guardduty/latest/APIReference/API_ListDetectors.html
4772
+ #
4773
+ # @option params [required, String] :investigation_id
4774
+ # The unique identifier of the investigation to retrieve.
4775
+ #
4776
+ # @return [Types::GetInvestigationResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
4777
+ #
4778
+ # * {Types::GetInvestigationResponse#investigation #investigation} => Types::Investigation
4779
+ #
4780
+ # @example Request syntax with placeholder values
4781
+ #
4782
+ # resp = client.get_investigation({
4783
+ # detector_id: "DetectorId", # required
4784
+ # investigation_id: "InvestigationId", # required
4785
+ # })
4786
+ #
4787
+ # @example Response structure
4788
+ #
4789
+ # resp.investigation.investigation_id #=> String
4790
+ # resp.investigation.status #=> String, one of "RUNNING", "COMPLETED", "FAILED"
4791
+ # resp.investigation.trigger_prompt #=> String
4792
+ # resp.investigation.triggered_by #=> String
4793
+ # resp.investigation.metadata.version #=> String
4794
+ # resp.investigation.metadata.product.name #=> String
4795
+ # resp.investigation.metadata.product.feature #=> String
4796
+ # resp.investigation.cloud.provider #=> String, one of "AWS"
4797
+ # resp.investigation.cloud.region #=> String
4798
+ # resp.investigation.cloud.account #=> String
4799
+ # resp.investigation.risk_level #=> String, one of "Info", "Low", "Medium", "High", "Critical"
4800
+ # resp.investigation.risk #=> String
4801
+ # resp.investigation.confidence #=> String, one of "Unknown", "Low", "Medium", "High"
4802
+ # resp.investigation.summary #=> String
4803
+ # resp.investigation.start_time #=> Time
4804
+ # resp.investigation.end_time #=> Time
4805
+ # resp.investigation.error #=> String
4806
+ #
4807
+ # @see http://docs.aws.amazon.com/goto/WebAPI/guardduty-2017-11-28/GetInvestigation AWS API Documentation
4808
+ #
4809
+ # @overload get_investigation(params = {})
4810
+ # @param [Hash] params ({})
4811
+ def get_investigation(params = {}, options = {})
4812
+ req = build_request(:get_investigation, params)
4813
+ req.send_request(options)
4814
+ end
4815
+
4662
4816
  # Returns the count of all GuardDuty membership invitations that were
4663
4817
  # sent to the current member account except the currently accepted
4664
4818
  # invitation.
@@ -5962,6 +6116,86 @@ module Aws::GuardDuty
5962
6116
  req.send_request(options)
5963
6117
  end
5964
6118
 
6119
+ # This API is currently available as a preview. This feature is
6120
+ # available in the following Amazon Web Services Regions: US East (N.
6121
+ # Virginia), US East (Ohio), US West (Oregon), Canada (Central), Europe
6122
+ # (Frankfurt), Europe (Ireland), Europe (London), Europe (Paris), Europe
6123
+ # (Stockholm), and Asia Pacific (Tokyo).
6124
+ #
6125
+ # Returns a list of investigations associated with the specified
6126
+ # GuardDuty detector.
6127
+ #
6128
+ # An administrator account sees all investigations across the
6129
+ # organization. Member accounts see only the investigations that belong
6130
+ # to them.
6131
+ #
6132
+ # @option params [required, String] :detector_id
6133
+ # The unique ID of the GuardDuty detector whose investigations you want
6134
+ # to list.
6135
+ #
6136
+ # To find the `detectorId` in the current Region, see the Settings page
6137
+ # in the GuardDuty console, or run the [ListDetectors][1] API.
6138
+ #
6139
+ #
6140
+ #
6141
+ # [1]: https://docs.aws.amazon.com/guardduty/latest/APIReference/API_ListDetectors.html
6142
+ #
6143
+ # @option params [Types::InvestigationSortCriteria] :sort_criteria
6144
+ # Represents the criteria used for sorting investigations.
6145
+ #
6146
+ # @option params [Integer] :max_results
6147
+ # You can use this parameter to indicate the maximum number of items you
6148
+ # want in the response. The default value is 50.
6149
+ #
6150
+ # @option params [String] :next_token
6151
+ # You can use this parameter when paginating results. Set the value of
6152
+ # this parameter to null on your first call to the list action. For
6153
+ # subsequent calls to the action, fill nextToken in the request with the
6154
+ # value of NextToken from the previous response to continue listing
6155
+ # data.
6156
+ #
6157
+ # @return [Types::ListInvestigationsResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
6158
+ #
6159
+ # * {Types::ListInvestigationsResponse#investigations #investigations} => Array<Types::InvestigationSummary>
6160
+ # * {Types::ListInvestigationsResponse#next_token #next_token} => String
6161
+ #
6162
+ # The returned {Seahorse::Client::Response response} is a pageable response and is Enumerable. For details on usage see {Aws::PageableResponse PageableResponse}.
6163
+ #
6164
+ # @example Request syntax with placeholder values
6165
+ #
6166
+ # resp = client.list_investigations({
6167
+ # detector_id: "DetectorId", # required
6168
+ # sort_criteria: {
6169
+ # attribute_name: "START_TIME", # accepts START_TIME, END_TIME, STATUS, RISK_LEVEL, CONFIDENCE
6170
+ # order_by: "ASC", # accepts ASC, DESC
6171
+ # },
6172
+ # max_results: 1,
6173
+ # next_token: "NextToken",
6174
+ # })
6175
+ #
6176
+ # @example Response structure
6177
+ #
6178
+ # resp.investigations #=> Array
6179
+ # resp.investigations[0].investigation_id #=> String
6180
+ # resp.investigations[0].status #=> String, one of "RUNNING", "COMPLETED", "FAILED"
6181
+ # resp.investigations[0].trigger_prompt #=> String
6182
+ # resp.investigations[0].risk_level #=> String, one of "Info", "Low", "Medium", "High", "Critical"
6183
+ # resp.investigations[0].confidence #=> String, one of "Unknown", "Low", "Medium", "High"
6184
+ # resp.investigations[0].title #=> String
6185
+ # resp.investigations[0].account_id #=> String
6186
+ # resp.investigations[0].start_time #=> Time
6187
+ # resp.investigations[0].end_time #=> Time
6188
+ # resp.next_token #=> String
6189
+ #
6190
+ # @see http://docs.aws.amazon.com/goto/WebAPI/guardduty-2017-11-28/ListInvestigations AWS API Documentation
6191
+ #
6192
+ # @overload list_investigations(params = {})
6193
+ # @param [Hash] params ({})
6194
+ def list_investigations(params = {}, options = {})
6195
+ req = build_request(:list_investigations, params)
6196
+ req.send_request(options)
6197
+ end
6198
+
5965
6199
  # Lists all GuardDuty membership invitations that were sent to the
5966
6200
  # current Amazon Web Services account.
5967
6201
  #
@@ -8944,7 +9178,7 @@ module Aws::GuardDuty
8944
9178
  tracer: tracer
8945
9179
  )
8946
9180
  context[:gem_name] = 'aws-sdk-guardduty'
8947
- context[:gem_version] = '1.154.0'
9181
+ context[:gem_version] = '1.155.0'
8948
9182
  Seahorse::Client::Request.new(handlers, context)
8949
9183
  end
8950
9184
 
@@ -66,10 +66,13 @@ module Aws::GuardDuty
66
66
  BucketPolicy = Shapes::StructureShape.new(name: 'BucketPolicy')
67
67
  City = Shapes::StructureShape.new(name: 'City')
68
68
  ClientToken = Shapes::StringShape.new(name: 'ClientToken')
69
+ CloudDetails = Shapes::StructureShape.new(name: 'CloudDetails')
70
+ CloudProvider = Shapes::StringShape.new(name: 'CloudProvider')
69
71
  CloudTrailConfigurationResult = Shapes::StructureShape.new(name: 'CloudTrailConfigurationResult')
70
72
  CloudformationStack = Shapes::StructureShape.new(name: 'CloudformationStack')
71
73
  ClusterStatus = Shapes::StringShape.new(name: 'ClusterStatus')
72
74
  Condition = Shapes::StructureShape.new(name: 'Condition')
75
+ Confidence = Shapes::StringShape.new(name: 'Confidence')
73
76
  ConflictException = Shapes::StructureShape.new(name: 'ConflictException')
74
77
  Container = Shapes::StructureShape.new(name: 'Container')
75
78
  ContainerFindingResource = Shapes::StructureShape.new(name: 'ContainerFindingResource')
@@ -106,6 +109,8 @@ module Aws::GuardDuty
106
109
  CreateFilterResponse = Shapes::StructureShape.new(name: 'CreateFilterResponse')
107
110
  CreateIPSetRequest = Shapes::StructureShape.new(name: 'CreateIPSetRequest')
108
111
  CreateIPSetResponse = Shapes::StructureShape.new(name: 'CreateIPSetResponse')
112
+ CreateInvestigationRequest = Shapes::StructureShape.new(name: 'CreateInvestigationRequest')
113
+ CreateInvestigationResponse = Shapes::StructureShape.new(name: 'CreateInvestigationResponse')
109
114
  CreateMalwareProtectionPlanRequest = Shapes::StructureShape.new(name: 'CreateMalwareProtectionPlanRequest')
110
115
  CreateMalwareProtectionPlanResponse = Shapes::StructureShape.new(name: 'CreateMalwareProtectionPlanResponse')
111
116
  CreateMembersRequest = Shapes::StructureShape.new(name: 'CreateMembersRequest')
@@ -269,6 +274,8 @@ module Aws::GuardDuty
269
274
  GetFindingsStatisticsResponse = Shapes::StructureShape.new(name: 'GetFindingsStatisticsResponse')
270
275
  GetIPSetRequest = Shapes::StructureShape.new(name: 'GetIPSetRequest')
271
276
  GetIPSetResponse = Shapes::StructureShape.new(name: 'GetIPSetResponse')
277
+ GetInvestigationRequest = Shapes::StructureShape.new(name: 'GetInvestigationRequest')
278
+ GetInvestigationResponse = Shapes::StructureShape.new(name: 'GetInvestigationResponse')
272
279
  GetInvitationsCountRequest = Shapes::StructureShape.new(name: 'GetInvitationsCountRequest')
273
280
  GetInvitationsCountResponse = Shapes::StructureShape.new(name: 'GetInvitationsCountResponse')
274
281
  GetMalwareProtectionPlanRequest = Shapes::StructureShape.new(name: 'GetMalwareProtectionPlanRequest')
@@ -320,6 +327,16 @@ module Aws::GuardDuty
320
327
  Integer = Shapes::IntegerShape.new(name: 'Integer')
321
328
  IntegerValueWithMax = Shapes::IntegerShape.new(name: 'IntegerValueWithMax')
322
329
  InternalServerErrorException = Shapes::StructureShape.new(name: 'InternalServerErrorException')
330
+ Investigation = Shapes::StructureShape.new(name: 'Investigation')
331
+ InvestigationErrorDetails = Shapes::StringShape.new(name: 'InvestigationErrorDetails')
332
+ InvestigationId = Shapes::StringShape.new(name: 'InvestigationId')
333
+ InvestigationMetadata = Shapes::StructureShape.new(name: 'InvestigationMetadata')
334
+ InvestigationSortCriteria = Shapes::StructureShape.new(name: 'InvestigationSortCriteria')
335
+ InvestigationSortField = Shapes::StringShape.new(name: 'InvestigationSortField')
336
+ InvestigationStatus = Shapes::StringShape.new(name: 'InvestigationStatus')
337
+ InvestigationSummaries = Shapes::ListShape.new(name: 'InvestigationSummaries')
338
+ InvestigationSummary = Shapes::StructureShape.new(name: 'InvestigationSummary')
339
+ InvestigationTitle = Shapes::StringShape.new(name: 'InvestigationTitle')
323
340
  Invitation = Shapes::StructureShape.new(name: 'Invitation')
324
341
  Invitations = Shapes::ListShape.new(name: 'Invitations')
325
342
  InviteMembersRequest = Shapes::StructureShape.new(name: 'InviteMembersRequest')
@@ -361,6 +378,8 @@ module Aws::GuardDuty
361
378
  ListFindingsResponse = Shapes::StructureShape.new(name: 'ListFindingsResponse')
362
379
  ListIPSetsRequest = Shapes::StructureShape.new(name: 'ListIPSetsRequest')
363
380
  ListIPSetsResponse = Shapes::StructureShape.new(name: 'ListIPSetsResponse')
381
+ ListInvestigationsRequest = Shapes::StructureShape.new(name: 'ListInvestigationsRequest')
382
+ ListInvestigationsResponse = Shapes::StructureShape.new(name: 'ListInvestigationsResponse')
364
383
  ListInvitationsRequest = Shapes::StructureShape.new(name: 'ListInvitationsRequest')
365
384
  ListInvitationsResponse = Shapes::StructureShape.new(name: 'ListInvitationsResponse')
366
385
  ListMalwareProtectionPlansRequest = Shapes::StructureShape.new(name: 'ListMalwareProtectionPlansRequest')
@@ -442,6 +461,7 @@ module Aws::GuardDuty
442
461
  NetworkGeoLocation = Shapes::StructureShape.new(name: 'NetworkGeoLocation')
443
462
  NetworkInterface = Shapes::StructureShape.new(name: 'NetworkInterface')
444
463
  NetworkInterfaces = Shapes::ListShape.new(name: 'NetworkInterfaces')
464
+ NextToken = Shapes::StringShape.new(name: 'NextToken')
445
465
  NonEmptyString = Shapes::StringShape.new(name: 'NonEmptyString')
446
466
  NonNegativeInteger = Shapes::IntegerShape.new(name: 'NonNegativeInteger')
447
467
  NotEquals = Shapes::ListShape.new(name: 'NotEquals')
@@ -494,6 +514,7 @@ module Aws::GuardDuty
494
514
  ProcessName = Shapes::StringShape.new(name: 'ProcessName')
495
515
  ProcessPath = Shapes::StringShape.new(name: 'ProcessPath')
496
516
  ProcessSha256 = Shapes::StringShape.new(name: 'ProcessSha256')
517
+ Product = Shapes::StructureShape.new(name: 'Product')
497
518
  ProductCode = Shapes::StructureShape.new(name: 'ProductCode')
498
519
  ProductCodes = Shapes::ListShape.new(name: 'ProductCodes')
499
520
  ProfileSubtype = Shapes::StringShape.new(name: 'ProfileSubtype')
@@ -525,6 +546,8 @@ module Aws::GuardDuty
525
546
  ResourceUids = Shapes::ListShape.new(name: 'ResourceUids')
526
547
  ResourceV2 = Shapes::StructureShape.new(name: 'ResourceV2')
527
548
  Resources = Shapes::ListShape.new(name: 'Resources')
549
+ RiskDetails = Shapes::StringShape.new(name: 'RiskDetails')
550
+ RiskLevel = Shapes::StringShape.new(name: 'RiskLevel')
528
551
  RuntimeContext = Shapes::StructureShape.new(name: 'RuntimeContext')
529
552
  RuntimeDetails = Shapes::StructureShape.new(name: 'RuntimeDetails')
530
553
  S3Bucket = Shapes::StructureShape.new(name: 'S3Bucket')
@@ -619,7 +642,9 @@ module Aws::GuardDuty
619
642
  Timestamp = Shapes::TimestampShape.new(name: 'Timestamp')
620
643
  Total = Shapes::StructureShape.new(name: 'Total')
621
644
  TriggerDetails = Shapes::StructureShape.new(name: 'TriggerDetails')
645
+ TriggerPrompt = Shapes::StringShape.new(name: 'TriggerPrompt')
622
646
  TriggerType = Shapes::StringShape.new(name: 'TriggerType')
647
+ TriggeredBy = Shapes::StringShape.new(name: 'TriggeredBy')
623
648
  TrustedEntitySetFormat = Shapes::StringShape.new(name: 'TrustedEntitySetFormat')
624
649
  TrustedEntitySetIds = Shapes::ListShape.new(name: 'TrustedEntitySetIds')
625
650
  TrustedEntitySetStatus = Shapes::StringShape.new(name: 'TrustedEntitySetStatus')
@@ -868,6 +893,11 @@ module Aws::GuardDuty
868
893
  City.add_member(:city_name, Shapes::ShapeRef.new(shape: String, location_name: "cityName"))
869
894
  City.struct_class = Types::City
870
895
 
896
+ CloudDetails.add_member(:provider, Shapes::ShapeRef.new(shape: CloudProvider, required: true, location_name: "provider"))
897
+ CloudDetails.add_member(:region, Shapes::ShapeRef.new(shape: String, required: true, location_name: "region"))
898
+ CloudDetails.add_member(:account, Shapes::ShapeRef.new(shape: String, required: true, location_name: "account"))
899
+ CloudDetails.struct_class = Types::CloudDetails
900
+
871
901
  CloudTrailConfigurationResult.add_member(:status, Shapes::ShapeRef.new(shape: DataSourceStatus, required: true, location_name: "status"))
872
902
  CloudTrailConfigurationResult.struct_class = Types::CloudTrailConfigurationResult
873
903
 
@@ -1029,6 +1059,14 @@ module Aws::GuardDuty
1029
1059
  CreateIPSetResponse.add_member(:ip_set_id, Shapes::ShapeRef.new(shape: String, required: true, location_name: "ipSetId"))
1030
1060
  CreateIPSetResponse.struct_class = Types::CreateIPSetResponse
1031
1061
 
1062
+ CreateInvestigationRequest.add_member(:detector_id, Shapes::ShapeRef.new(shape: DetectorId, required: true, location: "uri", location_name: "DetectorId"))
1063
+ CreateInvestigationRequest.add_member(:trigger_prompt, Shapes::ShapeRef.new(shape: TriggerPrompt, required: true, location_name: "triggerPrompt"))
1064
+ CreateInvestigationRequest.add_member(:client_token, Shapes::ShapeRef.new(shape: ClientToken, location_name: "clientToken", metadata: {"idempotencyToken" => true}))
1065
+ CreateInvestigationRequest.struct_class = Types::CreateInvestigationRequest
1066
+
1067
+ CreateInvestigationResponse.add_member(:investigation_id, Shapes::ShapeRef.new(shape: InvestigationId, required: true, location_name: "investigationId"))
1068
+ CreateInvestigationResponse.struct_class = Types::CreateInvestigationResponse
1069
+
1032
1070
  CreateMalwareProtectionPlanRequest.add_member(:client_token, Shapes::ShapeRef.new(shape: ClientToken, location_name: "clientToken", metadata: {"idempotencyToken" => true}))
1033
1071
  CreateMalwareProtectionPlanRequest.add_member(:role, Shapes::ShapeRef.new(shape: String, required: true, location_name: "role"))
1034
1072
  CreateMalwareProtectionPlanRequest.add_member(:protected_resource, Shapes::ShapeRef.new(shape: CreateProtectedResource, required: true, location_name: "protectedResource"))
@@ -1597,6 +1635,13 @@ module Aws::GuardDuty
1597
1635
  GetIPSetResponse.add_member(:expected_bucket_owner, Shapes::ShapeRef.new(shape: AccountId, location_name: "expectedBucketOwner"))
1598
1636
  GetIPSetResponse.struct_class = Types::GetIPSetResponse
1599
1637
 
1638
+ GetInvestigationRequest.add_member(:detector_id, Shapes::ShapeRef.new(shape: DetectorId, required: true, location: "uri", location_name: "DetectorId"))
1639
+ GetInvestigationRequest.add_member(:investigation_id, Shapes::ShapeRef.new(shape: InvestigationId, required: true, location: "uri", location_name: "InvestigationId"))
1640
+ GetInvestigationRequest.struct_class = Types::GetInvestigationRequest
1641
+
1642
+ GetInvestigationResponse.add_member(:investigation, Shapes::ShapeRef.new(shape: Investigation, required: true, location_name: "investigation"))
1643
+ GetInvestigationResponse.struct_class = Types::GetInvestigationResponse
1644
+
1600
1645
  GetInvitationsCountRequest.struct_class = Types::GetInvitationsCountRequest
1601
1646
 
1602
1647
  GetInvitationsCountResponse.add_member(:invitations_count, Shapes::ShapeRef.new(shape: Integer, location_name: "invitationsCount"))
@@ -1803,6 +1848,42 @@ module Aws::GuardDuty
1803
1848
  InternalServerErrorException.add_member(:type, Shapes::ShapeRef.new(shape: String, location_name: "type"))
1804
1849
  InternalServerErrorException.struct_class = Types::InternalServerErrorException
1805
1850
 
1851
+ Investigation.add_member(:investigation_id, Shapes::ShapeRef.new(shape: InvestigationId, required: true, location_name: "investigationId"))
1852
+ Investigation.add_member(:status, Shapes::ShapeRef.new(shape: InvestigationStatus, required: true, location_name: "status"))
1853
+ Investigation.add_member(:trigger_prompt, Shapes::ShapeRef.new(shape: TriggerPrompt, required: true, location_name: "triggerPrompt"))
1854
+ Investigation.add_member(:triggered_by, Shapes::ShapeRef.new(shape: TriggeredBy, required: true, location_name: "triggeredBy"))
1855
+ Investigation.add_member(:metadata, Shapes::ShapeRef.new(shape: InvestigationMetadata, location_name: "metadata"))
1856
+ Investigation.add_member(:cloud, Shapes::ShapeRef.new(shape: CloudDetails, location_name: "cloud"))
1857
+ Investigation.add_member(:risk_level, Shapes::ShapeRef.new(shape: RiskLevel, location_name: "riskLevel"))
1858
+ Investigation.add_member(:risk, Shapes::ShapeRef.new(shape: RiskDetails, location_name: "risk"))
1859
+ Investigation.add_member(:confidence, Shapes::ShapeRef.new(shape: Confidence, location_name: "confidence"))
1860
+ Investigation.add_member(:summary, Shapes::ShapeRef.new(shape: String, location_name: "summary"))
1861
+ Investigation.add_member(:start_time, Shapes::ShapeRef.new(shape: Timestamp, location_name: "startTime"))
1862
+ Investigation.add_member(:end_time, Shapes::ShapeRef.new(shape: Timestamp, location_name: "endTime"))
1863
+ Investigation.add_member(:error, Shapes::ShapeRef.new(shape: InvestigationErrorDetails, location_name: "error"))
1864
+ Investigation.struct_class = Types::Investigation
1865
+
1866
+ InvestigationMetadata.add_member(:version, Shapes::ShapeRef.new(shape: String, required: true, location_name: "version"))
1867
+ InvestigationMetadata.add_member(:product, Shapes::ShapeRef.new(shape: Product, required: true, location_name: "product"))
1868
+ InvestigationMetadata.struct_class = Types::InvestigationMetadata
1869
+
1870
+ InvestigationSortCriteria.add_member(:attribute_name, Shapes::ShapeRef.new(shape: InvestigationSortField, location_name: "attributeName"))
1871
+ InvestigationSortCriteria.add_member(:order_by, Shapes::ShapeRef.new(shape: OrderBy, location_name: "orderBy"))
1872
+ InvestigationSortCriteria.struct_class = Types::InvestigationSortCriteria
1873
+
1874
+ InvestigationSummaries.member = Shapes::ShapeRef.new(shape: InvestigationSummary)
1875
+
1876
+ InvestigationSummary.add_member(:investigation_id, Shapes::ShapeRef.new(shape: InvestigationId, location_name: "investigationId"))
1877
+ InvestigationSummary.add_member(:status, Shapes::ShapeRef.new(shape: InvestigationStatus, location_name: "status"))
1878
+ InvestigationSummary.add_member(:trigger_prompt, Shapes::ShapeRef.new(shape: TriggerPrompt, location_name: "triggerPrompt"))
1879
+ InvestigationSummary.add_member(:risk_level, Shapes::ShapeRef.new(shape: RiskLevel, location_name: "riskLevel"))
1880
+ InvestigationSummary.add_member(:confidence, Shapes::ShapeRef.new(shape: Confidence, location_name: "confidence"))
1881
+ InvestigationSummary.add_member(:title, Shapes::ShapeRef.new(shape: InvestigationTitle, location_name: "title"))
1882
+ InvestigationSummary.add_member(:account_id, Shapes::ShapeRef.new(shape: String, location_name: "accountId"))
1883
+ InvestigationSummary.add_member(:start_time, Shapes::ShapeRef.new(shape: Timestamp, location_name: "startTime"))
1884
+ InvestigationSummary.add_member(:end_time, Shapes::ShapeRef.new(shape: Timestamp, location_name: "endTime"))
1885
+ InvestigationSummary.struct_class = Types::InvestigationSummary
1886
+
1806
1887
  Invitation.add_member(:account_id, Shapes::ShapeRef.new(shape: AccountId, location_name: "accountId"))
1807
1888
  Invitation.add_member(:invitation_id, Shapes::ShapeRef.new(shape: String, location_name: "invitationId"))
1808
1889
  Invitation.add_member(:relationship_status, Shapes::ShapeRef.new(shape: String, location_name: "relationshipStatus"))
@@ -1986,6 +2067,16 @@ module Aws::GuardDuty
1986
2067
  ListIPSetsResponse.add_member(:next_token, Shapes::ShapeRef.new(shape: String, location_name: "nextToken"))
1987
2068
  ListIPSetsResponse.struct_class = Types::ListIPSetsResponse
1988
2069
 
2070
+ ListInvestigationsRequest.add_member(:detector_id, Shapes::ShapeRef.new(shape: DetectorId, required: true, location: "uri", location_name: "DetectorId"))
2071
+ ListInvestigationsRequest.add_member(:sort_criteria, Shapes::ShapeRef.new(shape: InvestigationSortCriteria, location_name: "sortCriteria"))
2072
+ ListInvestigationsRequest.add_member(:max_results, Shapes::ShapeRef.new(shape: MaxResults, location_name: "maxResults"))
2073
+ ListInvestigationsRequest.add_member(:next_token, Shapes::ShapeRef.new(shape: NextToken, location_name: "nextToken"))
2074
+ ListInvestigationsRequest.struct_class = Types::ListInvestigationsRequest
2075
+
2076
+ ListInvestigationsResponse.add_member(:investigations, Shapes::ShapeRef.new(shape: InvestigationSummaries, required: true, location_name: "investigations"))
2077
+ ListInvestigationsResponse.add_member(:next_token, Shapes::ShapeRef.new(shape: NextToken, location_name: "nextToken"))
2078
+ ListInvestigationsResponse.struct_class = Types::ListInvestigationsResponse
2079
+
1989
2080
  ListInvitationsRequest.add_member(:max_results, Shapes::ShapeRef.new(shape: MaxResults, location: "querystring", location_name: "maxResults"))
1990
2081
  ListInvitationsRequest.add_member(:next_token, Shapes::ShapeRef.new(shape: String, location: "querystring", location_name: "nextToken"))
1991
2082
  ListInvitationsRequest.struct_class = Types::ListInvitationsRequest
@@ -2404,6 +2495,10 @@ module Aws::GuardDuty
2404
2495
  ProcessDetails.add_member(:lineage, Shapes::ShapeRef.new(shape: Lineage, location_name: "lineage"))
2405
2496
  ProcessDetails.struct_class = Types::ProcessDetails
2406
2497
 
2498
+ Product.add_member(:name, Shapes::ShapeRef.new(shape: String, required: true, location_name: "name"))
2499
+ Product.add_member(:feature, Shapes::ShapeRef.new(shape: String, location_name: "feature"))
2500
+ Product.struct_class = Types::Product
2501
+
2407
2502
  ProductCode.add_member(:code, Shapes::ShapeRef.new(shape: String, location_name: "productCodeId"))
2408
2503
  ProductCode.add_member(:product_type, Shapes::ShapeRef.new(shape: String, location_name: "productCodeType"))
2409
2504
  ProductCode.struct_class = Types::ProductCode
@@ -3207,6 +3302,17 @@ module Aws::GuardDuty
3207
3302
  o.errors << Shapes::ShapeRef.new(shape: AccessDeniedException)
3208
3303
  end)
3209
3304
 
3305
+ api.add_operation(:create_investigation, Seahorse::Model::Operation.new.tap do |o|
3306
+ o.name = "CreateInvestigation"
3307
+ o.http_method = "POST"
3308
+ o.http_request_uri = "/detector/{DetectorId}/investigation"
3309
+ o.input = Shapes::ShapeRef.new(shape: CreateInvestigationRequest)
3310
+ o.output = Shapes::ShapeRef.new(shape: CreateInvestigationResponse)
3311
+ o.errors << Shapes::ShapeRef.new(shape: BadRequestException)
3312
+ o.errors << Shapes::ShapeRef.new(shape: InternalServerErrorException)
3313
+ o.errors << Shapes::ShapeRef.new(shape: AccessDeniedException)
3314
+ end)
3315
+
3210
3316
  api.add_operation(:create_malware_protection_plan, Seahorse::Model::Operation.new.tap do |o|
3211
3317
  o.name = "CreateMalwareProtectionPlan"
3212
3318
  o.http_method = "POST"
@@ -3555,6 +3661,18 @@ module Aws::GuardDuty
3555
3661
  o.errors << Shapes::ShapeRef.new(shape: InternalServerErrorException)
3556
3662
  end)
3557
3663
 
3664
+ api.add_operation(:get_investigation, Seahorse::Model::Operation.new.tap do |o|
3665
+ o.name = "GetInvestigation"
3666
+ o.http_method = "GET"
3667
+ o.http_request_uri = "/detector/{DetectorId}/investigation/{InvestigationId}"
3668
+ o.input = Shapes::ShapeRef.new(shape: GetInvestigationRequest)
3669
+ o.output = Shapes::ShapeRef.new(shape: GetInvestigationResponse)
3670
+ o.errors << Shapes::ShapeRef.new(shape: BadRequestException)
3671
+ o.errors << Shapes::ShapeRef.new(shape: InternalServerErrorException)
3672
+ o.errors << Shapes::ShapeRef.new(shape: AccessDeniedException)
3673
+ o.errors << Shapes::ShapeRef.new(shape: ResourceNotFoundException)
3674
+ end)
3675
+
3558
3676
  api.add_operation(:get_invitations_count, Seahorse::Model::Operation.new.tap do |o|
3559
3677
  o.name = "GetInvitationsCount"
3560
3678
  o.http_method = "GET"
@@ -3785,6 +3903,23 @@ module Aws::GuardDuty
3785
3903
  )
3786
3904
  end)
3787
3905
 
3906
+ api.add_operation(:list_investigations, Seahorse::Model::Operation.new.tap do |o|
3907
+ o.name = "ListInvestigations"
3908
+ o.http_method = "POST"
3909
+ o.http_request_uri = "/detector/{DetectorId}/investigation/list"
3910
+ o.input = Shapes::ShapeRef.new(shape: ListInvestigationsRequest)
3911
+ o.output = Shapes::ShapeRef.new(shape: ListInvestigationsResponse)
3912
+ o.errors << Shapes::ShapeRef.new(shape: BadRequestException)
3913
+ o.errors << Shapes::ShapeRef.new(shape: InternalServerErrorException)
3914
+ o.errors << Shapes::ShapeRef.new(shape: AccessDeniedException)
3915
+ o[:pager] = Aws::Pager.new(
3916
+ limit_key: "max_results",
3917
+ tokens: {
3918
+ "next_token" => "next_token"
3919
+ }
3920
+ )
3921
+ end)
3922
+
3788
3923
  api.add_operation(:list_invitations, Seahorse::Model::Operation.new.tap do |o|
3789
3924
  o.name = "ListInvitations"
3790
3925
  o.http_method = "GET"
@@ -827,6 +827,32 @@ module Aws::GuardDuty
827
827
  include Aws::Structure
828
828
  end
829
829
 
830
+ # Contains details about the cloud environment associated with an
831
+ # investigation.
832
+ #
833
+ # @!attribute [rw] provider
834
+ # The cloud provider. Currently, only `AWS` is supported.
835
+ # @return [String]
836
+ #
837
+ # @!attribute [rw] region
838
+ # The Amazon Web Services Region in which the investigated resource
839
+ # resides.
840
+ # @return [String]
841
+ #
842
+ # @!attribute [rw] account
843
+ # The Amazon Web Services account ID of the investigated resource.
844
+ # @return [String]
845
+ #
846
+ # @see http://docs.aws.amazon.com/goto/WebAPI/guardduty-2017-11-28/CloudDetails AWS API Documentation
847
+ #
848
+ class CloudDetails < Struct.new(
849
+ :provider,
850
+ :region,
851
+ :account)
852
+ SENSITIVE = []
853
+ include Aws::Structure
854
+ end
855
+
830
856
  # Contains information on the status of CloudTrail as a data source for
831
857
  # the detector.
832
858
  #
@@ -2996,6 +3022,58 @@ module Aws::GuardDuty
2996
3022
  include Aws::Structure
2997
3023
  end
2998
3024
 
3025
+ # @!attribute [rw] detector_id
3026
+ # The unique ID of the GuardDuty detector for the account in which the
3027
+ # investigation is created.
3028
+ #
3029
+ # To find the `detectorId` in the current Region, see the Settings
3030
+ # page in the GuardDuty console, or run the [ListDetectors][1] API.
3031
+ #
3032
+ #
3033
+ #
3034
+ # [1]: https://docs.aws.amazon.com/guardduty/latest/APIReference/API_ListDetectors.html
3035
+ # @return [String]
3036
+ #
3037
+ # @!attribute [rw] trigger_prompt
3038
+ # A natural-language description of what to investigate. For example:
3039
+ #
3040
+ # * `"Investigate finding 1ab2c3d4e5f6a7b8c9d0e1f2a3b4c5d6 in account
3041
+ # 123456789012"`
3042
+ #
3043
+ # * `"Analyze findings in account with id 123456789012"`
3044
+ #
3045
+ # * `"Analyze findings in my organization"`
3046
+ # @return [String]
3047
+ #
3048
+ # @!attribute [rw] client_token
3049
+ # The idempotency token for the create request.
3050
+ #
3051
+ # **A suitable default value is auto-generated.** You should normally
3052
+ # not need to pass this option.
3053
+ # @return [String]
3054
+ #
3055
+ # @see http://docs.aws.amazon.com/goto/WebAPI/guardduty-2017-11-28/CreateInvestigationRequest AWS API Documentation
3056
+ #
3057
+ class CreateInvestigationRequest < Struct.new(
3058
+ :detector_id,
3059
+ :trigger_prompt,
3060
+ :client_token)
3061
+ SENSITIVE = []
3062
+ include Aws::Structure
3063
+ end
3064
+
3065
+ # @!attribute [rw] investigation_id
3066
+ # The unique identifier of the newly created investigation.
3067
+ # @return [String]
3068
+ #
3069
+ # @see http://docs.aws.amazon.com/goto/WebAPI/guardduty-2017-11-28/CreateInvestigationResponse AWS API Documentation
3070
+ #
3071
+ class CreateInvestigationResponse < Struct.new(
3072
+ :investigation_id)
3073
+ SENSITIVE = []
3074
+ include Aws::Structure
3075
+ end
3076
+
2999
3077
  # @!attribute [rw] client_token
3000
3078
  # The idempotency token for the create request.
3001
3079
  #
@@ -5819,6 +5897,43 @@ module Aws::GuardDuty
5819
5897
  include Aws::Structure
5820
5898
  end
5821
5899
 
5900
+ # @!attribute [rw] detector_id
5901
+ # The unique ID of the GuardDuty detector associated with the
5902
+ # investigation.
5903
+ #
5904
+ # To find the `detectorId` in the current Region, see the Settings
5905
+ # page in the GuardDuty console, or run the [ListDetectors][1] API.
5906
+ #
5907
+ #
5908
+ #
5909
+ # [1]: https://docs.aws.amazon.com/guardduty/latest/APIReference/API_ListDetectors.html
5910
+ # @return [String]
5911
+ #
5912
+ # @!attribute [rw] investigation_id
5913
+ # The unique identifier of the investigation to retrieve.
5914
+ # @return [String]
5915
+ #
5916
+ # @see http://docs.aws.amazon.com/goto/WebAPI/guardduty-2017-11-28/GetInvestigationRequest AWS API Documentation
5917
+ #
5918
+ class GetInvestigationRequest < Struct.new(
5919
+ :detector_id,
5920
+ :investigation_id)
5921
+ SENSITIVE = []
5922
+ include Aws::Structure
5923
+ end
5924
+
5925
+ # @!attribute [rw] investigation
5926
+ # The details and results of the requested investigation.
5927
+ # @return [Types::Investigation]
5928
+ #
5929
+ # @see http://docs.aws.amazon.com/goto/WebAPI/guardduty-2017-11-28/GetInvestigationResponse AWS API Documentation
5930
+ #
5931
+ class GetInvestigationResponse < Struct.new(
5932
+ :investigation)
5933
+ SENSITIVE = []
5934
+ include Aws::Structure
5935
+ end
5936
+
5822
5937
  # @api private
5823
5938
  #
5824
5939
  # @see http://docs.aws.amazon.com/goto/WebAPI/guardduty-2017-11-28/GetInvitationsCountRequest AWS API Documentation
@@ -6823,6 +6938,182 @@ module Aws::GuardDuty
6823
6938
  include Aws::Structure
6824
6939
  end
6825
6940
 
6941
+ # Contains the details and results of a GuardDuty investigation.
6942
+ #
6943
+ # @!attribute [rw] investigation_id
6944
+ # The unique identifier of the investigation.
6945
+ # @return [String]
6946
+ #
6947
+ # @!attribute [rw] status
6948
+ # The current status of the investigation. Possible values are
6949
+ # `RUNNING`, `COMPLETED`, and `FAILED`.
6950
+ # @return [String]
6951
+ #
6952
+ # @!attribute [rw] trigger_prompt
6953
+ # The natural-language prompt that initiated this investigation.
6954
+ # @return [String]
6955
+ #
6956
+ # @!attribute [rw] triggered_by
6957
+ # The account that initiated the investigation.
6958
+ # @return [String]
6959
+ #
6960
+ # @!attribute [rw] metadata
6961
+ # Metadata about the product and version that produced the
6962
+ # investigation.
6963
+ # @return [Types::InvestigationMetadata]
6964
+ #
6965
+ # @!attribute [rw] cloud
6966
+ # Details about the cloud environment in which the investigation was
6967
+ # performed, including the provider, region, and account.
6968
+ # @return [Types::CloudDetails]
6969
+ #
6970
+ # @!attribute [rw] risk_level
6971
+ # The assessed risk level of the investigated threat. Possible values
6972
+ # are `Info`, `Low`, `Medium`, `High`, and `Critical`.
6973
+ # @return [String]
6974
+ #
6975
+ # @!attribute [rw] risk
6976
+ # A human-readable description of the assessed risk.
6977
+ # @return [String]
6978
+ #
6979
+ # @!attribute [rw] confidence
6980
+ # The confidence level of the investigation's assessment. Possible
6981
+ # values are `Unknown`, `Low`, `Medium`, and `High`.
6982
+ # @return [String]
6983
+ #
6984
+ # @!attribute [rw] summary
6985
+ # A structured summary of the investigation findings, including
6986
+ # affected resources, threat assessment, and recommended remediation
6987
+ # steps.
6988
+ # @return [String]
6989
+ #
6990
+ # @!attribute [rw] start_time
6991
+ # The timestamp at which the investigation started.
6992
+ # @return [Time]
6993
+ #
6994
+ # @!attribute [rw] end_time
6995
+ # The timestamp at which the investigation completed.
6996
+ # @return [Time]
6997
+ #
6998
+ # @!attribute [rw] error
6999
+ # Details about the error if the investigation status is `FAILED`.
7000
+ # @return [String]
7001
+ #
7002
+ # @see http://docs.aws.amazon.com/goto/WebAPI/guardduty-2017-11-28/Investigation AWS API Documentation
7003
+ #
7004
+ class Investigation < Struct.new(
7005
+ :investigation_id,
7006
+ :status,
7007
+ :trigger_prompt,
7008
+ :triggered_by,
7009
+ :metadata,
7010
+ :cloud,
7011
+ :risk_level,
7012
+ :risk,
7013
+ :confidence,
7014
+ :summary,
7015
+ :start_time,
7016
+ :end_time,
7017
+ :error)
7018
+ SENSITIVE = []
7019
+ include Aws::Structure
7020
+ end
7021
+
7022
+ # Contains metadata about the product and version that produced an
7023
+ # investigation.
7024
+ #
7025
+ # @!attribute [rw] version
7026
+ # The version of the investigation engine that produced the results.
7027
+ # @return [String]
7028
+ #
7029
+ # @!attribute [rw] product
7030
+ # Information about the product that produced the investigation.
7031
+ # @return [Types::Product]
7032
+ #
7033
+ # @see http://docs.aws.amazon.com/goto/WebAPI/guardduty-2017-11-28/InvestigationMetadata AWS API Documentation
7034
+ #
7035
+ class InvestigationMetadata < Struct.new(
7036
+ :version,
7037
+ :product)
7038
+ SENSITIVE = []
7039
+ include Aws::Structure
7040
+ end
7041
+
7042
+ # Contains information about the criteria used for sorting
7043
+ # investigations.
7044
+ #
7045
+ # @!attribute [rw] attribute_name
7046
+ # The attribute by which to sort investigations.
7047
+ # @return [String]
7048
+ #
7049
+ # @!attribute [rw] order_by
7050
+ # The order in which the sorted results are to be displayed.
7051
+ # @return [String]
7052
+ #
7053
+ # @see http://docs.aws.amazon.com/goto/WebAPI/guardduty-2017-11-28/InvestigationSortCriteria AWS API Documentation
7054
+ #
7055
+ class InvestigationSortCriteria < Struct.new(
7056
+ :attribute_name,
7057
+ :order_by)
7058
+ SENSITIVE = []
7059
+ include Aws::Structure
7060
+ end
7061
+
7062
+ # Contains summary information about a GuardDuty investigation.
7063
+ #
7064
+ # @!attribute [rw] investigation_id
7065
+ # The unique identifier of the investigation.
7066
+ # @return [String]
7067
+ #
7068
+ # @!attribute [rw] status
7069
+ # The current status of the investigation.
7070
+ # @return [String]
7071
+ #
7072
+ # @!attribute [rw] trigger_prompt
7073
+ # The natural-language prompt that initiated this investigation.
7074
+ # @return [String]
7075
+ #
7076
+ # @!attribute [rw] risk_level
7077
+ # The assessed risk level of the investigated threat.
7078
+ # @return [String]
7079
+ #
7080
+ # @!attribute [rw] confidence
7081
+ # The confidence level of the investigation's assessment.
7082
+ # @return [String]
7083
+ #
7084
+ # @!attribute [rw] title
7085
+ # A short title summarizing the investigation.
7086
+ # @return [String]
7087
+ #
7088
+ # @!attribute [rw] account_id
7089
+ # The Amazon Web Services account ID associated with the
7090
+ # investigation.
7091
+ # @return [String]
7092
+ #
7093
+ # @!attribute [rw] start_time
7094
+ # The timestamp at which the investigation started.
7095
+ # @return [Time]
7096
+ #
7097
+ # @!attribute [rw] end_time
7098
+ # The timestamp at which the investigation completed.
7099
+ # @return [Time]
7100
+ #
7101
+ # @see http://docs.aws.amazon.com/goto/WebAPI/guardduty-2017-11-28/InvestigationSummary AWS API Documentation
7102
+ #
7103
+ class InvestigationSummary < Struct.new(
7104
+ :investigation_id,
7105
+ :status,
7106
+ :trigger_prompt,
7107
+ :risk_level,
7108
+ :confidence,
7109
+ :title,
7110
+ :account_id,
7111
+ :start_time,
7112
+ :end_time)
7113
+ SENSITIVE = []
7114
+ include Aws::Structure
7115
+ end
7116
+
6826
7117
  # Contains information about the invitation to become a member account.
6827
7118
  #
6828
7119
  # @!attribute [rw] account_id
@@ -7833,6 +8124,65 @@ module Aws::GuardDuty
7833
8124
  include Aws::Structure
7834
8125
  end
7835
8126
 
8127
+ # @!attribute [rw] detector_id
8128
+ # The unique ID of the GuardDuty detector whose investigations you
8129
+ # want to list.
8130
+ #
8131
+ # To find the `detectorId` in the current Region, see the Settings
8132
+ # page in the GuardDuty console, or run the [ListDetectors][1] API.
8133
+ #
8134
+ #
8135
+ #
8136
+ # [1]: https://docs.aws.amazon.com/guardduty/latest/APIReference/API_ListDetectors.html
8137
+ # @return [String]
8138
+ #
8139
+ # @!attribute [rw] sort_criteria
8140
+ # Represents the criteria used for sorting investigations.
8141
+ # @return [Types::InvestigationSortCriteria]
8142
+ #
8143
+ # @!attribute [rw] max_results
8144
+ # You can use this parameter to indicate the maximum number of items
8145
+ # you want in the response. The default value is 50.
8146
+ # @return [Integer]
8147
+ #
8148
+ # @!attribute [rw] next_token
8149
+ # You can use this parameter when paginating results. Set the value of
8150
+ # this parameter to null on your first call to the list action. For
8151
+ # subsequent calls to the action, fill nextToken in the request with
8152
+ # the value of NextToken from the previous response to continue
8153
+ # listing data.
8154
+ # @return [String]
8155
+ #
8156
+ # @see http://docs.aws.amazon.com/goto/WebAPI/guardduty-2017-11-28/ListInvestigationsRequest AWS API Documentation
8157
+ #
8158
+ class ListInvestigationsRequest < Struct.new(
8159
+ :detector_id,
8160
+ :sort_criteria,
8161
+ :max_results,
8162
+ :next_token)
8163
+ SENSITIVE = []
8164
+ include Aws::Structure
8165
+ end
8166
+
8167
+ # @!attribute [rw] investigations
8168
+ # A list of investigation summaries associated with the specified
8169
+ # detector.
8170
+ # @return [Array<Types::InvestigationSummary>]
8171
+ #
8172
+ # @!attribute [rw] next_token
8173
+ # The pagination parameter to be used on the next list operation to
8174
+ # retrieve more items.
8175
+ # @return [String]
8176
+ #
8177
+ # @see http://docs.aws.amazon.com/goto/WebAPI/guardduty-2017-11-28/ListInvestigationsResponse AWS API Documentation
8178
+ #
8179
+ class ListInvestigationsResponse < Struct.new(
8180
+ :investigations,
8181
+ :next_token)
8182
+ SENSITIVE = []
8183
+ include Aws::Structure
8184
+ end
8185
+
7836
8186
  # @!attribute [rw] max_results
7837
8187
  # You can use this parameter to indicate the maximum number of items
7838
8188
  # that you want in the response. The default value is 50. The maximum
@@ -9808,6 +10158,26 @@ module Aws::GuardDuty
9808
10158
  include Aws::Structure
9809
10159
  end
9810
10160
 
10161
+ # Contains information about the product that produced an investigation.
10162
+ #
10163
+ # @!attribute [rw] name
10164
+ # The name of the product.
10165
+ # @return [String]
10166
+ #
10167
+ # @!attribute [rw] feature
10168
+ # The specific feature within the product that produced the
10169
+ # investigation.
10170
+ # @return [String]
10171
+ #
10172
+ # @see http://docs.aws.amazon.com/goto/WebAPI/guardduty-2017-11-28/Product AWS API Documentation
10173
+ #
10174
+ class Product < Struct.new(
10175
+ :name,
10176
+ :feature)
10177
+ SENSITIVE = []
10178
+ include Aws::Structure
10179
+ end
10180
+
9811
10181
  # Contains information about the product code for the EC2 instance.
9812
10182
  #
9813
10183
  # @!attribute [rw] code
@@ -54,7 +54,7 @@ module Aws::GuardDuty
54
54
  autoload :EndpointProvider, 'aws-sdk-guardduty/endpoint_provider'
55
55
  autoload :Endpoints, 'aws-sdk-guardduty/endpoints'
56
56
 
57
- GEM_VERSION = '1.154.0'
57
+ GEM_VERSION = '1.155.0'
58
58
 
59
59
  end
60
60
 
data/sig/client.rbs CHANGED
@@ -162,6 +162,18 @@ module Aws
162
162
  ) -> _CreateIPSetResponseSuccess
163
163
  | (Hash[Symbol, untyped] params, ?Hash[Symbol, untyped] options) -> _CreateIPSetResponseSuccess
164
164
 
165
+ interface _CreateInvestigationResponseSuccess
166
+ include ::Seahorse::Client::_ResponseSuccess[Types::CreateInvestigationResponse]
167
+ def investigation_id: () -> ::String
168
+ end
169
+ # https://docs.aws.amazon.com/sdk-for-ruby/v3/api/Aws/GuardDuty/Client.html#create_investigation-instance_method
170
+ def create_investigation: (
171
+ detector_id: ::String,
172
+ trigger_prompt: ::String,
173
+ ?client_token: ::String
174
+ ) -> _CreateInvestigationResponseSuccess
175
+ | (Hash[Symbol, untyped] params, ?Hash[Symbol, untyped] options) -> _CreateInvestigationResponseSuccess
176
+
165
177
  interface _CreateMalwareProtectionPlanResponseSuccess
166
178
  include ::Seahorse::Client::_ResponseSuccess[Types::CreateMalwareProtectionPlanResponse]
167
179
  def malware_protection_plan_id: () -> ::String
@@ -596,6 +608,17 @@ module Aws
596
608
  ) -> _GetIPSetResponseSuccess
597
609
  | (Hash[Symbol, untyped] params, ?Hash[Symbol, untyped] options) -> _GetIPSetResponseSuccess
598
610
 
611
+ interface _GetInvestigationResponseSuccess
612
+ include ::Seahorse::Client::_ResponseSuccess[Types::GetInvestigationResponse]
613
+ def investigation: () -> Types::Investigation
614
+ end
615
+ # https://docs.aws.amazon.com/sdk-for-ruby/v3/api/Aws/GuardDuty/Client.html#get_investigation-instance_method
616
+ def get_investigation: (
617
+ detector_id: ::String,
618
+ investigation_id: ::String
619
+ ) -> _GetInvestigationResponseSuccess
620
+ | (Hash[Symbol, untyped] params, ?Hash[Symbol, untyped] options) -> _GetInvestigationResponseSuccess
621
+
599
622
  interface _GetInvitationsCountResponseSuccess
600
623
  include ::Seahorse::Client::_ResponseSuccess[Types::GetInvitationsCountResponse]
601
624
  def invitations_count: () -> ::Integer
@@ -875,6 +898,23 @@ module Aws
875
898
  ) -> _ListIPSetsResponseSuccess
876
899
  | (Hash[Symbol, untyped] params, ?Hash[Symbol, untyped] options) -> _ListIPSetsResponseSuccess
877
900
 
901
+ interface _ListInvestigationsResponseSuccess
902
+ include ::Seahorse::Client::_ResponseSuccess[Types::ListInvestigationsResponse]
903
+ def investigations: () -> ::Array[Types::InvestigationSummary]
904
+ def next_token: () -> ::String
905
+ end
906
+ # https://docs.aws.amazon.com/sdk-for-ruby/v3/api/Aws/GuardDuty/Client.html#list_investigations-instance_method
907
+ def list_investigations: (
908
+ detector_id: ::String,
909
+ ?sort_criteria: {
910
+ attribute_name: ("START_TIME" | "END_TIME" | "STATUS" | "RISK_LEVEL" | "CONFIDENCE")?,
911
+ order_by: ("ASC" | "DESC")?
912
+ },
913
+ ?max_results: ::Integer,
914
+ ?next_token: ::String
915
+ ) -> _ListInvestigationsResponseSuccess
916
+ | (Hash[Symbol, untyped] params, ?Hash[Symbol, untyped] options) -> _ListInvestigationsResponseSuccess
917
+
878
918
  interface _ListInvitationsResponseSuccess
879
919
  include ::Seahorse::Client::_ResponseSuccess[Types::ListInvitationsResponse]
880
920
  def invitations: () -> ::Array[Types::Invitation]
data/sig/types.rbs CHANGED
@@ -229,6 +229,13 @@ module Aws::GuardDuty
229
229
  SENSITIVE: []
230
230
  end
231
231
 
232
+ class CloudDetails
233
+ attr_accessor provider: ("AWS")
234
+ attr_accessor region: ::String
235
+ attr_accessor account: ::String
236
+ SENSITIVE: []
237
+ end
238
+
232
239
  class CloudTrailConfigurationResult
233
240
  attr_accessor status: ("ENABLED" | "DISABLED")
234
241
  SENSITIVE: []
@@ -421,6 +428,18 @@ module Aws::GuardDuty
421
428
  SENSITIVE: []
422
429
  end
423
430
 
431
+ class CreateInvestigationRequest
432
+ attr_accessor detector_id: ::String
433
+ attr_accessor trigger_prompt: ::String
434
+ attr_accessor client_token: ::String
435
+ SENSITIVE: []
436
+ end
437
+
438
+ class CreateInvestigationResponse
439
+ attr_accessor investigation_id: ::String
440
+ SENSITIVE: []
441
+ end
442
+
424
443
  class CreateMalwareProtectionPlanRequest
425
444
  attr_accessor client_token: ::String
426
445
  attr_accessor role: ::String
@@ -1156,6 +1175,17 @@ module Aws::GuardDuty
1156
1175
  SENSITIVE: []
1157
1176
  end
1158
1177
 
1178
+ class GetInvestigationRequest
1179
+ attr_accessor detector_id: ::String
1180
+ attr_accessor investigation_id: ::String
1181
+ SENSITIVE: []
1182
+ end
1183
+
1184
+ class GetInvestigationResponse
1185
+ attr_accessor investigation: Types::Investigation
1186
+ SENSITIVE: []
1187
+ end
1188
+
1159
1189
  class GetInvitationsCountRequest < Aws::EmptyStructure
1160
1190
  end
1161
1191
 
@@ -1415,6 +1445,48 @@ module Aws::GuardDuty
1415
1445
  SENSITIVE: []
1416
1446
  end
1417
1447
 
1448
+ class Investigation
1449
+ attr_accessor investigation_id: ::String
1450
+ attr_accessor status: ("RUNNING" | "COMPLETED" | "FAILED")
1451
+ attr_accessor trigger_prompt: ::String
1452
+ attr_accessor triggered_by: ::String
1453
+ attr_accessor metadata: Types::InvestigationMetadata
1454
+ attr_accessor cloud: Types::CloudDetails
1455
+ attr_accessor risk_level: ("Info" | "Low" | "Medium" | "High" | "Critical")
1456
+ attr_accessor risk: ::String
1457
+ attr_accessor confidence: ("Unknown" | "Low" | "Medium" | "High")
1458
+ attr_accessor summary: ::String
1459
+ attr_accessor start_time: ::Time
1460
+ attr_accessor end_time: ::Time
1461
+ attr_accessor error: ::String
1462
+ SENSITIVE: []
1463
+ end
1464
+
1465
+ class InvestigationMetadata
1466
+ attr_accessor version: ::String
1467
+ attr_accessor product: Types::Product
1468
+ SENSITIVE: []
1469
+ end
1470
+
1471
+ class InvestigationSortCriteria
1472
+ attr_accessor attribute_name: ("START_TIME" | "END_TIME" | "STATUS" | "RISK_LEVEL" | "CONFIDENCE")
1473
+ attr_accessor order_by: ("ASC" | "DESC")
1474
+ SENSITIVE: []
1475
+ end
1476
+
1477
+ class InvestigationSummary
1478
+ attr_accessor investigation_id: ::String
1479
+ attr_accessor status: ("RUNNING" | "COMPLETED" | "FAILED")
1480
+ attr_accessor trigger_prompt: ::String
1481
+ attr_accessor risk_level: ("Info" | "Low" | "Medium" | "High" | "Critical")
1482
+ attr_accessor confidence: ("Unknown" | "Low" | "Medium" | "High")
1483
+ attr_accessor title: ::String
1484
+ attr_accessor account_id: ::String
1485
+ attr_accessor start_time: ::Time
1486
+ attr_accessor end_time: ::Time
1487
+ SENSITIVE: []
1488
+ end
1489
+
1418
1490
  class Invitation
1419
1491
  attr_accessor account_id: ::String
1420
1492
  attr_accessor invitation_id: ::String
@@ -1644,6 +1716,20 @@ module Aws::GuardDuty
1644
1716
  SENSITIVE: []
1645
1717
  end
1646
1718
 
1719
+ class ListInvestigationsRequest
1720
+ attr_accessor detector_id: ::String
1721
+ attr_accessor sort_criteria: Types::InvestigationSortCriteria
1722
+ attr_accessor max_results: ::Integer
1723
+ attr_accessor next_token: ::String
1724
+ SENSITIVE: []
1725
+ end
1726
+
1727
+ class ListInvestigationsResponse
1728
+ attr_accessor investigations: ::Array[Types::InvestigationSummary]
1729
+ attr_accessor next_token: ::String
1730
+ SENSITIVE: []
1731
+ end
1732
+
1647
1733
  class ListInvitationsRequest
1648
1734
  attr_accessor max_results: ::Integer
1649
1735
  attr_accessor next_token: ::String
@@ -2158,6 +2244,12 @@ module Aws::GuardDuty
2158
2244
  SENSITIVE: []
2159
2245
  end
2160
2246
 
2247
+ class Product
2248
+ attr_accessor name: ::String
2249
+ attr_accessor feature: ::String
2250
+ SENSITIVE: []
2251
+ end
2252
+
2161
2253
  class ProductCode
2162
2254
  attr_accessor code: ::String
2163
2255
  attr_accessor product_type: ::String
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: aws-sdk-guardduty
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.154.0
4
+ version: 1.155.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Amazon Web Services