aws-sdk-lakeformation 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA1:
3
+ metadata.gz: b4ee345eb73140d7f06fef2cd02cc68179dbf7db
4
+ data.tar.gz: a12645d60fd2853dd44a6494aab72812cb2f503b
5
+ SHA512:
6
+ metadata.gz: 465b06d17e36fc4f878424ca139e69c474fa5e3647076835f9c4426b138aee4a9e5556ae6807d21080489173d9ba3fc09e7997fd75bfcf2a38f819bb16147665
7
+ data.tar.gz: c400ded46f3003bac12e69823b4bdc4e6fde54f8c0e92a74ba52ec7f1faadd18ba4428b1547550d5d1f47a5e992007bcf1b80cc65049a920f8378cb8db4d7d77
@@ -0,0 +1,47 @@
1
+ # WARNING ABOUT GENERATED CODE
2
+ #
3
+ # This file is generated. See the contributing guide for more information:
4
+ # https://github.com/aws/aws-sdk-ruby/blob/master/CONTRIBUTING.md
5
+ #
6
+ # WARNING ABOUT GENERATED CODE
7
+
8
+ require 'aws-sdk-core'
9
+ require 'aws-sigv4'
10
+
11
+ require_relative 'aws-sdk-lakeformation/types'
12
+ require_relative 'aws-sdk-lakeformation/client_api'
13
+ require_relative 'aws-sdk-lakeformation/client'
14
+ require_relative 'aws-sdk-lakeformation/errors'
15
+ require_relative 'aws-sdk-lakeformation/resource'
16
+ require_relative 'aws-sdk-lakeformation/customizations'
17
+
18
+ # This module provides support for AWS Lake Formation. This module is available in the
19
+ # `aws-sdk-lakeformation` gem.
20
+ #
21
+ # # Client
22
+ #
23
+ # The {Client} class provides one method for each API operation. Operation
24
+ # methods each accept a hash of request parameters and return a response
25
+ # structure.
26
+ #
27
+ # See {Client} for more information.
28
+ #
29
+ # # Errors
30
+ #
31
+ # Errors returned from AWS Lake Formation all
32
+ # extend {Errors::ServiceError}.
33
+ #
34
+ # begin
35
+ # # do stuff
36
+ # rescue Aws::LakeFormation::Errors::ServiceError
37
+ # # rescues all service API errors
38
+ # end
39
+ #
40
+ # See {Errors} for more information.
41
+ #
42
+ # @service
43
+ module Aws::LakeFormation
44
+
45
+ GEM_VERSION = '1.0.0'
46
+
47
+ end
@@ -0,0 +1,1069 @@
1
+ # WARNING ABOUT GENERATED CODE
2
+ #
3
+ # This file is generated. See the contributing guide for more information:
4
+ # https://github.com/aws/aws-sdk-ruby/blob/master/CONTRIBUTING.md
5
+ #
6
+ # WARNING ABOUT GENERATED CODE
7
+
8
+ require 'seahorse/client/plugins/content_length.rb'
9
+ require 'aws-sdk-core/plugins/credentials_configuration.rb'
10
+ require 'aws-sdk-core/plugins/logging.rb'
11
+ require 'aws-sdk-core/plugins/param_converter.rb'
12
+ require 'aws-sdk-core/plugins/param_validator.rb'
13
+ require 'aws-sdk-core/plugins/user_agent.rb'
14
+ require 'aws-sdk-core/plugins/helpful_socket_errors.rb'
15
+ require 'aws-sdk-core/plugins/retry_errors.rb'
16
+ require 'aws-sdk-core/plugins/global_configuration.rb'
17
+ require 'aws-sdk-core/plugins/regional_endpoint.rb'
18
+ require 'aws-sdk-core/plugins/endpoint_discovery.rb'
19
+ require 'aws-sdk-core/plugins/endpoint_pattern.rb'
20
+ require 'aws-sdk-core/plugins/response_paging.rb'
21
+ require 'aws-sdk-core/plugins/stub_responses.rb'
22
+ require 'aws-sdk-core/plugins/idempotency_token.rb'
23
+ require 'aws-sdk-core/plugins/jsonvalue_converter.rb'
24
+ require 'aws-sdk-core/plugins/client_metrics_plugin.rb'
25
+ require 'aws-sdk-core/plugins/client_metrics_send_plugin.rb'
26
+ require 'aws-sdk-core/plugins/transfer_encoding.rb'
27
+ require 'aws-sdk-core/plugins/signature_v4.rb'
28
+ require 'aws-sdk-core/plugins/protocols/json_rpc.rb'
29
+
30
+ Aws::Plugins::GlobalConfiguration.add_identifier(:lakeformation)
31
+
32
+ module Aws::LakeFormation
33
+ class Client < Seahorse::Client::Base
34
+
35
+ include Aws::ClientStubs
36
+
37
+ @identifier = :lakeformation
38
+
39
+ set_api(ClientApi::API)
40
+
41
+ add_plugin(Seahorse::Client::Plugins::ContentLength)
42
+ add_plugin(Aws::Plugins::CredentialsConfiguration)
43
+ add_plugin(Aws::Plugins::Logging)
44
+ add_plugin(Aws::Plugins::ParamConverter)
45
+ add_plugin(Aws::Plugins::ParamValidator)
46
+ add_plugin(Aws::Plugins::UserAgent)
47
+ add_plugin(Aws::Plugins::HelpfulSocketErrors)
48
+ add_plugin(Aws::Plugins::RetryErrors)
49
+ add_plugin(Aws::Plugins::GlobalConfiguration)
50
+ add_plugin(Aws::Plugins::RegionalEndpoint)
51
+ add_plugin(Aws::Plugins::EndpointDiscovery)
52
+ add_plugin(Aws::Plugins::EndpointPattern)
53
+ add_plugin(Aws::Plugins::ResponsePaging)
54
+ add_plugin(Aws::Plugins::StubResponses)
55
+ add_plugin(Aws::Plugins::IdempotencyToken)
56
+ add_plugin(Aws::Plugins::JsonvalueConverter)
57
+ add_plugin(Aws::Plugins::ClientMetricsPlugin)
58
+ add_plugin(Aws::Plugins::ClientMetricsSendPlugin)
59
+ add_plugin(Aws::Plugins::TransferEncoding)
60
+ add_plugin(Aws::Plugins::SignatureV4)
61
+ add_plugin(Aws::Plugins::Protocols::JsonRpc)
62
+
63
+ # @overload initialize(options)
64
+ # @param [Hash] options
65
+ # @option options [required, Aws::CredentialProvider] :credentials
66
+ # Your AWS credentials. This can be an instance of any one of the
67
+ # following classes:
68
+ #
69
+ # * `Aws::Credentials` - Used for configuring static, non-refreshing
70
+ # credentials.
71
+ #
72
+ # * `Aws::InstanceProfileCredentials` - Used for loading credentials
73
+ # from an EC2 IMDS on an EC2 instance.
74
+ #
75
+ # * `Aws::SharedCredentials` - Used for loading credentials from a
76
+ # shared file, such as `~/.aws/config`.
77
+ #
78
+ # * `Aws::AssumeRoleCredentials` - Used when you need to assume a role.
79
+ #
80
+ # When `:credentials` are not configured directly, the following
81
+ # locations will be searched for credentials:
82
+ #
83
+ # * `Aws.config[:credentials]`
84
+ # * The `:access_key_id`, `:secret_access_key`, and `:session_token` options.
85
+ # * ENV['AWS_ACCESS_KEY_ID'], ENV['AWS_SECRET_ACCESS_KEY']
86
+ # * `~/.aws/credentials`
87
+ # * `~/.aws/config`
88
+ # * EC2 IMDS instance profile - When used by default, the timeouts are
89
+ # very aggressive. Construct and pass an instance of
90
+ # `Aws::InstanceProfileCredentails` to enable retries and extended
91
+ # timeouts.
92
+ #
93
+ # @option options [required, String] :region
94
+ # The AWS region to connect to. The configured `:region` is
95
+ # used to determine the service `:endpoint`. When not passed,
96
+ # a default `:region` is search for in the following locations:
97
+ #
98
+ # * `Aws.config[:region]`
99
+ # * `ENV['AWS_REGION']`
100
+ # * `ENV['AMAZON_REGION']`
101
+ # * `ENV['AWS_DEFAULT_REGION']`
102
+ # * `~/.aws/credentials`
103
+ # * `~/.aws/config`
104
+ #
105
+ # @option options [String] :access_key_id
106
+ #
107
+ # @option options [Boolean] :active_endpoint_cache (false)
108
+ # When set to `true`, a thread polling for endpoints will be running in
109
+ # the background every 60 secs (default). Defaults to `false`.
110
+ #
111
+ # @option options [Boolean] :client_side_monitoring (false)
112
+ # When `true`, client-side metrics will be collected for all API requests from
113
+ # this client.
114
+ #
115
+ # @option options [String] :client_side_monitoring_client_id ("")
116
+ # Allows you to provide an identifier for this client which will be attached to
117
+ # all generated client side metrics. Defaults to an empty string.
118
+ #
119
+ # @option options [String] :client_side_monitoring_host ("127.0.0.1")
120
+ # Allows you to specify the DNS hostname or IPv4 or IPv6 address that the client
121
+ # side monitoring agent is running on, where client metrics will be published via UDP.
122
+ #
123
+ # @option options [Integer] :client_side_monitoring_port (31000)
124
+ # Required for publishing client metrics. The port that the client side monitoring
125
+ # agent is running on, where client metrics will be published via UDP.
126
+ #
127
+ # @option options [Aws::ClientSideMonitoring::Publisher] :client_side_monitoring_publisher (Aws::ClientSideMonitoring::Publisher)
128
+ # Allows you to provide a custom client-side monitoring publisher class. By default,
129
+ # will use the Client Side Monitoring Agent Publisher.
130
+ #
131
+ # @option options [Boolean] :convert_params (true)
132
+ # When `true`, an attempt is made to coerce request parameters into
133
+ # the required types.
134
+ #
135
+ # @option options [Boolean] :disable_host_prefix_injection (false)
136
+ # Set to true to disable SDK automatically adding host prefix
137
+ # to default service endpoint when available.
138
+ #
139
+ # @option options [String] :endpoint
140
+ # The client endpoint is normally constructed from the `:region`
141
+ # option. You should only configure an `:endpoint` when connecting
142
+ # to test endpoints. This should be avalid HTTP(S) URI.
143
+ #
144
+ # @option options [Integer] :endpoint_cache_max_entries (1000)
145
+ # Used for the maximum size limit of the LRU cache storing endpoints data
146
+ # for endpoint discovery enabled operations. Defaults to 1000.
147
+ #
148
+ # @option options [Integer] :endpoint_cache_max_threads (10)
149
+ # Used for the maximum threads in use for polling endpoints to be cached, defaults to 10.
150
+ #
151
+ # @option options [Integer] :endpoint_cache_poll_interval (60)
152
+ # When :endpoint_discovery and :active_endpoint_cache is enabled,
153
+ # Use this option to config the time interval in seconds for making
154
+ # requests fetching endpoints information. Defaults to 60 sec.
155
+ #
156
+ # @option options [Boolean] :endpoint_discovery (false)
157
+ # When set to `true`, endpoint discovery will be enabled for operations when available. Defaults to `false`.
158
+ #
159
+ # @option options [Aws::Log::Formatter] :log_formatter (Aws::Log::Formatter.default)
160
+ # The log formatter.
161
+ #
162
+ # @option options [Symbol] :log_level (:info)
163
+ # The log level to send messages to the `:logger` at.
164
+ #
165
+ # @option options [Logger] :logger
166
+ # The Logger instance to send log messages to. If this option
167
+ # is not set, logging will be disabled.
168
+ #
169
+ # @option options [String] :profile ("default")
170
+ # Used when loading credentials from the shared credentials file
171
+ # at HOME/.aws/credentials. When not specified, 'default' is used.
172
+ #
173
+ # @option options [Float] :retry_base_delay (0.3)
174
+ # The base delay in seconds used by the default backoff function.
175
+ #
176
+ # @option options [Symbol] :retry_jitter (:none)
177
+ # A delay randomiser function used by the default backoff function. Some predefined functions can be referenced by name - :none, :equal, :full, otherwise a Proc that takes and returns a number.
178
+ #
179
+ # @see https://www.awsarchitectureblog.com/2015/03/backoff.html
180
+ #
181
+ # @option options [Integer] :retry_limit (3)
182
+ # The maximum number of times to retry failed requests. Only
183
+ # ~ 500 level server errors and certain ~ 400 level client errors
184
+ # are retried. Generally, these are throttling errors, data
185
+ # checksum errors, networking errors, timeout errors and auth
186
+ # errors from expired credentials.
187
+ #
188
+ # @option options [Integer] :retry_max_delay (0)
189
+ # The maximum number of seconds to delay between retries (0 for no limit) used by the default backoff function.
190
+ #
191
+ # @option options [String] :secret_access_key
192
+ #
193
+ # @option options [String] :session_token
194
+ #
195
+ # @option options [Boolean] :simple_json (false)
196
+ # Disables request parameter conversion, validation, and formatting.
197
+ # Also disable response data type conversions. This option is useful
198
+ # when you want to ensure the highest level of performance by
199
+ # avoiding overhead of walking request parameters and response data
200
+ # structures.
201
+ #
202
+ # When `:simple_json` is enabled, the request parameters hash must
203
+ # be formatted exactly as the DynamoDB API expects.
204
+ #
205
+ # @option options [Boolean] :stub_responses (false)
206
+ # Causes the client to return stubbed responses. By default
207
+ # fake responses are generated and returned. You can specify
208
+ # the response data to return or errors to raise by calling
209
+ # {ClientStubs#stub_responses}. See {ClientStubs} for more information.
210
+ #
211
+ # ** Please note ** When response stubbing is enabled, no HTTP
212
+ # requests are made, and retries are disabled.
213
+ #
214
+ # @option options [Boolean] :validate_params (true)
215
+ # When `true`, request parameters are validated before
216
+ # sending the request.
217
+ #
218
+ # @option options [URI::HTTP,String] :http_proxy A proxy to send
219
+ # requests through. Formatted like 'http://proxy.com:123'.
220
+ #
221
+ # @option options [Float] :http_open_timeout (15) The number of
222
+ # seconds to wait when opening a HTTP session before rasing a
223
+ # `Timeout::Error`.
224
+ #
225
+ # @option options [Integer] :http_read_timeout (60) The default
226
+ # number of seconds to wait for response data. This value can
227
+ # safely be set
228
+ # per-request on the session yeidled by {#session_for}.
229
+ #
230
+ # @option options [Float] :http_idle_timeout (5) The number of
231
+ # seconds a connection is allowed to sit idble before it is
232
+ # considered stale. Stale connections are closed and removed
233
+ # from the pool before making a request.
234
+ #
235
+ # @option options [Float] :http_continue_timeout (1) The number of
236
+ # seconds to wait for a 100-continue response before sending the
237
+ # request body. This option has no effect unless the request has
238
+ # "Expect" header set to "100-continue". Defaults to `nil` which
239
+ # disables this behaviour. This value can safely be set per
240
+ # request on the session yeidled by {#session_for}.
241
+ #
242
+ # @option options [Boolean] :http_wire_trace (false) When `true`,
243
+ # HTTP debug output will be sent to the `:logger`.
244
+ #
245
+ # @option options [Boolean] :ssl_verify_peer (true) When `true`,
246
+ # SSL peer certificates are verified when establishing a
247
+ # connection.
248
+ #
249
+ # @option options [String] :ssl_ca_bundle Full path to the SSL
250
+ # certificate authority bundle file that should be used when
251
+ # verifying peer certificates. If you do not pass
252
+ # `:ssl_ca_bundle` or `:ssl_ca_directory` the the system default
253
+ # will be used if available.
254
+ #
255
+ # @option options [String] :ssl_ca_directory Full path of the
256
+ # directory that contains the unbundled SSL certificate
257
+ # authority files for verifying peer certificates. If you do
258
+ # not pass `:ssl_ca_bundle` or `:ssl_ca_directory` the the
259
+ # system default will be used if available.
260
+ #
261
+ def initialize(*args)
262
+ super
263
+ end
264
+
265
+ # @!group API Operations
266
+
267
+ # Batch operation to grant permissions to the principal.
268
+ #
269
+ # @option params [String] :catalog_id
270
+ # The identifier for the Data Catalog. By default, the account ID. The
271
+ # Data Catalog is the persistent metadata store. It contains database
272
+ # definitions, table definitions, and other control information to
273
+ # manage your AWS Lake Formation environment.
274
+ #
275
+ # @option params [required, Array<Types::BatchPermissionsRequestEntry>] :entries
276
+ # A list of up to 20 entries for resource permissions to be granted by
277
+ # batch operation to the principal.
278
+ #
279
+ # @return [Types::BatchGrantPermissionsResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
280
+ #
281
+ # * {Types::BatchGrantPermissionsResponse#failures #failures} => Array&lt;Types::BatchPermissionsFailureEntry&gt;
282
+ #
283
+ # @example Request syntax with placeholder values
284
+ #
285
+ # resp = client.batch_grant_permissions({
286
+ # catalog_id: "CatalogIdString",
287
+ # entries: [ # required
288
+ # {
289
+ # id: "Identifier", # required
290
+ # principal: {
291
+ # data_lake_principal_identifier: "DataLakePrincipalString",
292
+ # },
293
+ # resource: {
294
+ # catalog: {
295
+ # },
296
+ # database: {
297
+ # name: "NameString", # required
298
+ # },
299
+ # table: {
300
+ # database_name: "NameString", # required
301
+ # name: "NameString", # required
302
+ # },
303
+ # table_with_columns: {
304
+ # database_name: "NameString",
305
+ # name: "NameString",
306
+ # column_names: ["NameString"],
307
+ # column_wildcard: {
308
+ # excluded_column_names: ["NameString"],
309
+ # },
310
+ # },
311
+ # data_location: {
312
+ # resource_arn: "ResourceArnString", # required
313
+ # },
314
+ # },
315
+ # permissions: ["ALL"], # accepts ALL, SELECT, ALTER, DROP, DELETE, INSERT, CREATE_DATABASE, CREATE_TABLE, DATA_LOCATION_ACCESS
316
+ # permissions_with_grant_option: ["ALL"], # accepts ALL, SELECT, ALTER, DROP, DELETE, INSERT, CREATE_DATABASE, CREATE_TABLE, DATA_LOCATION_ACCESS
317
+ # },
318
+ # ],
319
+ # })
320
+ #
321
+ # @example Response structure
322
+ #
323
+ # resp.failures #=> Array
324
+ # resp.failures[0].request_entry.id #=> String
325
+ # resp.failures[0].request_entry.principal.data_lake_principal_identifier #=> String
326
+ # resp.failures[0].request_entry.resource.database.name #=> String
327
+ # resp.failures[0].request_entry.resource.table.database_name #=> String
328
+ # resp.failures[0].request_entry.resource.table.name #=> String
329
+ # resp.failures[0].request_entry.resource.table_with_columns.database_name #=> String
330
+ # resp.failures[0].request_entry.resource.table_with_columns.name #=> String
331
+ # resp.failures[0].request_entry.resource.table_with_columns.column_names #=> Array
332
+ # resp.failures[0].request_entry.resource.table_with_columns.column_names[0] #=> String
333
+ # resp.failures[0].request_entry.resource.table_with_columns.column_wildcard.excluded_column_names #=> Array
334
+ # resp.failures[0].request_entry.resource.table_with_columns.column_wildcard.excluded_column_names[0] #=> String
335
+ # resp.failures[0].request_entry.resource.data_location.resource_arn #=> String
336
+ # resp.failures[0].request_entry.permissions #=> Array
337
+ # resp.failures[0].request_entry.permissions[0] #=> String, one of "ALL", "SELECT", "ALTER", "DROP", "DELETE", "INSERT", "CREATE_DATABASE", "CREATE_TABLE", "DATA_LOCATION_ACCESS"
338
+ # resp.failures[0].request_entry.permissions_with_grant_option #=> Array
339
+ # resp.failures[0].request_entry.permissions_with_grant_option[0] #=> String, one of "ALL", "SELECT", "ALTER", "DROP", "DELETE", "INSERT", "CREATE_DATABASE", "CREATE_TABLE", "DATA_LOCATION_ACCESS"
340
+ # resp.failures[0].error.error_code #=> String
341
+ # resp.failures[0].error.error_message #=> String
342
+ #
343
+ # @see http://docs.aws.amazon.com/goto/WebAPI/lakeformation-2017-03-31/BatchGrantPermissions AWS API Documentation
344
+ #
345
+ # @overload batch_grant_permissions(params = {})
346
+ # @param [Hash] params ({})
347
+ def batch_grant_permissions(params = {}, options = {})
348
+ req = build_request(:batch_grant_permissions, params)
349
+ req.send_request(options)
350
+ end
351
+
352
+ # Batch operation to revoke permissions from the principal.
353
+ #
354
+ # @option params [String] :catalog_id
355
+ # The identifier for the Data Catalog. By default, the account ID. The
356
+ # Data Catalog is the persistent metadata store. It contains database
357
+ # definitions, table definitions, and other control information to
358
+ # manage your AWS Lake Formation environment.
359
+ #
360
+ # @option params [required, Array<Types::BatchPermissionsRequestEntry>] :entries
361
+ # A list of up to 20 entries for resource permissions to be revoked by
362
+ # batch operation to the principal.
363
+ #
364
+ # @return [Types::BatchRevokePermissionsResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
365
+ #
366
+ # * {Types::BatchRevokePermissionsResponse#failures #failures} => Array&lt;Types::BatchPermissionsFailureEntry&gt;
367
+ #
368
+ # @example Request syntax with placeholder values
369
+ #
370
+ # resp = client.batch_revoke_permissions({
371
+ # catalog_id: "CatalogIdString",
372
+ # entries: [ # required
373
+ # {
374
+ # id: "Identifier", # required
375
+ # principal: {
376
+ # data_lake_principal_identifier: "DataLakePrincipalString",
377
+ # },
378
+ # resource: {
379
+ # catalog: {
380
+ # },
381
+ # database: {
382
+ # name: "NameString", # required
383
+ # },
384
+ # table: {
385
+ # database_name: "NameString", # required
386
+ # name: "NameString", # required
387
+ # },
388
+ # table_with_columns: {
389
+ # database_name: "NameString",
390
+ # name: "NameString",
391
+ # column_names: ["NameString"],
392
+ # column_wildcard: {
393
+ # excluded_column_names: ["NameString"],
394
+ # },
395
+ # },
396
+ # data_location: {
397
+ # resource_arn: "ResourceArnString", # required
398
+ # },
399
+ # },
400
+ # permissions: ["ALL"], # accepts ALL, SELECT, ALTER, DROP, DELETE, INSERT, CREATE_DATABASE, CREATE_TABLE, DATA_LOCATION_ACCESS
401
+ # permissions_with_grant_option: ["ALL"], # accepts ALL, SELECT, ALTER, DROP, DELETE, INSERT, CREATE_DATABASE, CREATE_TABLE, DATA_LOCATION_ACCESS
402
+ # },
403
+ # ],
404
+ # })
405
+ #
406
+ # @example Response structure
407
+ #
408
+ # resp.failures #=> Array
409
+ # resp.failures[0].request_entry.id #=> String
410
+ # resp.failures[0].request_entry.principal.data_lake_principal_identifier #=> String
411
+ # resp.failures[0].request_entry.resource.database.name #=> String
412
+ # resp.failures[0].request_entry.resource.table.database_name #=> String
413
+ # resp.failures[0].request_entry.resource.table.name #=> String
414
+ # resp.failures[0].request_entry.resource.table_with_columns.database_name #=> String
415
+ # resp.failures[0].request_entry.resource.table_with_columns.name #=> String
416
+ # resp.failures[0].request_entry.resource.table_with_columns.column_names #=> Array
417
+ # resp.failures[0].request_entry.resource.table_with_columns.column_names[0] #=> String
418
+ # resp.failures[0].request_entry.resource.table_with_columns.column_wildcard.excluded_column_names #=> Array
419
+ # resp.failures[0].request_entry.resource.table_with_columns.column_wildcard.excluded_column_names[0] #=> String
420
+ # resp.failures[0].request_entry.resource.data_location.resource_arn #=> String
421
+ # resp.failures[0].request_entry.permissions #=> Array
422
+ # resp.failures[0].request_entry.permissions[0] #=> String, one of "ALL", "SELECT", "ALTER", "DROP", "DELETE", "INSERT", "CREATE_DATABASE", "CREATE_TABLE", "DATA_LOCATION_ACCESS"
423
+ # resp.failures[0].request_entry.permissions_with_grant_option #=> Array
424
+ # resp.failures[0].request_entry.permissions_with_grant_option[0] #=> String, one of "ALL", "SELECT", "ALTER", "DROP", "DELETE", "INSERT", "CREATE_DATABASE", "CREATE_TABLE", "DATA_LOCATION_ACCESS"
425
+ # resp.failures[0].error.error_code #=> String
426
+ # resp.failures[0].error.error_message #=> String
427
+ #
428
+ # @see http://docs.aws.amazon.com/goto/WebAPI/lakeformation-2017-03-31/BatchRevokePermissions AWS API Documentation
429
+ #
430
+ # @overload batch_revoke_permissions(params = {})
431
+ # @param [Hash] params ({})
432
+ def batch_revoke_permissions(params = {}, options = {})
433
+ req = build_request(:batch_revoke_permissions, params)
434
+ req.send_request(options)
435
+ end
436
+
437
+ # Deregisters the resource as managed by the Data Catalog.
438
+ #
439
+ # When you deregister a path, Lake Formation removes the path from the
440
+ # inline policy attached to your service-linked role.
441
+ #
442
+ # @option params [required, String] :resource_arn
443
+ # The Amazon Resource Name (ARN) of the resource that you want to
444
+ # deregister.
445
+ #
446
+ # @return [Struct] Returns an empty {Seahorse::Client::Response response}.
447
+ #
448
+ # @example Request syntax with placeholder values
449
+ #
450
+ # resp = client.deregister_resource({
451
+ # resource_arn: "ResourceArnString", # required
452
+ # })
453
+ #
454
+ # @see http://docs.aws.amazon.com/goto/WebAPI/lakeformation-2017-03-31/DeregisterResource AWS API Documentation
455
+ #
456
+ # @overload deregister_resource(params = {})
457
+ # @param [Hash] params ({})
458
+ def deregister_resource(params = {}, options = {})
459
+ req = build_request(:deregister_resource, params)
460
+ req.send_request(options)
461
+ end
462
+
463
+ # Retrieves the current data access role for the given resource
464
+ # registered in AWS Lake Formation.
465
+ #
466
+ # @option params [required, String] :resource_arn
467
+ # The resource ARN.
468
+ #
469
+ # @return [Types::DescribeResourceResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
470
+ #
471
+ # * {Types::DescribeResourceResponse#resource_info #resource_info} => Types::ResourceInfo
472
+ #
473
+ # @example Request syntax with placeholder values
474
+ #
475
+ # resp = client.describe_resource({
476
+ # resource_arn: "ResourceArnString", # required
477
+ # })
478
+ #
479
+ # @example Response structure
480
+ #
481
+ # resp.resource_info.resource_arn #=> String
482
+ # resp.resource_info.role_arn #=> String
483
+ # resp.resource_info.last_modified #=> Time
484
+ #
485
+ # @see http://docs.aws.amazon.com/goto/WebAPI/lakeformation-2017-03-31/DescribeResource AWS API Documentation
486
+ #
487
+ # @overload describe_resource(params = {})
488
+ # @param [Hash] params ({})
489
+ def describe_resource(params = {}, options = {})
490
+ req = build_request(:describe_resource, params)
491
+ req.send_request(options)
492
+ end
493
+
494
+ # The AWS Lake Formation principal.
495
+ #
496
+ # @option params [String] :catalog_id
497
+ # The identifier for the Data Catalog. By default, the account ID. The
498
+ # Data Catalog is the persistent metadata store. It contains database
499
+ # definitions, table definitions, and other control information to
500
+ # manage your AWS Lake Formation environment.
501
+ #
502
+ # @return [Types::GetDataLakeSettingsResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
503
+ #
504
+ # * {Types::GetDataLakeSettingsResponse#data_lake_settings #data_lake_settings} => Types::DataLakeSettings
505
+ #
506
+ # @example Request syntax with placeholder values
507
+ #
508
+ # resp = client.get_data_lake_settings({
509
+ # catalog_id: "CatalogIdString",
510
+ # })
511
+ #
512
+ # @example Response structure
513
+ #
514
+ # resp.data_lake_settings.data_lake_admins #=> Array
515
+ # resp.data_lake_settings.data_lake_admins[0].data_lake_principal_identifier #=> String
516
+ # resp.data_lake_settings.create_database_default_permissions #=> Array
517
+ # resp.data_lake_settings.create_database_default_permissions[0].principal.data_lake_principal_identifier #=> String
518
+ # resp.data_lake_settings.create_database_default_permissions[0].permissions #=> Array
519
+ # resp.data_lake_settings.create_database_default_permissions[0].permissions[0] #=> String, one of "ALL", "SELECT", "ALTER", "DROP", "DELETE", "INSERT", "CREATE_DATABASE", "CREATE_TABLE", "DATA_LOCATION_ACCESS"
520
+ # resp.data_lake_settings.create_table_default_permissions #=> Array
521
+ # resp.data_lake_settings.create_table_default_permissions[0].principal.data_lake_principal_identifier #=> String
522
+ # resp.data_lake_settings.create_table_default_permissions[0].permissions #=> Array
523
+ # resp.data_lake_settings.create_table_default_permissions[0].permissions[0] #=> String, one of "ALL", "SELECT", "ALTER", "DROP", "DELETE", "INSERT", "CREATE_DATABASE", "CREATE_TABLE", "DATA_LOCATION_ACCESS"
524
+ #
525
+ # @see http://docs.aws.amazon.com/goto/WebAPI/lakeformation-2017-03-31/GetDataLakeSettings AWS API Documentation
526
+ #
527
+ # @overload get_data_lake_settings(params = {})
528
+ # @param [Hash] params ({})
529
+ def get_data_lake_settings(params = {}, options = {})
530
+ req = build_request(:get_data_lake_settings, params)
531
+ req.send_request(options)
532
+ end
533
+
534
+ # Returns the permissions for a specified table or database resource
535
+ # located at a path in Amazon S3.
536
+ #
537
+ # @option params [String] :catalog_id
538
+ # The identifier for the Data Catalog. By default, the account ID. The
539
+ # Data Catalog is the persistent metadata store. It contains database
540
+ # definitions, table definitions, and other control information to
541
+ # manage your AWS Lake Formation environment.
542
+ #
543
+ # @option params [required, String] :resource_arn
544
+ # The Amazon Resource Name (ARN) of the resource for which you want to
545
+ # get permissions.
546
+ #
547
+ # @option params [String] :next_token
548
+ # A continuation token, if this is not the first call to retrieve this
549
+ # list.
550
+ #
551
+ # @option params [Integer] :max_results
552
+ # The maximum number of results to return.
553
+ #
554
+ # @return [Types::GetEffectivePermissionsForPathResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
555
+ #
556
+ # * {Types::GetEffectivePermissionsForPathResponse#permissions #permissions} => Array&lt;Types::PrincipalResourcePermissions&gt;
557
+ # * {Types::GetEffectivePermissionsForPathResponse#next_token #next_token} => String
558
+ #
559
+ # @example Request syntax with placeholder values
560
+ #
561
+ # resp = client.get_effective_permissions_for_path({
562
+ # catalog_id: "CatalogIdString",
563
+ # resource_arn: "ResourceArnString", # required
564
+ # next_token: "Token",
565
+ # max_results: 1,
566
+ # })
567
+ #
568
+ # @example Response structure
569
+ #
570
+ # resp.permissions #=> Array
571
+ # resp.permissions[0].principal.data_lake_principal_identifier #=> String
572
+ # resp.permissions[0].resource.database.name #=> String
573
+ # resp.permissions[0].resource.table.database_name #=> String
574
+ # resp.permissions[0].resource.table.name #=> String
575
+ # resp.permissions[0].resource.table_with_columns.database_name #=> String
576
+ # resp.permissions[0].resource.table_with_columns.name #=> String
577
+ # resp.permissions[0].resource.table_with_columns.column_names #=> Array
578
+ # resp.permissions[0].resource.table_with_columns.column_names[0] #=> String
579
+ # resp.permissions[0].resource.table_with_columns.column_wildcard.excluded_column_names #=> Array
580
+ # resp.permissions[0].resource.table_with_columns.column_wildcard.excluded_column_names[0] #=> String
581
+ # resp.permissions[0].resource.data_location.resource_arn #=> String
582
+ # resp.permissions[0].permissions #=> Array
583
+ # resp.permissions[0].permissions[0] #=> String, one of "ALL", "SELECT", "ALTER", "DROP", "DELETE", "INSERT", "CREATE_DATABASE", "CREATE_TABLE", "DATA_LOCATION_ACCESS"
584
+ # resp.permissions[0].permissions_with_grant_option #=> Array
585
+ # resp.permissions[0].permissions_with_grant_option[0] #=> String, one of "ALL", "SELECT", "ALTER", "DROP", "DELETE", "INSERT", "CREATE_DATABASE", "CREATE_TABLE", "DATA_LOCATION_ACCESS"
586
+ # resp.next_token #=> String
587
+ #
588
+ # @see http://docs.aws.amazon.com/goto/WebAPI/lakeformation-2017-03-31/GetEffectivePermissionsForPath AWS API Documentation
589
+ #
590
+ # @overload get_effective_permissions_for_path(params = {})
591
+ # @param [Hash] params ({})
592
+ def get_effective_permissions_for_path(params = {}, options = {})
593
+ req = build_request(:get_effective_permissions_for_path, params)
594
+ req.send_request(options)
595
+ end
596
+
597
+ # Grants permissions to the principal to access metadata in the Data
598
+ # Catalog and data organized in underlying data storage such as Amazon
599
+ # S3.
600
+ #
601
+ # For information about permissions, see [Security and Access Control to
602
+ # Metadata and Data][1].
603
+ #
604
+ #
605
+ #
606
+ # [1]: https://docs-aws.amazon.com/michigan/latest/dg/security-data-access.html
607
+ #
608
+ # @option params [String] :catalog_id
609
+ # The identifier for the Data Catalog. By default, the account ID. The
610
+ # Data Catalog is the persistent metadata store. It contains database
611
+ # definitions, table definitions, and other control information to
612
+ # manage your AWS Lake Formation environment.
613
+ #
614
+ # @option params [required, Types::DataLakePrincipal] :principal
615
+ # The principal to be granted the permissions on the resource. Supported
616
+ # principals are IAM users or IAM roles, and they are defined by their
617
+ # principal type and their ARN.
618
+ #
619
+ # Note that if you define a resource with a particular ARN, then later
620
+ # delete, and recreate a resource with that same ARN, the resource
621
+ # maintains the permissions already granted.
622
+ #
623
+ # @option params [required, Types::Resource] :resource
624
+ # The resource to which permissions are to be granted. Resources in AWS
625
+ # Lake Formation are the Data Catalog, databases, and tables.
626
+ #
627
+ # @option params [required, Array<String>] :permissions
628
+ # The permissions granted to the principal on the resource. AWS Lake
629
+ # Formation defines privileges to grant and revoke access to metadata in
630
+ # the Data Catalog and data organized in underlying data storage such as
631
+ # Amazon S3. AWS Lake Formation requires that each principal be
632
+ # authorized to perform a specific task on AWS Lake Formation resources.
633
+ #
634
+ # @option params [Array<String>] :permissions_with_grant_option
635
+ # Indicates a list of the granted permissions that the principal may
636
+ # pass to other users. These permissions may only be a subset of the
637
+ # permissions granted in the `Privileges`.
638
+ #
639
+ # @return [Struct] Returns an empty {Seahorse::Client::Response response}.
640
+ #
641
+ # @example Request syntax with placeholder values
642
+ #
643
+ # resp = client.grant_permissions({
644
+ # catalog_id: "CatalogIdString",
645
+ # principal: { # required
646
+ # data_lake_principal_identifier: "DataLakePrincipalString",
647
+ # },
648
+ # resource: { # required
649
+ # catalog: {
650
+ # },
651
+ # database: {
652
+ # name: "NameString", # required
653
+ # },
654
+ # table: {
655
+ # database_name: "NameString", # required
656
+ # name: "NameString", # required
657
+ # },
658
+ # table_with_columns: {
659
+ # database_name: "NameString",
660
+ # name: "NameString",
661
+ # column_names: ["NameString"],
662
+ # column_wildcard: {
663
+ # excluded_column_names: ["NameString"],
664
+ # },
665
+ # },
666
+ # data_location: {
667
+ # resource_arn: "ResourceArnString", # required
668
+ # },
669
+ # },
670
+ # permissions: ["ALL"], # required, accepts ALL, SELECT, ALTER, DROP, DELETE, INSERT, CREATE_DATABASE, CREATE_TABLE, DATA_LOCATION_ACCESS
671
+ # permissions_with_grant_option: ["ALL"], # accepts ALL, SELECT, ALTER, DROP, DELETE, INSERT, CREATE_DATABASE, CREATE_TABLE, DATA_LOCATION_ACCESS
672
+ # })
673
+ #
674
+ # @see http://docs.aws.amazon.com/goto/WebAPI/lakeformation-2017-03-31/GrantPermissions AWS API Documentation
675
+ #
676
+ # @overload grant_permissions(params = {})
677
+ # @param [Hash] params ({})
678
+ def grant_permissions(params = {}, options = {})
679
+ req = build_request(:grant_permissions, params)
680
+ req.send_request(options)
681
+ end
682
+
683
+ # Returns a list of the principal permissions on the resource, filtered
684
+ # by the permissions of the caller. For example, if you are granted an
685
+ # ALTER permission, you are able to see only the principal permissions
686
+ # for ALTER.
687
+ #
688
+ # This operation returns only those permissions that have been
689
+ # explicitly granted.
690
+ #
691
+ # For information about permissions, see [Security and Access Control to
692
+ # Metadata and Data][1].
693
+ #
694
+ #
695
+ #
696
+ # [1]: https://docs-aws.amazon.com/michigan/latest/dg/security-data-access.html
697
+ #
698
+ # @option params [String] :catalog_id
699
+ # The identifier for the Data Catalog. By default, the account ID. The
700
+ # Data Catalog is the persistent metadata store. It contains database
701
+ # definitions, table definitions, and other control information to
702
+ # manage your AWS Lake Formation environment.
703
+ #
704
+ # @option params [Types::DataLakePrincipal] :principal
705
+ # Specifies a principal to filter the permissions returned.
706
+ #
707
+ # @option params [String] :resource_type
708
+ # Specifies a resource type to filter the permissions returned.
709
+ #
710
+ # @option params [Types::Resource] :resource
711
+ # A resource where you will get a list of the principal permissions.
712
+ #
713
+ # This operation does not support getting privileges on a table with
714
+ # columns. Instead, call this operation on the table, and the operation
715
+ # returns the table and the table w columns.
716
+ #
717
+ # @option params [String] :next_token
718
+ # A continuation token, if this is not the first call to retrieve this
719
+ # list.
720
+ #
721
+ # @option params [Integer] :max_results
722
+ # The maximum number of results to return.
723
+ #
724
+ # @return [Types::ListPermissionsResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
725
+ #
726
+ # * {Types::ListPermissionsResponse#principal_resource_permissions #principal_resource_permissions} => Array&lt;Types::PrincipalResourcePermissions&gt;
727
+ # * {Types::ListPermissionsResponse#next_token #next_token} => String
728
+ #
729
+ # @example Request syntax with placeholder values
730
+ #
731
+ # resp = client.list_permissions({
732
+ # catalog_id: "CatalogIdString",
733
+ # principal: {
734
+ # data_lake_principal_identifier: "DataLakePrincipalString",
735
+ # },
736
+ # resource_type: "CATALOG", # accepts CATALOG, DATABASE, TABLE, DATA_LOCATION
737
+ # resource: {
738
+ # catalog: {
739
+ # },
740
+ # database: {
741
+ # name: "NameString", # required
742
+ # },
743
+ # table: {
744
+ # database_name: "NameString", # required
745
+ # name: "NameString", # required
746
+ # },
747
+ # table_with_columns: {
748
+ # database_name: "NameString",
749
+ # name: "NameString",
750
+ # column_names: ["NameString"],
751
+ # column_wildcard: {
752
+ # excluded_column_names: ["NameString"],
753
+ # },
754
+ # },
755
+ # data_location: {
756
+ # resource_arn: "ResourceArnString", # required
757
+ # },
758
+ # },
759
+ # next_token: "Token",
760
+ # max_results: 1,
761
+ # })
762
+ #
763
+ # @example Response structure
764
+ #
765
+ # resp.principal_resource_permissions #=> Array
766
+ # resp.principal_resource_permissions[0].principal.data_lake_principal_identifier #=> String
767
+ # resp.principal_resource_permissions[0].resource.database.name #=> String
768
+ # resp.principal_resource_permissions[0].resource.table.database_name #=> String
769
+ # resp.principal_resource_permissions[0].resource.table.name #=> String
770
+ # resp.principal_resource_permissions[0].resource.table_with_columns.database_name #=> String
771
+ # resp.principal_resource_permissions[0].resource.table_with_columns.name #=> String
772
+ # resp.principal_resource_permissions[0].resource.table_with_columns.column_names #=> Array
773
+ # resp.principal_resource_permissions[0].resource.table_with_columns.column_names[0] #=> String
774
+ # resp.principal_resource_permissions[0].resource.table_with_columns.column_wildcard.excluded_column_names #=> Array
775
+ # resp.principal_resource_permissions[0].resource.table_with_columns.column_wildcard.excluded_column_names[0] #=> String
776
+ # resp.principal_resource_permissions[0].resource.data_location.resource_arn #=> String
777
+ # resp.principal_resource_permissions[0].permissions #=> Array
778
+ # resp.principal_resource_permissions[0].permissions[0] #=> String, one of "ALL", "SELECT", "ALTER", "DROP", "DELETE", "INSERT", "CREATE_DATABASE", "CREATE_TABLE", "DATA_LOCATION_ACCESS"
779
+ # resp.principal_resource_permissions[0].permissions_with_grant_option #=> Array
780
+ # resp.principal_resource_permissions[0].permissions_with_grant_option[0] #=> String, one of "ALL", "SELECT", "ALTER", "DROP", "DELETE", "INSERT", "CREATE_DATABASE", "CREATE_TABLE", "DATA_LOCATION_ACCESS"
781
+ # resp.next_token #=> String
782
+ #
783
+ # @see http://docs.aws.amazon.com/goto/WebAPI/lakeformation-2017-03-31/ListPermissions AWS API Documentation
784
+ #
785
+ # @overload list_permissions(params = {})
786
+ # @param [Hash] params ({})
787
+ def list_permissions(params = {}, options = {})
788
+ req = build_request(:list_permissions, params)
789
+ req.send_request(options)
790
+ end
791
+
792
+ # Lists the resources registered to be managed by the Data Catalog.
793
+ #
794
+ # @option params [Array<Types::FilterCondition>] :filter_condition_list
795
+ # Any applicable row-level and/or column-level filtering conditions for
796
+ # the resources.
797
+ #
798
+ # @option params [Integer] :max_results
799
+ # The maximum number of resource results.
800
+ #
801
+ # @option params [String] :next_token
802
+ # A continuation token, if this is not the first call to retrieve these
803
+ # resources.
804
+ #
805
+ # @return [Types::ListResourcesResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
806
+ #
807
+ # * {Types::ListResourcesResponse#resource_info_list #resource_info_list} => Array&lt;Types::ResourceInfo&gt;
808
+ # * {Types::ListResourcesResponse#next_token #next_token} => String
809
+ #
810
+ # @example Request syntax with placeholder values
811
+ #
812
+ # resp = client.list_resources({
813
+ # filter_condition_list: [
814
+ # {
815
+ # field: "RESOURCE_ARN", # accepts RESOURCE_ARN, ROLE_ARN, LAST_MODIFIED
816
+ # comparison_operator: "EQ", # accepts EQ, NE, LE, LT, GE, GT, CONTAINS, NOT_CONTAINS, BEGINS_WITH, IN, BETWEEN
817
+ # string_value_list: ["StringValue"],
818
+ # },
819
+ # ],
820
+ # max_results: 1,
821
+ # next_token: "Token",
822
+ # })
823
+ #
824
+ # @example Response structure
825
+ #
826
+ # resp.resource_info_list #=> Array
827
+ # resp.resource_info_list[0].resource_arn #=> String
828
+ # resp.resource_info_list[0].role_arn #=> String
829
+ # resp.resource_info_list[0].last_modified #=> Time
830
+ # resp.next_token #=> String
831
+ #
832
+ # @see http://docs.aws.amazon.com/goto/WebAPI/lakeformation-2017-03-31/ListResources AWS API Documentation
833
+ #
834
+ # @overload list_resources(params = {})
835
+ # @param [Hash] params ({})
836
+ def list_resources(params = {}, options = {})
837
+ req = build_request(:list_resources, params)
838
+ req.send_request(options)
839
+ end
840
+
841
+ # The AWS Lake Formation principal.
842
+ #
843
+ # @option params [String] :catalog_id
844
+ # The identifier for the Data Catalog. By default, the account ID. The
845
+ # Data Catalog is the persistent metadata store. It contains database
846
+ # definitions, table definitions, and other control information to
847
+ # manage your AWS Lake Formation environment.
848
+ #
849
+ # @option params [required, Types::DataLakeSettings] :data_lake_settings
850
+ # A list of AWS Lake Formation principals.
851
+ #
852
+ # @return [Struct] Returns an empty {Seahorse::Client::Response response}.
853
+ #
854
+ # @example Request syntax with placeholder values
855
+ #
856
+ # resp = client.put_data_lake_settings({
857
+ # catalog_id: "CatalogIdString",
858
+ # data_lake_settings: { # required
859
+ # data_lake_admins: [
860
+ # {
861
+ # data_lake_principal_identifier: "DataLakePrincipalString",
862
+ # },
863
+ # ],
864
+ # create_database_default_permissions: [
865
+ # {
866
+ # principal: {
867
+ # data_lake_principal_identifier: "DataLakePrincipalString",
868
+ # },
869
+ # permissions: ["ALL"], # accepts ALL, SELECT, ALTER, DROP, DELETE, INSERT, CREATE_DATABASE, CREATE_TABLE, DATA_LOCATION_ACCESS
870
+ # },
871
+ # ],
872
+ # create_table_default_permissions: [
873
+ # {
874
+ # principal: {
875
+ # data_lake_principal_identifier: "DataLakePrincipalString",
876
+ # },
877
+ # permissions: ["ALL"], # accepts ALL, SELECT, ALTER, DROP, DELETE, INSERT, CREATE_DATABASE, CREATE_TABLE, DATA_LOCATION_ACCESS
878
+ # },
879
+ # ],
880
+ # },
881
+ # })
882
+ #
883
+ # @see http://docs.aws.amazon.com/goto/WebAPI/lakeformation-2017-03-31/PutDataLakeSettings AWS API Documentation
884
+ #
885
+ # @overload put_data_lake_settings(params = {})
886
+ # @param [Hash] params ({})
887
+ def put_data_lake_settings(params = {}, options = {})
888
+ req = build_request(:put_data_lake_settings, params)
889
+ req.send_request(options)
890
+ end
891
+
892
+ # Registers the resource as managed by the Data Catalog.
893
+ #
894
+ # To add or update data, Lake Formation needs read/write access to the
895
+ # chosen Amazon S3 path. Choose a role that you know has permission to
896
+ # do this, or choose the AWSServiceRoleForLakeFormationDataAccess
897
+ # service-linked role. When you register the first Amazon S3 path, the
898
+ # service-linked role and a new inline policy are created on your
899
+ # behalf. Lake Formation adds the first path to the inline policy and
900
+ # attaches it to the service-linked role. When you register subsequent
901
+ # paths, Lake Formation adds the path to the existing policy.
902
+ #
903
+ # @option params [required, String] :resource_arn
904
+ # The Amazon Resource Name (ARN) of the resource that you want to
905
+ # register.
906
+ #
907
+ # @option params [Boolean] :use_service_linked_role
908
+ # Designates a trusted caller, an IAM principal, by registering this
909
+ # caller with the Data Catalog.
910
+ #
911
+ # @option params [String] :role_arn
912
+ # The identifier for the role.
913
+ #
914
+ # @return [Struct] Returns an empty {Seahorse::Client::Response response}.
915
+ #
916
+ # @example Request syntax with placeholder values
917
+ #
918
+ # resp = client.register_resource({
919
+ # resource_arn: "ResourceArnString", # required
920
+ # use_service_linked_role: false,
921
+ # role_arn: "IAMRoleArn",
922
+ # })
923
+ #
924
+ # @see http://docs.aws.amazon.com/goto/WebAPI/lakeformation-2017-03-31/RegisterResource AWS API Documentation
925
+ #
926
+ # @overload register_resource(params = {})
927
+ # @param [Hash] params ({})
928
+ def register_resource(params = {}, options = {})
929
+ req = build_request(:register_resource, params)
930
+ req.send_request(options)
931
+ end
932
+
933
+ # Revokes permissions to the principal to access metadata in the Data
934
+ # Catalog and data organized in underlying data storage such as Amazon
935
+ # S3.
936
+ #
937
+ # @option params [String] :catalog_id
938
+ # The identifier for the Data Catalog. By default, the account ID. The
939
+ # Data Catalog is the persistent metadata store. It contains database
940
+ # definitions, table definitions, and other control information to
941
+ # manage your AWS Lake Formation environment.
942
+ #
943
+ # @option params [required, Types::DataLakePrincipal] :principal
944
+ # The principal to be revoked permissions on the resource.
945
+ #
946
+ # @option params [required, Types::Resource] :resource
947
+ # The resource to which permissions are to be revoked.
948
+ #
949
+ # @option params [required, Array<String>] :permissions
950
+ # The permissions revoked to the principal on the resource. For
951
+ # information about permissions, see [Security and Access Control to
952
+ # Metadata and Data][1].
953
+ #
954
+ #
955
+ #
956
+ # [1]: https://docs-aws.amazon.com/michigan/latest/dg/security-data-access.html
957
+ #
958
+ # @option params [Array<String>] :permissions_with_grant_option
959
+ # Indicates a list of permissions for which to revoke the grant option
960
+ # allowing the principal to pass permissions to other principals.
961
+ #
962
+ # @return [Struct] Returns an empty {Seahorse::Client::Response response}.
963
+ #
964
+ # @example Request syntax with placeholder values
965
+ #
966
+ # resp = client.revoke_permissions({
967
+ # catalog_id: "CatalogIdString",
968
+ # principal: { # required
969
+ # data_lake_principal_identifier: "DataLakePrincipalString",
970
+ # },
971
+ # resource: { # required
972
+ # catalog: {
973
+ # },
974
+ # database: {
975
+ # name: "NameString", # required
976
+ # },
977
+ # table: {
978
+ # database_name: "NameString", # required
979
+ # name: "NameString", # required
980
+ # },
981
+ # table_with_columns: {
982
+ # database_name: "NameString",
983
+ # name: "NameString",
984
+ # column_names: ["NameString"],
985
+ # column_wildcard: {
986
+ # excluded_column_names: ["NameString"],
987
+ # },
988
+ # },
989
+ # data_location: {
990
+ # resource_arn: "ResourceArnString", # required
991
+ # },
992
+ # },
993
+ # permissions: ["ALL"], # required, accepts ALL, SELECT, ALTER, DROP, DELETE, INSERT, CREATE_DATABASE, CREATE_TABLE, DATA_LOCATION_ACCESS
994
+ # permissions_with_grant_option: ["ALL"], # accepts ALL, SELECT, ALTER, DROP, DELETE, INSERT, CREATE_DATABASE, CREATE_TABLE, DATA_LOCATION_ACCESS
995
+ # })
996
+ #
997
+ # @see http://docs.aws.amazon.com/goto/WebAPI/lakeformation-2017-03-31/RevokePermissions AWS API Documentation
998
+ #
999
+ # @overload revoke_permissions(params = {})
1000
+ # @param [Hash] params ({})
1001
+ def revoke_permissions(params = {}, options = {})
1002
+ req = build_request(:revoke_permissions, params)
1003
+ req.send_request(options)
1004
+ end
1005
+
1006
+ # Updates the data access role used for vending access to the given
1007
+ # (registered) resource in AWS Lake Formation.
1008
+ #
1009
+ # @option params [required, String] :role_arn
1010
+ # The new role to use for the given resource registered in AWS Lake
1011
+ # Formation.
1012
+ #
1013
+ # @option params [required, String] :resource_arn
1014
+ # The resource ARN.
1015
+ #
1016
+ # @return [Struct] Returns an empty {Seahorse::Client::Response response}.
1017
+ #
1018
+ # @example Request syntax with placeholder values
1019
+ #
1020
+ # resp = client.update_resource({
1021
+ # role_arn: "IAMRoleArn", # required
1022
+ # resource_arn: "ResourceArnString", # required
1023
+ # })
1024
+ #
1025
+ # @see http://docs.aws.amazon.com/goto/WebAPI/lakeformation-2017-03-31/UpdateResource AWS API Documentation
1026
+ #
1027
+ # @overload update_resource(params = {})
1028
+ # @param [Hash] params ({})
1029
+ def update_resource(params = {}, options = {})
1030
+ req = build_request(:update_resource, params)
1031
+ req.send_request(options)
1032
+ end
1033
+
1034
+ # @!endgroup
1035
+
1036
+ # @param params ({})
1037
+ # @api private
1038
+ def build_request(operation_name, params = {})
1039
+ handlers = @handlers.for(operation_name)
1040
+ context = Seahorse::Client::RequestContext.new(
1041
+ operation_name: operation_name,
1042
+ operation: config.api.operation(operation_name),
1043
+ client: self,
1044
+ params: params,
1045
+ config: config)
1046
+ context[:gem_name] = 'aws-sdk-lakeformation'
1047
+ context[:gem_version] = '1.0.0'
1048
+ Seahorse::Client::Request.new(handlers, context)
1049
+ end
1050
+
1051
+ # @api private
1052
+ # @deprecated
1053
+ def waiter_names
1054
+ []
1055
+ end
1056
+
1057
+ class << self
1058
+
1059
+ # @api private
1060
+ attr_reader :identifier
1061
+
1062
+ # @api private
1063
+ def errors_module
1064
+ Errors
1065
+ end
1066
+
1067
+ end
1068
+ end
1069
+ end