aws-sdk-guardduty 1.153.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: f6adcc24edb8288ec2a463559ce6322630686396de0fc99c1cdbdda4054d63bb
4
- data.tar.gz: d23a697f2f89452fb21ed7e0723895483a55ef02e1cb8545507b6bde634e312b
3
+ metadata.gz: be0ea6000a8150d0e4e7f4b509af744c53a4bbf8d85390c4e129374e27b335e4
4
+ data.tar.gz: c3058413d6ece21d3556cbd842c70aa40ac61c4c550dcb8b872b2d8229f669ef
5
5
  SHA512:
6
- metadata.gz: c523d3a7e9ef6a92c06ad91e2aba0b46ccf4c7cd80d3e1b5704914b4a74d77d3325ec31404f7e68b493ab29ba9a5d3c05b20bb71c5216170614111fae62a411f
7
- data.tar.gz: 1cc71c945575b1e223b8f2b3f9b07debfd348729bd75a13e93d64d897bc1cd53e538a06d1b810b7747c9b0efa353571aa8bbd5340bd5a36aa91338e299a2a403
6
+ metadata.gz: 475a9bf4c9e3e9f80c89fa17a6c63ae27310d7bc4fde116bea40b7b3d69724dca8db06e36b771525f47ad7d50fea555e07dfe2ca4363f9dc57edd1419a1458e9
7
+ data.tar.gz: cc999e46310471846a386887e7a6b176baf7f3f8be6f145cd5b3a1b36756594316c180f6d130711e748ae63d1a4a057a73602677a38da676d940e8cbaa716ea1
data/CHANGELOG.md CHANGED
@@ -1,6 +1,16 @@
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
+
9
+ 1.154.0 (2026-06-04)
10
+ ------------------
11
+
12
+ * Feature - Remove unsupported RDS field for filter
13
+
4
14
  1.153.0 (2026-06-02)
5
15
  ------------------
6
16
 
data/VERSION CHANGED
@@ -1 +1 @@
1
- 1.153.0
1
+ 1.155.0
@@ -764,8 +764,6 @@ module Aws::GuardDuty
764
764
  #
765
765
  # Type: Timestamp in Unix Epoch millisecond format. Ex: 1486685375000
766
766
  #
767
- # * description
768
- #
769
767
  # * id
770
768
  #
771
769
  # * partition
@@ -1100,10 +1098,6 @@ module Aws::GuardDuty
1100
1098
  #
1101
1099
  # * resource.rdsDbInstanceDetails.publiclyAccessible
1102
1100
  #
1103
- # * resource.rdsDbInstanceDetails.tags.key
1104
- #
1105
- # * resource.rdsDbInstanceDetails.tags.value
1106
- #
1107
1101
  # * resource.rdsDbInstanceDetails.vpcId
1108
1102
  #
1109
1103
  # * resource.rdsDbInstanceDetails.vpcSecurityGroups.status
@@ -1202,8 +1196,6 @@ module Aws::GuardDuty
1202
1196
  #
1203
1197
  # * service.action.actionType
1204
1198
  #
1205
- # * service.action.awsApiCallAction.affectedResources
1206
- #
1207
1199
  # * service.action.awsApiCallAction.api
1208
1200
  #
1209
1201
  # * service.action.awsApiCallAction.callerType
@@ -1492,10 +1484,6 @@ module Aws::GuardDuty
1492
1484
  #
1493
1485
  # * service.count
1494
1486
  #
1495
- # * service.detection.anomaly.profiles
1496
- #
1497
- # * service.detection.anomaly.unusual.behavior
1498
- #
1499
1487
  # * service.detection.sequence.actors.id
1500
1488
  #
1501
1489
  # * service.detection.sequence.actors.process.name
@@ -2069,8 +2057,6 @@ module Aws::GuardDuty
2069
2057
  # For more information, see [Findings severity levels][2] in the
2070
2058
  # *Amazon GuardDuty User Guide*.
2071
2059
  #
2072
- # * title
2073
- #
2074
2060
  # * type
2075
2061
  #
2076
2062
  # * updatedAt
@@ -2221,6 +2207,93 @@ module Aws::GuardDuty
2221
2207
  req.send_request(options)
2222
2208
  end
2223
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
+
2224
2297
  # Creates a new Malware Protection plan for the protected resource.
2225
2298
  #
2226
2299
  # When you create a Malware Protection plan, the Amazon Web Services
@@ -4673,6 +4746,73 @@ module Aws::GuardDuty
4673
4746
  req.send_request(options)
4674
4747
  end
4675
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
+
4676
4816
  # Returns the count of all GuardDuty membership invitations that were
4677
4817
  # sent to the current member account except the currently accepted
4678
4818
  # invitation.
@@ -5976,6 +6116,86 @@ module Aws::GuardDuty
5976
6116
  req.send_request(options)
5977
6117
  end
5978
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
+
5979
6199
  # Lists all GuardDuty membership invitations that were sent to the
5980
6200
  # current Amazon Web Services account.
5981
6201
  #
@@ -6949,8 +7169,6 @@ module Aws::GuardDuty
6949
7169
  #
6950
7170
  # Type: Timestamp in Unix Epoch millisecond format. Ex: 1486685375000
6951
7171
  #
6952
- # * description
6953
- #
6954
7172
  # * id
6955
7173
  #
6956
7174
  # * partition
@@ -7285,10 +7503,6 @@ module Aws::GuardDuty
7285
7503
  #
7286
7504
  # * resource.rdsDbInstanceDetails.publiclyAccessible
7287
7505
  #
7288
- # * resource.rdsDbInstanceDetails.tags.key
7289
- #
7290
- # * resource.rdsDbInstanceDetails.tags.value
7291
- #
7292
7506
  # * resource.rdsDbInstanceDetails.vpcId
7293
7507
  #
7294
7508
  # * resource.rdsDbInstanceDetails.vpcSecurityGroups.status
@@ -7387,8 +7601,6 @@ module Aws::GuardDuty
7387
7601
  #
7388
7602
  # * service.action.actionType
7389
7603
  #
7390
- # * service.action.awsApiCallAction.affectedResources
7391
- #
7392
7604
  # * service.action.awsApiCallAction.api
7393
7605
  #
7394
7606
  # * service.action.awsApiCallAction.callerType
@@ -7677,10 +7889,6 @@ module Aws::GuardDuty
7677
7889
  #
7678
7890
  # * service.count
7679
7891
  #
7680
- # * service.detection.anomaly.profiles
7681
- #
7682
- # * service.detection.anomaly.unusual.behavior
7683
- #
7684
7892
  # * service.detection.sequence.actors.id
7685
7893
  #
7686
7894
  # * service.detection.sequence.actors.process.name
@@ -8254,8 +8462,6 @@ module Aws::GuardDuty
8254
8462
  # For more information, see [Findings severity levels][2] in the
8255
8463
  # *Amazon GuardDuty User Guide*.
8256
8464
  #
8257
- # * title
8258
- #
8259
8465
  # * type
8260
8466
  #
8261
8467
  # * updatedAt
@@ -8972,7 +9178,7 @@ module Aws::GuardDuty
8972
9178
  tracer: tracer
8973
9179
  )
8974
9180
  context[:gem_name] = 'aws-sdk-guardduty'
8975
- context[:gem_version] = '1.153.0'
9181
+ context[:gem_version] = '1.155.0'
8976
9182
  Seahorse::Client::Request.new(handlers, context)
8977
9183
  end
8978
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"