aws-sdk-lakeformation 1.13.0 → 1.14.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,12 +27,15 @@ module Aws::LakeFormation
27
27
  # See {Seahorse::Client::RequestContext} for more information.
28
28
  #
29
29
  # ## Error Classes
30
+ # * {AccessDeniedException}
30
31
  # * {AlreadyExistsException}
31
32
  # * {ConcurrentModificationException}
32
33
  # * {EntityNotFoundException}
34
+ # * {GlueEncryptionException}
33
35
  # * {InternalServiceException}
34
36
  # * {InvalidInputException}
35
37
  # * {OperationTimeoutException}
38
+ # * {ResourceNumberLimitExceededException}
36
39
  #
37
40
  # Additionally, error classes are dynamically generated for service errors based on the error code
38
41
  # if they are not defined above.
@@ -40,6 +43,21 @@ module Aws::LakeFormation
40
43
 
41
44
  extend Aws::Errors::DynamicErrors
42
45
 
46
+ class AccessDeniedException < ServiceError
47
+
48
+ # @param [Seahorse::Client::RequestContext] context
49
+ # @param [String] message
50
+ # @param [Aws::LakeFormation::Types::AccessDeniedException] data
51
+ def initialize(context, message, data = Aws::EmptyStructure.new)
52
+ super(context, message, data)
53
+ end
54
+
55
+ # @return [String]
56
+ def message
57
+ @message || @data[:message]
58
+ end
59
+ end
60
+
43
61
  class AlreadyExistsException < ServiceError
44
62
 
45
63
  # @param [Seahorse::Client::RequestContext] context
@@ -85,6 +103,21 @@ module Aws::LakeFormation
85
103
  end
86
104
  end
87
105
 
106
+ class GlueEncryptionException < ServiceError
107
+
108
+ # @param [Seahorse::Client::RequestContext] context
109
+ # @param [String] message
110
+ # @param [Aws::LakeFormation::Types::GlueEncryptionException] data
111
+ def initialize(context, message, data = Aws::EmptyStructure.new)
112
+ super(context, message, data)
113
+ end
114
+
115
+ # @return [String]
116
+ def message
117
+ @message || @data[:message]
118
+ end
119
+ end
120
+
88
121
  class InternalServiceException < ServiceError
89
122
 
90
123
  # @param [Seahorse::Client::RequestContext] context
@@ -130,5 +163,20 @@ module Aws::LakeFormation
130
163
  end
131
164
  end
132
165
 
166
+ class ResourceNumberLimitExceededException < ServiceError
167
+
168
+ # @param [Seahorse::Client::RequestContext] context
169
+ # @param [String] message
170
+ # @param [Aws::LakeFormation::Types::ResourceNumberLimitExceededException] data
171
+ def initialize(context, message, data = Aws::EmptyStructure.new)
172
+ super(context, message, data)
173
+ end
174
+
175
+ # @return [String]
176
+ def message
177
+ @message || @data[:message]
178
+ end
179
+ end
180
+
133
181
  end
134
182
  end
@@ -10,6 +10,114 @@
10
10
  module Aws::LakeFormation
11
11
  module Types
12
12
 
13
+ # Access to a resource was denied.
14
+ #
15
+ # @!attribute [rw] message
16
+ # A message describing the problem.
17
+ # @return [String]
18
+ #
19
+ # @see http://docs.aws.amazon.com/goto/WebAPI/lakeformation-2017-03-31/AccessDeniedException AWS API Documentation
20
+ #
21
+ class AccessDeniedException < Struct.new(
22
+ :message)
23
+ SENSITIVE = []
24
+ include Aws::Structure
25
+ end
26
+
27
+ # @note When making an API call, you may pass AddLFTagsToResourceRequest
28
+ # data as a hash:
29
+ #
30
+ # {
31
+ # catalog_id: "CatalogIdString",
32
+ # resource: { # required
33
+ # catalog: {
34
+ # },
35
+ # database: {
36
+ # catalog_id: "CatalogIdString",
37
+ # name: "NameString", # required
38
+ # },
39
+ # table: {
40
+ # catalog_id: "CatalogIdString",
41
+ # database_name: "NameString", # required
42
+ # name: "NameString",
43
+ # table_wildcard: {
44
+ # },
45
+ # },
46
+ # table_with_columns: {
47
+ # catalog_id: "CatalogIdString",
48
+ # database_name: "NameString", # required
49
+ # name: "NameString", # required
50
+ # column_names: ["NameString"],
51
+ # column_wildcard: {
52
+ # excluded_column_names: ["NameString"],
53
+ # },
54
+ # },
55
+ # data_location: {
56
+ # catalog_id: "CatalogIdString",
57
+ # resource_arn: "ResourceArnString", # required
58
+ # },
59
+ # lf_tag: {
60
+ # catalog_id: "CatalogIdString",
61
+ # tag_key: "NameString", # required
62
+ # tag_values: ["LFTagValue"], # required
63
+ # },
64
+ # lf_tag_policy: {
65
+ # catalog_id: "CatalogIdString",
66
+ # resource_type: "DATABASE", # required, accepts DATABASE, TABLE
67
+ # expression: [ # required
68
+ # {
69
+ # tag_key: "LFTagKey", # required
70
+ # tag_values: ["LFTagValue"], # required
71
+ # },
72
+ # ],
73
+ # },
74
+ # },
75
+ # lf_tags: [ # required
76
+ # {
77
+ # catalog_id: "CatalogIdString",
78
+ # tag_key: "LFTagKey", # required
79
+ # tag_values: ["LFTagValue"], # required
80
+ # },
81
+ # ],
82
+ # }
83
+ #
84
+ # @!attribute [rw] catalog_id
85
+ # The identifier for the Data Catalog. By default, the account ID. The
86
+ # Data Catalog is the persistent metadata store. It contains database
87
+ # definitions, table definitions, and other control information to
88
+ # manage your AWS Lake Formation environment.
89
+ # @return [String]
90
+ #
91
+ # @!attribute [rw] resource
92
+ # The resource to which to attach a tag.
93
+ # @return [Types::Resource]
94
+ #
95
+ # @!attribute [rw] lf_tags
96
+ # The tags to attach to the resource.
97
+ # @return [Array<Types::LFTagPair>]
98
+ #
99
+ # @see http://docs.aws.amazon.com/goto/WebAPI/lakeformation-2017-03-31/AddLFTagsToResourceRequest AWS API Documentation
100
+ #
101
+ class AddLFTagsToResourceRequest < Struct.new(
102
+ :catalog_id,
103
+ :resource,
104
+ :lf_tags)
105
+ SENSITIVE = []
106
+ include Aws::Structure
107
+ end
108
+
109
+ # @!attribute [rw] failures
110
+ # A list of failures to tag the resource.
111
+ # @return [Array<Types::LFTagError>]
112
+ #
113
+ # @see http://docs.aws.amazon.com/goto/WebAPI/lakeformation-2017-03-31/AddLFTagsToResourceResponse AWS API Documentation
114
+ #
115
+ class AddLFTagsToResourceResponse < Struct.new(
116
+ :failures)
117
+ SENSITIVE = []
118
+ include Aws::Structure
119
+ end
120
+
13
121
  # A resource to be created or added already exists.
14
122
  #
15
123
  # @!attribute [rw] message
@@ -62,9 +170,24 @@ module Aws::LakeFormation
62
170
  # catalog_id: "CatalogIdString",
63
171
  # resource_arn: "ResourceArnString", # required
64
172
  # },
173
+ # lf_tag: {
174
+ # catalog_id: "CatalogIdString",
175
+ # tag_key: "NameString", # required
176
+ # tag_values: ["LFTagValue"], # required
177
+ # },
178
+ # lf_tag_policy: {
179
+ # catalog_id: "CatalogIdString",
180
+ # resource_type: "DATABASE", # required, accepts DATABASE, TABLE
181
+ # expression: [ # required
182
+ # {
183
+ # tag_key: "LFTagKey", # required
184
+ # tag_values: ["LFTagValue"], # required
185
+ # },
186
+ # ],
187
+ # },
65
188
  # },
66
- # permissions: ["ALL"], # accepts ALL, SELECT, ALTER, DROP, DELETE, INSERT, DESCRIBE, CREATE_DATABASE, CREATE_TABLE, DATA_LOCATION_ACCESS
67
- # permissions_with_grant_option: ["ALL"], # accepts ALL, SELECT, ALTER, DROP, DELETE, INSERT, DESCRIBE, CREATE_DATABASE, CREATE_TABLE, DATA_LOCATION_ACCESS
189
+ # 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
190
+ # 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
68
191
  # },
69
192
  # ],
70
193
  # }
@@ -160,9 +283,24 @@ module Aws::LakeFormation
160
283
  # catalog_id: "CatalogIdString",
161
284
  # resource_arn: "ResourceArnString", # required
162
285
  # },
286
+ # lf_tag: {
287
+ # catalog_id: "CatalogIdString",
288
+ # tag_key: "NameString", # required
289
+ # tag_values: ["LFTagValue"], # required
290
+ # },
291
+ # lf_tag_policy: {
292
+ # catalog_id: "CatalogIdString",
293
+ # resource_type: "DATABASE", # required, accepts DATABASE, TABLE
294
+ # expression: [ # required
295
+ # {
296
+ # tag_key: "LFTagKey", # required
297
+ # tag_values: ["LFTagValue"], # required
298
+ # },
299
+ # ],
300
+ # },
163
301
  # },
164
- # permissions: ["ALL"], # accepts ALL, SELECT, ALTER, DROP, DELETE, INSERT, DESCRIBE, CREATE_DATABASE, CREATE_TABLE, DATA_LOCATION_ACCESS
165
- # permissions_with_grant_option: ["ALL"], # accepts ALL, SELECT, ALTER, DROP, DELETE, INSERT, DESCRIBE, CREATE_DATABASE, CREATE_TABLE, DATA_LOCATION_ACCESS
302
+ # 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
303
+ # 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
166
304
  # }
167
305
  #
168
306
  # @!attribute [rw] id
@@ -235,9 +373,24 @@ module Aws::LakeFormation
235
373
  # catalog_id: "CatalogIdString",
236
374
  # resource_arn: "ResourceArnString", # required
237
375
  # },
376
+ # lf_tag: {
377
+ # catalog_id: "CatalogIdString",
378
+ # tag_key: "NameString", # required
379
+ # tag_values: ["LFTagValue"], # required
380
+ # },
381
+ # lf_tag_policy: {
382
+ # catalog_id: "CatalogIdString",
383
+ # resource_type: "DATABASE", # required, accepts DATABASE, TABLE
384
+ # expression: [ # required
385
+ # {
386
+ # tag_key: "LFTagKey", # required
387
+ # tag_values: ["LFTagValue"], # required
388
+ # },
389
+ # ],
390
+ # },
238
391
  # },
239
- # permissions: ["ALL"], # accepts ALL, SELECT, ALTER, DROP, DELETE, INSERT, DESCRIBE, CREATE_DATABASE, CREATE_TABLE, DATA_LOCATION_ACCESS
240
- # permissions_with_grant_option: ["ALL"], # accepts ALL, SELECT, ALTER, DROP, DELETE, INSERT, DESCRIBE, CREATE_DATABASE, CREATE_TABLE, DATA_LOCATION_ACCESS
392
+ # 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
393
+ # 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
241
394
  # },
242
395
  # ],
243
396
  # }
@@ -283,6 +436,26 @@ module Aws::LakeFormation
283
436
  #
284
437
  class CatalogResource < Aws::EmptyStructure; end
285
438
 
439
+ # A structure containing the name of a column resource and the tags
440
+ # attached to it.
441
+ #
442
+ # @!attribute [rw] name
443
+ # The name of a column resource.
444
+ # @return [String]
445
+ #
446
+ # @!attribute [rw] lf_tags
447
+ # The tags attached to a column resource.
448
+ # @return [Array<Types::LFTagPair>]
449
+ #
450
+ # @see http://docs.aws.amazon.com/goto/WebAPI/lakeformation-2017-03-31/ColumnLFTag AWS API Documentation
451
+ #
452
+ class ColumnLFTag < Struct.new(
453
+ :name,
454
+ :lf_tags)
455
+ SENSITIVE = []
456
+ include Aws::Structure
457
+ end
458
+
286
459
  # A wildcard object, consisting of an optional list of excluded column
287
460
  # names or indexes.
288
461
  #
@@ -319,6 +492,44 @@ module Aws::LakeFormation
319
492
  include Aws::Structure
320
493
  end
321
494
 
495
+ # @note When making an API call, you may pass CreateLFTagRequest
496
+ # data as a hash:
497
+ #
498
+ # {
499
+ # catalog_id: "CatalogIdString",
500
+ # tag_key: "LFTagKey", # required
501
+ # tag_values: ["LFTagValue"], # required
502
+ # }
503
+ #
504
+ # @!attribute [rw] catalog_id
505
+ # The identifier for the Data Catalog. By default, the account ID. The
506
+ # Data Catalog is the persistent metadata store. It contains database
507
+ # definitions, table definitions, and other control information to
508
+ # manage your AWS Lake Formation environment.
509
+ # @return [String]
510
+ #
511
+ # @!attribute [rw] tag_key
512
+ # The key-name for the tag.
513
+ # @return [String]
514
+ #
515
+ # @!attribute [rw] tag_values
516
+ # A list of possible values an attribute can take.
517
+ # @return [Array<String>]
518
+ #
519
+ # @see http://docs.aws.amazon.com/goto/WebAPI/lakeformation-2017-03-31/CreateLFTagRequest AWS API Documentation
520
+ #
521
+ class CreateLFTagRequest < Struct.new(
522
+ :catalog_id,
523
+ :tag_key,
524
+ :tag_values)
525
+ SENSITIVE = []
526
+ include Aws::Structure
527
+ end
528
+
529
+ # @see http://docs.aws.amazon.com/goto/WebAPI/lakeformation-2017-03-31/CreateLFTagResponse AWS API Documentation
530
+ #
531
+ class CreateLFTagResponse < Aws::EmptyStructure; end
532
+
322
533
  # The AWS Lake Formation principal. Supported principals are IAM users
323
534
  # or IAM roles.
324
535
  #
@@ -360,7 +571,7 @@ module Aws::LakeFormation
360
571
  # principal: {
361
572
  # data_lake_principal_identifier: "DataLakePrincipalString",
362
573
  # },
363
- # permissions: ["ALL"], # accepts ALL, SELECT, ALTER, DROP, DELETE, INSERT, DESCRIBE, CREATE_DATABASE, CREATE_TABLE, DATA_LOCATION_ACCESS
574
+ # 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
364
575
  # },
365
576
  # ],
366
577
  # create_table_default_permissions: [
@@ -368,7 +579,7 @@ module Aws::LakeFormation
368
579
  # principal: {
369
580
  # data_lake_principal_identifier: "DataLakePrincipalString",
370
581
  # },
371
- # permissions: ["ALL"], # accepts ALL, SELECT, ALTER, DROP, DELETE, INSERT, DESCRIBE, CREATE_DATABASE, CREATE_TABLE, DATA_LOCATION_ACCESS
582
+ # 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
372
583
  # },
373
584
  # ],
374
585
  # trusted_resource_owners: ["CatalogIdString"],
@@ -468,6 +679,38 @@ module Aws::LakeFormation
468
679
  include Aws::Structure
469
680
  end
470
681
 
682
+ # @note When making an API call, you may pass DeleteLFTagRequest
683
+ # data as a hash:
684
+ #
685
+ # {
686
+ # catalog_id: "CatalogIdString",
687
+ # tag_key: "LFTagKey", # required
688
+ # }
689
+ #
690
+ # @!attribute [rw] catalog_id
691
+ # The identifier for the Data Catalog. By default, the account ID. The
692
+ # Data Catalog is the persistent metadata store. It contains database
693
+ # definitions, table definitions, and other control information to
694
+ # manage your AWS Lake Formation environment.
695
+ # @return [String]
696
+ #
697
+ # @!attribute [rw] tag_key
698
+ # The key-name for the tag to delete.
699
+ # @return [String]
700
+ #
701
+ # @see http://docs.aws.amazon.com/goto/WebAPI/lakeformation-2017-03-31/DeleteLFTagRequest AWS API Documentation
702
+ #
703
+ class DeleteLFTagRequest < Struct.new(
704
+ :catalog_id,
705
+ :tag_key)
706
+ SENSITIVE = []
707
+ include Aws::Structure
708
+ end
709
+
710
+ # @see http://docs.aws.amazon.com/goto/WebAPI/lakeformation-2017-03-31/DeleteLFTagResponse AWS API Documentation
711
+ #
712
+ class DeleteLFTagResponse < Aws::EmptyStructure; end
713
+
471
714
  # @note When making an API call, you may pass DeregisterResourceRequest
472
715
  # data as a hash:
473
716
  #
@@ -528,11 +771,11 @@ module Aws::LakeFormation
528
771
  # `AdditionalDetails` attribute of `PrincipalResourcePermissions`.
529
772
  #
530
773
  # If a catalog resource is shared through AWS Resource Access Manager
531
- # (AWS RAM), then there will exist a corresponding RAM share resource
774
+ # (AWS RAM), then there will exist a corresponding RAM resource share
532
775
  # ARN.
533
776
  #
534
777
  # @!attribute [rw] resource_share
535
- # A share resource ARN for a catalog resource shared through AWS
778
+ # A resource share ARN for a catalog resource shared through AWS
536
779
  # Resource Access Manager (AWS RAM).
537
780
  # @return [Array<String>]
538
781
  #
@@ -707,14 +950,64 @@ module Aws::LakeFormation
707
950
  include Aws::Structure
708
951
  end
709
952
 
710
- # @note When making an API call, you may pass GrantPermissionsRequest
953
+ # @note When making an API call, you may pass GetLFTagRequest
954
+ # data as a hash:
955
+ #
956
+ # {
957
+ # catalog_id: "CatalogIdString",
958
+ # tag_key: "LFTagKey", # required
959
+ # }
960
+ #
961
+ # @!attribute [rw] catalog_id
962
+ # The identifier for the Data Catalog. By default, the account ID. The
963
+ # Data Catalog is the persistent metadata store. It contains database
964
+ # definitions, table definitions, and other control information to
965
+ # manage your AWS Lake Formation environment.
966
+ # @return [String]
967
+ #
968
+ # @!attribute [rw] tag_key
969
+ # The key-name for the tag.
970
+ # @return [String]
971
+ #
972
+ # @see http://docs.aws.amazon.com/goto/WebAPI/lakeformation-2017-03-31/GetLFTagRequest AWS API Documentation
973
+ #
974
+ class GetLFTagRequest < Struct.new(
975
+ :catalog_id,
976
+ :tag_key)
977
+ SENSITIVE = []
978
+ include Aws::Structure
979
+ end
980
+
981
+ # @!attribute [rw] catalog_id
982
+ # The identifier for the Data Catalog. By default, the account ID. The
983
+ # Data Catalog is the persistent metadata store. It contains database
984
+ # definitions, table definitions, and other control information to
985
+ # manage your AWS Lake Formation environment.
986
+ # @return [String]
987
+ #
988
+ # @!attribute [rw] tag_key
989
+ # The key-name for the tag.
990
+ # @return [String]
991
+ #
992
+ # @!attribute [rw] tag_values
993
+ # A list of possible values an attribute can take.
994
+ # @return [Array<String>]
995
+ #
996
+ # @see http://docs.aws.amazon.com/goto/WebAPI/lakeformation-2017-03-31/GetLFTagResponse AWS API Documentation
997
+ #
998
+ class GetLFTagResponse < Struct.new(
999
+ :catalog_id,
1000
+ :tag_key,
1001
+ :tag_values)
1002
+ SENSITIVE = []
1003
+ include Aws::Structure
1004
+ end
1005
+
1006
+ # @note When making an API call, you may pass GetResourceLFTagsRequest
711
1007
  # data as a hash:
712
1008
  #
713
1009
  # {
714
1010
  # catalog_id: "CatalogIdString",
715
- # principal: { # required
716
- # data_lake_principal_identifier: "DataLakePrincipalString",
717
- # },
718
1011
  # resource: { # required
719
1012
  # catalog: {
720
1013
  # },
@@ -742,9 +1035,23 @@ module Aws::LakeFormation
742
1035
  # catalog_id: "CatalogIdString",
743
1036
  # resource_arn: "ResourceArnString", # required
744
1037
  # },
1038
+ # lf_tag: {
1039
+ # catalog_id: "CatalogIdString",
1040
+ # tag_key: "NameString", # required
1041
+ # tag_values: ["LFTagValue"], # required
1042
+ # },
1043
+ # lf_tag_policy: {
1044
+ # catalog_id: "CatalogIdString",
1045
+ # resource_type: "DATABASE", # required, accepts DATABASE, TABLE
1046
+ # expression: [ # required
1047
+ # {
1048
+ # tag_key: "LFTagKey", # required
1049
+ # tag_values: ["LFTagValue"], # required
1050
+ # },
1051
+ # ],
1052
+ # },
745
1053
  # },
746
- # permissions: ["ALL"], # required, accepts ALL, SELECT, ALTER, DROP, DELETE, INSERT, DESCRIBE, CREATE_DATABASE, CREATE_TABLE, DATA_LOCATION_ACCESS
747
- # permissions_with_grant_option: ["ALL"], # accepts ALL, SELECT, ALTER, DROP, DELETE, INSERT, DESCRIBE, CREATE_DATABASE, CREATE_TABLE, DATA_LOCATION_ACCESS
1054
+ # show_assigned_lf_tags: false,
748
1055
  # }
749
1056
  #
750
1057
  # @!attribute [rw] catalog_id
@@ -754,90 +1061,69 @@ module Aws::LakeFormation
754
1061
  # manage your AWS Lake Formation environment.
755
1062
  # @return [String]
756
1063
  #
757
- # @!attribute [rw] principal
758
- # The principal to be granted the permissions on the resource.
759
- # Supported principals are IAM users or IAM roles, and they are
760
- # defined by their principal type and their ARN.
761
- #
762
- # Note that if you define a resource with a particular ARN, then later
763
- # delete, and recreate a resource with that same ARN, the resource
764
- # maintains the permissions already granted.
765
- # @return [Types::DataLakePrincipal]
766
- #
767
1064
  # @!attribute [rw] resource
768
- # The resource to which permissions are to be granted. Resources in
769
- # AWS Lake Formation are the Data Catalog, databases, and tables.
1065
+ # The resource for which you want to return tags.
770
1066
  # @return [Types::Resource]
771
1067
  #
772
- # @!attribute [rw] permissions
773
- # The permissions granted to the principal on the resource. AWS Lake
774
- # Formation defines privileges to grant and revoke access to metadata
775
- # in the Data Catalog and data organized in underlying data storage
776
- # such as Amazon S3. AWS Lake Formation requires that each principal
777
- # be authorized to perform a specific task on AWS Lake Formation
778
- # resources.
779
- # @return [Array<String>]
780
- #
781
- # @!attribute [rw] permissions_with_grant_option
782
- # Indicates a list of the granted permissions that the principal may
783
- # pass to other users. These permissions may only be a subset of the
784
- # permissions granted in the `Privileges`.
785
- # @return [Array<String>]
1068
+ # @!attribute [rw] show_assigned_lf_tags
1069
+ # Indicates whether to show the assigned tags.
1070
+ # @return [Boolean]
786
1071
  #
787
- # @see http://docs.aws.amazon.com/goto/WebAPI/lakeformation-2017-03-31/GrantPermissionsRequest AWS API Documentation
1072
+ # @see http://docs.aws.amazon.com/goto/WebAPI/lakeformation-2017-03-31/GetResourceLFTagsRequest AWS API Documentation
788
1073
  #
789
- class GrantPermissionsRequest < Struct.new(
1074
+ class GetResourceLFTagsRequest < Struct.new(
790
1075
  :catalog_id,
791
- :principal,
792
1076
  :resource,
793
- :permissions,
794
- :permissions_with_grant_option)
1077
+ :show_assigned_lf_tags)
795
1078
  SENSITIVE = []
796
1079
  include Aws::Structure
797
1080
  end
798
1081
 
799
- # @see http://docs.aws.amazon.com/goto/WebAPI/lakeformation-2017-03-31/GrantPermissionsResponse AWS API Documentation
1082
+ # @!attribute [rw] lf_tag_on_database
1083
+ # A list of tags applied to a database resource.
1084
+ # @return [Array<Types::LFTagPair>]
800
1085
  #
801
- class GrantPermissionsResponse < Aws::EmptyStructure; end
802
-
803
- # An internal service error occurred.
1086
+ # @!attribute [rw] lf_tags_on_table
1087
+ # A list of tags applied to a table resource.
1088
+ # @return [Array<Types::LFTagPair>]
804
1089
  #
805
- # @!attribute [rw] message
806
- # A message describing the problem.
807
- # @return [String]
1090
+ # @!attribute [rw] lf_tags_on_columns
1091
+ # A list of tags applied to a column resource.
1092
+ # @return [Array<Types::ColumnLFTag>]
808
1093
  #
809
- # @see http://docs.aws.amazon.com/goto/WebAPI/lakeformation-2017-03-31/InternalServiceException AWS API Documentation
1094
+ # @see http://docs.aws.amazon.com/goto/WebAPI/lakeformation-2017-03-31/GetResourceLFTagsResponse AWS API Documentation
810
1095
  #
811
- class InternalServiceException < Struct.new(
812
- :message)
1096
+ class GetResourceLFTagsResponse < Struct.new(
1097
+ :lf_tag_on_database,
1098
+ :lf_tags_on_table,
1099
+ :lf_tags_on_columns)
813
1100
  SENSITIVE = []
814
1101
  include Aws::Structure
815
1102
  end
816
1103
 
817
- # The input provided was not valid.
1104
+ # An encryption operation failed.
818
1105
  #
819
1106
  # @!attribute [rw] message
820
1107
  # A message describing the problem.
821
1108
  # @return [String]
822
1109
  #
823
- # @see http://docs.aws.amazon.com/goto/WebAPI/lakeformation-2017-03-31/InvalidInputException AWS API Documentation
1110
+ # @see http://docs.aws.amazon.com/goto/WebAPI/lakeformation-2017-03-31/GlueEncryptionException AWS API Documentation
824
1111
  #
825
- class InvalidInputException < Struct.new(
1112
+ class GlueEncryptionException < Struct.new(
826
1113
  :message)
827
1114
  SENSITIVE = []
828
1115
  include Aws::Structure
829
1116
  end
830
1117
 
831
- # @note When making an API call, you may pass ListPermissionsRequest
1118
+ # @note When making an API call, you may pass GrantPermissionsRequest
832
1119
  # data as a hash:
833
1120
  #
834
1121
  # {
835
1122
  # catalog_id: "CatalogIdString",
836
- # principal: {
1123
+ # principal: { # required
837
1124
  # data_lake_principal_identifier: "DataLakePrincipalString",
838
1125
  # },
839
- # resource_type: "CATALOG", # accepts CATALOG, DATABASE, TABLE, DATA_LOCATION
840
- # resource: {
1126
+ # resource: { # required
841
1127
  # catalog: {
842
1128
  # },
843
1129
  # database: {
@@ -864,8 +1150,386 @@ module Aws::LakeFormation
864
1150
  # catalog_id: "CatalogIdString",
865
1151
  # resource_arn: "ResourceArnString", # required
866
1152
  # },
1153
+ # lf_tag: {
1154
+ # catalog_id: "CatalogIdString",
1155
+ # tag_key: "NameString", # required
1156
+ # tag_values: ["LFTagValue"], # required
1157
+ # },
1158
+ # lf_tag_policy: {
1159
+ # catalog_id: "CatalogIdString",
1160
+ # resource_type: "DATABASE", # required, accepts DATABASE, TABLE
1161
+ # expression: [ # required
1162
+ # {
1163
+ # tag_key: "LFTagKey", # required
1164
+ # tag_values: ["LFTagValue"], # required
1165
+ # },
1166
+ # ],
1167
+ # },
867
1168
  # },
868
- # next_token: "Token",
1169
+ # 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
1170
+ # 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
1171
+ # }
1172
+ #
1173
+ # @!attribute [rw] catalog_id
1174
+ # The identifier for the Data Catalog. By default, the account ID. The
1175
+ # Data Catalog is the persistent metadata store. It contains database
1176
+ # definitions, table definitions, and other control information to
1177
+ # manage your AWS Lake Formation environment.
1178
+ # @return [String]
1179
+ #
1180
+ # @!attribute [rw] principal
1181
+ # The principal to be granted the permissions on the resource.
1182
+ # Supported principals are IAM users or IAM roles, and they are
1183
+ # defined by their principal type and their ARN.
1184
+ #
1185
+ # Note that if you define a resource with a particular ARN, then later
1186
+ # delete, and recreate a resource with that same ARN, the resource
1187
+ # maintains the permissions already granted.
1188
+ # @return [Types::DataLakePrincipal]
1189
+ #
1190
+ # @!attribute [rw] resource
1191
+ # The resource to which permissions are to be granted. Resources in
1192
+ # AWS Lake Formation are the Data Catalog, databases, and tables.
1193
+ # @return [Types::Resource]
1194
+ #
1195
+ # @!attribute [rw] permissions
1196
+ # The permissions granted to the principal on the resource. AWS Lake
1197
+ # Formation defines privileges to grant and revoke access to metadata
1198
+ # in the Data Catalog and data organized in underlying data storage
1199
+ # such as Amazon S3. AWS Lake Formation requires that each principal
1200
+ # be authorized to perform a specific task on AWS Lake Formation
1201
+ # resources.
1202
+ # @return [Array<String>]
1203
+ #
1204
+ # @!attribute [rw] permissions_with_grant_option
1205
+ # Indicates a list of the granted permissions that the principal may
1206
+ # pass to other users. These permissions may only be a subset of the
1207
+ # permissions granted in the `Privileges`.
1208
+ # @return [Array<String>]
1209
+ #
1210
+ # @see http://docs.aws.amazon.com/goto/WebAPI/lakeformation-2017-03-31/GrantPermissionsRequest AWS API Documentation
1211
+ #
1212
+ class GrantPermissionsRequest < Struct.new(
1213
+ :catalog_id,
1214
+ :principal,
1215
+ :resource,
1216
+ :permissions,
1217
+ :permissions_with_grant_option)
1218
+ SENSITIVE = []
1219
+ include Aws::Structure
1220
+ end
1221
+
1222
+ # @see http://docs.aws.amazon.com/goto/WebAPI/lakeformation-2017-03-31/GrantPermissionsResponse AWS API Documentation
1223
+ #
1224
+ class GrantPermissionsResponse < Aws::EmptyStructure; end
1225
+
1226
+ # An internal service error occurred.
1227
+ #
1228
+ # @!attribute [rw] message
1229
+ # A message describing the problem.
1230
+ # @return [String]
1231
+ #
1232
+ # @see http://docs.aws.amazon.com/goto/WebAPI/lakeformation-2017-03-31/InternalServiceException AWS API Documentation
1233
+ #
1234
+ class InternalServiceException < Struct.new(
1235
+ :message)
1236
+ SENSITIVE = []
1237
+ include Aws::Structure
1238
+ end
1239
+
1240
+ # The input provided was not valid.
1241
+ #
1242
+ # @!attribute [rw] message
1243
+ # A message describing the problem.
1244
+ # @return [String]
1245
+ #
1246
+ # @see http://docs.aws.amazon.com/goto/WebAPI/lakeformation-2017-03-31/InvalidInputException AWS API Documentation
1247
+ #
1248
+ class InvalidInputException < Struct.new(
1249
+ :message)
1250
+ SENSITIVE = []
1251
+ include Aws::Structure
1252
+ end
1253
+
1254
+ # A structure that allows an admin to grant user permissions on certain
1255
+ # conditions. For example, granting a role access to all columns not
1256
+ # tagged 'PII' of tables tagged 'Prod'.
1257
+ #
1258
+ # @note When making an API call, you may pass LFTag
1259
+ # data as a hash:
1260
+ #
1261
+ # {
1262
+ # tag_key: "LFTagKey", # required
1263
+ # tag_values: ["LFTagValue"], # required
1264
+ # }
1265
+ #
1266
+ # @!attribute [rw] tag_key
1267
+ # The key-name for the tag.
1268
+ # @return [String]
1269
+ #
1270
+ # @!attribute [rw] tag_values
1271
+ # A list of possible values an attribute can take.
1272
+ # @return [Array<String>]
1273
+ #
1274
+ # @see http://docs.aws.amazon.com/goto/WebAPI/lakeformation-2017-03-31/LFTag AWS API Documentation
1275
+ #
1276
+ class LFTag < Struct.new(
1277
+ :tag_key,
1278
+ :tag_values)
1279
+ SENSITIVE = []
1280
+ include Aws::Structure
1281
+ end
1282
+
1283
+ # A structure containing an error related to a `TagResource` or
1284
+ # `UnTagResource` operation.
1285
+ #
1286
+ # @!attribute [rw] lf_tag
1287
+ # The key-name of the tag.
1288
+ # @return [Types::LFTagPair]
1289
+ #
1290
+ # @!attribute [rw] error
1291
+ # An error that occurred with the attachment or detachment of the tag.
1292
+ # @return [Types::ErrorDetail]
1293
+ #
1294
+ # @see http://docs.aws.amazon.com/goto/WebAPI/lakeformation-2017-03-31/LFTagError AWS API Documentation
1295
+ #
1296
+ class LFTagError < Struct.new(
1297
+ :lf_tag,
1298
+ :error)
1299
+ SENSITIVE = []
1300
+ include Aws::Structure
1301
+ end
1302
+
1303
+ # A structure containing a tag key and values for a resource.
1304
+ #
1305
+ # @note When making an API call, you may pass LFTagKeyResource
1306
+ # data as a hash:
1307
+ #
1308
+ # {
1309
+ # catalog_id: "CatalogIdString",
1310
+ # tag_key: "NameString", # required
1311
+ # tag_values: ["LFTagValue"], # required
1312
+ # }
1313
+ #
1314
+ # @!attribute [rw] catalog_id
1315
+ # The identifier for the Data Catalog. By default, the account ID. The
1316
+ # Data Catalog is the persistent metadata store. It contains database
1317
+ # definitions, table definitions, and other control information to
1318
+ # manage your AWS Lake Formation environment.
1319
+ # @return [String]
1320
+ #
1321
+ # @!attribute [rw] tag_key
1322
+ # The key-name for the tag.
1323
+ # @return [String]
1324
+ #
1325
+ # @!attribute [rw] tag_values
1326
+ # A list of possible values an attribute can take.
1327
+ # @return [Array<String>]
1328
+ #
1329
+ # @see http://docs.aws.amazon.com/goto/WebAPI/lakeformation-2017-03-31/LFTagKeyResource AWS API Documentation
1330
+ #
1331
+ class LFTagKeyResource < Struct.new(
1332
+ :catalog_id,
1333
+ :tag_key,
1334
+ :tag_values)
1335
+ SENSITIVE = []
1336
+ include Aws::Structure
1337
+ end
1338
+
1339
+ # A structure containing a tag key-value pair.
1340
+ #
1341
+ # @note When making an API call, you may pass LFTagPair
1342
+ # data as a hash:
1343
+ #
1344
+ # {
1345
+ # catalog_id: "CatalogIdString",
1346
+ # tag_key: "LFTagKey", # required
1347
+ # tag_values: ["LFTagValue"], # required
1348
+ # }
1349
+ #
1350
+ # @!attribute [rw] catalog_id
1351
+ # The identifier for the Data Catalog. By default, the account ID. The
1352
+ # Data Catalog is the persistent metadata store. It contains database
1353
+ # definitions, table definitions, and other control information to
1354
+ # manage your AWS Lake Formation environment.
1355
+ # @return [String]
1356
+ #
1357
+ # @!attribute [rw] tag_key
1358
+ # The key-name for the tag.
1359
+ # @return [String]
1360
+ #
1361
+ # @!attribute [rw] tag_values
1362
+ # A list of possible values an attribute can take.
1363
+ # @return [Array<String>]
1364
+ #
1365
+ # @see http://docs.aws.amazon.com/goto/WebAPI/lakeformation-2017-03-31/LFTagPair AWS API Documentation
1366
+ #
1367
+ class LFTagPair < Struct.new(
1368
+ :catalog_id,
1369
+ :tag_key,
1370
+ :tag_values)
1371
+ SENSITIVE = []
1372
+ include Aws::Structure
1373
+ end
1374
+
1375
+ # A structure containing a list of tag conditions that apply to a
1376
+ # resource's tag policy.
1377
+ #
1378
+ # @note When making an API call, you may pass LFTagPolicyResource
1379
+ # data as a hash:
1380
+ #
1381
+ # {
1382
+ # catalog_id: "CatalogIdString",
1383
+ # resource_type: "DATABASE", # required, accepts DATABASE, TABLE
1384
+ # expression: [ # required
1385
+ # {
1386
+ # tag_key: "LFTagKey", # required
1387
+ # tag_values: ["LFTagValue"], # required
1388
+ # },
1389
+ # ],
1390
+ # }
1391
+ #
1392
+ # @!attribute [rw] catalog_id
1393
+ # The identifier for the Data Catalog. By default, the account ID. The
1394
+ # Data Catalog is the persistent metadata store. It contains database
1395
+ # definitions, table definitions, and other control information to
1396
+ # manage your AWS Lake Formation environment.
1397
+ # @return [String]
1398
+ #
1399
+ # @!attribute [rw] resource_type
1400
+ # The resource type for which the tag policy applies.
1401
+ # @return [String]
1402
+ #
1403
+ # @!attribute [rw] expression
1404
+ # A list of tag conditions that apply to the resource's tag policy.
1405
+ # @return [Array<Types::LFTag>]
1406
+ #
1407
+ # @see http://docs.aws.amazon.com/goto/WebAPI/lakeformation-2017-03-31/LFTagPolicyResource AWS API Documentation
1408
+ #
1409
+ class LFTagPolicyResource < Struct.new(
1410
+ :catalog_id,
1411
+ :resource_type,
1412
+ :expression)
1413
+ SENSITIVE = []
1414
+ include Aws::Structure
1415
+ end
1416
+
1417
+ # @note When making an API call, you may pass ListLFTagsRequest
1418
+ # data as a hash:
1419
+ #
1420
+ # {
1421
+ # catalog_id: "CatalogIdString",
1422
+ # resource_share_type: "FOREIGN", # accepts FOREIGN, ALL
1423
+ # max_results: 1,
1424
+ # next_token: "Token",
1425
+ # }
1426
+ #
1427
+ # @!attribute [rw] catalog_id
1428
+ # The identifier for the Data Catalog. By default, the account ID. The
1429
+ # Data Catalog is the persistent metadata store. It contains database
1430
+ # definitions, table definitions, and other control information to
1431
+ # manage your AWS Lake Formation environment.
1432
+ # @return [String]
1433
+ #
1434
+ # @!attribute [rw] resource_share_type
1435
+ # If resource share type is `ALL`, returns both in-account tags and
1436
+ # shared tags that the requester has permission to view. If resource
1437
+ # share type is `FOREIGN`, returns all share tags that the requester
1438
+ # can view. If no resource share type is passed, lists tags in the
1439
+ # given catalog ID that the requester has permission to view.
1440
+ # @return [String]
1441
+ #
1442
+ # @!attribute [rw] max_results
1443
+ # The maximum number of results to return.
1444
+ # @return [Integer]
1445
+ #
1446
+ # @!attribute [rw] next_token
1447
+ # A continuation token, if this is not the first call to retrieve this
1448
+ # list.
1449
+ # @return [String]
1450
+ #
1451
+ # @see http://docs.aws.amazon.com/goto/WebAPI/lakeformation-2017-03-31/ListLFTagsRequest AWS API Documentation
1452
+ #
1453
+ class ListLFTagsRequest < Struct.new(
1454
+ :catalog_id,
1455
+ :resource_share_type,
1456
+ :max_results,
1457
+ :next_token)
1458
+ SENSITIVE = []
1459
+ include Aws::Structure
1460
+ end
1461
+
1462
+ # @!attribute [rw] lf_tags
1463
+ # A list of tags that the requested has permission to view.
1464
+ # @return [Array<Types::LFTagPair>]
1465
+ #
1466
+ # @!attribute [rw] next_token
1467
+ # A continuation token, present if the current list segment is not the
1468
+ # last.
1469
+ # @return [String]
1470
+ #
1471
+ # @see http://docs.aws.amazon.com/goto/WebAPI/lakeformation-2017-03-31/ListLFTagsResponse AWS API Documentation
1472
+ #
1473
+ class ListLFTagsResponse < Struct.new(
1474
+ :lf_tags,
1475
+ :next_token)
1476
+ SENSITIVE = []
1477
+ include Aws::Structure
1478
+ end
1479
+
1480
+ # @note When making an API call, you may pass ListPermissionsRequest
1481
+ # data as a hash:
1482
+ #
1483
+ # {
1484
+ # catalog_id: "CatalogIdString",
1485
+ # principal: {
1486
+ # data_lake_principal_identifier: "DataLakePrincipalString",
1487
+ # },
1488
+ # resource_type: "CATALOG", # accepts CATALOG, DATABASE, TABLE, DATA_LOCATION, LF_TAG, LF_TAG_POLICY, LF_TAG_POLICY_DATABASE, LF_TAG_POLICY_TABLE
1489
+ # resource: {
1490
+ # catalog: {
1491
+ # },
1492
+ # database: {
1493
+ # catalog_id: "CatalogIdString",
1494
+ # name: "NameString", # required
1495
+ # },
1496
+ # table: {
1497
+ # catalog_id: "CatalogIdString",
1498
+ # database_name: "NameString", # required
1499
+ # name: "NameString",
1500
+ # table_wildcard: {
1501
+ # },
1502
+ # },
1503
+ # table_with_columns: {
1504
+ # catalog_id: "CatalogIdString",
1505
+ # database_name: "NameString", # required
1506
+ # name: "NameString", # required
1507
+ # column_names: ["NameString"],
1508
+ # column_wildcard: {
1509
+ # excluded_column_names: ["NameString"],
1510
+ # },
1511
+ # },
1512
+ # data_location: {
1513
+ # catalog_id: "CatalogIdString",
1514
+ # resource_arn: "ResourceArnString", # required
1515
+ # },
1516
+ # lf_tag: {
1517
+ # catalog_id: "CatalogIdString",
1518
+ # tag_key: "NameString", # required
1519
+ # tag_values: ["LFTagValue"], # required
1520
+ # },
1521
+ # lf_tag_policy: {
1522
+ # catalog_id: "CatalogIdString",
1523
+ # resource_type: "DATABASE", # required, accepts DATABASE, TABLE
1524
+ # expression: [ # required
1525
+ # {
1526
+ # tag_key: "LFTagKey", # required
1527
+ # tag_values: ["LFTagValue"], # required
1528
+ # },
1529
+ # ],
1530
+ # },
1531
+ # },
1532
+ # next_token: "Token",
869
1533
  # max_results: 1,
870
1534
  # }
871
1535
  #
@@ -1013,7 +1677,7 @@ module Aws::LakeFormation
1013
1677
  # principal: {
1014
1678
  # data_lake_principal_identifier: "DataLakePrincipalString",
1015
1679
  # },
1016
- # permissions: ["ALL"], # accepts ALL, SELECT, ALTER, DROP, DELETE, INSERT, DESCRIBE, CREATE_DATABASE, CREATE_TABLE, DATA_LOCATION_ACCESS
1680
+ # 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
1017
1681
  # }
1018
1682
  #
1019
1683
  # @!attribute [rw] principal
@@ -1055,7 +1719,7 @@ module Aws::LakeFormation
1055
1719
  # @!attribute [rw] additional_details
1056
1720
  # This attribute can be used to return any additional details of
1057
1721
  # `PrincipalResourcePermissions`. Currently returns only as a RAM
1058
- # share resource ARN.
1722
+ # resource share ARN.
1059
1723
  # @return [Types::DetailsMap]
1060
1724
  #
1061
1725
  # @see http://docs.aws.amazon.com/goto/WebAPI/lakeformation-2017-03-31/PrincipalResourcePermissions AWS API Documentation
@@ -1086,7 +1750,7 @@ module Aws::LakeFormation
1086
1750
  # principal: {
1087
1751
  # data_lake_principal_identifier: "DataLakePrincipalString",
1088
1752
  # },
1089
- # permissions: ["ALL"], # accepts ALL, SELECT, ALTER, DROP, DELETE, INSERT, DESCRIBE, CREATE_DATABASE, CREATE_TABLE, DATA_LOCATION_ACCESS
1753
+ # 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
1090
1754
  # },
1091
1755
  # ],
1092
1756
  # create_table_default_permissions: [
@@ -1094,7 +1758,7 @@ module Aws::LakeFormation
1094
1758
  # principal: {
1095
1759
  # data_lake_principal_identifier: "DataLakePrincipalString",
1096
1760
  # },
1097
- # permissions: ["ALL"], # accepts ALL, SELECT, ALTER, DROP, DELETE, INSERT, DESCRIBE, CREATE_DATABASE, CREATE_TABLE, DATA_LOCATION_ACCESS
1761
+ # 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
1098
1762
  # },
1099
1763
  # ],
1100
1764
  # trusted_resource_owners: ["CatalogIdString"],
@@ -1172,6 +1836,100 @@ module Aws::LakeFormation
1172
1836
  #
1173
1837
  class RegisterResourceResponse < Aws::EmptyStructure; end
1174
1838
 
1839
+ # @note When making an API call, you may pass RemoveLFTagsFromResourceRequest
1840
+ # data as a hash:
1841
+ #
1842
+ # {
1843
+ # catalog_id: "CatalogIdString",
1844
+ # resource: { # required
1845
+ # catalog: {
1846
+ # },
1847
+ # database: {
1848
+ # catalog_id: "CatalogIdString",
1849
+ # name: "NameString", # required
1850
+ # },
1851
+ # table: {
1852
+ # catalog_id: "CatalogIdString",
1853
+ # database_name: "NameString", # required
1854
+ # name: "NameString",
1855
+ # table_wildcard: {
1856
+ # },
1857
+ # },
1858
+ # table_with_columns: {
1859
+ # catalog_id: "CatalogIdString",
1860
+ # database_name: "NameString", # required
1861
+ # name: "NameString", # required
1862
+ # column_names: ["NameString"],
1863
+ # column_wildcard: {
1864
+ # excluded_column_names: ["NameString"],
1865
+ # },
1866
+ # },
1867
+ # data_location: {
1868
+ # catalog_id: "CatalogIdString",
1869
+ # resource_arn: "ResourceArnString", # required
1870
+ # },
1871
+ # lf_tag: {
1872
+ # catalog_id: "CatalogIdString",
1873
+ # tag_key: "NameString", # required
1874
+ # tag_values: ["LFTagValue"], # required
1875
+ # },
1876
+ # lf_tag_policy: {
1877
+ # catalog_id: "CatalogIdString",
1878
+ # resource_type: "DATABASE", # required, accepts DATABASE, TABLE
1879
+ # expression: [ # required
1880
+ # {
1881
+ # tag_key: "LFTagKey", # required
1882
+ # tag_values: ["LFTagValue"], # required
1883
+ # },
1884
+ # ],
1885
+ # },
1886
+ # },
1887
+ # lf_tags: [ # required
1888
+ # {
1889
+ # catalog_id: "CatalogIdString",
1890
+ # tag_key: "LFTagKey", # required
1891
+ # tag_values: ["LFTagValue"], # required
1892
+ # },
1893
+ # ],
1894
+ # }
1895
+ #
1896
+ # @!attribute [rw] catalog_id
1897
+ # The identifier for the Data Catalog. By default, the account ID. The
1898
+ # Data Catalog is the persistent metadata store. It contains database
1899
+ # definitions, table definitions, and other control information to
1900
+ # manage your AWS Lake Formation environment.
1901
+ # @return [String]
1902
+ #
1903
+ # @!attribute [rw] resource
1904
+ # The resource where you want to remove a tag.
1905
+ # @return [Types::Resource]
1906
+ #
1907
+ # @!attribute [rw] lf_tags
1908
+ # The tags to be removed from the resource.
1909
+ # @return [Array<Types::LFTagPair>]
1910
+ #
1911
+ # @see http://docs.aws.amazon.com/goto/WebAPI/lakeformation-2017-03-31/RemoveLFTagsFromResourceRequest AWS API Documentation
1912
+ #
1913
+ class RemoveLFTagsFromResourceRequest < Struct.new(
1914
+ :catalog_id,
1915
+ :resource,
1916
+ :lf_tags)
1917
+ SENSITIVE = []
1918
+ include Aws::Structure
1919
+ end
1920
+
1921
+ # @!attribute [rw] failures
1922
+ # A list of failures to untag a resource.
1923
+ # @return [Array<Types::LFTagError>]
1924
+ #
1925
+ # @see http://docs.aws.amazon.com/goto/WebAPI/lakeformation-2017-03-31/RemoveLFTagsFromResourceResponse AWS API Documentation
1926
+ #
1927
+ class RemoveLFTagsFromResourceResponse < Struct.new(
1928
+ :failures)
1929
+ SENSITIVE = []
1930
+ include Aws::Structure
1931
+ end
1932
+
1175
1933
  # A structure for the resource.
1176
1934
  #
1177
1935
  # @note When making an API call, you may pass Resource
@@ -1204,6 +1962,21 @@ module Aws::LakeFormation
1204
1962
  # catalog_id: "CatalogIdString",
1205
1963
  # resource_arn: "ResourceArnString", # required
1206
1964
  # },
1965
+ # lf_tag: {
1966
+ # catalog_id: "CatalogIdString",
1967
+ # tag_key: "NameString", # required
1968
+ # tag_values: ["LFTagValue"], # required
1969
+ # },
1970
+ # lf_tag_policy: {
1971
+ # catalog_id: "CatalogIdString",
1972
+ # resource_type: "DATABASE", # required, accepts DATABASE, TABLE
1973
+ # expression: [ # required
1974
+ # {
1975
+ # tag_key: "LFTagKey", # required
1976
+ # tag_values: ["LFTagValue"], # required
1977
+ # },
1978
+ # ],
1979
+ # },
1207
1980
  # }
1208
1981
  #
1209
1982
  # @!attribute [rw] catalog
@@ -1237,6 +2010,14 @@ module Aws::LakeFormation
1237
2010
  # revoked.
1238
2011
  # @return [Types::DataLocationResource]
1239
2012
  #
2013
+ # @!attribute [rw] lf_tag
2014
+ # The tag key and values attached to a resource.
2015
+ # @return [Types::LFTagKeyResource]
2016
+ #
2017
+ # @!attribute [rw] lf_tag_policy
2018
+ # A list of tag conditions that define a resource's tag policy.
2019
+ # @return [Types::LFTagPolicyResource]
2020
+ #
1240
2021
  # @see http://docs.aws.amazon.com/goto/WebAPI/lakeformation-2017-03-31/Resource AWS API Documentation
1241
2022
  #
1242
2023
  class Resource < Struct.new(
@@ -1244,7 +2025,9 @@ module Aws::LakeFormation
1244
2025
  :database,
1245
2026
  :table,
1246
2027
  :table_with_columns,
1247
- :data_location)
2028
+ :data_location,
2029
+ :lf_tag,
2030
+ :lf_tag_policy)
1248
2031
  SENSITIVE = []
1249
2032
  include Aws::Structure
1250
2033
  end
@@ -1274,6 +2057,20 @@ module Aws::LakeFormation
1274
2057
  include Aws::Structure
1275
2058
  end
1276
2059
 
2060
+ # A resource numerical limit was exceeded.
2061
+ #
2062
+ # @!attribute [rw] message
2063
+ # A message describing the problem.
2064
+ # @return [String]
2065
+ #
2066
+ # @see http://docs.aws.amazon.com/goto/WebAPI/lakeformation-2017-03-31/ResourceNumberLimitExceededException AWS API Documentation
2067
+ #
2068
+ class ResourceNumberLimitExceededException < Struct.new(
2069
+ :message)
2070
+ SENSITIVE = []
2071
+ include Aws::Structure
2072
+ end
2073
+
1277
2074
  # @note When making an API call, you may pass RevokePermissionsRequest
1278
2075
  # data as a hash:
1279
2076
  #
@@ -1309,9 +2106,24 @@ module Aws::LakeFormation
1309
2106
  # catalog_id: "CatalogIdString",
1310
2107
  # resource_arn: "ResourceArnString", # required
1311
2108
  # },
2109
+ # lf_tag: {
2110
+ # catalog_id: "CatalogIdString",
2111
+ # tag_key: "NameString", # required
2112
+ # tag_values: ["LFTagValue"], # required
2113
+ # },
2114
+ # lf_tag_policy: {
2115
+ # catalog_id: "CatalogIdString",
2116
+ # resource_type: "DATABASE", # required, accepts DATABASE, TABLE
2117
+ # expression: [ # required
2118
+ # {
2119
+ # tag_key: "LFTagKey", # required
2120
+ # tag_values: ["LFTagValue"], # required
2121
+ # },
2122
+ # ],
2123
+ # },
1312
2124
  # },
1313
- # permissions: ["ALL"], # required, accepts ALL, SELECT, ALTER, DROP, DELETE, INSERT, DESCRIBE, CREATE_DATABASE, CREATE_TABLE, DATA_LOCATION_ACCESS
1314
- # permissions_with_grant_option: ["ALL"], # accepts ALL, SELECT, ALTER, DROP, DELETE, INSERT, DESCRIBE, CREATE_DATABASE, CREATE_TABLE, DATA_LOCATION_ACCESS
2125
+ # 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
2126
+ # 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
1315
2127
  # }
1316
2128
  #
1317
2129
  # @!attribute [rw] catalog_id
@@ -1360,6 +2172,136 @@ module Aws::LakeFormation
1360
2172
  #
1361
2173
  class RevokePermissionsResponse < Aws::EmptyStructure; end
1362
2174
 
2175
+ # @note When making an API call, you may pass SearchDatabasesByLFTagsRequest
2176
+ # data as a hash:
2177
+ #
2178
+ # {
2179
+ # next_token: "Token",
2180
+ # max_results: 1,
2181
+ # catalog_id: "CatalogIdString",
2182
+ # expression: [ # required
2183
+ # {
2184
+ # tag_key: "LFTagKey", # required
2185
+ # tag_values: ["LFTagValue"], # required
2186
+ # },
2187
+ # ],
2188
+ # }
2189
+ #
2190
+ # @!attribute [rw] next_token
2191
+ # A continuation token, if this is not the first call to retrieve this
2192
+ # list.
2193
+ # @return [String]
2194
+ #
2195
+ # @!attribute [rw] max_results
2196
+ # The maximum number of results to return.
2197
+ # @return [Integer]
2198
+ #
2199
+ # @!attribute [rw] catalog_id
2200
+ # The identifier for the Data Catalog. By default, the account ID. The
2201
+ # Data Catalog is the persistent metadata store. It contains database
2202
+ # definitions, table definitions, and other control information to
2203
+ # manage your AWS Lake Formation environment.
2204
+ # @return [String]
2205
+ #
2206
+ # @!attribute [rw] expression
2207
+ # A list of conditions (`LFTag` structures) to search for in database
2208
+ # resources.
2209
+ # @return [Array<Types::LFTag>]
2210
+ #
2211
+ # @see http://docs.aws.amazon.com/goto/WebAPI/lakeformation-2017-03-31/SearchDatabasesByLFTagsRequest AWS API Documentation
2212
+ #
2213
+ class SearchDatabasesByLFTagsRequest < Struct.new(
2214
+ :next_token,
2215
+ :max_results,
2216
+ :catalog_id,
2217
+ :expression)
2218
+ SENSITIVE = []
2219
+ include Aws::Structure
2220
+ end
2221
+
2222
+ # @!attribute [rw] next_token
2223
+ # A continuation token, present if the current list segment is not the
2224
+ # last.
2225
+ # @return [String]
2226
+ #
2227
+ # @!attribute [rw] database_list
2228
+ # A list of databases that meet the tag conditions.
2229
+ # @return [Array<Types::TaggedDatabase>]
2230
+ #
2231
+ # @see http://docs.aws.amazon.com/goto/WebAPI/lakeformation-2017-03-31/SearchDatabasesByLFTagsResponse AWS API Documentation
2232
+ #
2233
+ class SearchDatabasesByLFTagsResponse < Struct.new(
2234
+ :next_token,
2235
+ :database_list)
2236
+ SENSITIVE = []
2237
+ include Aws::Structure
2238
+ end
2239
+
2240
+ # @note When making an API call, you may pass SearchTablesByLFTagsRequest
2241
+ # data as a hash:
2242
+ #
2243
+ # {
2244
+ # next_token: "Token",
2245
+ # max_results: 1,
2246
+ # catalog_id: "CatalogIdString",
2247
+ # expression: [ # required
2248
+ # {
2249
+ # tag_key: "LFTagKey", # required
2250
+ # tag_values: ["LFTagValue"], # required
2251
+ # },
2252
+ # ],
2253
+ # }
2254
+ #
2255
+ # @!attribute [rw] next_token
2256
+ # A continuation token, if this is not the first call to retrieve this
2257
+ # list.
2258
+ # @return [String]
2259
+ #
2260
+ # @!attribute [rw] max_results
2261
+ # The maximum number of results to return.
2262
+ # @return [Integer]
2263
+ #
2264
+ # @!attribute [rw] catalog_id
2265
+ # The identifier for the Data Catalog. By default, the account ID. The
2266
+ # Data Catalog is the persistent metadata store. It contains database
2267
+ # definitions, table definitions, and other control information to
2268
+ # manage your AWS Lake Formation environment.
2269
+ # @return [String]
2270
+ #
2271
+ # @!attribute [rw] expression
2272
+ # A list of conditions (`LFTag` structures) to search for in table
2273
+ # resources.
2274
+ # @return [Array<Types::LFTag>]
2275
+ #
2276
+ # @see http://docs.aws.amazon.com/goto/WebAPI/lakeformation-2017-03-31/SearchTablesByLFTagsRequest AWS API Documentation
2277
+ #
2278
+ class SearchTablesByLFTagsRequest < Struct.new(
2279
+ :next_token,
2280
+ :max_results,
2281
+ :catalog_id,
2282
+ :expression)
2283
+ SENSITIVE = []
2284
+ include Aws::Structure
2285
+ end
2286
+
2287
+ # @!attribute [rw] next_token
2288
+ # A continuation token, present if the current list segment is not the
2289
+ # last.
2290
+ # @return [String]
2291
+ #
2292
+ # @!attribute [rw] table_list
2293
+ # A list of tables that meet the tag conditions.
2294
+ # @return [Array<Types::TaggedTable>]
2295
+ #
2296
+ # @see http://docs.aws.amazon.com/goto/WebAPI/lakeformation-2017-03-31/SearchTablesByLFTagsResponse AWS API Documentation
2297
+ #
2298
+ class SearchTablesByLFTagsResponse < Struct.new(
2299
+ :next_token,
2300
+ :table_list)
2301
+ SENSITIVE = []
2302
+ include Aws::Structure
2303
+ end
2304
+
1363
2305
  # A structure for the table object. A table is a metadata definition
1364
2306
  # that represents your data. You can Grant and Revoke table privileges
1365
2307
  # to a principal.
@@ -1476,6 +2418,98 @@ module Aws::LakeFormation
1476
2418
  include Aws::Structure
1477
2419
  end
1478
2420
 
2421
+ # A structure describing a database resource with tags.
2422
+ #
2423
+ # @!attribute [rw] database
2424
+ # A database that has tags attached to it.
2425
+ # @return [Types::DatabaseResource]
2426
+ #
2427
+ # @!attribute [rw] lf_tags
2428
+ # A list of tags attached to the database.
2429
+ # @return [Array<Types::LFTagPair>]
2430
+ #
2431
+ # @see http://docs.aws.amazon.com/goto/WebAPI/lakeformation-2017-03-31/TaggedDatabase AWS API Documentation
2432
+ #
2433
+ class TaggedDatabase < Struct.new(
2434
+ :database,
2435
+ :lf_tags)
2436
+ SENSITIVE = []
2437
+ include Aws::Structure
2438
+ end
2439
+
2440
+ # A structure describing a table resource with tags.
2441
+ #
2442
+ # @!attribute [rw] table
2443
+ # A table that has tags attached to it.
2444
+ # @return [Types::TableResource]
2445
+ #
2446
+ # @!attribute [rw] lf_tag_on_database
2447
+ # A list of tags attached to the database where the table resides.
2448
+ # @return [Array<Types::LFTagPair>]
2449
+ #
2450
+ # @!attribute [rw] lf_tags_on_table
2451
+ # A list of tags attached to the table.
2452
+ # @return [Array<Types::LFTagPair>]
2453
+ #
2454
+ # @!attribute [rw] lf_tags_on_columns
2455
+ # A list of tags attached to columns in the table.
2456
+ # @return [Array<Types::ColumnLFTag>]
2457
+ #
2458
+ # @see http://docs.aws.amazon.com/goto/WebAPI/lakeformation-2017-03-31/TaggedTable AWS API Documentation
2459
+ #
2460
+ class TaggedTable < Struct.new(
2461
+ :table,
2462
+ :lf_tag_on_database,
2463
+ :lf_tags_on_table,
2464
+ :lf_tags_on_columns)
2465
+ SENSITIVE = []
2466
+ include Aws::Structure
2467
+ end
2468
+
2469
+ # @note When making an API call, you may pass UpdateLFTagRequest
2470
+ # data as a hash:
2471
+ #
2472
+ # {
2473
+ # catalog_id: "CatalogIdString",
2474
+ # tag_key: "LFTagKey", # required
2475
+ # tag_values_to_delete: ["LFTagValue"],
2476
+ # tag_values_to_add: ["LFTagValue"],
2477
+ # }
2478
+ #
2479
+ # @!attribute [rw] catalog_id
2480
+ # The identifier for the Data Catalog. By default, the account ID. The
2481
+ # Data Catalog is the persistent metadata store. It contains database
2482
+ # definitions, table definitions, and other control information to
2483
+ # manage your AWS Lake Formation environment.
2484
+ # @return [String]
2485
+ #
2486
+ # @!attribute [rw] tag_key
2487
+ # The key-name for the tag for which to add or delete values.
2488
+ # @return [String]
2489
+ #
2490
+ # @!attribute [rw] tag_values_to_delete
2491
+ # A list of tag values to delete from the tag.
2492
+ # @return [Array<String>]
2493
+ #
2494
+ # @!attribute [rw] tag_values_to_add
2495
+ # A list of tag values to add from the tag.
2496
+ # @return [Array<String>]
2497
+ #
2498
+ # @see http://docs.aws.amazon.com/goto/WebAPI/lakeformation-2017-03-31/UpdateLFTagRequest AWS API Documentation
2499
+ #
2500
+ class UpdateLFTagRequest < Struct.new(
2501
+ :catalog_id,
2502
+ :tag_key,
2503
+ :tag_values_to_delete,
2504
+ :tag_values_to_add)
2505
+ SENSITIVE = []
2506
+ include Aws::Structure
2507
+ end
2508
+
2509
+ # @see http://docs.aws.amazon.com/goto/WebAPI/lakeformation-2017-03-31/UpdateLFTagResponse AWS API Documentation
2510
+ #
2511
+ class UpdateLFTagResponse < Aws::EmptyStructure; end
2512
+
1479
2513
  # @note When making an API call, you may pass UpdateResourceRequest
1480
2514
  # data as a hash:
1481
2515
  #