aws-sdk-lakeformation 1.13.0 → 1.14.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -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
  #