aws-sdk-detective 1.24.0 → 1.41.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,54 @@
1
+ # frozen_string_literal: true
2
+
3
+ # WARNING ABOUT GENERATED CODE
4
+ #
5
+ # This file is generated. See the contributing guide for more information:
6
+ # https://github.com/aws/aws-sdk-ruby/blob/version-3/CONTRIBUTING.md
7
+ #
8
+ # WARNING ABOUT GENERATED CODE
9
+
10
+ module Aws::Detective
11
+ class EndpointProvider
12
+ def resolve_endpoint(parameters)
13
+ region = parameters.region
14
+ use_dual_stack = parameters.use_dual_stack
15
+ use_fips = parameters.use_fips
16
+ endpoint = parameters.endpoint
17
+ if Aws::Endpoints::Matchers.set?(endpoint)
18
+ if Aws::Endpoints::Matchers.boolean_equals?(use_fips, true)
19
+ raise ArgumentError, "Invalid Configuration: FIPS and custom endpoint are not supported"
20
+ end
21
+ if Aws::Endpoints::Matchers.boolean_equals?(use_dual_stack, true)
22
+ raise ArgumentError, "Invalid Configuration: Dualstack and custom endpoint are not supported"
23
+ end
24
+ return Aws::Endpoints::Endpoint.new(url: endpoint, headers: {}, properties: {})
25
+ end
26
+ if Aws::Endpoints::Matchers.set?(region)
27
+ if (partition_result = Aws::Endpoints::Matchers.aws_partition(region))
28
+ if Aws::Endpoints::Matchers.boolean_equals?(use_fips, true) && Aws::Endpoints::Matchers.boolean_equals?(use_dual_stack, true)
29
+ if Aws::Endpoints::Matchers.boolean_equals?(true, Aws::Endpoints::Matchers.attr(partition_result, "supportsFIPS")) && Aws::Endpoints::Matchers.boolean_equals?(true, Aws::Endpoints::Matchers.attr(partition_result, "supportsDualStack"))
30
+ return Aws::Endpoints::Endpoint.new(url: "https://api.detective-fips.#{region}.#{partition_result['dualStackDnsSuffix']}", headers: {}, properties: {})
31
+ end
32
+ raise ArgumentError, "FIPS and DualStack are enabled, but this partition does not support one or both"
33
+ end
34
+ if Aws::Endpoints::Matchers.boolean_equals?(use_fips, true)
35
+ if Aws::Endpoints::Matchers.boolean_equals?(true, Aws::Endpoints::Matchers.attr(partition_result, "supportsFIPS"))
36
+ return Aws::Endpoints::Endpoint.new(url: "https://api.detective-fips.#{region}.#{partition_result['dnsSuffix']}", headers: {}, properties: {})
37
+ end
38
+ raise ArgumentError, "FIPS is enabled but this partition does not support FIPS"
39
+ end
40
+ if Aws::Endpoints::Matchers.boolean_equals?(use_dual_stack, true)
41
+ if Aws::Endpoints::Matchers.boolean_equals?(true, Aws::Endpoints::Matchers.attr(partition_result, "supportsDualStack"))
42
+ return Aws::Endpoints::Endpoint.new(url: "https://api.detective.#{region}.#{partition_result['dualStackDnsSuffix']}", headers: {}, properties: {})
43
+ end
44
+ raise ArgumentError, "DualStack is enabled but this partition does not support DualStack"
45
+ end
46
+ return Aws::Endpoints::Endpoint.new(url: "https://api.detective.#{region}.#{partition_result['dnsSuffix']}", headers: {}, properties: {})
47
+ end
48
+ end
49
+ raise ArgumentError, "Invalid Configuration: Missing Region"
50
+ raise ArgumentError, 'No endpoint could be resolved'
51
+
52
+ end
53
+ end
54
+ end
@@ -0,0 +1,352 @@
1
+ # frozen_string_literal: true
2
+
3
+ # WARNING ABOUT GENERATED CODE
4
+ #
5
+ # This file is generated. See the contributing guide for more information:
6
+ # https://github.com/aws/aws-sdk-ruby/blob/version-3/CONTRIBUTING.md
7
+ #
8
+ # WARNING ABOUT GENERATED CODE
9
+
10
+
11
+ module Aws::Detective
12
+ # @api private
13
+ module Endpoints
14
+
15
+ class AcceptInvitation
16
+ def self.build(context)
17
+ unless context.config.regional_endpoint
18
+ endpoint = context.config.endpoint.to_s
19
+ end
20
+ Aws::Detective::EndpointParameters.new(
21
+ region: context.config.region,
22
+ use_dual_stack: context.config.use_dualstack_endpoint,
23
+ use_fips: context.config.use_fips_endpoint,
24
+ endpoint: endpoint,
25
+ )
26
+ end
27
+ end
28
+
29
+ class BatchGetGraphMemberDatasources
30
+ def self.build(context)
31
+ unless context.config.regional_endpoint
32
+ endpoint = context.config.endpoint.to_s
33
+ end
34
+ Aws::Detective::EndpointParameters.new(
35
+ region: context.config.region,
36
+ use_dual_stack: context.config.use_dualstack_endpoint,
37
+ use_fips: context.config.use_fips_endpoint,
38
+ endpoint: endpoint,
39
+ )
40
+ end
41
+ end
42
+
43
+ class BatchGetMembershipDatasources
44
+ def self.build(context)
45
+ unless context.config.regional_endpoint
46
+ endpoint = context.config.endpoint.to_s
47
+ end
48
+ Aws::Detective::EndpointParameters.new(
49
+ region: context.config.region,
50
+ use_dual_stack: context.config.use_dualstack_endpoint,
51
+ use_fips: context.config.use_fips_endpoint,
52
+ endpoint: endpoint,
53
+ )
54
+ end
55
+ end
56
+
57
+ class CreateGraph
58
+ def self.build(context)
59
+ unless context.config.regional_endpoint
60
+ endpoint = context.config.endpoint.to_s
61
+ end
62
+ Aws::Detective::EndpointParameters.new(
63
+ region: context.config.region,
64
+ use_dual_stack: context.config.use_dualstack_endpoint,
65
+ use_fips: context.config.use_fips_endpoint,
66
+ endpoint: endpoint,
67
+ )
68
+ end
69
+ end
70
+
71
+ class CreateMembers
72
+ def self.build(context)
73
+ unless context.config.regional_endpoint
74
+ endpoint = context.config.endpoint.to_s
75
+ end
76
+ Aws::Detective::EndpointParameters.new(
77
+ region: context.config.region,
78
+ use_dual_stack: context.config.use_dualstack_endpoint,
79
+ use_fips: context.config.use_fips_endpoint,
80
+ endpoint: endpoint,
81
+ )
82
+ end
83
+ end
84
+
85
+ class DeleteGraph
86
+ def self.build(context)
87
+ unless context.config.regional_endpoint
88
+ endpoint = context.config.endpoint.to_s
89
+ end
90
+ Aws::Detective::EndpointParameters.new(
91
+ region: context.config.region,
92
+ use_dual_stack: context.config.use_dualstack_endpoint,
93
+ use_fips: context.config.use_fips_endpoint,
94
+ endpoint: endpoint,
95
+ )
96
+ end
97
+ end
98
+
99
+ class DeleteMembers
100
+ def self.build(context)
101
+ unless context.config.regional_endpoint
102
+ endpoint = context.config.endpoint.to_s
103
+ end
104
+ Aws::Detective::EndpointParameters.new(
105
+ region: context.config.region,
106
+ use_dual_stack: context.config.use_dualstack_endpoint,
107
+ use_fips: context.config.use_fips_endpoint,
108
+ endpoint: endpoint,
109
+ )
110
+ end
111
+ end
112
+
113
+ class DescribeOrganizationConfiguration
114
+ def self.build(context)
115
+ unless context.config.regional_endpoint
116
+ endpoint = context.config.endpoint.to_s
117
+ end
118
+ Aws::Detective::EndpointParameters.new(
119
+ region: context.config.region,
120
+ use_dual_stack: context.config.use_dualstack_endpoint,
121
+ use_fips: context.config.use_fips_endpoint,
122
+ endpoint: endpoint,
123
+ )
124
+ end
125
+ end
126
+
127
+ class DisableOrganizationAdminAccount
128
+ def self.build(context)
129
+ unless context.config.regional_endpoint
130
+ endpoint = context.config.endpoint.to_s
131
+ end
132
+ Aws::Detective::EndpointParameters.new(
133
+ region: context.config.region,
134
+ use_dual_stack: context.config.use_dualstack_endpoint,
135
+ use_fips: context.config.use_fips_endpoint,
136
+ endpoint: endpoint,
137
+ )
138
+ end
139
+ end
140
+
141
+ class DisassociateMembership
142
+ def self.build(context)
143
+ unless context.config.regional_endpoint
144
+ endpoint = context.config.endpoint.to_s
145
+ end
146
+ Aws::Detective::EndpointParameters.new(
147
+ region: context.config.region,
148
+ use_dual_stack: context.config.use_dualstack_endpoint,
149
+ use_fips: context.config.use_fips_endpoint,
150
+ endpoint: endpoint,
151
+ )
152
+ end
153
+ end
154
+
155
+ class EnableOrganizationAdminAccount
156
+ def self.build(context)
157
+ unless context.config.regional_endpoint
158
+ endpoint = context.config.endpoint.to_s
159
+ end
160
+ Aws::Detective::EndpointParameters.new(
161
+ region: context.config.region,
162
+ use_dual_stack: context.config.use_dualstack_endpoint,
163
+ use_fips: context.config.use_fips_endpoint,
164
+ endpoint: endpoint,
165
+ )
166
+ end
167
+ end
168
+
169
+ class GetMembers
170
+ def self.build(context)
171
+ unless context.config.regional_endpoint
172
+ endpoint = context.config.endpoint.to_s
173
+ end
174
+ Aws::Detective::EndpointParameters.new(
175
+ region: context.config.region,
176
+ use_dual_stack: context.config.use_dualstack_endpoint,
177
+ use_fips: context.config.use_fips_endpoint,
178
+ endpoint: endpoint,
179
+ )
180
+ end
181
+ end
182
+
183
+ class ListDatasourcePackages
184
+ def self.build(context)
185
+ unless context.config.regional_endpoint
186
+ endpoint = context.config.endpoint.to_s
187
+ end
188
+ Aws::Detective::EndpointParameters.new(
189
+ region: context.config.region,
190
+ use_dual_stack: context.config.use_dualstack_endpoint,
191
+ use_fips: context.config.use_fips_endpoint,
192
+ endpoint: endpoint,
193
+ )
194
+ end
195
+ end
196
+
197
+ class ListGraphs
198
+ def self.build(context)
199
+ unless context.config.regional_endpoint
200
+ endpoint = context.config.endpoint.to_s
201
+ end
202
+ Aws::Detective::EndpointParameters.new(
203
+ region: context.config.region,
204
+ use_dual_stack: context.config.use_dualstack_endpoint,
205
+ use_fips: context.config.use_fips_endpoint,
206
+ endpoint: endpoint,
207
+ )
208
+ end
209
+ end
210
+
211
+ class ListInvitations
212
+ def self.build(context)
213
+ unless context.config.regional_endpoint
214
+ endpoint = context.config.endpoint.to_s
215
+ end
216
+ Aws::Detective::EndpointParameters.new(
217
+ region: context.config.region,
218
+ use_dual_stack: context.config.use_dualstack_endpoint,
219
+ use_fips: context.config.use_fips_endpoint,
220
+ endpoint: endpoint,
221
+ )
222
+ end
223
+ end
224
+
225
+ class ListMembers
226
+ def self.build(context)
227
+ unless context.config.regional_endpoint
228
+ endpoint = context.config.endpoint.to_s
229
+ end
230
+ Aws::Detective::EndpointParameters.new(
231
+ region: context.config.region,
232
+ use_dual_stack: context.config.use_dualstack_endpoint,
233
+ use_fips: context.config.use_fips_endpoint,
234
+ endpoint: endpoint,
235
+ )
236
+ end
237
+ end
238
+
239
+ class ListOrganizationAdminAccounts
240
+ def self.build(context)
241
+ unless context.config.regional_endpoint
242
+ endpoint = context.config.endpoint.to_s
243
+ end
244
+ Aws::Detective::EndpointParameters.new(
245
+ region: context.config.region,
246
+ use_dual_stack: context.config.use_dualstack_endpoint,
247
+ use_fips: context.config.use_fips_endpoint,
248
+ endpoint: endpoint,
249
+ )
250
+ end
251
+ end
252
+
253
+ class ListTagsForResource
254
+ def self.build(context)
255
+ unless context.config.regional_endpoint
256
+ endpoint = context.config.endpoint.to_s
257
+ end
258
+ Aws::Detective::EndpointParameters.new(
259
+ region: context.config.region,
260
+ use_dual_stack: context.config.use_dualstack_endpoint,
261
+ use_fips: context.config.use_fips_endpoint,
262
+ endpoint: endpoint,
263
+ )
264
+ end
265
+ end
266
+
267
+ class RejectInvitation
268
+ def self.build(context)
269
+ unless context.config.regional_endpoint
270
+ endpoint = context.config.endpoint.to_s
271
+ end
272
+ Aws::Detective::EndpointParameters.new(
273
+ region: context.config.region,
274
+ use_dual_stack: context.config.use_dualstack_endpoint,
275
+ use_fips: context.config.use_fips_endpoint,
276
+ endpoint: endpoint,
277
+ )
278
+ end
279
+ end
280
+
281
+ class StartMonitoringMember
282
+ def self.build(context)
283
+ unless context.config.regional_endpoint
284
+ endpoint = context.config.endpoint.to_s
285
+ end
286
+ Aws::Detective::EndpointParameters.new(
287
+ region: context.config.region,
288
+ use_dual_stack: context.config.use_dualstack_endpoint,
289
+ use_fips: context.config.use_fips_endpoint,
290
+ endpoint: endpoint,
291
+ )
292
+ end
293
+ end
294
+
295
+ class TagResource
296
+ def self.build(context)
297
+ unless context.config.regional_endpoint
298
+ endpoint = context.config.endpoint.to_s
299
+ end
300
+ Aws::Detective::EndpointParameters.new(
301
+ region: context.config.region,
302
+ use_dual_stack: context.config.use_dualstack_endpoint,
303
+ use_fips: context.config.use_fips_endpoint,
304
+ endpoint: endpoint,
305
+ )
306
+ end
307
+ end
308
+
309
+ class UntagResource
310
+ def self.build(context)
311
+ unless context.config.regional_endpoint
312
+ endpoint = context.config.endpoint.to_s
313
+ end
314
+ Aws::Detective::EndpointParameters.new(
315
+ region: context.config.region,
316
+ use_dual_stack: context.config.use_dualstack_endpoint,
317
+ use_fips: context.config.use_fips_endpoint,
318
+ endpoint: endpoint,
319
+ )
320
+ end
321
+ end
322
+
323
+ class UpdateDatasourcePackages
324
+ def self.build(context)
325
+ unless context.config.regional_endpoint
326
+ endpoint = context.config.endpoint.to_s
327
+ end
328
+ Aws::Detective::EndpointParameters.new(
329
+ region: context.config.region,
330
+ use_dual_stack: context.config.use_dualstack_endpoint,
331
+ use_fips: context.config.use_fips_endpoint,
332
+ endpoint: endpoint,
333
+ )
334
+ end
335
+ end
336
+
337
+ class UpdateOrganizationConfiguration
338
+ def self.build(context)
339
+ unless context.config.regional_endpoint
340
+ endpoint = context.config.endpoint.to_s
341
+ end
342
+ Aws::Detective::EndpointParameters.new(
343
+ region: context.config.region,
344
+ use_dual_stack: context.config.use_dualstack_endpoint,
345
+ use_fips: context.config.use_fips_endpoint,
346
+ endpoint: endpoint,
347
+ )
348
+ end
349
+ end
350
+
351
+ end
352
+ end
@@ -27,10 +27,12 @@ module Aws::Detective
27
27
  # See {Seahorse::Client::RequestContext} for more information.
28
28
  #
29
29
  # ## Error Classes
30
+ # * {AccessDeniedException}
30
31
  # * {ConflictException}
31
32
  # * {InternalServerException}
32
33
  # * {ResourceNotFoundException}
33
34
  # * {ServiceQuotaExceededException}
35
+ # * {TooManyRequestsException}
34
36
  # * {ValidationException}
35
37
  #
36
38
  # Additionally, error classes are dynamically generated for service errors based on the error code
@@ -39,6 +41,41 @@ module Aws::Detective
39
41
 
40
42
  extend Aws::Errors::DynamicErrors
41
43
 
44
+ class AccessDeniedException < ServiceError
45
+
46
+ # @param [Seahorse::Client::RequestContext] context
47
+ # @param [String] message
48
+ # @param [Aws::Detective::Types::AccessDeniedException] data
49
+ def initialize(context, message, data = Aws::EmptyStructure.new)
50
+ super(context, message, data)
51
+ end
52
+
53
+ # @return [String]
54
+ def message
55
+ @message || @data[:message]
56
+ end
57
+
58
+ # @return [String]
59
+ def error_code
60
+ @data[:error_code]
61
+ end
62
+
63
+ # @return [String]
64
+ def error_code_reason
65
+ @data[:error_code_reason]
66
+ end
67
+
68
+ # @return [String]
69
+ def sub_error_code
70
+ @data[:sub_error_code]
71
+ end
72
+
73
+ # @return [String]
74
+ def sub_error_code_reason
75
+ @data[:sub_error_code_reason]
76
+ end
77
+ end
78
+
42
79
  class ConflictException < ServiceError
43
80
 
44
81
  # @param [Seahorse::Client::RequestContext] context
@@ -97,6 +134,26 @@ module Aws::Detective
97
134
  def message
98
135
  @message || @data[:message]
99
136
  end
137
+
138
+ # @return [String]
139
+ def resources
140
+ @data[:resources]
141
+ end
142
+ end
143
+
144
+ class TooManyRequestsException < ServiceError
145
+
146
+ # @param [Seahorse::Client::RequestContext] context
147
+ # @param [String] message
148
+ # @param [Aws::Detective::Types::TooManyRequestsException] data
149
+ def initialize(context, message, data = Aws::EmptyStructure.new)
150
+ super(context, message, data)
151
+ end
152
+
153
+ # @return [String]
154
+ def message
155
+ @message || @data[:message]
156
+ end
100
157
  end
101
158
 
102
159
  class ValidationException < ServiceError
@@ -112,6 +169,16 @@ module Aws::Detective
112
169
  def message
113
170
  @message || @data[:message]
114
171
  end
172
+
173
+ # @return [String]
174
+ def error_code
175
+ @data[:error_code]
176
+ end
177
+
178
+ # @return [String]
179
+ def error_code_reason
180
+ @data[:error_code_reason]
181
+ end
115
182
  end
116
183
 
117
184
  end
@@ -0,0 +1,116 @@
1
+ # frozen_string_literal: true
2
+
3
+ # WARNING ABOUT GENERATED CODE
4
+ #
5
+ # This file is generated. See the contributing guide for more information:
6
+ # https://github.com/aws/aws-sdk-ruby/blob/version-3/CONTRIBUTING.md
7
+ #
8
+ # WARNING ABOUT GENERATED CODE
9
+
10
+
11
+ module Aws::Detective
12
+ module Plugins
13
+ class Endpoints < Seahorse::Client::Plugin
14
+ option(
15
+ :endpoint_provider,
16
+ doc_type: 'Aws::Detective::EndpointProvider',
17
+ docstring: 'The endpoint provider used to resolve endpoints. Any '\
18
+ 'object that responds to `#resolve_endpoint(parameters)` '\
19
+ 'where `parameters` is a Struct similar to '\
20
+ '`Aws::Detective::EndpointParameters`'
21
+ ) do |cfg|
22
+ Aws::Detective::EndpointProvider.new
23
+ end
24
+
25
+ # @api private
26
+ class Handler < Seahorse::Client::Handler
27
+ def call(context)
28
+ # If endpoint was discovered, do not resolve or apply the endpoint.
29
+ unless context[:discovered_endpoint]
30
+ params = parameters_for_operation(context)
31
+ endpoint = context.config.endpoint_provider.resolve_endpoint(params)
32
+
33
+ context.http_request.endpoint = endpoint.url
34
+ apply_endpoint_headers(context, endpoint.headers)
35
+ end
36
+
37
+ context[:endpoint_params] = params
38
+ context[:auth_scheme] =
39
+ Aws::Endpoints.resolve_auth_scheme(context, endpoint)
40
+
41
+ @handler.call(context)
42
+ end
43
+
44
+ private
45
+
46
+ def apply_endpoint_headers(context, headers)
47
+ headers.each do |key, values|
48
+ value = values
49
+ .compact
50
+ .map { |s| Seahorse::Util.escape_header_list_string(s.to_s) }
51
+ .join(',')
52
+
53
+ context.http_request.headers[key] = value
54
+ end
55
+ end
56
+
57
+ def parameters_for_operation(context)
58
+ case context.operation_name
59
+ when :accept_invitation
60
+ Aws::Detective::Endpoints::AcceptInvitation.build(context)
61
+ when :batch_get_graph_member_datasources
62
+ Aws::Detective::Endpoints::BatchGetGraphMemberDatasources.build(context)
63
+ when :batch_get_membership_datasources
64
+ Aws::Detective::Endpoints::BatchGetMembershipDatasources.build(context)
65
+ when :create_graph
66
+ Aws::Detective::Endpoints::CreateGraph.build(context)
67
+ when :create_members
68
+ Aws::Detective::Endpoints::CreateMembers.build(context)
69
+ when :delete_graph
70
+ Aws::Detective::Endpoints::DeleteGraph.build(context)
71
+ when :delete_members
72
+ Aws::Detective::Endpoints::DeleteMembers.build(context)
73
+ when :describe_organization_configuration
74
+ Aws::Detective::Endpoints::DescribeOrganizationConfiguration.build(context)
75
+ when :disable_organization_admin_account
76
+ Aws::Detective::Endpoints::DisableOrganizationAdminAccount.build(context)
77
+ when :disassociate_membership
78
+ Aws::Detective::Endpoints::DisassociateMembership.build(context)
79
+ when :enable_organization_admin_account
80
+ Aws::Detective::Endpoints::EnableOrganizationAdminAccount.build(context)
81
+ when :get_members
82
+ Aws::Detective::Endpoints::GetMembers.build(context)
83
+ when :list_datasource_packages
84
+ Aws::Detective::Endpoints::ListDatasourcePackages.build(context)
85
+ when :list_graphs
86
+ Aws::Detective::Endpoints::ListGraphs.build(context)
87
+ when :list_invitations
88
+ Aws::Detective::Endpoints::ListInvitations.build(context)
89
+ when :list_members
90
+ Aws::Detective::Endpoints::ListMembers.build(context)
91
+ when :list_organization_admin_accounts
92
+ Aws::Detective::Endpoints::ListOrganizationAdminAccounts.build(context)
93
+ when :list_tags_for_resource
94
+ Aws::Detective::Endpoints::ListTagsForResource.build(context)
95
+ when :reject_invitation
96
+ Aws::Detective::Endpoints::RejectInvitation.build(context)
97
+ when :start_monitoring_member
98
+ Aws::Detective::Endpoints::StartMonitoringMember.build(context)
99
+ when :tag_resource
100
+ Aws::Detective::Endpoints::TagResource.build(context)
101
+ when :untag_resource
102
+ Aws::Detective::Endpoints::UntagResource.build(context)
103
+ when :update_datasource_packages
104
+ Aws::Detective::Endpoints::UpdateDatasourcePackages.build(context)
105
+ when :update_organization_configuration
106
+ Aws::Detective::Endpoints::UpdateOrganizationConfiguration.build(context)
107
+ end
108
+ end
109
+ end
110
+
111
+ def add_handlers(handlers, _config)
112
+ handlers.add(Handler, step: :build, priority: 75)
113
+ end
114
+ end
115
+ end
116
+ end