aws-sdk-lakeformation 1.20.0 → 1.42.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.
@@ -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