aws-sdk-lakeformation 1.20.0 → 1.42.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -27,7 +27,11 @@ require 'aws-sdk-core/plugins/client_metrics_plugin.rb'
27
27
  require 'aws-sdk-core/plugins/client_metrics_send_plugin.rb'
28
28
  require 'aws-sdk-core/plugins/transfer_encoding.rb'
29
29
  require 'aws-sdk-core/plugins/http_checksum.rb'
30
- require 'aws-sdk-core/plugins/signature_v4.rb'
30
+ require 'aws-sdk-core/plugins/checksum_algorithm.rb'
31
+ require 'aws-sdk-core/plugins/request_compression.rb'
32
+ require 'aws-sdk-core/plugins/defaults_mode.rb'
33
+ require 'aws-sdk-core/plugins/recursion_detection.rb'
34
+ require 'aws-sdk-core/plugins/sign.rb'
31
35
  require 'aws-sdk-core/plugins/protocols/rest_json.rb'
32
36
 
33
37
  Aws::Plugins::GlobalConfiguration.add_identifier(:lakeformation)
@@ -73,8 +77,13 @@ module Aws::LakeFormation
73
77
  add_plugin(Aws::Plugins::ClientMetricsSendPlugin)
74
78
  add_plugin(Aws::Plugins::TransferEncoding)
75
79
  add_plugin(Aws::Plugins::HttpChecksum)
76
- add_plugin(Aws::Plugins::SignatureV4)
80
+ add_plugin(Aws::Plugins::ChecksumAlgorithm)
81
+ add_plugin(Aws::Plugins::RequestCompression)
82
+ add_plugin(Aws::Plugins::DefaultsMode)
83
+ add_plugin(Aws::Plugins::RecursionDetection)
84
+ add_plugin(Aws::Plugins::Sign)
77
85
  add_plugin(Aws::Plugins::Protocols::RestJson)
86
+ add_plugin(Aws::LakeFormation::Plugins::Endpoints)
78
87
 
79
88
  # @overload initialize(options)
80
89
  # @param [Hash] options
@@ -175,10 +184,18 @@ module Aws::LakeFormation
175
184
  # Used only in `standard` and adaptive retry modes. Specifies whether to apply
176
185
  # a clock skew correction and retry requests with skewed client clocks.
177
186
  #
187
+ # @option options [String] :defaults_mode ("legacy")
188
+ # See {Aws::DefaultsModeConfiguration} for a list of the
189
+ # accepted modes and the configuration defaults that are included.
190
+ #
178
191
  # @option options [Boolean] :disable_host_prefix_injection (false)
179
192
  # Set to true to disable SDK automatically adding host prefix
180
193
  # to default service endpoint when available.
181
194
  #
195
+ # @option options [Boolean] :disable_request_compression (false)
196
+ # When set to 'true' the request body will not be compressed
197
+ # for supported operations.
198
+ #
182
199
  # @option options [String] :endpoint
183
200
  # The client endpoint is normally constructed from the `:region`
184
201
  # option. You should only configure an `:endpoint` when connecting
@@ -199,6 +216,10 @@ module Aws::LakeFormation
199
216
  # @option options [Boolean] :endpoint_discovery (false)
200
217
  # When set to `true`, endpoint discovery will be enabled for operations when available.
201
218
  #
219
+ # @option options [Boolean] :ignore_configured_endpoint_urls
220
+ # Setting to true disables use of endpoint URLs provided via environment
221
+ # variables and the shared configuration file.
222
+ #
202
223
  # @option options [Aws::Log::Formatter] :log_formatter (Aws::Log::Formatter.default)
203
224
  # The log formatter.
204
225
  #
@@ -219,6 +240,11 @@ module Aws::LakeFormation
219
240
  # Used when loading credentials from the shared credentials file
220
241
  # at HOME/.aws/credentials. When not specified, 'default' is used.
221
242
  #
243
+ # @option options [Integer] :request_min_compression_size_bytes (10240)
244
+ # The minimum size in bytes that triggers compression for request
245
+ # bodies. The value must be non-negative integer value between 0
246
+ # and 10485780 bytes inclusive.
247
+ #
222
248
  # @option options [Proc] :retry_backoff
223
249
  # A proc or lambda used for backoff. Defaults to 2**retries * retry_base_delay.
224
250
  # This option is only used in the `legacy` retry mode.
@@ -264,6 +290,11 @@ module Aws::LakeFormation
264
290
  # in the future.
265
291
  #
266
292
  #
293
+ # @option options [String] :sdk_ua_app_id
294
+ # A unique and opaque application ID that is appended to the
295
+ # User-Agent header as app/<sdk_ua_app_id>. It should have a
296
+ # maximum length of 50.
297
+ #
267
298
  # @option options [String] :secret_access_key
268
299
  #
269
300
  # @option options [String] :session_token
@@ -277,6 +308,19 @@ module Aws::LakeFormation
277
308
  # ** Please note ** When response stubbing is enabled, no HTTP
278
309
  # requests are made, and retries are disabled.
279
310
  #
311
+ # @option options [Aws::TokenProvider] :token_provider
312
+ # A Bearer Token Provider. This can be an instance of any one of the
313
+ # following classes:
314
+ #
315
+ # * `Aws::StaticTokenProvider` - Used for configuring static, non-refreshing
316
+ # tokens.
317
+ #
318
+ # * `Aws::SSOTokenProvider` - Used for loading tokens from AWS SSO using an
319
+ # access token generated from `aws login`.
320
+ #
321
+ # When `:token_provider` is not configured directly, the `Aws::TokenProviderChain`
322
+ # will be used to search for tokens configured for your profile in shared configuration files.
323
+ #
280
324
  # @option options [Boolean] :use_dualstack_endpoint
281
325
  # When set to `true`, dualstack enabled endpoints (with `.aws` TLD)
282
326
  # will be used if available.
@@ -290,6 +334,9 @@ module Aws::LakeFormation
290
334
  # When `true`, request parameters are validated before
291
335
  # sending the request.
292
336
  #
337
+ # @option options [Aws::LakeFormation::EndpointProvider] :endpoint_provider
338
+ # The endpoint provider used to resolve endpoints. Any object that responds to `#resolve_endpoint(parameters)` where `parameters` is a Struct similar to `Aws::LakeFormation::EndpointParameters`
339
+ #
293
340
  # @option options [URI::HTTP,String] :http_proxy A proxy to send
294
341
  # requests through. Formatted like 'http://proxy.com:123'.
295
342
  #
@@ -297,7 +344,7 @@ module Aws::LakeFormation
297
344
  # seconds to wait when opening a HTTP session before raising a
298
345
  # `Timeout::Error`.
299
346
  #
300
- # @option options [Integer] :http_read_timeout (60) The default
347
+ # @option options [Float] :http_read_timeout (60) The default
301
348
  # number of seconds to wait for response data. This value can
302
349
  # safely be set per-request on the session.
303
350
  #
@@ -313,6 +360,9 @@ module Aws::LakeFormation
313
360
  # disables this behaviour. This value can safely be set per
314
361
  # request on the session.
315
362
  #
363
+ # @option options [Float] :ssl_timeout (nil) Sets the SSL timeout
364
+ # in seconds.
365
+ #
316
366
  # @option options [Boolean] :http_wire_trace (false) When `true`,
317
367
  # HTTP debug output will be sent to the `:logger`.
318
368
  #
@@ -437,6 +487,73 @@ module Aws::LakeFormation
437
487
  req.send_request(options)
438
488
  end
439
489
 
490
+ # Allows a caller to assume an IAM role decorated as the SAML user
491
+ # specified in the SAML assertion included in the request. This
492
+ # decoration allows Lake Formation to enforce access policies against
493
+ # the SAML users and groups. This API operation requires SAML federation
494
+ # setup in the caller’s account as it can only be called with valid SAML
495
+ # assertions. Lake Formation does not scope down the permission of the
496
+ # assumed role. All permissions attached to the role via the SAML
497
+ # federation setup will be included in the role session.
498
+ #
499
+ # This decorated role is expected to access data in Amazon S3 by getting
500
+ # temporary access from Lake Formation which is authorized via the
501
+ # virtual API `GetDataAccess`. Therefore, all SAML roles that can be
502
+ # assumed via `AssumeDecoratedRoleWithSAML` must at a minimum include
503
+ # `lakeformation:GetDataAccess` in their role policies. A typical IAM
504
+ # policy attached to such a role would look as follows:
505
+ #
506
+ # @option params [required, String] :saml_assertion
507
+ # A SAML assertion consisting of an assertion statement for the user who
508
+ # needs temporary credentials. This must match the SAML assertion that
509
+ # was issued to IAM. This must be Base64 encoded.
510
+ #
511
+ # @option params [required, String] :role_arn
512
+ # The role that represents an IAM principal whose scope down policy
513
+ # allows it to call credential vending APIs such as
514
+ # `GetTemporaryTableCredentials`. The caller must also have iam:PassRole
515
+ # permission on this role.
516
+ #
517
+ # @option params [required, String] :principal_arn
518
+ # The Amazon Resource Name (ARN) of the SAML provider in IAM that
519
+ # describes the IdP.
520
+ #
521
+ # @option params [Integer] :duration_seconds
522
+ # The time period, between 900 and 43,200 seconds, for the timeout of
523
+ # the temporary credentials.
524
+ #
525
+ # @return [Types::AssumeDecoratedRoleWithSAMLResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
526
+ #
527
+ # * {Types::AssumeDecoratedRoleWithSAMLResponse#access_key_id #access_key_id} => String
528
+ # * {Types::AssumeDecoratedRoleWithSAMLResponse#secret_access_key #secret_access_key} => String
529
+ # * {Types::AssumeDecoratedRoleWithSAMLResponse#session_token #session_token} => String
530
+ # * {Types::AssumeDecoratedRoleWithSAMLResponse#expiration #expiration} => Time
531
+ #
532
+ # @example Request syntax with placeholder values
533
+ #
534
+ # resp = client.assume_decorated_role_with_saml({
535
+ # saml_assertion: "SAMLAssertionString", # required
536
+ # role_arn: "IAMRoleArn", # required
537
+ # principal_arn: "IAMSAMLProviderArn", # required
538
+ # duration_seconds: 1,
539
+ # })
540
+ #
541
+ # @example Response structure
542
+ #
543
+ # resp.access_key_id #=> String
544
+ # resp.secret_access_key #=> String
545
+ # resp.session_token #=> String
546
+ # resp.expiration #=> Time
547
+ #
548
+ # @see http://docs.aws.amazon.com/goto/WebAPI/lakeformation-2017-03-31/AssumeDecoratedRoleWithSAML AWS API Documentation
549
+ #
550
+ # @overload assume_decorated_role_with_saml(params = {})
551
+ # @param [Hash] params ({})
552
+ def assume_decorated_role_with_saml(params = {}, options = {})
553
+ req = build_request(:assume_decorated_role_with_saml, params)
554
+ req.send_request(options)
555
+ end
556
+
440
557
  # Batch operation to grant permissions to the principal.
441
558
  #
442
559
  # @option params [String] :catalog_id
@@ -512,8 +629,8 @@ module Aws::LakeFormation
512
629
  # ],
513
630
  # },
514
631
  # },
515
- # permissions: ["ALL"], # accepts ALL, SELECT, ALTER, DROP, DELETE, INSERT, DESCRIBE, CREATE_DATABASE, CREATE_TABLE, DATA_LOCATION_ACCESS, CREATE_TAG, ALTER_TAG, DELETE_TAG, DESCRIBE_TAG, ASSOCIATE_TAG
516
- # permissions_with_grant_option: ["ALL"], # accepts ALL, SELECT, ALTER, DROP, DELETE, INSERT, DESCRIBE, CREATE_DATABASE, CREATE_TABLE, DATA_LOCATION_ACCESS, CREATE_TAG, ALTER_TAG, DELETE_TAG, DESCRIBE_TAG, ASSOCIATE_TAG
632
+ # permissions: ["ALL"], # accepts ALL, SELECT, ALTER, DROP, DELETE, INSERT, DESCRIBE, CREATE_DATABASE, CREATE_TABLE, DATA_LOCATION_ACCESS, CREATE_LF_TAG, ASSOCIATE, GRANT_WITH_LF_TAG_EXPRESSION
633
+ # permissions_with_grant_option: ["ALL"], # accepts ALL, SELECT, ALTER, DROP, DELETE, INSERT, DESCRIBE, CREATE_DATABASE, CREATE_TABLE, DATA_LOCATION_ACCESS, CREATE_LF_TAG, ASSOCIATE, GRANT_WITH_LF_TAG_EXPRESSION
517
634
  # },
518
635
  # ],
519
636
  # })
@@ -552,9 +669,9 @@ module Aws::LakeFormation
552
669
  # resp.failures[0].request_entry.resource.lf_tag_policy.expression[0].tag_values #=> Array
553
670
  # resp.failures[0].request_entry.resource.lf_tag_policy.expression[0].tag_values[0] #=> String
554
671
  # resp.failures[0].request_entry.permissions #=> Array
555
- # resp.failures[0].request_entry.permissions[0] #=> String, one of "ALL", "SELECT", "ALTER", "DROP", "DELETE", "INSERT", "DESCRIBE", "CREATE_DATABASE", "CREATE_TABLE", "DATA_LOCATION_ACCESS", "CREATE_TAG", "ALTER_TAG", "DELETE_TAG", "DESCRIBE_TAG", "ASSOCIATE_TAG"
672
+ # resp.failures[0].request_entry.permissions[0] #=> String, one of "ALL", "SELECT", "ALTER", "DROP", "DELETE", "INSERT", "DESCRIBE", "CREATE_DATABASE", "CREATE_TABLE", "DATA_LOCATION_ACCESS", "CREATE_LF_TAG", "ASSOCIATE", "GRANT_WITH_LF_TAG_EXPRESSION"
556
673
  # resp.failures[0].request_entry.permissions_with_grant_option #=> Array
557
- # resp.failures[0].request_entry.permissions_with_grant_option[0] #=> String, one of "ALL", "SELECT", "ALTER", "DROP", "DELETE", "INSERT", "DESCRIBE", "CREATE_DATABASE", "CREATE_TABLE", "DATA_LOCATION_ACCESS", "CREATE_TAG", "ALTER_TAG", "DELETE_TAG", "DESCRIBE_TAG", "ASSOCIATE_TAG"
674
+ # resp.failures[0].request_entry.permissions_with_grant_option[0] #=> String, one of "ALL", "SELECT", "ALTER", "DROP", "DELETE", "INSERT", "DESCRIBE", "CREATE_DATABASE", "CREATE_TABLE", "DATA_LOCATION_ACCESS", "CREATE_LF_TAG", "ASSOCIATE", "GRANT_WITH_LF_TAG_EXPRESSION"
558
675
  # resp.failures[0].error.error_code #=> String
559
676
  # resp.failures[0].error.error_message #=> String
560
677
  #
@@ -642,8 +759,8 @@ module Aws::LakeFormation
642
759
  # ],
643
760
  # },
644
761
  # },
645
- # permissions: ["ALL"], # accepts ALL, SELECT, ALTER, DROP, DELETE, INSERT, DESCRIBE, CREATE_DATABASE, CREATE_TABLE, DATA_LOCATION_ACCESS, CREATE_TAG, ALTER_TAG, DELETE_TAG, DESCRIBE_TAG, ASSOCIATE_TAG
646
- # permissions_with_grant_option: ["ALL"], # accepts ALL, SELECT, ALTER, DROP, DELETE, INSERT, DESCRIBE, CREATE_DATABASE, CREATE_TABLE, DATA_LOCATION_ACCESS, CREATE_TAG, ALTER_TAG, DELETE_TAG, DESCRIBE_TAG, ASSOCIATE_TAG
762
+ # permissions: ["ALL"], # accepts ALL, SELECT, ALTER, DROP, DELETE, INSERT, DESCRIBE, CREATE_DATABASE, CREATE_TABLE, DATA_LOCATION_ACCESS, CREATE_LF_TAG, ASSOCIATE, GRANT_WITH_LF_TAG_EXPRESSION
763
+ # permissions_with_grant_option: ["ALL"], # accepts ALL, SELECT, ALTER, DROP, DELETE, INSERT, DESCRIBE, CREATE_DATABASE, CREATE_TABLE, DATA_LOCATION_ACCESS, CREATE_LF_TAG, ASSOCIATE, GRANT_WITH_LF_TAG_EXPRESSION
647
764
  # },
648
765
  # ],
649
766
  # })
@@ -682,9 +799,9 @@ module Aws::LakeFormation
682
799
  # resp.failures[0].request_entry.resource.lf_tag_policy.expression[0].tag_values #=> Array
683
800
  # resp.failures[0].request_entry.resource.lf_tag_policy.expression[0].tag_values[0] #=> String
684
801
  # resp.failures[0].request_entry.permissions #=> Array
685
- # resp.failures[0].request_entry.permissions[0] #=> String, one of "ALL", "SELECT", "ALTER", "DROP", "DELETE", "INSERT", "DESCRIBE", "CREATE_DATABASE", "CREATE_TABLE", "DATA_LOCATION_ACCESS", "CREATE_TAG", "ALTER_TAG", "DELETE_TAG", "DESCRIBE_TAG", "ASSOCIATE_TAG"
802
+ # resp.failures[0].request_entry.permissions[0] #=> String, one of "ALL", "SELECT", "ALTER", "DROP", "DELETE", "INSERT", "DESCRIBE", "CREATE_DATABASE", "CREATE_TABLE", "DATA_LOCATION_ACCESS", "CREATE_LF_TAG", "ASSOCIATE", "GRANT_WITH_LF_TAG_EXPRESSION"
686
803
  # resp.failures[0].request_entry.permissions_with_grant_option #=> Array
687
- # resp.failures[0].request_entry.permissions_with_grant_option[0] #=> String, one of "ALL", "SELECT", "ALTER", "DROP", "DELETE", "INSERT", "DESCRIBE", "CREATE_DATABASE", "CREATE_TABLE", "DATA_LOCATION_ACCESS", "CREATE_TAG", "ALTER_TAG", "DELETE_TAG", "DESCRIBE_TAG", "ASSOCIATE_TAG"
804
+ # resp.failures[0].request_entry.permissions_with_grant_option[0] #=> String, one of "ALL", "SELECT", "ALTER", "DROP", "DELETE", "INSERT", "DESCRIBE", "CREATE_DATABASE", "CREATE_TABLE", "DATA_LOCATION_ACCESS", "CREATE_LF_TAG", "ASSOCIATE", "GRANT_WITH_LF_TAG_EXPRESSION"
688
805
  # resp.failures[0].error.error_code #=> String
689
806
  # resp.failures[0].error.error_message #=> String
690
807
  #
@@ -776,6 +893,7 @@ module Aws::LakeFormation
776
893
  # column_wildcard: {
777
894
  # excluded_column_names: ["NameString"],
778
895
  # },
896
+ # version_id: "VersionString",
779
897
  # },
780
898
  # })
781
899
  #
@@ -821,6 +939,84 @@ module Aws::LakeFormation
821
939
  req.send_request(options)
822
940
  end
823
941
 
942
+ # Enforce Lake Formation permissions for the given databases, tables,
943
+ # and principals.
944
+ #
945
+ # @option params [required, Types::DataLakePrincipal] :principal
946
+ # The Lake Formation principal. Supported principals are IAM users or
947
+ # IAM roles.
948
+ #
949
+ # @option params [required, Types::Resource] :resource
950
+ # A structure for the resource.
951
+ #
952
+ # @return [Struct] Returns an empty {Seahorse::Client::Response response}.
953
+ #
954
+ # @example Request syntax with placeholder values
955
+ #
956
+ # resp = client.create_lake_formation_opt_in({
957
+ # principal: { # required
958
+ # data_lake_principal_identifier: "DataLakePrincipalString",
959
+ # },
960
+ # resource: { # required
961
+ # catalog: {
962
+ # },
963
+ # database: {
964
+ # catalog_id: "CatalogIdString",
965
+ # name: "NameString", # required
966
+ # },
967
+ # table: {
968
+ # catalog_id: "CatalogIdString",
969
+ # database_name: "NameString", # required
970
+ # name: "NameString",
971
+ # table_wildcard: {
972
+ # },
973
+ # },
974
+ # table_with_columns: {
975
+ # catalog_id: "CatalogIdString",
976
+ # database_name: "NameString", # required
977
+ # name: "NameString", # required
978
+ # column_names: ["NameString"],
979
+ # column_wildcard: {
980
+ # excluded_column_names: ["NameString"],
981
+ # },
982
+ # },
983
+ # data_location: {
984
+ # catalog_id: "CatalogIdString",
985
+ # resource_arn: "ResourceArnString", # required
986
+ # },
987
+ # data_cells_filter: {
988
+ # table_catalog_id: "CatalogIdString",
989
+ # database_name: "NameString",
990
+ # table_name: "NameString",
991
+ # name: "NameString",
992
+ # },
993
+ # lf_tag: {
994
+ # catalog_id: "CatalogIdString",
995
+ # tag_key: "NameString", # required
996
+ # tag_values: ["LFTagValue"], # required
997
+ # },
998
+ # lf_tag_policy: {
999
+ # catalog_id: "CatalogIdString",
1000
+ # resource_type: "DATABASE", # required, accepts DATABASE, TABLE
1001
+ # expression: [ # required
1002
+ # {
1003
+ # tag_key: "LFTagKey", # required
1004
+ # tag_values: ["LFTagValue"], # required
1005
+ # },
1006
+ # ],
1007
+ # },
1008
+ # },
1009
+ # })
1010
+ #
1011
+ # @see http://docs.aws.amazon.com/goto/WebAPI/lakeformation-2017-03-31/CreateLakeFormationOptIn AWS API Documentation
1012
+ #
1013
+ # @overload create_lake_formation_opt_in(params = {})
1014
+ # @param [Hash] params ({})
1015
+ def create_lake_formation_opt_in(params = {}, options = {})
1016
+ req = build_request(:create_lake_formation_opt_in, params)
1017
+ req.send_request(options)
1018
+ end
1019
+
824
1020
  # Deletes a data cell filter.
825
1021
  #
826
1022
  # @option params [String] :table_catalog_id
@@ -855,13 +1051,12 @@ module Aws::LakeFormation
855
1051
  req.send_request(options)
856
1052
  end
857
1053
 
858
- # Deletes the specified LF-tag key name. If the attribute key does not
859
- # exist or the LF-tag does not exist, then the operation will not do
860
- # anything. If the attribute key exists, then the operation checks if
861
- # any resources are tagged with this attribute key, if yes, the API
862
- # throws a 400 Exception with the message "Delete not allowed" as the
863
- # LF-tag key is still attached with resources. You can consider
864
- # untagging resources with this LF-tag key.
1054
+ # Deletes the specified LF-tag given a key name. If the input parameter
1055
+ # tag key was not found, then the operation will throw an exception.
1056
+ # When you delete an LF-tag, the `LFTagPolicy` attached to the LF-tag
1057
+ # becomes invalid. If the deleted LF-tag was still assigned to any
1058
+ # resource, the tag policy attach to the deleted LF-tag will no longer
1059
+ # be applied to the resource.
865
1060
  #
866
1061
  # @option params [String] :catalog_id
867
1062
  # The identifier for the Data Catalog. By default, the account ID. The
@@ -890,6 +1085,84 @@ module Aws::LakeFormation
890
1085
  req.send_request(options)
891
1086
  end
892
1087
 
1088
+ # Remove the Lake Formation permissions enforcement of the given
1089
+ # databases, tables, and principals.
1090
+ #
1091
+ # @option params [required, Types::DataLakePrincipal] :principal
1092
+ # The Lake Formation principal. Supported principals are IAM users or
1093
+ # IAM roles.
1094
+ #
1095
+ # @option params [required, Types::Resource] :resource
1096
+ # A structure for the resource.
1097
+ #
1098
+ # @return [Struct] Returns an empty {Seahorse::Client::Response response}.
1099
+ #
1100
+ # @example Request syntax with placeholder values
1101
+ #
1102
+ # resp = client.delete_lake_formation_opt_in({
1103
+ # principal: { # required
1104
+ # data_lake_principal_identifier: "DataLakePrincipalString",
1105
+ # },
1106
+ # resource: { # required
1107
+ # catalog: {
1108
+ # },
1109
+ # database: {
1110
+ # catalog_id: "CatalogIdString",
1111
+ # name: "NameString", # required
1112
+ # },
1113
+ # table: {
1114
+ # catalog_id: "CatalogIdString",
1115
+ # database_name: "NameString", # required
1116
+ # name: "NameString",
1117
+ # table_wildcard: {
1118
+ # },
1119
+ # },
1120
+ # table_with_columns: {
1121
+ # catalog_id: "CatalogIdString",
1122
+ # database_name: "NameString", # required
1123
+ # name: "NameString", # required
1124
+ # column_names: ["NameString"],
1125
+ # column_wildcard: {
1126
+ # excluded_column_names: ["NameString"],
1127
+ # },
1128
+ # },
1129
+ # data_location: {
1130
+ # catalog_id: "CatalogIdString",
1131
+ # resource_arn: "ResourceArnString", # required
1132
+ # },
1133
+ # data_cells_filter: {
1134
+ # table_catalog_id: "CatalogIdString",
1135
+ # database_name: "NameString",
1136
+ # table_name: "NameString",
1137
+ # name: "NameString",
1138
+ # },
1139
+ # lf_tag: {
1140
+ # catalog_id: "CatalogIdString",
1141
+ # tag_key: "NameString", # required
1142
+ # tag_values: ["LFTagValue"], # required
1143
+ # },
1144
+ # lf_tag_policy: {
1145
+ # catalog_id: "CatalogIdString",
1146
+ # resource_type: "DATABASE", # required, accepts DATABASE, TABLE
1147
+ # expression: [ # required
1148
+ # {
1149
+ # tag_key: "LFTagKey", # required
1150
+ # tag_values: ["LFTagValue"], # required
1151
+ # },
1152
+ # ],
1153
+ # },
1154
+ # },
1155
+ # })
1156
+ #
1157
+ # @see http://docs.aws.amazon.com/goto/WebAPI/lakeformation-2017-03-31/DeleteLakeFormationOptIn AWS API Documentation
1158
+ #
1159
+ # @overload delete_lake_formation_opt_in(params = {})
1160
+ # @param [Hash] params ({})
1161
+ def delete_lake_formation_opt_in(params = {}, options = {})
1162
+ req = build_request(:delete_lake_formation_opt_in, params)
1163
+ req.send_request(options)
1164
+ end
1165
+
893
1166
  # For a specific governed table, provides a list of Amazon S3 objects
894
1167
  # that will be written during the current transaction and that can be
895
1168
  # automatically deleted if the transaction is canceled. Without this
@@ -995,6 +1268,8 @@ module Aws::LakeFormation
995
1268
  # resp.resource_info.resource_arn #=> String
996
1269
  # resp.resource_info.role_arn #=> String
997
1270
  # resp.resource_info.last_modified #=> Time
1271
+ # resp.resource_info.with_federation #=> Boolean
1272
+ # resp.resource_info.hybrid_access_enabled #=> Boolean
998
1273
  #
999
1274
  # @see http://docs.aws.amazon.com/goto/WebAPI/lakeformation-2017-03-31/DescribeResource AWS API Documentation
1000
1275
  #
@@ -1062,6 +1337,55 @@ module Aws::LakeFormation
1062
1337
  req.send_request(options)
1063
1338
  end
1064
1339
 
1340
+ # Returns a data cells filter.
1341
+ #
1342
+ # @option params [required, String] :table_catalog_id
1343
+ # The ID of the catalog to which the table belongs.
1344
+ #
1345
+ # @option params [required, String] :database_name
1346
+ # A database in the Glue Data Catalog.
1347
+ #
1348
+ # @option params [required, String] :table_name
1349
+ # A table in the database.
1350
+ #
1351
+ # @option params [required, String] :name
1352
+ # The name given by the user to the data filter cell.
1353
+ #
1354
+ # @return [Types::GetDataCellsFilterResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
1355
+ #
1356
+ # * {Types::GetDataCellsFilterResponse#data_cells_filter #data_cells_filter} => Types::DataCellsFilter
1357
+ #
1358
+ # @example Request syntax with placeholder values
1359
+ #
1360
+ # resp = client.get_data_cells_filter({
1361
+ # table_catalog_id: "CatalogIdString", # required
1362
+ # database_name: "NameString", # required
1363
+ # table_name: "NameString", # required
1364
+ # name: "NameString", # required
1365
+ # })
1366
+ #
1367
+ # @example Response structure
1368
+ #
1369
+ # resp.data_cells_filter.table_catalog_id #=> String
1370
+ # resp.data_cells_filter.database_name #=> String
1371
+ # resp.data_cells_filter.table_name #=> String
1372
+ # resp.data_cells_filter.name #=> String
1373
+ # resp.data_cells_filter.row_filter.filter_expression #=> String
1374
+ # resp.data_cells_filter.column_names #=> Array
1375
+ # resp.data_cells_filter.column_names[0] #=> String
1376
+ # resp.data_cells_filter.column_wildcard.excluded_column_names #=> Array
1377
+ # resp.data_cells_filter.column_wildcard.excluded_column_names[0] #=> String
1378
+ # resp.data_cells_filter.version_id #=> String
1379
+ #
1380
+ # @see http://docs.aws.amazon.com/goto/WebAPI/lakeformation-2017-03-31/GetDataCellsFilter AWS API Documentation
1381
+ #
1382
+ # @overload get_data_cells_filter(params = {})
1383
+ # @param [Hash] params ({})
1384
+ def get_data_cells_filter(params = {}, options = {})
1385
+ req = build_request(:get_data_cells_filter, params)
1386
+ req.send_request(options)
1387
+ end
1388
+
1065
1389
  # Retrieves the list of the data lake administrators of a Lake
1066
1390
  # Formation-managed data lake.
1067
1391
  #
@@ -1085,16 +1409,26 @@ module Aws::LakeFormation
1085
1409
  #
1086
1410
  # resp.data_lake_settings.data_lake_admins #=> Array
1087
1411
  # resp.data_lake_settings.data_lake_admins[0].data_lake_principal_identifier #=> String
1412
+ # resp.data_lake_settings.read_only_admins #=> Array
1413
+ # resp.data_lake_settings.read_only_admins[0].data_lake_principal_identifier #=> String
1088
1414
  # resp.data_lake_settings.create_database_default_permissions #=> Array
1089
1415
  # resp.data_lake_settings.create_database_default_permissions[0].principal.data_lake_principal_identifier #=> String
1090
1416
  # resp.data_lake_settings.create_database_default_permissions[0].permissions #=> Array
1091
- # resp.data_lake_settings.create_database_default_permissions[0].permissions[0] #=> String, one of "ALL", "SELECT", "ALTER", "DROP", "DELETE", "INSERT", "DESCRIBE", "CREATE_DATABASE", "CREATE_TABLE", "DATA_LOCATION_ACCESS", "CREATE_TAG", "ALTER_TAG", "DELETE_TAG", "DESCRIBE_TAG", "ASSOCIATE_TAG"
1417
+ # resp.data_lake_settings.create_database_default_permissions[0].permissions[0] #=> String, one of "ALL", "SELECT", "ALTER", "DROP", "DELETE", "INSERT", "DESCRIBE", "CREATE_DATABASE", "CREATE_TABLE", "DATA_LOCATION_ACCESS", "CREATE_LF_TAG", "ASSOCIATE", "GRANT_WITH_LF_TAG_EXPRESSION"
1092
1418
  # resp.data_lake_settings.create_table_default_permissions #=> Array
1093
1419
  # resp.data_lake_settings.create_table_default_permissions[0].principal.data_lake_principal_identifier #=> String
1094
1420
  # resp.data_lake_settings.create_table_default_permissions[0].permissions #=> Array
1095
- # resp.data_lake_settings.create_table_default_permissions[0].permissions[0] #=> String, one of "ALL", "SELECT", "ALTER", "DROP", "DELETE", "INSERT", "DESCRIBE", "CREATE_DATABASE", "CREATE_TABLE", "DATA_LOCATION_ACCESS", "CREATE_TAG", "ALTER_TAG", "DELETE_TAG", "DESCRIBE_TAG", "ASSOCIATE_TAG"
1421
+ # resp.data_lake_settings.create_table_default_permissions[0].permissions[0] #=> String, one of "ALL", "SELECT", "ALTER", "DROP", "DELETE", "INSERT", "DESCRIBE", "CREATE_DATABASE", "CREATE_TABLE", "DATA_LOCATION_ACCESS", "CREATE_LF_TAG", "ASSOCIATE", "GRANT_WITH_LF_TAG_EXPRESSION"
1422
+ # resp.data_lake_settings.parameters #=> Hash
1423
+ # resp.data_lake_settings.parameters["KeyString"] #=> String
1096
1424
  # resp.data_lake_settings.trusted_resource_owners #=> Array
1097
1425
  # resp.data_lake_settings.trusted_resource_owners[0] #=> String
1426
+ # resp.data_lake_settings.allow_external_data_filtering #=> Boolean
1427
+ # resp.data_lake_settings.allow_full_table_external_data_access #=> Boolean
1428
+ # resp.data_lake_settings.external_data_filtering_allow_list #=> Array
1429
+ # resp.data_lake_settings.external_data_filtering_allow_list[0].data_lake_principal_identifier #=> String
1430
+ # resp.data_lake_settings.authorized_session_tag_value_list #=> Array
1431
+ # resp.data_lake_settings.authorized_session_tag_value_list[0] #=> String
1098
1432
  #
1099
1433
  # @see http://docs.aws.amazon.com/goto/WebAPI/lakeformation-2017-03-31/GetDataLakeSettings AWS API Documentation
1100
1434
  #
@@ -1176,11 +1510,13 @@ module Aws::LakeFormation
1176
1510
  # resp.permissions[0].resource.lf_tag_policy.expression[0].tag_values #=> Array
1177
1511
  # resp.permissions[0].resource.lf_tag_policy.expression[0].tag_values[0] #=> String
1178
1512
  # resp.permissions[0].permissions #=> Array
1179
- # resp.permissions[0].permissions[0] #=> String, one of "ALL", "SELECT", "ALTER", "DROP", "DELETE", "INSERT", "DESCRIBE", "CREATE_DATABASE", "CREATE_TABLE", "DATA_LOCATION_ACCESS", "CREATE_TAG", "ALTER_TAG", "DELETE_TAG", "DESCRIBE_TAG", "ASSOCIATE_TAG"
1513
+ # resp.permissions[0].permissions[0] #=> String, one of "ALL", "SELECT", "ALTER", "DROP", "DELETE", "INSERT", "DESCRIBE", "CREATE_DATABASE", "CREATE_TABLE", "DATA_LOCATION_ACCESS", "CREATE_LF_TAG", "ASSOCIATE", "GRANT_WITH_LF_TAG_EXPRESSION"
1180
1514
  # resp.permissions[0].permissions_with_grant_option #=> Array
1181
- # resp.permissions[0].permissions_with_grant_option[0] #=> String, one of "ALL", "SELECT", "ALTER", "DROP", "DELETE", "INSERT", "DESCRIBE", "CREATE_DATABASE", "CREATE_TABLE", "DATA_LOCATION_ACCESS", "CREATE_TAG", "ALTER_TAG", "DELETE_TAG", "DESCRIBE_TAG", "ASSOCIATE_TAG"
1515
+ # resp.permissions[0].permissions_with_grant_option[0] #=> String, one of "ALL", "SELECT", "ALTER", "DROP", "DELETE", "INSERT", "DESCRIBE", "CREATE_DATABASE", "CREATE_TABLE", "DATA_LOCATION_ACCESS", "CREATE_LF_TAG", "ASSOCIATE", "GRANT_WITH_LF_TAG_EXPRESSION"
1182
1516
  # resp.permissions[0].additional_details.resource_share #=> Array
1183
1517
  # resp.permissions[0].additional_details.resource_share[0] #=> String
1518
+ # resp.permissions[0].last_updated #=> Time
1519
+ # resp.permissions[0].last_updated_by #=> String
1184
1520
  # resp.next_token #=> String
1185
1521
  #
1186
1522
  # @see http://docs.aws.amazon.com/goto/WebAPI/lakeformation-2017-03-31/GetEffectivePermissionsForPath AWS API Documentation
@@ -1493,6 +1829,133 @@ module Aws::LakeFormation
1493
1829
  req.send_request(options)
1494
1830
  end
1495
1831
 
1832
+ # This API is identical to `GetTemporaryTableCredentials` except that
1833
+ # this is used when the target Data Catalog resource is of type
1834
+ # Partition. Lake Formation restricts the permission of the vended
1835
+ # credentials with the same scope down policy which restricts access to
1836
+ # a single Amazon S3 prefix.
1837
+ #
1838
+ # @option params [required, String] :table_arn
1839
+ # The ARN of the partitions' table.
1840
+ #
1841
+ # @option params [required, Types::PartitionValueList] :partition
1842
+ # A list of partition values identifying a single partition.
1843
+ #
1844
+ # @option params [Array<String>] :permissions
1845
+ # Filters the request based on the user having been granted a list of
1846
+ # specified permissions on the requested resource(s).
1847
+ #
1848
+ # @option params [Integer] :duration_seconds
1849
+ # The time period, between 900 and 21,600 seconds, for the timeout of
1850
+ # the temporary credentials.
1851
+ #
1852
+ # @option params [Types::AuditContext] :audit_context
1853
+ # A structure representing context to access a resource (column names,
1854
+ # query ID, etc).
1855
+ #
1856
+ # @option params [Array<String>] :supported_permission_types
1857
+ # A list of supported permission types for the partition. Valid values
1858
+ # are `COLUMN_PERMISSION` and `CELL_FILTER_PERMISSION`.
1859
+ #
1860
+ # @return [Types::GetTemporaryGluePartitionCredentialsResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
1861
+ #
1862
+ # * {Types::GetTemporaryGluePartitionCredentialsResponse#access_key_id #access_key_id} => String
1863
+ # * {Types::GetTemporaryGluePartitionCredentialsResponse#secret_access_key #secret_access_key} => String
1864
+ # * {Types::GetTemporaryGluePartitionCredentialsResponse#session_token #session_token} => String
1865
+ # * {Types::GetTemporaryGluePartitionCredentialsResponse#expiration #expiration} => Time
1866
+ #
1867
+ # @example Request syntax with placeholder values
1868
+ #
1869
+ # resp = client.get_temporary_glue_partition_credentials({
1870
+ # table_arn: "ResourceArnString", # required
1871
+ # partition: { # required
1872
+ # values: ["ValueString"], # required
1873
+ # },
1874
+ # permissions: ["ALL"], # accepts ALL, SELECT, ALTER, DROP, DELETE, INSERT, DESCRIBE, CREATE_DATABASE, CREATE_TABLE, DATA_LOCATION_ACCESS, CREATE_LF_TAG, ASSOCIATE, GRANT_WITH_LF_TAG_EXPRESSION
1875
+ # duration_seconds: 1,
1876
+ # audit_context: {
1877
+ # additional_audit_context: "AuditContextString",
1878
+ # },
1879
+ # supported_permission_types: ["COLUMN_PERMISSION"], # accepts COLUMN_PERMISSION, CELL_FILTER_PERMISSION, NESTED_PERMISSION, NESTED_CELL_PERMISSION
1880
+ # })
1881
+ #
1882
+ # @example Response structure
1883
+ #
1884
+ # resp.access_key_id #=> String
1885
+ # resp.secret_access_key #=> String
1886
+ # resp.session_token #=> String
1887
+ # resp.expiration #=> Time
1888
+ #
1889
+ # @see http://docs.aws.amazon.com/goto/WebAPI/lakeformation-2017-03-31/GetTemporaryGluePartitionCredentials AWS API Documentation
1890
+ #
1891
+ # @overload get_temporary_glue_partition_credentials(params = {})
1892
+ # @param [Hash] params ({})
1893
+ def get_temporary_glue_partition_credentials(params = {}, options = {})
1894
+ req = build_request(:get_temporary_glue_partition_credentials, params)
1895
+ req.send_request(options)
1896
+ end
1897
+
1898
+ # Allows a caller in a secure environment to assume a role with
1899
+ # permission to access Amazon S3. In order to vend such credentials,
1900
+ # Lake Formation assumes the role associated with a registered location,
1901
+ # for example an Amazon S3 bucket, with a scope down policy which
1902
+ # restricts the access to a single prefix.
1903
+ #
1904
+ # @option params [required, String] :table_arn
1905
+ # The ARN identifying a table in the Data Catalog for the temporary
1906
+ # credentials request.
1907
+ #
1908
+ # @option params [Array<String>] :permissions
1909
+ # Filters the request based on the user having been granted a list of
1910
+ # specified permissions on the requested resource(s).
1911
+ #
1912
+ # @option params [Integer] :duration_seconds
1913
+ # The time period, between 900 and 21,600 seconds, for the timeout of
1914
+ # the temporary credentials.
1915
+ #
1916
+ # @option params [Types::AuditContext] :audit_context
1917
+ # A structure representing context to access a resource (column names,
1918
+ # query ID, etc).
1919
+ #
1920
+ # @option params [Array<String>] :supported_permission_types
1921
+ # A list of supported permission types for the table. Valid values are
1922
+ # `COLUMN_PERMISSION` and `CELL_FILTER_PERMISSION`.
1923
+ #
1924
+ # @return [Types::GetTemporaryGlueTableCredentialsResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
1925
+ #
1926
+ # * {Types::GetTemporaryGlueTableCredentialsResponse#access_key_id #access_key_id} => String
1927
+ # * {Types::GetTemporaryGlueTableCredentialsResponse#secret_access_key #secret_access_key} => String
1928
+ # * {Types::GetTemporaryGlueTableCredentialsResponse#session_token #session_token} => String
1929
+ # * {Types::GetTemporaryGlueTableCredentialsResponse#expiration #expiration} => Time
1930
+ #
1931
+ # @example Request syntax with placeholder values
1932
+ #
1933
+ # resp = client.get_temporary_glue_table_credentials({
1934
+ # table_arn: "ResourceArnString", # required
1935
+ # permissions: ["ALL"], # accepts ALL, SELECT, ALTER, DROP, DELETE, INSERT, DESCRIBE, CREATE_DATABASE, CREATE_TABLE, DATA_LOCATION_ACCESS, CREATE_LF_TAG, ASSOCIATE, GRANT_WITH_LF_TAG_EXPRESSION
1936
+ # duration_seconds: 1,
1937
+ # audit_context: {
1938
+ # additional_audit_context: "AuditContextString",
1939
+ # },
1940
+ # supported_permission_types: ["COLUMN_PERMISSION"], # accepts COLUMN_PERMISSION, CELL_FILTER_PERMISSION, NESTED_PERMISSION, NESTED_CELL_PERMISSION
1941
+ # })
1942
+ #
1943
+ # @example Response structure
1944
+ #
1945
+ # resp.access_key_id #=> String
1946
+ # resp.secret_access_key #=> String
1947
+ # resp.session_token #=> String
1948
+ # resp.expiration #=> Time
1949
+ #
1950
+ # @see http://docs.aws.amazon.com/goto/WebAPI/lakeformation-2017-03-31/GetTemporaryGlueTableCredentials AWS API Documentation
1951
+ #
1952
+ # @overload get_temporary_glue_table_credentials(params = {})
1953
+ # @param [Hash] params ({})
1954
+ def get_temporary_glue_table_credentials(params = {}, options = {})
1955
+ req = build_request(:get_temporary_glue_table_credentials, params)
1956
+ req.send_request(options)
1957
+ end
1958
+
1496
1959
  # Returns the work units resulting from the query. Work units can be
1497
1960
  # executed in any order and in parallel.
1498
1961
  #
@@ -1593,7 +2056,7 @@ module Aws::LakeFormation
1593
2056
  #
1594
2057
  #
1595
2058
  #
1596
- # [1]: https://docs-aws.amazon.com/lake-formation/latest/dg/security-data-access.html
2059
+ # [1]: https://docs.aws.amazon.com/lake-formation/latest/dg/security-data-access.html
1597
2060
  #
1598
2061
  # @option params [String] :catalog_id
1599
2062
  # The identifier for the Data Catalog. By default, the account ID. The
@@ -1684,8 +2147,8 @@ module Aws::LakeFormation
1684
2147
  # ],
1685
2148
  # },
1686
2149
  # },
1687
- # permissions: ["ALL"], # required, accepts ALL, SELECT, ALTER, DROP, DELETE, INSERT, DESCRIBE, CREATE_DATABASE, CREATE_TABLE, DATA_LOCATION_ACCESS, CREATE_TAG, ALTER_TAG, DELETE_TAG, DESCRIBE_TAG, ASSOCIATE_TAG
1688
- # permissions_with_grant_option: ["ALL"], # accepts ALL, SELECT, ALTER, DROP, DELETE, INSERT, DESCRIBE, CREATE_DATABASE, CREATE_TABLE, DATA_LOCATION_ACCESS, CREATE_TAG, ALTER_TAG, DELETE_TAG, DESCRIBE_TAG, ASSOCIATE_TAG
2150
+ # permissions: ["ALL"], # required, accepts ALL, SELECT, ALTER, DROP, DELETE, INSERT, DESCRIBE, CREATE_DATABASE, CREATE_TABLE, DATA_LOCATION_ACCESS, CREATE_LF_TAG, ASSOCIATE, GRANT_WITH_LF_TAG_EXPRESSION
2151
+ # permissions_with_grant_option: ["ALL"], # accepts ALL, SELECT, ALTER, DROP, DELETE, INSERT, DESCRIBE, CREATE_DATABASE, CREATE_TABLE, DATA_LOCATION_ACCESS, CREATE_LF_TAG, ASSOCIATE, GRANT_WITH_LF_TAG_EXPRESSION
1689
2152
  # })
1690
2153
  #
1691
2154
  # @see http://docs.aws.amazon.com/goto/WebAPI/lakeformation-2017-03-31/GrantPermissions AWS API Documentation
@@ -1741,6 +2204,7 @@ module Aws::LakeFormation
1741
2204
  # resp.data_cells_filters[0].column_names[0] #=> String
1742
2205
  # resp.data_cells_filters[0].column_wildcard.excluded_column_names #=> Array
1743
2206
  # resp.data_cells_filters[0].column_wildcard.excluded_column_names[0] #=> String
2207
+ # resp.data_cells_filters[0].version_id #=> String
1744
2208
  # resp.next_token #=> String
1745
2209
  #
1746
2210
  # @see http://docs.aws.amazon.com/goto/WebAPI/lakeformation-2017-03-31/ListDataCellsFilter AWS API Documentation
@@ -1808,6 +2272,134 @@ module Aws::LakeFormation
1808
2272
  req.send_request(options)
1809
2273
  end
1810
2274
 
2275
+ # Retrieve the current list of resources and principals that are opt in
2276
+ # to enforce Lake Formation permissions.
2277
+ #
2278
+ # @option params [Types::DataLakePrincipal] :principal
2279
+ # The Lake Formation principal. Supported principals are IAM users or
2280
+ # IAM roles.
2281
+ #
2282
+ # @option params [Types::Resource] :resource
2283
+ # A structure for the resource.
2284
+ #
2285
+ # @option params [Integer] :max_results
2286
+ # The maximum number of results to return.
2287
+ #
2288
+ # @option params [String] :next_token
2289
+ # A continuation token, if this is not the first call to retrieve this
2290
+ # list.
2291
+ #
2292
+ # @return [Types::ListLakeFormationOptInsResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
2293
+ #
2294
+ # * {Types::ListLakeFormationOptInsResponse#lake_formation_opt_ins_info_list #lake_formation_opt_ins_info_list} => Array&lt;Types::LakeFormationOptInsInfo&gt;
2295
+ # * {Types::ListLakeFormationOptInsResponse#next_token #next_token} => String
2296
+ #
2297
+ # The returned {Seahorse::Client::Response response} is a pageable response and is Enumerable. For details on usage see {Aws::PageableResponse PageableResponse}.
2298
+ #
2299
+ # @example Request syntax with placeholder values
2300
+ #
2301
+ # resp = client.list_lake_formation_opt_ins({
2302
+ # principal: {
2303
+ # data_lake_principal_identifier: "DataLakePrincipalString",
2304
+ # },
2305
+ # resource: {
2306
+ # catalog: {
2307
+ # },
2308
+ # database: {
2309
+ # catalog_id: "CatalogIdString",
2310
+ # name: "NameString", # required
2311
+ # },
2312
+ # table: {
2313
+ # catalog_id: "CatalogIdString",
2314
+ # database_name: "NameString", # required
2315
+ # name: "NameString",
2316
+ # table_wildcard: {
2317
+ # },
2318
+ # },
2319
+ # table_with_columns: {
2320
+ # catalog_id: "CatalogIdString",
2321
+ # database_name: "NameString", # required
2322
+ # name: "NameString", # required
2323
+ # column_names: ["NameString"],
2324
+ # column_wildcard: {
2325
+ # excluded_column_names: ["NameString"],
2326
+ # },
2327
+ # },
2328
+ # data_location: {
2329
+ # catalog_id: "CatalogIdString",
2330
+ # resource_arn: "ResourceArnString", # required
2331
+ # },
2332
+ # data_cells_filter: {
2333
+ # table_catalog_id: "CatalogIdString",
2334
+ # database_name: "NameString",
2335
+ # table_name: "NameString",
2336
+ # name: "NameString",
2337
+ # },
2338
+ # lf_tag: {
2339
+ # catalog_id: "CatalogIdString",
2340
+ # tag_key: "NameString", # required
2341
+ # tag_values: ["LFTagValue"], # required
2342
+ # },
2343
+ # lf_tag_policy: {
2344
+ # catalog_id: "CatalogIdString",
2345
+ # resource_type: "DATABASE", # required, accepts DATABASE, TABLE
2346
+ # expression: [ # required
2347
+ # {
2348
+ # tag_key: "LFTagKey", # required
2349
+ # tag_values: ["LFTagValue"], # required
2350
+ # },
2351
+ # ],
2352
+ # },
2353
+ # },
2354
+ # max_results: 1,
2355
+ # next_token: "Token",
2356
+ # })
2357
+ #
2358
+ # @example Response structure
2359
+ #
2360
+ # resp.lake_formation_opt_ins_info_list #=> Array
2361
+ # resp.lake_formation_opt_ins_info_list[0].resource.database.catalog_id #=> String
2362
+ # resp.lake_formation_opt_ins_info_list[0].resource.database.name #=> String
2363
+ # resp.lake_formation_opt_ins_info_list[0].resource.table.catalog_id #=> String
2364
+ # resp.lake_formation_opt_ins_info_list[0].resource.table.database_name #=> String
2365
+ # resp.lake_formation_opt_ins_info_list[0].resource.table.name #=> String
2366
+ # resp.lake_formation_opt_ins_info_list[0].resource.table_with_columns.catalog_id #=> String
2367
+ # resp.lake_formation_opt_ins_info_list[0].resource.table_with_columns.database_name #=> String
2368
+ # resp.lake_formation_opt_ins_info_list[0].resource.table_with_columns.name #=> String
2369
+ # resp.lake_formation_opt_ins_info_list[0].resource.table_with_columns.column_names #=> Array
2370
+ # resp.lake_formation_opt_ins_info_list[0].resource.table_with_columns.column_names[0] #=> String
2371
+ # resp.lake_formation_opt_ins_info_list[0].resource.table_with_columns.column_wildcard.excluded_column_names #=> Array
2372
+ # resp.lake_formation_opt_ins_info_list[0].resource.table_with_columns.column_wildcard.excluded_column_names[0] #=> String
2373
+ # resp.lake_formation_opt_ins_info_list[0].resource.data_location.catalog_id #=> String
2374
+ # resp.lake_formation_opt_ins_info_list[0].resource.data_location.resource_arn #=> String
2375
+ # resp.lake_formation_opt_ins_info_list[0].resource.data_cells_filter.table_catalog_id #=> String
2376
+ # resp.lake_formation_opt_ins_info_list[0].resource.data_cells_filter.database_name #=> String
2377
+ # resp.lake_formation_opt_ins_info_list[0].resource.data_cells_filter.table_name #=> String
2378
+ # resp.lake_formation_opt_ins_info_list[0].resource.data_cells_filter.name #=> String
2379
+ # resp.lake_formation_opt_ins_info_list[0].resource.lf_tag.catalog_id #=> String
2380
+ # resp.lake_formation_opt_ins_info_list[0].resource.lf_tag.tag_key #=> String
2381
+ # resp.lake_formation_opt_ins_info_list[0].resource.lf_tag.tag_values #=> Array
2382
+ # resp.lake_formation_opt_ins_info_list[0].resource.lf_tag.tag_values[0] #=> String
2383
+ # resp.lake_formation_opt_ins_info_list[0].resource.lf_tag_policy.catalog_id #=> String
2384
+ # resp.lake_formation_opt_ins_info_list[0].resource.lf_tag_policy.resource_type #=> String, one of "DATABASE", "TABLE"
2385
+ # resp.lake_formation_opt_ins_info_list[0].resource.lf_tag_policy.expression #=> Array
2386
+ # resp.lake_formation_opt_ins_info_list[0].resource.lf_tag_policy.expression[0].tag_key #=> String
2387
+ # resp.lake_formation_opt_ins_info_list[0].resource.lf_tag_policy.expression[0].tag_values #=> Array
2388
+ # resp.lake_formation_opt_ins_info_list[0].resource.lf_tag_policy.expression[0].tag_values[0] #=> String
2389
+ # resp.lake_formation_opt_ins_info_list[0].principal.data_lake_principal_identifier #=> String
2390
+ # resp.lake_formation_opt_ins_info_list[0].last_modified #=> Time
2391
+ # resp.lake_formation_opt_ins_info_list[0].last_updated_by #=> String
2392
+ # resp.next_token #=> String
2393
+ #
2394
+ # @see http://docs.aws.amazon.com/goto/WebAPI/lakeformation-2017-03-31/ListLakeFormationOptIns AWS API Documentation
2395
+ #
2396
+ # @overload list_lake_formation_opt_ins(params = {})
2397
+ # @param [Hash] params ({})
2398
+ def list_lake_formation_opt_ins(params = {}, options = {})
2399
+ req = build_request(:list_lake_formation_opt_ins, params)
2400
+ req.send_request(options)
2401
+ end
2402
+
1811
2403
  # Returns a list of the principal permissions on the resource, filtered
1812
2404
  # by the permissions of the caller. For example, if you are granted an
1813
2405
  # ALTER permission, you are able to see only the principal permissions
@@ -1821,7 +2413,7 @@ module Aws::LakeFormation
1821
2413
  #
1822
2414
  #
1823
2415
  #
1824
- # [1]: https://docs-aws.amazon.com/lake-formation/latest/dg/security-data-access.html
2416
+ # [1]: https://docs.aws.amazon.com/lake-formation/latest/dg/security-data-access.html
1825
2417
  #
1826
2418
  # @option params [String] :catalog_id
1827
2419
  # The identifier for the Data Catalog. By default, the account ID. The
@@ -1954,11 +2546,13 @@ module Aws::LakeFormation
1954
2546
  # resp.principal_resource_permissions[0].resource.lf_tag_policy.expression[0].tag_values #=> Array
1955
2547
  # resp.principal_resource_permissions[0].resource.lf_tag_policy.expression[0].tag_values[0] #=> String
1956
2548
  # resp.principal_resource_permissions[0].permissions #=> Array
1957
- # resp.principal_resource_permissions[0].permissions[0] #=> String, one of "ALL", "SELECT", "ALTER", "DROP", "DELETE", "INSERT", "DESCRIBE", "CREATE_DATABASE", "CREATE_TABLE", "DATA_LOCATION_ACCESS", "CREATE_TAG", "ALTER_TAG", "DELETE_TAG", "DESCRIBE_TAG", "ASSOCIATE_TAG"
2549
+ # resp.principal_resource_permissions[0].permissions[0] #=> String, one of "ALL", "SELECT", "ALTER", "DROP", "DELETE", "INSERT", "DESCRIBE", "CREATE_DATABASE", "CREATE_TABLE", "DATA_LOCATION_ACCESS", "CREATE_LF_TAG", "ASSOCIATE", "GRANT_WITH_LF_TAG_EXPRESSION"
1958
2550
  # resp.principal_resource_permissions[0].permissions_with_grant_option #=> Array
1959
- # resp.principal_resource_permissions[0].permissions_with_grant_option[0] #=> String, one of "ALL", "SELECT", "ALTER", "DROP", "DELETE", "INSERT", "DESCRIBE", "CREATE_DATABASE", "CREATE_TABLE", "DATA_LOCATION_ACCESS", "CREATE_TAG", "ALTER_TAG", "DELETE_TAG", "DESCRIBE_TAG", "ASSOCIATE_TAG"
2551
+ # resp.principal_resource_permissions[0].permissions_with_grant_option[0] #=> String, one of "ALL", "SELECT", "ALTER", "DROP", "DELETE", "INSERT", "DESCRIBE", "CREATE_DATABASE", "CREATE_TABLE", "DATA_LOCATION_ACCESS", "CREATE_LF_TAG", "ASSOCIATE", "GRANT_WITH_LF_TAG_EXPRESSION"
1960
2552
  # resp.principal_resource_permissions[0].additional_details.resource_share #=> Array
1961
2553
  # resp.principal_resource_permissions[0].additional_details.resource_share[0] #=> String
2554
+ # resp.principal_resource_permissions[0].last_updated #=> Time
2555
+ # resp.principal_resource_permissions[0].last_updated_by #=> String
1962
2556
  # resp.next_token #=> String
1963
2557
  #
1964
2558
  # @see http://docs.aws.amazon.com/goto/WebAPI/lakeformation-2017-03-31/ListPermissions AWS API Documentation
@@ -2010,6 +2604,8 @@ module Aws::LakeFormation
2010
2604
  # resp.resource_info_list[0].resource_arn #=> String
2011
2605
  # resp.resource_info_list[0].role_arn #=> String
2012
2606
  # resp.resource_info_list[0].last_modified #=> Time
2607
+ # resp.resource_info_list[0].with_federation #=> Boolean
2608
+ # resp.resource_info_list[0].hybrid_access_enabled #=> Boolean
2013
2609
  # resp.next_token #=> String
2014
2610
  #
2015
2611
  # @see http://docs.aws.amazon.com/goto/WebAPI/lakeformation-2017-03-31/ListResources AWS API Documentation
@@ -2172,12 +2768,17 @@ module Aws::LakeFormation
2172
2768
  # data_lake_principal_identifier: "DataLakePrincipalString",
2173
2769
  # },
2174
2770
  # ],
2771
+ # read_only_admins: [
2772
+ # {
2773
+ # data_lake_principal_identifier: "DataLakePrincipalString",
2774
+ # },
2775
+ # ],
2175
2776
  # create_database_default_permissions: [
2176
2777
  # {
2177
2778
  # principal: {
2178
2779
  # data_lake_principal_identifier: "DataLakePrincipalString",
2179
2780
  # },
2180
- # permissions: ["ALL"], # accepts ALL, SELECT, ALTER, DROP, DELETE, INSERT, DESCRIBE, CREATE_DATABASE, CREATE_TABLE, DATA_LOCATION_ACCESS, CREATE_TAG, ALTER_TAG, DELETE_TAG, DESCRIBE_TAG, ASSOCIATE_TAG
2781
+ # permissions: ["ALL"], # accepts ALL, SELECT, ALTER, DROP, DELETE, INSERT, DESCRIBE, CREATE_DATABASE, CREATE_TABLE, DATA_LOCATION_ACCESS, CREATE_LF_TAG, ASSOCIATE, GRANT_WITH_LF_TAG_EXPRESSION
2181
2782
  # },
2182
2783
  # ],
2183
2784
  # create_table_default_permissions: [
@@ -2185,10 +2786,21 @@ module Aws::LakeFormation
2185
2786
  # principal: {
2186
2787
  # data_lake_principal_identifier: "DataLakePrincipalString",
2187
2788
  # },
2188
- # permissions: ["ALL"], # accepts ALL, SELECT, ALTER, DROP, DELETE, INSERT, DESCRIBE, CREATE_DATABASE, CREATE_TABLE, DATA_LOCATION_ACCESS, CREATE_TAG, ALTER_TAG, DELETE_TAG, DESCRIBE_TAG, ASSOCIATE_TAG
2789
+ # permissions: ["ALL"], # accepts ALL, SELECT, ALTER, DROP, DELETE, INSERT, DESCRIBE, CREATE_DATABASE, CREATE_TABLE, DATA_LOCATION_ACCESS, CREATE_LF_TAG, ASSOCIATE, GRANT_WITH_LF_TAG_EXPRESSION
2189
2790
  # },
2190
2791
  # ],
2792
+ # parameters: {
2793
+ # "KeyString" => "ParametersMapValue",
2794
+ # },
2191
2795
  # trusted_resource_owners: ["CatalogIdString"],
2796
+ # allow_external_data_filtering: false,
2797
+ # allow_full_table_external_data_access: false,
2798
+ # external_data_filtering_allow_list: [
2799
+ # {
2800
+ # data_lake_principal_identifier: "DataLakePrincipalString",
2801
+ # },
2802
+ # ],
2803
+ # authorized_session_tag_value_list: ["NameString"],
2192
2804
  # },
2193
2805
  # })
2194
2806
  #
@@ -2219,7 +2831,7 @@ module Aws::LakeFormation
2219
2831
  # `ResourceArn = arn:aws:s3:::my-bucket UseServiceLinkedRole = true`
2220
2832
  #
2221
2833
  # If `UseServiceLinkedRole` is not set to true, you must provide or set
2222
- # the `RoleArn`\:
2834
+ # the `RoleArn`:
2223
2835
  #
2224
2836
  # `arn:aws:iam::12345:role/my-data-access-role`
2225
2837
  #
@@ -2238,11 +2850,19 @@ module Aws::LakeFormation
2238
2850
  #
2239
2851
  #
2240
2852
  #
2241
- # [1]: https://docs-aws.amazon.com/lake-formation/latest/dg/service-linked-roles.html
2853
+ # [1]: https://docs.aws.amazon.com/lake-formation/latest/dg/service-linked-roles.html
2242
2854
  #
2243
2855
  # @option params [String] :role_arn
2244
2856
  # The identifier for the role that registers the resource.
2245
2857
  #
2858
+ # @option params [Boolean] :with_federation
2859
+ # Whether or not the resource is a federated resource.
2860
+ #
2861
+ # @option params [Boolean] :hybrid_access_enabled
2862
+ # Specifies whether the data access of tables pointing to the location
2863
+ # can be managed by both Lake Formation permissions as well as Amazon S3
2864
+ # bucket policies.
2865
+ #
2246
2866
  # @return [Struct] Returns an empty {Seahorse::Client::Response response}.
2247
2867
  #
2248
2868
  # @example Request syntax with placeholder values
@@ -2251,6 +2871,8 @@ module Aws::LakeFormation
2251
2871
  # resource_arn: "ResourceArnString", # required
2252
2872
  # use_service_linked_role: false,
2253
2873
  # role_arn: "IAMRoleArn",
2874
+ # with_federation: false,
2875
+ # hybrid_access_enabled: false,
2254
2876
  # })
2255
2877
  #
2256
2878
  # @see http://docs.aws.amazon.com/goto/WebAPI/lakeformation-2017-03-31/RegisterResource AWS API Documentation
@@ -2387,7 +3009,7 @@ module Aws::LakeFormation
2387
3009
  #
2388
3010
  #
2389
3011
  #
2390
- # [1]: https://docs-aws.amazon.com/lake-formation/latest/dg/security-data-access.html
3012
+ # [1]: https://docs.aws.amazon.com/lake-formation/latest/dg/security-data-access.html
2391
3013
  #
2392
3014
  # @option params [Array<String>] :permissions_with_grant_option
2393
3015
  # Indicates a list of permissions for which to revoke the grant option
@@ -2451,8 +3073,8 @@ module Aws::LakeFormation
2451
3073
  # ],
2452
3074
  # },
2453
3075
  # },
2454
- # permissions: ["ALL"], # required, accepts ALL, SELECT, ALTER, DROP, DELETE, INSERT, DESCRIBE, CREATE_DATABASE, CREATE_TABLE, DATA_LOCATION_ACCESS, CREATE_TAG, ALTER_TAG, DELETE_TAG, DESCRIBE_TAG, ASSOCIATE_TAG
2455
- # permissions_with_grant_option: ["ALL"], # accepts ALL, SELECT, ALTER, DROP, DELETE, INSERT, DESCRIBE, CREATE_DATABASE, CREATE_TABLE, DATA_LOCATION_ACCESS, CREATE_TAG, ALTER_TAG, DELETE_TAG, DESCRIBE_TAG, ASSOCIATE_TAG
3076
+ # permissions: ["ALL"], # required, accepts ALL, SELECT, ALTER, DROP, DELETE, INSERT, DESCRIBE, CREATE_DATABASE, CREATE_TABLE, DATA_LOCATION_ACCESS, CREATE_LF_TAG, ASSOCIATE, GRANT_WITH_LF_TAG_EXPRESSION
3077
+ # permissions_with_grant_option: ["ALL"], # accepts ALL, SELECT, ALTER, DROP, DELETE, INSERT, DESCRIBE, CREATE_DATABASE, CREATE_TABLE, DATA_LOCATION_ACCESS, CREATE_LF_TAG, ASSOCIATE, GRANT_WITH_LF_TAG_EXPRESSION
2456
3078
  # })
2457
3079
  #
2458
3080
  # @see http://docs.aws.amazon.com/goto/WebAPI/lakeformation-2017-03-31/RevokePermissions AWS API Documentation
@@ -2683,6 +3305,44 @@ module Aws::LakeFormation
2683
3305
  req.send_request(options)
2684
3306
  end
2685
3307
 
3308
+ # Updates a data cell filter.
3309
+ #
3310
+ # @option params [required, Types::DataCellsFilter] :table_data
3311
+ # A `DataCellsFilter` structure containing information about the data
3312
+ # cells filter.
3313
+ #
3314
+ # @return [Struct] Returns an empty {Seahorse::Client::Response response}.
3315
+ #
3316
+ # @example Request syntax with placeholder values
3317
+ #
3318
+ # resp = client.update_data_cells_filter({
3319
+ # table_data: { # required
3320
+ # table_catalog_id: "CatalogIdString", # required
3321
+ # database_name: "NameString", # required
3322
+ # table_name: "NameString", # required
3323
+ # name: "NameString", # required
3324
+ # row_filter: {
3325
+ # filter_expression: "PredicateString",
3326
+ # all_rows_wildcard: {
3327
+ # },
3328
+ # },
3329
+ # column_names: ["NameString"],
3330
+ # column_wildcard: {
3331
+ # excluded_column_names: ["NameString"],
3332
+ # },
3333
+ # version_id: "VersionString",
3334
+ # },
3335
+ # })
3336
+ #
3337
+ # @see http://docs.aws.amazon.com/goto/WebAPI/lakeformation-2017-03-31/UpdateDataCellsFilter AWS API Documentation
3338
+ #
3339
+ # @overload update_data_cells_filter(params = {})
3340
+ # @param [Hash] params ({})
3341
+ def update_data_cells_filter(params = {}, options = {})
3342
+ req = build_request(:update_data_cells_filter, params)
3343
+ req.send_request(options)
3344
+ end
3345
+
2686
3346
  # Updates the list of possible values for the specified LF-tag key. If
2687
3347
  # the LF-tag does not exist, the operation throws an
2688
3348
  # EntityNotFoundException. The values in the delete key values will be
@@ -2736,6 +3396,14 @@ module Aws::LakeFormation
2736
3396
  # @option params [required, String] :resource_arn
2737
3397
  # The resource ARN.
2738
3398
  #
3399
+ # @option params [Boolean] :with_federation
3400
+ # Whether or not the resource is a federated resource.
3401
+ #
3402
+ # @option params [Boolean] :hybrid_access_enabled
3403
+ # Specifies whether the data access of tables pointing to the location
3404
+ # can be managed by both Lake Formation permissions as well as Amazon S3
3405
+ # bucket policies.
3406
+ #
2739
3407
  # @return [Struct] Returns an empty {Seahorse::Client::Response response}.
2740
3408
  #
2741
3409
  # @example Request syntax with placeholder values
@@ -2743,6 +3411,8 @@ module Aws::LakeFormation
2743
3411
  # resp = client.update_resource({
2744
3412
  # role_arn: "IAMRoleArn", # required
2745
3413
  # resource_arn: "ResourceArnString", # required
3414
+ # with_federation: false,
3415
+ # hybrid_access_enabled: false,
2746
3416
  # })
2747
3417
  #
2748
3418
  # @see http://docs.aws.amazon.com/goto/WebAPI/lakeformation-2017-03-31/UpdateResource AWS API Documentation
@@ -2767,7 +3437,7 @@ module Aws::LakeFormation
2767
3437
  # @option params [required, String] :table_name
2768
3438
  # The governed table to update.
2769
3439
  #
2770
- # @option params [required, String] :transaction_id
3440
+ # @option params [String] :transaction_id
2771
3441
  # The transaction at which to do the write.
2772
3442
  #
2773
3443
  # @option params [required, Array<Types::WriteOperation>] :write_operations
@@ -2782,7 +3452,7 @@ module Aws::LakeFormation
2782
3452
  # catalog_id: "CatalogIdString",
2783
3453
  # database_name: "NameString", # required
2784
3454
  # table_name: "NameString", # required
2785
- # transaction_id: "TransactionIdString", # required
3455
+ # transaction_id: "TransactionIdString",
2786
3456
  # write_operations: [ # required
2787
3457
  # {
2788
3458
  # add_object: {
@@ -2866,7 +3536,7 @@ module Aws::LakeFormation
2866
3536
  params: params,
2867
3537
  config: config)
2868
3538
  context[:gem_name] = 'aws-sdk-lakeformation'
2869
- context[:gem_version] = '1.20.0'
3539
+ context[:gem_version] = '1.42.0'
2870
3540
  Seahorse::Client::Request.new(handlers, context)
2871
3541
  end
2872
3542