aws-sdk-lakeformation 1.19.0 → 1.20.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.
@@ -28,7 +28,7 @@ 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
30
  require 'aws-sdk-core/plugins/signature_v4.rb'
31
- require 'aws-sdk-core/plugins/protocols/json_rpc.rb'
31
+ require 'aws-sdk-core/plugins/protocols/rest_json.rb'
32
32
 
33
33
  Aws::Plugins::GlobalConfiguration.add_identifier(:lakeformation)
34
34
 
@@ -74,7 +74,7 @@ module Aws::LakeFormation
74
74
  add_plugin(Aws::Plugins::TransferEncoding)
75
75
  add_plugin(Aws::Plugins::HttpChecksum)
76
76
  add_plugin(Aws::Plugins::SignatureV4)
77
- add_plugin(Aws::Plugins::Protocols::JsonRpc)
77
+ add_plugin(Aws::Plugins::Protocols::RestJson)
78
78
 
79
79
  # @overload initialize(options)
80
80
  # @param [Hash] options
@@ -119,7 +119,9 @@ module Aws::LakeFormation
119
119
  # * EC2/ECS IMDS instance profile - When used by default, the timeouts
120
120
  # are very aggressive. Construct and pass an instance of
121
121
  # `Aws::InstanceProfileCredentails` or `Aws::ECSCredentials` to
122
- # enable retries and extended timeouts.
122
+ # enable retries and extended timeouts. Instance profile credential
123
+ # fetching can be disabled by setting ENV['AWS_EC2_METADATA_DISABLED']
124
+ # to true.
123
125
  #
124
126
  # @option options [required, String] :region
125
127
  # The AWS region to connect to. The configured `:region` is
@@ -266,16 +268,6 @@ module Aws::LakeFormation
266
268
  #
267
269
  # @option options [String] :session_token
268
270
  #
269
- # @option options [Boolean] :simple_json (false)
270
- # Disables request parameter conversion, validation, and formatting.
271
- # Also disable response data type conversions. This option is useful
272
- # when you want to ensure the highest level of performance by
273
- # avoiding overhead of walking request parameters and response data
274
- # structures.
275
- #
276
- # When `:simple_json` is enabled, the request parameters hash must
277
- # be formatted exactly as the DynamoDB API expects.
278
- #
279
271
  # @option options [Boolean] :stub_responses (false)
280
272
  # Causes the client to return stubbed responses. By default
281
273
  # fake responses are generated and returned. You can specify
@@ -346,19 +338,19 @@ module Aws::LakeFormation
346
338
 
347
339
  # @!group API Operations
348
340
 
349
- # Attaches one or more tags to an existing resource.
341
+ # Attaches one or more LF-tags to an existing resource.
350
342
  #
351
343
  # @option params [String] :catalog_id
352
344
  # The identifier for the Data Catalog. By default, the account ID. The
353
345
  # Data Catalog is the persistent metadata store. It contains database
354
346
  # definitions, table definitions, and other control information to
355
- # manage your AWS Lake Formation environment.
347
+ # manage your Lake Formation environment.
356
348
  #
357
349
  # @option params [required, Types::Resource] :resource
358
- # The resource to which to attach a tag.
350
+ # The database, table, or column resource to which to attach an LF-tag.
359
351
  #
360
352
  # @option params [required, Array<Types::LFTagPair>] :lf_tags
361
- # The tags to attach to the resource.
353
+ # The LF-tags to attach to the resource.
362
354
  #
363
355
  # @return [Types::AddLFTagsToResourceResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
364
356
  #
@@ -395,6 +387,12 @@ module Aws::LakeFormation
395
387
  # catalog_id: "CatalogIdString",
396
388
  # resource_arn: "ResourceArnString", # required
397
389
  # },
390
+ # data_cells_filter: {
391
+ # table_catalog_id: "CatalogIdString",
392
+ # database_name: "NameString",
393
+ # table_name: "NameString",
394
+ # name: "NameString",
395
+ # },
398
396
  # lf_tag: {
399
397
  # catalog_id: "CatalogIdString",
400
398
  # tag_key: "NameString", # required
@@ -445,7 +443,7 @@ module Aws::LakeFormation
445
443
  # The identifier for the Data Catalog. By default, the account ID. The
446
444
  # Data Catalog is the persistent metadata store. It contains database
447
445
  # definitions, table definitions, and other control information to
448
- # manage your AWS Lake Formation environment.
446
+ # manage your Lake Formation environment.
449
447
  #
450
448
  # @option params [required, Array<Types::BatchPermissionsRequestEntry>] :entries
451
449
  # A list of up to 20 entries for resource permissions to be granted by
@@ -492,6 +490,12 @@ module Aws::LakeFormation
492
490
  # catalog_id: "CatalogIdString",
493
491
  # resource_arn: "ResourceArnString", # required
494
492
  # },
493
+ # data_cells_filter: {
494
+ # table_catalog_id: "CatalogIdString",
495
+ # database_name: "NameString",
496
+ # table_name: "NameString",
497
+ # name: "NameString",
498
+ # },
495
499
  # lf_tag: {
496
500
  # catalog_id: "CatalogIdString",
497
501
  # tag_key: "NameString", # required
@@ -533,6 +537,10 @@ module Aws::LakeFormation
533
537
  # resp.failures[0].request_entry.resource.table_with_columns.column_wildcard.excluded_column_names[0] #=> String
534
538
  # resp.failures[0].request_entry.resource.data_location.catalog_id #=> String
535
539
  # resp.failures[0].request_entry.resource.data_location.resource_arn #=> String
540
+ # resp.failures[0].request_entry.resource.data_cells_filter.table_catalog_id #=> String
541
+ # resp.failures[0].request_entry.resource.data_cells_filter.database_name #=> String
542
+ # resp.failures[0].request_entry.resource.data_cells_filter.table_name #=> String
543
+ # resp.failures[0].request_entry.resource.data_cells_filter.name #=> String
536
544
  # resp.failures[0].request_entry.resource.lf_tag.catalog_id #=> String
537
545
  # resp.failures[0].request_entry.resource.lf_tag.tag_key #=> String
538
546
  # resp.failures[0].request_entry.resource.lf_tag.tag_values #=> Array
@@ -565,7 +573,7 @@ module Aws::LakeFormation
565
573
  # The identifier for the Data Catalog. By default, the account ID. The
566
574
  # Data Catalog is the persistent metadata store. It contains database
567
575
  # definitions, table definitions, and other control information to
568
- # manage your AWS Lake Formation environment.
576
+ # manage your Lake Formation environment.
569
577
  #
570
578
  # @option params [required, Array<Types::BatchPermissionsRequestEntry>] :entries
571
579
  # A list of up to 20 entries for resource permissions to be revoked by
@@ -612,6 +620,12 @@ module Aws::LakeFormation
612
620
  # catalog_id: "CatalogIdString",
613
621
  # resource_arn: "ResourceArnString", # required
614
622
  # },
623
+ # data_cells_filter: {
624
+ # table_catalog_id: "CatalogIdString",
625
+ # database_name: "NameString",
626
+ # table_name: "NameString",
627
+ # name: "NameString",
628
+ # },
615
629
  # lf_tag: {
616
630
  # catalog_id: "CatalogIdString",
617
631
  # tag_key: "NameString", # required
@@ -653,6 +667,10 @@ module Aws::LakeFormation
653
667
  # resp.failures[0].request_entry.resource.table_with_columns.column_wildcard.excluded_column_names[0] #=> String
654
668
  # resp.failures[0].request_entry.resource.data_location.catalog_id #=> String
655
669
  # resp.failures[0].request_entry.resource.data_location.resource_arn #=> String
670
+ # resp.failures[0].request_entry.resource.data_cells_filter.table_catalog_id #=> String
671
+ # resp.failures[0].request_entry.resource.data_cells_filter.database_name #=> String
672
+ # resp.failures[0].request_entry.resource.data_cells_filter.table_name #=> String
673
+ # resp.failures[0].request_entry.resource.data_cells_filter.name #=> String
656
674
  # resp.failures[0].request_entry.resource.lf_tag.catalog_id #=> String
657
675
  # resp.failures[0].request_entry.resource.lf_tag.tag_key #=> String
658
676
  # resp.failures[0].request_entry.resource.lf_tag.tag_values #=> Array
@@ -679,16 +697,107 @@ module Aws::LakeFormation
679
697
  req.send_request(options)
680
698
  end
681
699
 
682
- # Creates a tag with the specified name and values.
700
+ # Attempts to cancel the specified transaction. Returns an exception if
701
+ # the transaction was previously committed.
702
+ #
703
+ # @option params [required, String] :transaction_id
704
+ # The transaction to cancel.
705
+ #
706
+ # @return [Struct] Returns an empty {Seahorse::Client::Response response}.
707
+ #
708
+ # @example Request syntax with placeholder values
709
+ #
710
+ # resp = client.cancel_transaction({
711
+ # transaction_id: "TransactionIdString", # required
712
+ # })
713
+ #
714
+ # @see http://docs.aws.amazon.com/goto/WebAPI/lakeformation-2017-03-31/CancelTransaction AWS API Documentation
715
+ #
716
+ # @overload cancel_transaction(params = {})
717
+ # @param [Hash] params ({})
718
+ def cancel_transaction(params = {}, options = {})
719
+ req = build_request(:cancel_transaction, params)
720
+ req.send_request(options)
721
+ end
722
+
723
+ # Attempts to commit the specified transaction. Returns an exception if
724
+ # the transaction was previously aborted. This API action is idempotent
725
+ # if called multiple times for the same transaction.
726
+ #
727
+ # @option params [required, String] :transaction_id
728
+ # The transaction to commit.
729
+ #
730
+ # @return [Types::CommitTransactionResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
731
+ #
732
+ # * {Types::CommitTransactionResponse#transaction_status #transaction_status} => String
733
+ #
734
+ # @example Request syntax with placeholder values
735
+ #
736
+ # resp = client.commit_transaction({
737
+ # transaction_id: "TransactionIdString", # required
738
+ # })
739
+ #
740
+ # @example Response structure
741
+ #
742
+ # resp.transaction_status #=> String, one of "ACTIVE", "COMMITTED", "ABORTED", "COMMIT_IN_PROGRESS"
743
+ #
744
+ # @see http://docs.aws.amazon.com/goto/WebAPI/lakeformation-2017-03-31/CommitTransaction AWS API Documentation
745
+ #
746
+ # @overload commit_transaction(params = {})
747
+ # @param [Hash] params ({})
748
+ def commit_transaction(params = {}, options = {})
749
+ req = build_request(:commit_transaction, params)
750
+ req.send_request(options)
751
+ end
752
+
753
+ # Creates a data cell filter to allow one to grant access to certain
754
+ # columns on certain rows.
755
+ #
756
+ # @option params [required, Types::DataCellsFilter] :table_data
757
+ # A `DataCellsFilter` structure containing information about the data
758
+ # cells filter.
759
+ #
760
+ # @return [Struct] Returns an empty {Seahorse::Client::Response response}.
761
+ #
762
+ # @example Request syntax with placeholder values
763
+ #
764
+ # resp = client.create_data_cells_filter({
765
+ # table_data: { # required
766
+ # table_catalog_id: "CatalogIdString", # required
767
+ # database_name: "NameString", # required
768
+ # table_name: "NameString", # required
769
+ # name: "NameString", # required
770
+ # row_filter: {
771
+ # filter_expression: "PredicateString",
772
+ # all_rows_wildcard: {
773
+ # },
774
+ # },
775
+ # column_names: ["NameString"],
776
+ # column_wildcard: {
777
+ # excluded_column_names: ["NameString"],
778
+ # },
779
+ # },
780
+ # })
781
+ #
782
+ # @see http://docs.aws.amazon.com/goto/WebAPI/lakeformation-2017-03-31/CreateDataCellsFilter AWS API Documentation
783
+ #
784
+ # @overload create_data_cells_filter(params = {})
785
+ # @param [Hash] params ({})
786
+ def create_data_cells_filter(params = {}, options = {})
787
+ req = build_request(:create_data_cells_filter, params)
788
+ req.send_request(options)
789
+ end
790
+
791
+ # Creates an LF-tag with the specified name and values.
683
792
  #
684
793
  # @option params [String] :catalog_id
685
794
  # The identifier for the Data Catalog. By default, the account ID. The
686
795
  # Data Catalog is the persistent metadata store. It contains database
687
796
  # definitions, table definitions, and other control information to
688
- # manage your AWS Lake Formation environment.
797
+ # manage your Lake Formation environment.
689
798
  #
690
799
  # @option params [required, String] :tag_key
691
- # The key-name for the tag.
800
+ # The key-name for the LF-tag.
692
801
  #
693
802
  # @option params [required, Array<String>] :tag_values
694
803
  # A list of possible values an attribute can take.
@@ -712,22 +821,56 @@ module Aws::LakeFormation
712
821
  req.send_request(options)
713
822
  end
714
823
 
715
- # Deletes the specified tag key name. If the attribute key does not
716
- # exist or the tag does not exist, then the operation will not do
824
+ # Deletes a data cell filter.
825
+ #
826
+ # @option params [String] :table_catalog_id
827
+ # The ID of the catalog to which the table belongs.
828
+ #
829
+ # @option params [String] :database_name
830
+ # A database in the Glue Data Catalog.
831
+ #
832
+ # @option params [String] :table_name
833
+ # A table in the database.
834
+ #
835
+ # @option params [String] :name
836
+ # The name given by the user to the data filter cell.
837
+ #
838
+ # @return [Struct] Returns an empty {Seahorse::Client::Response response}.
839
+ #
840
+ # @example Request syntax with placeholder values
841
+ #
842
+ # resp = client.delete_data_cells_filter({
843
+ # table_catalog_id: "CatalogIdString",
844
+ # database_name: "NameString",
845
+ # table_name: "NameString",
846
+ # name: "NameString",
847
+ # })
848
+ #
849
+ # @see http://docs.aws.amazon.com/goto/WebAPI/lakeformation-2017-03-31/DeleteDataCellsFilter AWS API Documentation
850
+ #
851
+ # @overload delete_data_cells_filter(params = {})
852
+ # @param [Hash] params ({})
853
+ def delete_data_cells_filter(params = {}, options = {})
854
+ req = build_request(:delete_data_cells_filter, params)
855
+ req.send_request(options)
856
+ end
857
+
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
717
860
  # anything. If the attribute key exists, then the operation checks if
718
861
  # any resources are tagged with this attribute key, if yes, the API
719
862
  # throws a 400 Exception with the message "Delete not allowed" as the
720
- # tag key is still attached with resources. You can consider untagging
721
- # resources with this tag key.
863
+ # LF-tag key is still attached with resources. You can consider
864
+ # untagging resources with this LF-tag key.
722
865
  #
723
866
  # @option params [String] :catalog_id
724
867
  # The identifier for the Data Catalog. By default, the account ID. The
725
868
  # Data Catalog is the persistent metadata store. It contains database
726
869
  # definitions, table definitions, and other control information to
727
- # manage your AWS Lake Formation environment.
870
+ # manage your Lake Formation environment.
728
871
  #
729
872
  # @option params [required, String] :tag_key
730
- # The key-name for the tag to delete.
873
+ # The key-name for the LF-tag to delete.
731
874
  #
732
875
  # @return [Struct] Returns an empty {Seahorse::Client::Response response}.
733
876
  #
@@ -747,6 +890,64 @@ module Aws::LakeFormation
747
890
  req.send_request(options)
748
891
  end
749
892
 
893
+ # For a specific governed table, provides a list of Amazon S3 objects
894
+ # that will be written during the current transaction and that can be
895
+ # automatically deleted if the transaction is canceled. Without this
896
+ # call, no Amazon S3 objects are automatically deleted when a
897
+ # transaction cancels.
898
+ #
899
+ # The Glue ETL library function `write_dynamic_frame.from_catalog()`
900
+ # includes an option to automatically call `DeleteObjectsOnCancel`
901
+ # before writes. For more information, see [Rolling Back Amazon S3
902
+ # Writes][1].
903
+ #
904
+ #
905
+ #
906
+ # [1]: https://docs.aws.amazon.com/lake-formation/latest/dg/transactions-data-operations.html#rolling-back-writes
907
+ #
908
+ # @option params [String] :catalog_id
909
+ # The Glue data catalog that contains the governed table. Defaults to
910
+ # the current account ID.
911
+ #
912
+ # @option params [required, String] :database_name
913
+ # The database that contains the governed table.
914
+ #
915
+ # @option params [required, String] :table_name
916
+ # The name of the governed table.
917
+ #
918
+ # @option params [required, String] :transaction_id
919
+ # ID of the transaction that the writes occur in.
920
+ #
921
+ # @option params [required, Array<Types::VirtualObject>] :objects
922
+ # A list of VirtualObject structures, which indicates the Amazon S3
923
+ # objects to be deleted if the transaction cancels.
924
+ #
925
+ # @return [Struct] Returns an empty {Seahorse::Client::Response response}.
926
+ #
927
+ # @example Request syntax with placeholder values
928
+ #
929
+ # resp = client.delete_objects_on_cancel({
930
+ # catalog_id: "CatalogIdString",
931
+ # database_name: "NameString", # required
932
+ # table_name: "NameString", # required
933
+ # transaction_id: "TransactionIdString", # required
934
+ # objects: [ # required
935
+ # {
936
+ # uri: "URI", # required
937
+ # etag: "ETagString",
938
+ # },
939
+ # ],
940
+ # })
941
+ #
942
+ # @see http://docs.aws.amazon.com/goto/WebAPI/lakeformation-2017-03-31/DeleteObjectsOnCancel AWS API Documentation
943
+ #
944
+ # @overload delete_objects_on_cancel(params = {})
945
+ # @param [Hash] params ({})
946
+ def delete_objects_on_cancel(params = {}, options = {})
947
+ req = build_request(:delete_objects_on_cancel, params)
948
+ req.send_request(options)
949
+ end
950
+
750
951
  # Deregisters the resource as managed by the Data Catalog.
751
952
  #
752
953
  # When you deregister a path, Lake Formation removes the path from the
@@ -774,7 +975,7 @@ module Aws::LakeFormation
774
975
  end
775
976
 
776
977
  # Retrieves the current data access role for the given resource
777
- # registered in AWS Lake Formation.
978
+ # registered in Lake Formation.
778
979
  #
779
980
  # @option params [required, String] :resource_arn
780
981
  # The resource ARN.
@@ -804,6 +1005,63 @@ module Aws::LakeFormation
804
1005
  req.send_request(options)
805
1006
  end
806
1007
 
1008
+ # Returns the details of a single transaction.
1009
+ #
1010
+ # @option params [required, String] :transaction_id
1011
+ # The transaction for which to return status.
1012
+ #
1013
+ # @return [Types::DescribeTransactionResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
1014
+ #
1015
+ # * {Types::DescribeTransactionResponse#transaction_description #transaction_description} => Types::TransactionDescription
1016
+ #
1017
+ # @example Request syntax with placeholder values
1018
+ #
1019
+ # resp = client.describe_transaction({
1020
+ # transaction_id: "TransactionIdString", # required
1021
+ # })
1022
+ #
1023
+ # @example Response structure
1024
+ #
1025
+ # resp.transaction_description.transaction_id #=> String
1026
+ # resp.transaction_description.transaction_status #=> String, one of "ACTIVE", "COMMITTED", "ABORTED", "COMMIT_IN_PROGRESS"
1027
+ # resp.transaction_description.transaction_start_time #=> Time
1028
+ # resp.transaction_description.transaction_end_time #=> Time
1029
+ #
1030
+ # @see http://docs.aws.amazon.com/goto/WebAPI/lakeformation-2017-03-31/DescribeTransaction AWS API Documentation
1031
+ #
1032
+ # @overload describe_transaction(params = {})
1033
+ # @param [Hash] params ({})
1034
+ def describe_transaction(params = {}, options = {})
1035
+ req = build_request(:describe_transaction, params)
1036
+ req.send_request(options)
1037
+ end
1038
+
1039
+ # Indicates to the service that the specified transaction is still
1040
+ # active and should not be treated as idle and aborted.
1041
+ #
1042
+ # Write transactions that remain idle for a long period are
1043
+ # automatically aborted unless explicitly extended.
1044
+ #
1045
+ # @option params [String] :transaction_id
1046
+ # The transaction to extend.
1047
+ #
1048
+ # @return [Struct] Returns an empty {Seahorse::Client::Response response}.
1049
+ #
1050
+ # @example Request syntax with placeholder values
1051
+ #
1052
+ # resp = client.extend_transaction({
1053
+ # transaction_id: "TransactionIdString",
1054
+ # })
1055
+ #
1056
+ # @see http://docs.aws.amazon.com/goto/WebAPI/lakeformation-2017-03-31/ExtendTransaction AWS API Documentation
1057
+ #
1058
+ # @overload extend_transaction(params = {})
1059
+ # @param [Hash] params ({})
1060
+ def extend_transaction(params = {}, options = {})
1061
+ req = build_request(:extend_transaction, params)
1062
+ req.send_request(options)
1063
+ end
1064
+
807
1065
  # Retrieves the list of the data lake administrators of a Lake
808
1066
  # Formation-managed data lake.
809
1067
  #
@@ -811,7 +1069,7 @@ module Aws::LakeFormation
811
1069
  # The identifier for the Data Catalog. By default, the account ID. The
812
1070
  # Data Catalog is the persistent metadata store. It contains database
813
1071
  # definitions, table definitions, and other control information to
814
- # manage your AWS Lake Formation environment.
1072
+ # manage your Lake Formation environment.
815
1073
  #
816
1074
  # @return [Types::GetDataLakeSettingsResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
817
1075
  #
@@ -856,7 +1114,7 @@ module Aws::LakeFormation
856
1114
  # The identifier for the Data Catalog. By default, the account ID. The
857
1115
  # Data Catalog is the persistent metadata store. It contains database
858
1116
  # definitions, table definitions, and other control information to
859
- # manage your AWS Lake Formation environment.
1117
+ # manage your Lake Formation environment.
860
1118
  #
861
1119
  # @option params [required, String] :resource_arn
862
1120
  # The Amazon Resource Name (ARN) of the resource for which you want to
@@ -903,6 +1161,10 @@ module Aws::LakeFormation
903
1161
  # resp.permissions[0].resource.table_with_columns.column_wildcard.excluded_column_names[0] #=> String
904
1162
  # resp.permissions[0].resource.data_location.catalog_id #=> String
905
1163
  # resp.permissions[0].resource.data_location.resource_arn #=> String
1164
+ # resp.permissions[0].resource.data_cells_filter.table_catalog_id #=> String
1165
+ # resp.permissions[0].resource.data_cells_filter.database_name #=> String
1166
+ # resp.permissions[0].resource.data_cells_filter.table_name #=> String
1167
+ # resp.permissions[0].resource.data_cells_filter.name #=> String
906
1168
  # resp.permissions[0].resource.lf_tag.catalog_id #=> String
907
1169
  # resp.permissions[0].resource.lf_tag.tag_key #=> String
908
1170
  # resp.permissions[0].resource.lf_tag.tag_values #=> Array
@@ -930,16 +1192,16 @@ module Aws::LakeFormation
930
1192
  req.send_request(options)
931
1193
  end
932
1194
 
933
- # Returns a tag definition.
1195
+ # Returns an LF-tag definition.
934
1196
  #
935
1197
  # @option params [String] :catalog_id
936
1198
  # The identifier for the Data Catalog. By default, the account ID. The
937
1199
  # Data Catalog is the persistent metadata store. It contains database
938
1200
  # definitions, table definitions, and other control information to
939
- # manage your AWS Lake Formation environment.
1201
+ # manage your Lake Formation environment.
940
1202
  #
941
1203
  # @option params [required, String] :tag_key
942
- # The key-name for the tag.
1204
+ # The key-name for the LF-tag.
943
1205
  #
944
1206
  # @return [Types::GetLFTagResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
945
1207
  #
@@ -970,19 +1232,91 @@ module Aws::LakeFormation
970
1232
  req.send_request(options)
971
1233
  end
972
1234
 
973
- # Returns the tags applied to a resource.
1235
+ # Returns the state of a query previously submitted. Clients are
1236
+ # expected to poll `GetQueryState` to monitor the current state of the
1237
+ # planning before retrieving the work units. A query state is only
1238
+ # visible to the principal that made the initial call to
1239
+ # `StartQueryPlanning`.
1240
+ #
1241
+ # @option params [required, String] :query_id
1242
+ # The ID of the plan query operation.
1243
+ #
1244
+ # @return [Types::GetQueryStateResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
1245
+ #
1246
+ # * {Types::GetQueryStateResponse#error #error} => String
1247
+ # * {Types::GetQueryStateResponse#state #state} => String
1248
+ #
1249
+ # @example Request syntax with placeholder values
1250
+ #
1251
+ # resp = client.get_query_state({
1252
+ # query_id: "GetQueryStateRequestQueryIdString", # required
1253
+ # })
1254
+ #
1255
+ # @example Response structure
1256
+ #
1257
+ # resp.error #=> String
1258
+ # resp.state #=> String, one of "PENDING", "WORKUNITS_AVAILABLE", "ERROR", "FINISHED", "EXPIRED"
1259
+ #
1260
+ # @see http://docs.aws.amazon.com/goto/WebAPI/lakeformation-2017-03-31/GetQueryState AWS API Documentation
1261
+ #
1262
+ # @overload get_query_state(params = {})
1263
+ # @param [Hash] params ({})
1264
+ def get_query_state(params = {}, options = {})
1265
+ req = build_request(:get_query_state, params)
1266
+ req.send_request(options)
1267
+ end
1268
+
1269
+ # Retrieves statistics on the planning and execution of a query.
1270
+ #
1271
+ # @option params [required, String] :query_id
1272
+ # The ID of the plan query operation.
1273
+ #
1274
+ # @return [Types::GetQueryStatisticsResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
1275
+ #
1276
+ # * {Types::GetQueryStatisticsResponse#execution_statistics #execution_statistics} => Types::ExecutionStatistics
1277
+ # * {Types::GetQueryStatisticsResponse#planning_statistics #planning_statistics} => Types::PlanningStatistics
1278
+ # * {Types::GetQueryStatisticsResponse#query_submission_time #query_submission_time} => Time
1279
+ #
1280
+ # @example Request syntax with placeholder values
1281
+ #
1282
+ # resp = client.get_query_statistics({
1283
+ # query_id: "GetQueryStatisticsRequestQueryIdString", # required
1284
+ # })
1285
+ #
1286
+ # @example Response structure
1287
+ #
1288
+ # resp.execution_statistics.average_execution_time_millis #=> Integer
1289
+ # resp.execution_statistics.data_scanned_bytes #=> Integer
1290
+ # resp.execution_statistics.work_units_executed_count #=> Integer
1291
+ # resp.planning_statistics.estimated_data_to_scan_bytes #=> Integer
1292
+ # resp.planning_statistics.planning_time_millis #=> Integer
1293
+ # resp.planning_statistics.queue_time_millis #=> Integer
1294
+ # resp.planning_statistics.work_units_generated_count #=> Integer
1295
+ # resp.query_submission_time #=> Time
1296
+ #
1297
+ # @see http://docs.aws.amazon.com/goto/WebAPI/lakeformation-2017-03-31/GetQueryStatistics AWS API Documentation
1298
+ #
1299
+ # @overload get_query_statistics(params = {})
1300
+ # @param [Hash] params ({})
1301
+ def get_query_statistics(params = {}, options = {})
1302
+ req = build_request(:get_query_statistics, params)
1303
+ req.send_request(options)
1304
+ end
1305
+
1306
+ # Returns the LF-tags applied to a resource.
974
1307
  #
975
1308
  # @option params [String] :catalog_id
976
1309
  # The identifier for the Data Catalog. By default, the account ID. The
977
1310
  # Data Catalog is the persistent metadata store. It contains database
978
1311
  # definitions, table definitions, and other control information to
979
- # manage your AWS Lake Formation environment.
1312
+ # manage your Lake Formation environment.
980
1313
  #
981
1314
  # @option params [required, Types::Resource] :resource
982
- # The resource for which you want to return tags.
1315
+ # The database, table, or column resource for which you want to return
1316
+ # LF-tags.
983
1317
  #
984
1318
  # @option params [Boolean] :show_assigned_lf_tags
985
- # Indicates whether to show the assigned tags.
1319
+ # Indicates whether to show the assigned LF-tags.
986
1320
  #
987
1321
  # @return [Types::GetResourceLFTagsResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
988
1322
  #
@@ -1021,6 +1355,12 @@ module Aws::LakeFormation
1021
1355
  # catalog_id: "CatalogIdString",
1022
1356
  # resource_arn: "ResourceArnString", # required
1023
1357
  # },
1358
+ # data_cells_filter: {
1359
+ # table_catalog_id: "CatalogIdString",
1360
+ # database_name: "NameString",
1361
+ # table_name: "NameString",
1362
+ # name: "NameString",
1363
+ # },
1024
1364
  # lf_tag: {
1025
1365
  # catalog_id: "CatalogIdString",
1026
1366
  # tag_key: "NameString", # required
@@ -1069,6 +1409,181 @@ module Aws::LakeFormation
1069
1409
  req.send_request(options)
1070
1410
  end
1071
1411
 
1412
+ # Returns the set of Amazon S3 objects that make up the specified
1413
+ # governed table. A transaction ID or timestamp can be specified for
1414
+ # time-travel queries.
1415
+ #
1416
+ # @option params [String] :catalog_id
1417
+ # The catalog containing the governed table. Defaults to the caller’s
1418
+ # account.
1419
+ #
1420
+ # @option params [required, String] :database_name
1421
+ # The database containing the governed table.
1422
+ #
1423
+ # @option params [required, String] :table_name
1424
+ # The governed table for which to retrieve objects.
1425
+ #
1426
+ # @option params [String] :transaction_id
1427
+ # The transaction ID at which to read the governed table contents. If
1428
+ # this transaction has aborted, an error is returned. If not set,
1429
+ # defaults to the most recent committed transaction. Cannot be specified
1430
+ # along with `QueryAsOfTime`.
1431
+ #
1432
+ # @option params [Time,DateTime,Date,Integer,String] :query_as_of_time
1433
+ # The time as of when to read the governed table contents. If not set,
1434
+ # the most recent transaction commit time is used. Cannot be specified
1435
+ # along with `TransactionId`.
1436
+ #
1437
+ # @option params [String] :partition_predicate
1438
+ # A predicate to filter the objects returned based on the partition keys
1439
+ # defined in the governed table.
1440
+ #
1441
+ # * The comparison operators supported are: =, &gt;, &lt;, &gt;=, &lt;=
1442
+ #
1443
+ # * The logical operators supported are: AND
1444
+ #
1445
+ # * The data types supported are integer, long, date(yyyy-MM-dd),
1446
+ # timestamp(yyyy-MM-dd HH:mm:ssXXX or yyyy-MM-dd HH:mm:ss"), string
1447
+ # and decimal.
1448
+ #
1449
+ # @option params [Integer] :max_results
1450
+ # Specifies how many values to return in a page.
1451
+ #
1452
+ # @option params [String] :next_token
1453
+ # A continuation token if this is not the first call to retrieve these
1454
+ # objects.
1455
+ #
1456
+ # @return [Types::GetTableObjectsResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
1457
+ #
1458
+ # * {Types::GetTableObjectsResponse#objects #objects} => Array&lt;Types::PartitionObjects&gt;
1459
+ # * {Types::GetTableObjectsResponse#next_token #next_token} => String
1460
+ #
1461
+ # The returned {Seahorse::Client::Response response} is a pageable response and is Enumerable. For details on usage see {Aws::PageableResponse PageableResponse}.
1462
+ #
1463
+ # @example Request syntax with placeholder values
1464
+ #
1465
+ # resp = client.get_table_objects({
1466
+ # catalog_id: "CatalogIdString",
1467
+ # database_name: "NameString", # required
1468
+ # table_name: "NameString", # required
1469
+ # transaction_id: "TransactionIdString",
1470
+ # query_as_of_time: Time.now,
1471
+ # partition_predicate: "PredicateString",
1472
+ # max_results: 1,
1473
+ # next_token: "TokenString",
1474
+ # })
1475
+ #
1476
+ # @example Response structure
1477
+ #
1478
+ # resp.objects #=> Array
1479
+ # resp.objects[0].partition_values #=> Array
1480
+ # resp.objects[0].partition_values[0] #=> String
1481
+ # resp.objects[0].objects #=> Array
1482
+ # resp.objects[0].objects[0].uri #=> String
1483
+ # resp.objects[0].objects[0].etag #=> String
1484
+ # resp.objects[0].objects[0].size #=> Integer
1485
+ # resp.next_token #=> String
1486
+ #
1487
+ # @see http://docs.aws.amazon.com/goto/WebAPI/lakeformation-2017-03-31/GetTableObjects AWS API Documentation
1488
+ #
1489
+ # @overload get_table_objects(params = {})
1490
+ # @param [Hash] params ({})
1491
+ def get_table_objects(params = {}, options = {})
1492
+ req = build_request(:get_table_objects, params)
1493
+ req.send_request(options)
1494
+ end
1495
+
1496
+ # Returns the work units resulting from the query. Work units can be
1497
+ # executed in any order and in parallel.
1498
+ #
1499
+ # @option params [required, String] :query_id
1500
+ # The ID of the plan query operation for which to get results.
1501
+ #
1502
+ # @option params [required, Integer] :work_unit_id
1503
+ # The work unit ID for which to get results. Value generated by
1504
+ # enumerating `WorkUnitIdMin` to `WorkUnitIdMax` (inclusive) from the
1505
+ # `WorkUnitRange` in the output of `GetWorkUnits`.
1506
+ #
1507
+ # @option params [required, String] :work_unit_token
1508
+ # A work token used to query the execution service. Token output from
1509
+ # `GetWorkUnits`.
1510
+ #
1511
+ # @return [Types::GetWorkUnitResultsResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
1512
+ #
1513
+ # * {Types::GetWorkUnitResultsResponse#result_stream #result_stream} => IO
1514
+ #
1515
+ # @example Request syntax with placeholder values
1516
+ #
1517
+ # resp = client.get_work_unit_results({
1518
+ # query_id: "GetWorkUnitResultsRequestQueryIdString", # required
1519
+ # work_unit_id: 1, # required
1520
+ # work_unit_token: "SyntheticGetWorkUnitResultsRequestWorkUnitTokenString", # required
1521
+ # })
1522
+ #
1523
+ # @example Response structure
1524
+ #
1525
+ # resp.result_stream #=> IO
1526
+ #
1527
+ # @see http://docs.aws.amazon.com/goto/WebAPI/lakeformation-2017-03-31/GetWorkUnitResults AWS API Documentation
1528
+ #
1529
+ # @overload get_work_unit_results(params = {})
1530
+ # @param [Hash] params ({})
1531
+ def get_work_unit_results(params = {}, options = {}, &block)
1532
+ req = build_request(:get_work_unit_results, params)
1533
+ req.send_request(options, &block)
1534
+ end
1535
+
1536
+ # Retrieves the work units generated by the `StartQueryPlanning`
1537
+ # operation.
1538
+ #
1539
+ # @option params [String] :next_token
1540
+ # A continuation token, if this is a continuation call.
1541
+ #
1542
+ # @option params [Integer] :page_size
1543
+ # The size of each page to get in the Amazon Web Services service call.
1544
+ # This does not affect the number of items returned in the command's
1545
+ # output. Setting a smaller page size results in more calls to the
1546
+ # Amazon Web Services service, retrieving fewer items in each call. This
1547
+ # can help prevent the Amazon Web Services service calls from timing
1548
+ # out.
1549
+ #
1550
+ # @option params [required, String] :query_id
1551
+ # The ID of the plan query operation.
1552
+ #
1553
+ # @return [Types::GetWorkUnitsResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
1554
+ #
1555
+ # * {Types::GetWorkUnitsResponse#next_token #next_token} => String
1556
+ # * {Types::GetWorkUnitsResponse#query_id #query_id} => String
1557
+ # * {Types::GetWorkUnitsResponse#work_unit_ranges #work_unit_ranges} => Array&lt;Types::WorkUnitRange&gt;
1558
+ #
1559
+ # The returned {Seahorse::Client::Response response} is a pageable response and is Enumerable. For details on usage see {Aws::PageableResponse PageableResponse}.
1560
+ #
1561
+ # @example Request syntax with placeholder values
1562
+ #
1563
+ # resp = client.get_work_units({
1564
+ # next_token: "Token",
1565
+ # page_size: 1,
1566
+ # query_id: "GetWorkUnitsRequestQueryIdString", # required
1567
+ # })
1568
+ #
1569
+ # @example Response structure
1570
+ #
1571
+ # resp.next_token #=> String
1572
+ # resp.query_id #=> String
1573
+ # resp.work_unit_ranges #=> Array
1574
+ # resp.work_unit_ranges[0].work_unit_id_max #=> Integer
1575
+ # resp.work_unit_ranges[0].work_unit_id_min #=> Integer
1576
+ # resp.work_unit_ranges[0].work_unit_token #=> String
1577
+ #
1578
+ # @see http://docs.aws.amazon.com/goto/WebAPI/lakeformation-2017-03-31/GetWorkUnits AWS API Documentation
1579
+ #
1580
+ # @overload get_work_units(params = {})
1581
+ # @param [Hash] params ({})
1582
+ def get_work_units(params = {}, options = {})
1583
+ req = build_request(:get_work_units, params)
1584
+ req.send_request(options)
1585
+ end
1586
+
1072
1587
  # Grants permissions to the principal to access metadata in the Data
1073
1588
  # Catalog and data organized in underlying data storage such as Amazon
1074
1589
  # S3.
@@ -1084,7 +1599,7 @@ module Aws::LakeFormation
1084
1599
  # The identifier for the Data Catalog. By default, the account ID. The
1085
1600
  # Data Catalog is the persistent metadata store. It contains database
1086
1601
  # definitions, table definitions, and other control information to
1087
- # manage your AWS Lake Formation environment.
1602
+ # manage your Lake Formation environment.
1088
1603
  #
1089
1604
  # @option params [required, Types::DataLakePrincipal] :principal
1090
1605
  # The principal to be granted the permissions on the resource. Supported
@@ -1096,15 +1611,15 @@ module Aws::LakeFormation
1096
1611
  # maintains the permissions already granted.
1097
1612
  #
1098
1613
  # @option params [required, Types::Resource] :resource
1099
- # The resource to which permissions are to be granted. Resources in AWS
1100
- # Lake Formation are the Data Catalog, databases, and tables.
1614
+ # The resource to which permissions are to be granted. Resources in Lake
1615
+ # Formation are the Data Catalog, databases, and tables.
1101
1616
  #
1102
1617
  # @option params [required, Array<String>] :permissions
1103
- # The permissions granted to the principal on the resource. AWS Lake
1618
+ # The permissions granted to the principal on the resource. Lake
1104
1619
  # Formation defines privileges to grant and revoke access to metadata in
1105
1620
  # the Data Catalog and data organized in underlying data storage such as
1106
- # Amazon S3. AWS Lake Formation requires that each principal be
1107
- # authorized to perform a specific task on AWS Lake Formation resources.
1621
+ # Amazon S3. Lake Formation requires that each principal be authorized
1622
+ # to perform a specific task on Lake Formation resources.
1108
1623
  #
1109
1624
  # @option params [Array<String>] :permissions_with_grant_option
1110
1625
  # Indicates a list of the granted permissions that the principal may
@@ -1147,6 +1662,12 @@ module Aws::LakeFormation
1147
1662
  # catalog_id: "CatalogIdString",
1148
1663
  # resource_arn: "ResourceArnString", # required
1149
1664
  # },
1665
+ # data_cells_filter: {
1666
+ # table_catalog_id: "CatalogIdString",
1667
+ # database_name: "NameString",
1668
+ # table_name: "NameString",
1669
+ # name: "NameString",
1670
+ # },
1150
1671
  # lf_tag: {
1151
1672
  # catalog_id: "CatalogIdString",
1152
1673
  # tag_key: "NameString", # required
@@ -1176,20 +1697,75 @@ module Aws::LakeFormation
1176
1697
  req.send_request(options)
1177
1698
  end
1178
1699
 
1179
- # Lists tags that the requester has permission to view.
1700
+ # Lists all the data cell filters on a table.
1701
+ #
1702
+ # @option params [Types::TableResource] :table
1703
+ # A table in the Glue Data Catalog.
1704
+ #
1705
+ # @option params [String] :next_token
1706
+ # A continuation token, if this is a continuation call.
1707
+ #
1708
+ # @option params [Integer] :max_results
1709
+ # The maximum size of the response.
1710
+ #
1711
+ # @return [Types::ListDataCellsFilterResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
1712
+ #
1713
+ # * {Types::ListDataCellsFilterResponse#data_cells_filters #data_cells_filters} => Array&lt;Types::DataCellsFilter&gt;
1714
+ # * {Types::ListDataCellsFilterResponse#next_token #next_token} => String
1715
+ #
1716
+ # The returned {Seahorse::Client::Response response} is a pageable response and is Enumerable. For details on usage see {Aws::PageableResponse PageableResponse}.
1717
+ #
1718
+ # @example Request syntax with placeholder values
1719
+ #
1720
+ # resp = client.list_data_cells_filter({
1721
+ # table: {
1722
+ # catalog_id: "CatalogIdString",
1723
+ # database_name: "NameString", # required
1724
+ # name: "NameString",
1725
+ # table_wildcard: {
1726
+ # },
1727
+ # },
1728
+ # next_token: "Token",
1729
+ # max_results: 1,
1730
+ # })
1731
+ #
1732
+ # @example Response structure
1733
+ #
1734
+ # resp.data_cells_filters #=> Array
1735
+ # resp.data_cells_filters[0].table_catalog_id #=> String
1736
+ # resp.data_cells_filters[0].database_name #=> String
1737
+ # resp.data_cells_filters[0].table_name #=> String
1738
+ # resp.data_cells_filters[0].name #=> String
1739
+ # resp.data_cells_filters[0].row_filter.filter_expression #=> String
1740
+ # resp.data_cells_filters[0].column_names #=> Array
1741
+ # resp.data_cells_filters[0].column_names[0] #=> String
1742
+ # resp.data_cells_filters[0].column_wildcard.excluded_column_names #=> Array
1743
+ # resp.data_cells_filters[0].column_wildcard.excluded_column_names[0] #=> String
1744
+ # resp.next_token #=> String
1745
+ #
1746
+ # @see http://docs.aws.amazon.com/goto/WebAPI/lakeformation-2017-03-31/ListDataCellsFilter AWS API Documentation
1747
+ #
1748
+ # @overload list_data_cells_filter(params = {})
1749
+ # @param [Hash] params ({})
1750
+ def list_data_cells_filter(params = {}, options = {})
1751
+ req = build_request(:list_data_cells_filter, params)
1752
+ req.send_request(options)
1753
+ end
1754
+
1755
+ # Lists LF-tags that the requester has permission to view.
1180
1756
  #
1181
1757
  # @option params [String] :catalog_id
1182
1758
  # The identifier for the Data Catalog. By default, the account ID. The
1183
1759
  # Data Catalog is the persistent metadata store. It contains database
1184
1760
  # definitions, table definitions, and other control information to
1185
- # manage your AWS Lake Formation environment.
1761
+ # manage your Lake Formation environment.
1186
1762
  #
1187
1763
  # @option params [String] :resource_share_type
1188
- # If resource share type is `ALL`, returns both in-account tags and
1189
- # shared tags that the requester has permission to view. If resource
1190
- # share type is `FOREIGN`, returns all share tags that the requester can
1191
- # view. If no resource share type is passed, lists tags in the given
1192
- # catalog ID that the requester has permission to view.
1764
+ # If resource share type is `ALL`, returns both in-account LF-tags and
1765
+ # shared LF-tags that the requester has permission to view. If resource
1766
+ # share type is `FOREIGN`, returns all share LF-tags that the requester
1767
+ # can view. If no resource share type is passed, lists LF-tags in the
1768
+ # given catalog ID that the requester has permission to view.
1193
1769
  #
1194
1770
  # @option params [Integer] :max_results
1195
1771
  # The maximum number of results to return.
@@ -1203,6 +1779,8 @@ module Aws::LakeFormation
1203
1779
  # * {Types::ListLFTagsResponse#lf_tags #lf_tags} => Array&lt;Types::LFTagPair&gt;
1204
1780
  # * {Types::ListLFTagsResponse#next_token #next_token} => String
1205
1781
  #
1782
+ # The returned {Seahorse::Client::Response response} is a pageable response and is Enumerable. For details on usage see {Aws::PageableResponse PageableResponse}.
1783
+ #
1206
1784
  # @example Request syntax with placeholder values
1207
1785
  #
1208
1786
  # resp = client.list_lf_tags({
@@ -1249,7 +1827,7 @@ module Aws::LakeFormation
1249
1827
  # The identifier for the Data Catalog. By default, the account ID. The
1250
1828
  # Data Catalog is the persistent metadata store. It contains database
1251
1829
  # definitions, table definitions, and other control information to
1252
- # manage your AWS Lake Formation environment.
1830
+ # manage your Lake Formation environment.
1253
1831
  #
1254
1832
  # @option params [Types::DataLakePrincipal] :principal
1255
1833
  # Specifies a principal to filter the permissions returned.
@@ -1271,6 +1849,9 @@ module Aws::LakeFormation
1271
1849
  # @option params [Integer] :max_results
1272
1850
  # The maximum number of results to return.
1273
1851
  #
1852
+ # @option params [String] :include_related
1853
+ # Indicates that related permissions should be included in the results.
1854
+ #
1274
1855
  # @return [Types::ListPermissionsResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
1275
1856
  #
1276
1857
  # * {Types::ListPermissionsResponse#principal_resource_permissions #principal_resource_permissions} => Array&lt;Types::PrincipalResourcePermissions&gt;
@@ -1313,6 +1894,12 @@ module Aws::LakeFormation
1313
1894
  # catalog_id: "CatalogIdString",
1314
1895
  # resource_arn: "ResourceArnString", # required
1315
1896
  # },
1897
+ # data_cells_filter: {
1898
+ # table_catalog_id: "CatalogIdString",
1899
+ # database_name: "NameString",
1900
+ # table_name: "NameString",
1901
+ # name: "NameString",
1902
+ # },
1316
1903
  # lf_tag: {
1317
1904
  # catalog_id: "CatalogIdString",
1318
1905
  # tag_key: "NameString", # required
@@ -1331,6 +1918,7 @@ module Aws::LakeFormation
1331
1918
  # },
1332
1919
  # next_token: "Token",
1333
1920
  # max_results: 1,
1921
+ # include_related: "TrueFalseString",
1334
1922
  # })
1335
1923
  #
1336
1924
  # @example Response structure
@@ -1351,6 +1939,10 @@ module Aws::LakeFormation
1351
1939
  # resp.principal_resource_permissions[0].resource.table_with_columns.column_wildcard.excluded_column_names[0] #=> String
1352
1940
  # resp.principal_resource_permissions[0].resource.data_location.catalog_id #=> String
1353
1941
  # resp.principal_resource_permissions[0].resource.data_location.resource_arn #=> String
1942
+ # resp.principal_resource_permissions[0].resource.data_cells_filter.table_catalog_id #=> String
1943
+ # resp.principal_resource_permissions[0].resource.data_cells_filter.database_name #=> String
1944
+ # resp.principal_resource_permissions[0].resource.data_cells_filter.table_name #=> String
1945
+ # resp.principal_resource_permissions[0].resource.data_cells_filter.name #=> String
1354
1946
  # resp.principal_resource_permissions[0].resource.lf_tag.catalog_id #=> String
1355
1947
  # resp.principal_resource_permissions[0].resource.lf_tag.tag_key #=> String
1356
1948
  # resp.principal_resource_permissions[0].resource.lf_tag.tag_values #=> Array
@@ -1429,6 +2021,123 @@ module Aws::LakeFormation
1429
2021
  req.send_request(options)
1430
2022
  end
1431
2023
 
2024
+ # Returns the configuration of all storage optimizers associated with a
2025
+ # specified table.
2026
+ #
2027
+ # @option params [String] :catalog_id
2028
+ # The Catalog ID of the table.
2029
+ #
2030
+ # @option params [required, String] :database_name
2031
+ # Name of the database where the table is present.
2032
+ #
2033
+ # @option params [required, String] :table_name
2034
+ # Name of the table.
2035
+ #
2036
+ # @option params [String] :storage_optimizer_type
2037
+ # The specific type of storage optimizers to list. The supported value
2038
+ # is `compaction`.
2039
+ #
2040
+ # @option params [Integer] :max_results
2041
+ # The number of storage optimizers to return on each call.
2042
+ #
2043
+ # @option params [String] :next_token
2044
+ # A continuation token, if this is a continuation call.
2045
+ #
2046
+ # @return [Types::ListTableStorageOptimizersResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
2047
+ #
2048
+ # * {Types::ListTableStorageOptimizersResponse#storage_optimizer_list #storage_optimizer_list} => Array&lt;Types::StorageOptimizer&gt;
2049
+ # * {Types::ListTableStorageOptimizersResponse#next_token #next_token} => String
2050
+ #
2051
+ # The returned {Seahorse::Client::Response response} is a pageable response and is Enumerable. For details on usage see {Aws::PageableResponse PageableResponse}.
2052
+ #
2053
+ # @example Request syntax with placeholder values
2054
+ #
2055
+ # resp = client.list_table_storage_optimizers({
2056
+ # catalog_id: "CatalogIdString",
2057
+ # database_name: "NameString", # required
2058
+ # table_name: "NameString", # required
2059
+ # storage_optimizer_type: "COMPACTION", # accepts COMPACTION, GARBAGE_COLLECTION, ALL
2060
+ # max_results: 1,
2061
+ # next_token: "Token",
2062
+ # })
2063
+ #
2064
+ # @example Response structure
2065
+ #
2066
+ # resp.storage_optimizer_list #=> Array
2067
+ # resp.storage_optimizer_list[0].storage_optimizer_type #=> String, one of "COMPACTION", "GARBAGE_COLLECTION", "ALL"
2068
+ # resp.storage_optimizer_list[0].config #=> Hash
2069
+ # resp.storage_optimizer_list[0].config["StorageOptimizerConfigKey"] #=> String
2070
+ # resp.storage_optimizer_list[0].error_message #=> String
2071
+ # resp.storage_optimizer_list[0].warnings #=> String
2072
+ # resp.storage_optimizer_list[0].last_run_details #=> String
2073
+ # resp.next_token #=> String
2074
+ #
2075
+ # @see http://docs.aws.amazon.com/goto/WebAPI/lakeformation-2017-03-31/ListTableStorageOptimizers AWS API Documentation
2076
+ #
2077
+ # @overload list_table_storage_optimizers(params = {})
2078
+ # @param [Hash] params ({})
2079
+ def list_table_storage_optimizers(params = {}, options = {})
2080
+ req = build_request(:list_table_storage_optimizers, params)
2081
+ req.send_request(options)
2082
+ end
2083
+
2084
+ # Returns metadata about transactions and their status. To prevent the
2085
+ # response from growing indefinitely, only uncommitted transactions and
2086
+ # those available for time-travel queries are returned.
2087
+ #
2088
+ # This operation can help you identify uncommitted transactions or to
2089
+ # get information about transactions.
2090
+ #
2091
+ # @option params [String] :catalog_id
2092
+ # The catalog for which to list transactions. Defaults to the account ID
2093
+ # of the caller.
2094
+ #
2095
+ # @option params [String] :status_filter
2096
+ # A filter indicating the status of transactions to return. Options are
2097
+ # ALL \| COMPLETED \| COMMITTED \| ABORTED \| ACTIVE. The default is
2098
+ # `ALL`.
2099
+ #
2100
+ # @option params [Integer] :max_results
2101
+ # The maximum number of transactions to return in a single call.
2102
+ #
2103
+ # @option params [String] :next_token
2104
+ # A continuation token if this is not the first call to retrieve
2105
+ # transactions.
2106
+ #
2107
+ # @return [Types::ListTransactionsResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
2108
+ #
2109
+ # * {Types::ListTransactionsResponse#transactions #transactions} => Array&lt;Types::TransactionDescription&gt;
2110
+ # * {Types::ListTransactionsResponse#next_token #next_token} => String
2111
+ #
2112
+ # The returned {Seahorse::Client::Response response} is a pageable response and is Enumerable. For details on usage see {Aws::PageableResponse PageableResponse}.
2113
+ #
2114
+ # @example Request syntax with placeholder values
2115
+ #
2116
+ # resp = client.list_transactions({
2117
+ # catalog_id: "CatalogIdString",
2118
+ # status_filter: "ALL", # accepts ALL, COMPLETED, ACTIVE, COMMITTED, ABORTED
2119
+ # max_results: 1,
2120
+ # next_token: "TokenString",
2121
+ # })
2122
+ #
2123
+ # @example Response structure
2124
+ #
2125
+ # resp.transactions #=> Array
2126
+ # resp.transactions[0].transaction_id #=> String
2127
+ # resp.transactions[0].transaction_status #=> String, one of "ACTIVE", "COMMITTED", "ABORTED", "COMMIT_IN_PROGRESS"
2128
+ # resp.transactions[0].transaction_start_time #=> Time
2129
+ # resp.transactions[0].transaction_end_time #=> Time
2130
+ # resp.next_token #=> String
2131
+ #
2132
+ # @see http://docs.aws.amazon.com/goto/WebAPI/lakeformation-2017-03-31/ListTransactions AWS API Documentation
2133
+ #
2134
+ # @overload list_transactions(params = {})
2135
+ # @param [Hash] params ({})
2136
+ def list_transactions(params = {}, options = {})
2137
+ req = build_request(:list_transactions, params)
2138
+ req.send_request(options)
2139
+ end
2140
+
1432
2141
  # Sets the list of data lake administrators who have admin privileges on
1433
2142
  # all resources managed by Lake Formation. For more information on admin
1434
2143
  # privileges, see [Granting Lake Formation Permissions][1].
@@ -1445,10 +2154,10 @@ module Aws::LakeFormation
1445
2154
  # The identifier for the Data Catalog. By default, the account ID. The
1446
2155
  # Data Catalog is the persistent metadata store. It contains database
1447
2156
  # definitions, table definitions, and other control information to
1448
- # manage your AWS Lake Formation environment.
2157
+ # manage your Lake Formation environment.
1449
2158
  #
1450
2159
  # @option params [required, Types::DataLakeSettings] :data_lake_settings
1451
- # A structure representing a list of AWS Lake Formation principals
2160
+ # A structure representing a list of Lake Formation principals
1452
2161
  # designated as data lake administrators.
1453
2162
  #
1454
2163
  # @return [Struct] Returns an empty {Seahorse::Client::Response response}.
@@ -1503,7 +2212,7 @@ module Aws::LakeFormation
1503
2212
  # attaches it to the service-linked role. When you register subsequent
1504
2213
  # paths, Lake Formation adds the path to the existing policy.
1505
2214
  #
1506
- # The following request registers a new location and gives AWS Lake
2215
+ # The following request registers a new location and gives Lake
1507
2216
  # Formation permission to use the service-linked role to access that
1508
2217
  # location.
1509
2218
  #
@@ -1519,9 +2228,9 @@ module Aws::LakeFormation
1519
2228
  # register.
1520
2229
  #
1521
2230
  # @option params [Boolean] :use_service_linked_role
1522
- # Designates an AWS Identity and Access Management (IAM) service-linked
1523
- # role by registering this role with the Data Catalog. A service-linked
1524
- # role is a unique type of IAM role that is linked directly to Lake
2231
+ # Designates an Identity and Access Management (IAM) service-linked role
2232
+ # by registering this role with the Data Catalog. A service-linked role
2233
+ # is a unique type of IAM role that is linked directly to Lake
1525
2234
  # Formation.
1526
2235
  #
1527
2236
  # For more information, see [Using Service-Linked Roles for Lake
@@ -1553,7 +2262,7 @@ module Aws::LakeFormation
1553
2262
  req.send_request(options)
1554
2263
  end
1555
2264
 
1556
- # Removes a tag from the resource. Only database, table, or
2265
+ # Removes an LF-tag from the resource. Only database, table, or
1557
2266
  # tableWithColumns resource are allowed. To tag columns, use the column
1558
2267
  # inclusion list in `tableWithColumns` to specify column input.
1559
2268
  #
@@ -1561,13 +2270,14 @@ module Aws::LakeFormation
1561
2270
  # The identifier for the Data Catalog. By default, the account ID. The
1562
2271
  # Data Catalog is the persistent metadata store. It contains database
1563
2272
  # definitions, table definitions, and other control information to
1564
- # manage your AWS Lake Formation environment.
2273
+ # manage your Lake Formation environment.
1565
2274
  #
1566
2275
  # @option params [required, Types::Resource] :resource
1567
- # The resource where you want to remove a tag.
2276
+ # The database, table, or column resource where you want to remove an
2277
+ # LF-tag.
1568
2278
  #
1569
2279
  # @option params [required, Array<Types::LFTagPair>] :lf_tags
1570
- # The tags to be removed from the resource.
2280
+ # The LF-tags to be removed from the resource.
1571
2281
  #
1572
2282
  # @return [Types::RemoveLFTagsFromResourceResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
1573
2283
  #
@@ -1604,6 +2314,12 @@ module Aws::LakeFormation
1604
2314
  # catalog_id: "CatalogIdString",
1605
2315
  # resource_arn: "ResourceArnString", # required
1606
2316
  # },
2317
+ # data_cells_filter: {
2318
+ # table_catalog_id: "CatalogIdString",
2319
+ # database_name: "NameString",
2320
+ # table_name: "NameString",
2321
+ # name: "NameString",
2322
+ # },
1607
2323
  # lf_tag: {
1608
2324
  # catalog_id: "CatalogIdString",
1609
2325
  # tag_key: "NameString", # required
@@ -1656,7 +2372,7 @@ module Aws::LakeFormation
1656
2372
  # The identifier for the Data Catalog. By default, the account ID. The
1657
2373
  # Data Catalog is the persistent metadata store. It contains database
1658
2374
  # definitions, table definitions, and other control information to
1659
- # manage your AWS Lake Formation environment.
2375
+ # manage your Lake Formation environment.
1660
2376
  #
1661
2377
  # @option params [required, Types::DataLakePrincipal] :principal
1662
2378
  # The principal to be revoked permissions on the resource.
@@ -1713,6 +2429,12 @@ module Aws::LakeFormation
1713
2429
  # catalog_id: "CatalogIdString",
1714
2430
  # resource_arn: "ResourceArnString", # required
1715
2431
  # },
2432
+ # data_cells_filter: {
2433
+ # table_catalog_id: "CatalogIdString",
2434
+ # database_name: "NameString",
2435
+ # table_name: "NameString",
2436
+ # name: "NameString",
2437
+ # },
1716
2438
  # lf_tag: {
1717
2439
  # catalog_id: "CatalogIdString",
1718
2440
  # tag_key: "NameString", # required
@@ -1760,7 +2482,7 @@ module Aws::LakeFormation
1760
2482
  # The identifier for the Data Catalog. By default, the account ID. The
1761
2483
  # Data Catalog is the persistent metadata store. It contains database
1762
2484
  # definitions, table definitions, and other control information to
1763
- # manage your AWS Lake Formation environment.
2485
+ # manage your Lake Formation environment.
1764
2486
  #
1765
2487
  # @option params [required, Array<Types::LFTag>] :expression
1766
2488
  # A list of conditions (`LFTag` structures) to search for in database
@@ -1771,6 +2493,8 @@ module Aws::LakeFormation
1771
2493
  # * {Types::SearchDatabasesByLFTagsResponse#next_token #next_token} => String
1772
2494
  # * {Types::SearchDatabasesByLFTagsResponse#database_list #database_list} => Array&lt;Types::TaggedDatabase&gt;
1773
2495
  #
2496
+ # The returned {Seahorse::Client::Response response} is a pageable response and is Enumerable. For details on usage see {Aws::PageableResponse PageableResponse}.
2497
+ #
1774
2498
  # @example Request syntax with placeholder values
1775
2499
  #
1776
2500
  # resp = client.search_databases_by_lf_tags({
@@ -1808,7 +2532,7 @@ module Aws::LakeFormation
1808
2532
 
1809
2533
  # This operation allows a search on `TABLE` resources by `LFTag`s. This
1810
2534
  # will be used by admins who want to grant user permissions on certain
1811
- # LFTags. Before making a grant, the admin can use
2535
+ # LF-tags. Before making a grant, the admin can use
1812
2536
  # `SearchTablesByLFTags` to find all resources where the given `LFTag`s
1813
2537
  # are valid to verify whether the returned resources can be shared.
1814
2538
  #
@@ -1823,7 +2547,7 @@ module Aws::LakeFormation
1823
2547
  # The identifier for the Data Catalog. By default, the account ID. The
1824
2548
  # Data Catalog is the persistent metadata store. It contains database
1825
2549
  # definitions, table definitions, and other control information to
1826
- # manage your AWS Lake Formation environment.
2550
+ # manage your Lake Formation environment.
1827
2551
  #
1828
2552
  # @option params [required, Array<Types::LFTag>] :expression
1829
2553
  # A list of conditions (`LFTag` structures) to search for in table
@@ -1834,6 +2558,8 @@ module Aws::LakeFormation
1834
2558
  # * {Types::SearchTablesByLFTagsResponse#next_token #next_token} => String
1835
2559
  # * {Types::SearchTablesByLFTagsResponse#table_list #table_list} => Array&lt;Types::TaggedTable&gt;
1836
2560
  #
2561
+ # The returned {Seahorse::Client::Response response} is a pageable response and is Enumerable. For details on usage see {Aws::PageableResponse PageableResponse}.
2562
+ #
1837
2563
  # @example Request syntax with placeholder values
1838
2564
  #
1839
2565
  # resp = client.search_tables_by_lf_tags({
@@ -1882,27 +2608,103 @@ module Aws::LakeFormation
1882
2608
  req.send_request(options)
1883
2609
  end
1884
2610
 
1885
- # Updates the list of possible values for the specified tag key. If the
1886
- # tag does not exist, the operation throws an EntityNotFoundException.
1887
- # The values in the delete key values will be deleted from list of
1888
- # possible values. If any value in the delete key values is attached to
1889
- # a resource, then API errors out with a 400 Exception - "Update not
1890
- # allowed". Untag the attribute before deleting the tag key's value.
2611
+ # Submits a request to process a query statement.
2612
+ #
2613
+ # This operation generates work units that can be retrieved with the
2614
+ # `GetWorkUnits` operation as soon as the query state is
2615
+ # WORKUNITS\_AVAILABLE or FINISHED.
2616
+ #
2617
+ # @option params [required, Types::QueryPlanningContext] :query_planning_context
2618
+ # A structure containing information about the query plan.
2619
+ #
2620
+ # @option params [required, String] :query_string
2621
+ # A PartiQL query statement used as an input to the planner service.
2622
+ #
2623
+ # @return [Types::StartQueryPlanningResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
2624
+ #
2625
+ # * {Types::StartQueryPlanningResponse#query_id #query_id} => String
2626
+ #
2627
+ # @example Request syntax with placeholder values
2628
+ #
2629
+ # resp = client.start_query_planning({
2630
+ # query_planning_context: { # required
2631
+ # catalog_id: "CatalogIdString",
2632
+ # database_name: "QueryPlanningContextDatabaseNameString", # required
2633
+ # query_as_of_time: Time.now,
2634
+ # query_parameters: {
2635
+ # "String" => "String",
2636
+ # },
2637
+ # transaction_id: "TransactionIdString",
2638
+ # },
2639
+ # query_string: "SyntheticStartQueryPlanningRequestQueryString", # required
2640
+ # })
2641
+ #
2642
+ # @example Response structure
2643
+ #
2644
+ # resp.query_id #=> String
2645
+ #
2646
+ # @see http://docs.aws.amazon.com/goto/WebAPI/lakeformation-2017-03-31/StartQueryPlanning AWS API Documentation
2647
+ #
2648
+ # @overload start_query_planning(params = {})
2649
+ # @param [Hash] params ({})
2650
+ def start_query_planning(params = {}, options = {})
2651
+ req = build_request(:start_query_planning, params)
2652
+ req.send_request(options)
2653
+ end
2654
+
2655
+ # Starts a new transaction and returns its transaction ID. Transaction
2656
+ # IDs are opaque objects that you can use to identify a transaction.
2657
+ #
2658
+ # @option params [String] :transaction_type
2659
+ # Indicates whether this transaction should be read only or read and
2660
+ # write. Writes made using a read-only transaction ID will be rejected.
2661
+ # Read-only transactions do not need to be committed.
2662
+ #
2663
+ # @return [Types::StartTransactionResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
2664
+ #
2665
+ # * {Types::StartTransactionResponse#transaction_id #transaction_id} => String
2666
+ #
2667
+ # @example Request syntax with placeholder values
2668
+ #
2669
+ # resp = client.start_transaction({
2670
+ # transaction_type: "READ_AND_WRITE", # accepts READ_AND_WRITE, READ_ONLY
2671
+ # })
2672
+ #
2673
+ # @example Response structure
2674
+ #
2675
+ # resp.transaction_id #=> String
2676
+ #
2677
+ # @see http://docs.aws.amazon.com/goto/WebAPI/lakeformation-2017-03-31/StartTransaction AWS API Documentation
2678
+ #
2679
+ # @overload start_transaction(params = {})
2680
+ # @param [Hash] params ({})
2681
+ def start_transaction(params = {}, options = {})
2682
+ req = build_request(:start_transaction, params)
2683
+ req.send_request(options)
2684
+ end
2685
+
2686
+ # Updates the list of possible values for the specified LF-tag key. If
2687
+ # the LF-tag does not exist, the operation throws an
2688
+ # EntityNotFoundException. The values in the delete key values will be
2689
+ # deleted from list of possible values. If any value in the delete key
2690
+ # values is attached to a resource, then API errors out with a 400
2691
+ # Exception - "Update not allowed". Untag the attribute before
2692
+ # deleting the LF-tag key's value.
1891
2693
  #
1892
2694
  # @option params [String] :catalog_id
1893
2695
  # The identifier for the Data Catalog. By default, the account ID. The
1894
2696
  # Data Catalog is the persistent metadata store. It contains database
1895
2697
  # definitions, table definitions, and other control information to
1896
- # manage your AWS Lake Formation environment.
2698
+ # manage your Lake Formation environment.
1897
2699
  #
1898
2700
  # @option params [required, String] :tag_key
1899
- # The key-name for the tag for which to add or delete values.
2701
+ # The key-name for the LF-tag for which to add or delete values.
1900
2702
  #
1901
2703
  # @option params [Array<String>] :tag_values_to_delete
1902
- # A list of tag values to delete from the tag.
2704
+ # A list of LF-tag values to delete from the LF-tag.
1903
2705
  #
1904
2706
  # @option params [Array<String>] :tag_values_to_add
1905
- # A list of tag values to add from the tag.
2707
+ # A list of LF-tag values to add from the LF-tag.
1906
2708
  #
1907
2709
  # @return [Struct] Returns an empty {Seahorse::Client::Response response}.
1908
2710
  #
@@ -1925,10 +2727,10 @@ module Aws::LakeFormation
1925
2727
  end
1926
2728
 
1927
2729
  # Updates the data access role used for vending access to the given
1928
- # (registered) resource in AWS Lake Formation.
2730
+ # (registered) resource in Lake Formation.
1929
2731
  #
1930
2732
  # @option params [required, String] :role_arn
1931
- # The new role to use for the given resource registered in AWS Lake
2733
+ # The new role to use for the given resource registered in Lake
1932
2734
  # Formation.
1933
2735
  #
1934
2736
  # @option params [required, String] :resource_arn
@@ -1952,6 +2754,105 @@ module Aws::LakeFormation
1952
2754
  req.send_request(options)
1953
2755
  end
1954
2756
 
2757
+ # Updates the manifest of Amazon S3 objects that make up the specified
2758
+ # governed table.
2759
+ #
2760
+ # @option params [String] :catalog_id
2761
+ # The catalog containing the governed table to update. Defaults to the
2762
+ # caller’s account ID.
2763
+ #
2764
+ # @option params [required, String] :database_name
2765
+ # The database containing the governed table to update.
2766
+ #
2767
+ # @option params [required, String] :table_name
2768
+ # The governed table to update.
2769
+ #
2770
+ # @option params [required, String] :transaction_id
2771
+ # The transaction at which to do the write.
2772
+ #
2773
+ # @option params [required, Array<Types::WriteOperation>] :write_operations
2774
+ # A list of `WriteOperation` objects that define an object to add to or
2775
+ # delete from the manifest for a governed table.
2776
+ #
2777
+ # @return [Struct] Returns an empty {Seahorse::Client::Response response}.
2778
+ #
2779
+ # @example Request syntax with placeholder values
2780
+ #
2781
+ # resp = client.update_table_objects({
2782
+ # catalog_id: "CatalogIdString",
2783
+ # database_name: "NameString", # required
2784
+ # table_name: "NameString", # required
2785
+ # transaction_id: "TransactionIdString", # required
2786
+ # write_operations: [ # required
2787
+ # {
2788
+ # add_object: {
2789
+ # uri: "URI", # required
2790
+ # etag: "ETagString", # required
2791
+ # size: 1, # required
2792
+ # partition_values: ["PartitionValueString"],
2793
+ # },
2794
+ # delete_object: {
2795
+ # uri: "URI", # required
2796
+ # etag: "ETagString",
2797
+ # partition_values: ["PartitionValueString"],
2798
+ # },
2799
+ # },
2800
+ # ],
2801
+ # })
2802
+ #
2803
+ # @see http://docs.aws.amazon.com/goto/WebAPI/lakeformation-2017-03-31/UpdateTableObjects AWS API Documentation
2804
+ #
2805
+ # @overload update_table_objects(params = {})
2806
+ # @param [Hash] params ({})
2807
+ def update_table_objects(params = {}, options = {})
2808
+ req = build_request(:update_table_objects, params)
2809
+ req.send_request(options)
2810
+ end
2811
+
2812
+ # Updates the configuration of the storage optimizers for a table.
2813
+ #
2814
+ # @option params [String] :catalog_id
2815
+ # The Catalog ID of the table.
2816
+ #
2817
+ # @option params [required, String] :database_name
2818
+ # Name of the database where the table is present.
2819
+ #
2820
+ # @option params [required, String] :table_name
2821
+ # Name of the table for which to enable the storage optimizer.
2822
+ #
2823
+ # @option params [required, Hash<String,Hash>] :storage_optimizer_config
2824
+ # Name of the table for which to enable the storage optimizer.
2825
+ #
2826
+ # @return [Types::UpdateTableStorageOptimizerResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
2827
+ #
2828
+ # * {Types::UpdateTableStorageOptimizerResponse#result #result} => String
2829
+ #
2830
+ # @example Request syntax with placeholder values
2831
+ #
2832
+ # resp = client.update_table_storage_optimizer({
2833
+ # catalog_id: "CatalogIdString",
2834
+ # database_name: "NameString", # required
2835
+ # table_name: "NameString", # required
2836
+ # storage_optimizer_config: { # required
2837
+ # "COMPACTION" => {
2838
+ # "StorageOptimizerConfigKey" => "StorageOptimizerConfigValue",
2839
+ # },
2840
+ # },
2841
+ # })
2842
+ #
2843
+ # @example Response structure
2844
+ #
2845
+ # resp.result #=> String
2846
+ #
2847
+ # @see http://docs.aws.amazon.com/goto/WebAPI/lakeformation-2017-03-31/UpdateTableStorageOptimizer AWS API Documentation
2848
+ #
2849
+ # @overload update_table_storage_optimizer(params = {})
2850
+ # @param [Hash] params ({})
2851
+ def update_table_storage_optimizer(params = {}, options = {})
2852
+ req = build_request(:update_table_storage_optimizer, params)
2853
+ req.send_request(options)
2854
+ end
2855
+
1955
2856
  # @!endgroup
1956
2857
 
1957
2858
  # @param params ({})
@@ -1965,7 +2866,7 @@ module Aws::LakeFormation
1965
2866
  params: params,
1966
2867
  config: config)
1967
2868
  context[:gem_name] = 'aws-sdk-lakeformation'
1968
- context[:gem_version] = '1.19.0'
2869
+ context[:gem_version] = '1.20.0'
1969
2870
  Seahorse::Client::Request.new(handlers, context)
1970
2871
  end
1971
2872