aws-sdk-lakeformation 1.26.0 → 1.27.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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: a5baf612c864eedf2679448691dbd96b221097a8133badce1375c76dc0f48297
4
- data.tar.gz: 160f22b141638242a1ec24a16ab1847c7f891814d562171ce74d2aeb5ce79e9e
3
+ metadata.gz: f408a75a960c931b6a2b4c88eae1dd513ad341c7bc8aea2ec42cf7ea8a1dbf90
4
+ data.tar.gz: d90872ab11a0a748f4ca8991e19bcb749f655d4b333f378f9fc04984abe824e1
5
5
  SHA512:
6
- metadata.gz: a68dd4966f4aa25e5425431b5c08de671d2416b97598d4fffa268be176b84e518bc76be181642d2ad42b20d767b9ba8b9ca63e98a61f636bd8069c8b7437e4d8
7
- data.tar.gz: a3ffcafde2bce08b60fb311d71b07fb1125da7cdddf6396b95e23b98d86d2f87976c2e09ed66ac4ae9acb25e277eddd1ca5cd86aba99dd33787fffa31d61b8aa
6
+ metadata.gz: 76de4c2bc9732757c8992d8a85b44cb73d040dfc549007b62aa46557c497f138a3e14de6d437a2364b60672437b2a7100cef2b2e7c97303db992fcdc80b25c63
7
+ data.tar.gz: 68f9c009e40d4cda9a6c5dc43ab3767c49fc662fcb66fc95ae7ee06a429d4000f5ee551491732c8de3b97c31a33cd5b8f75ba143ee76a2686a077853632b20c5
data/CHANGELOG.md CHANGED
@@ -1,6 +1,11 @@
1
1
  Unreleased Changes
2
2
  ------------------
3
3
 
4
+ 1.27.0 (2022-08-17)
5
+ ------------------
6
+
7
+ * Feature - This release adds a new API support "AssumeDecoratedRoleWithSAML" and also release updates the corresponding documentation.
8
+
4
9
  1.26.0 (2022-03-22)
5
10
  ------------------
6
11
 
data/VERSION CHANGED
@@ -1 +1 @@
1
- 1.26.0
1
+ 1.27.0
@@ -450,6 +450,73 @@ module Aws::LakeFormation
450
450
  req.send_request(options)
451
451
  end
452
452
 
453
+ # Allows a caller to assume an IAM role decorated as the SAML user
454
+ # specified in the SAML assertion included in the request. This
455
+ # decoration allows Lake Formation to enforce access policies against
456
+ # the SAML users and groups. This API operation requires SAML federation
457
+ # setup in the caller’s account as it can only be called with valid SAML
458
+ # assertions. Lake Formation does not scope down the permission of the
459
+ # assumed role. All permissions attached to the role via the SAML
460
+ # federation setup will be included in the role session.
461
+ #
462
+ # This decorated role is expected to access data in Amazon S3 by getting
463
+ # temporary access from Lake Formation which is authorized via the
464
+ # virtual API `GetDataAccess`. Therefore, all SAML roles that can be
465
+ # assumed via `AssumeDecoratedRoleWithSAML` must at a minimum include
466
+ # `lakeformation:GetDataAccess` in their role policies. A typical IAM
467
+ # policy attached to such a role would look as follows:
468
+ #
469
+ # @option params [required, String] :saml_assertion
470
+ # A SAML assertion consisting of an assertion statement for the user who
471
+ # needs temporary credentials. This must match the SAML assertion that
472
+ # was issued to IAM. This must be Base64 encoded.
473
+ #
474
+ # @option params [required, String] :role_arn
475
+ # The role that represents an IAM principal whose scope down policy
476
+ # allows it to call credential vending APIs such as
477
+ # `GetTemporaryTableCredentials`. The caller must also have iam:PassRole
478
+ # permission on this role.
479
+ #
480
+ # @option params [required, String] :principal_arn
481
+ # The Amazon Resource Name (ARN) of the SAML provider in IAM that
482
+ # describes the IdP.
483
+ #
484
+ # @option params [Integer] :duration_seconds
485
+ # The time period, between 900 and 43,200 seconds, for the timeout of
486
+ # the temporary credentials.
487
+ #
488
+ # @return [Types::AssumeDecoratedRoleWithSAMLResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
489
+ #
490
+ # * {Types::AssumeDecoratedRoleWithSAMLResponse#access_key_id #access_key_id} => String
491
+ # * {Types::AssumeDecoratedRoleWithSAMLResponse#secret_access_key #secret_access_key} => String
492
+ # * {Types::AssumeDecoratedRoleWithSAMLResponse#session_token #session_token} => String
493
+ # * {Types::AssumeDecoratedRoleWithSAMLResponse#expiration #expiration} => Time
494
+ #
495
+ # @example Request syntax with placeholder values
496
+ #
497
+ # resp = client.assume_decorated_role_with_saml({
498
+ # saml_assertion: "SAMLAssertionString", # required
499
+ # role_arn: "IAMRoleArn", # required
500
+ # principal_arn: "IAMSAMLProviderArn", # required
501
+ # duration_seconds: 1,
502
+ # })
503
+ #
504
+ # @example Response structure
505
+ #
506
+ # resp.access_key_id #=> String
507
+ # resp.secret_access_key #=> String
508
+ # resp.session_token #=> String
509
+ # resp.expiration #=> Time
510
+ #
511
+ # @see http://docs.aws.amazon.com/goto/WebAPI/lakeformation-2017-03-31/AssumeDecoratedRoleWithSAML AWS API Documentation
512
+ #
513
+ # @overload assume_decorated_role_with_saml(params = {})
514
+ # @param [Hash] params ({})
515
+ def assume_decorated_role_with_saml(params = {}, options = {})
516
+ req = build_request(:assume_decorated_role_with_saml, params)
517
+ req.send_request(options)
518
+ end
519
+
453
520
  # Batch operation to grant permissions to the principal.
454
521
  #
455
522
  # @option params [String] :catalog_id
@@ -868,13 +935,12 @@ module Aws::LakeFormation
868
935
  req.send_request(options)
869
936
  end
870
937
 
871
- # Deletes the specified LF-tag key name. If the attribute key does not
872
- # exist or the LF-tag does not exist, then the operation will not do
873
- # anything. If the attribute key exists, then the operation checks if
874
- # any resources are tagged with this attribute key, if yes, the API
875
- # throws a 400 Exception with the message "Delete not allowed" as the
876
- # LF-tag key is still attached with resources. You can consider
877
- # untagging resources with this LF-tag key.
938
+ # Deletes the specified LF-tag given a key name. If the input parameter
939
+ # tag key was not found, then the operation will throw an exception.
940
+ # When you delete an LF-tag, the `LFTagPolicy` attached to the LF-tag
941
+ # becomes invalid. If the deleted LF-tag was still assigned to any
942
+ # resource, the tag policy attach to the deleted LF-tag will no longer
943
+ # be applied to the resource.
878
944
  #
879
945
  # @option params [String] :catalog_id
880
946
  # The identifier for the Data Catalog. By default, the account ID. The
@@ -3018,7 +3084,7 @@ module Aws::LakeFormation
3018
3084
  params: params,
3019
3085
  config: config)
3020
3086
  context[:gem_name] = 'aws-sdk-lakeformation'
3021
- context[:gem_version] = '1.26.0'
3087
+ context[:gem_version] = '1.27.0'
3022
3088
  Seahorse::Client::Request.new(handlers, context)
3023
3089
  end
3024
3090
 
@@ -20,6 +20,8 @@ module Aws::LakeFormation
20
20
  AddObjectInput = Shapes::StructureShape.new(name: 'AddObjectInput')
21
21
  AllRowsWildcard = Shapes::StructureShape.new(name: 'AllRowsWildcard')
22
22
  AlreadyExistsException = Shapes::StructureShape.new(name: 'AlreadyExistsException')
23
+ AssumeDecoratedRoleWithSAMLRequest = Shapes::StructureShape.new(name: 'AssumeDecoratedRoleWithSAMLRequest')
24
+ AssumeDecoratedRoleWithSAMLResponse = Shapes::StructureShape.new(name: 'AssumeDecoratedRoleWithSAMLResponse')
23
25
  AuditContext = Shapes::StructureShape.new(name: 'AuditContext')
24
26
  AuditContextString = Shapes::StringShape.new(name: 'AuditContextString')
25
27
  AuthorizedSessionTagValueList = Shapes::ListShape.new(name: 'AuthorizedSessionTagValueList')
@@ -120,6 +122,7 @@ module Aws::LakeFormation
120
122
  GrantPermissionsRequest = Shapes::StructureShape.new(name: 'GrantPermissionsRequest')
121
123
  GrantPermissionsResponse = Shapes::StructureShape.new(name: 'GrantPermissionsResponse')
122
124
  IAMRoleArn = Shapes::StringShape.new(name: 'IAMRoleArn')
125
+ IAMSAMLProviderArn = Shapes::StringShape.new(name: 'IAMSAMLProviderArn')
123
126
  Identifier = Shapes::StringShape.new(name: 'Identifier')
124
127
  Integer = Shapes::IntegerShape.new(name: 'Integer')
125
128
  InternalServiceException = Shapes::StructureShape.new(name: 'InternalServiceException')
@@ -198,6 +201,7 @@ module Aws::LakeFormation
198
201
  RevokePermissionsRequest = Shapes::StructureShape.new(name: 'RevokePermissionsRequest')
199
202
  RevokePermissionsResponse = Shapes::StructureShape.new(name: 'RevokePermissionsResponse')
200
203
  RowFilter = Shapes::StructureShape.new(name: 'RowFilter')
204
+ SAMLAssertionString = Shapes::StringShape.new(name: 'SAMLAssertionString')
201
205
  SearchDatabasesByLFTagsRequest = Shapes::StructureShape.new(name: 'SearchDatabasesByLFTagsRequest')
202
206
  SearchDatabasesByLFTagsResponse = Shapes::StructureShape.new(name: 'SearchDatabasesByLFTagsResponse')
203
207
  SearchTablesByLFTagsRequest = Shapes::StructureShape.new(name: 'SearchTablesByLFTagsRequest')
@@ -287,6 +291,18 @@ module Aws::LakeFormation
287
291
  AlreadyExistsException.add_member(:message, Shapes::ShapeRef.new(shape: MessageString, location_name: "Message"))
288
292
  AlreadyExistsException.struct_class = Types::AlreadyExistsException
289
293
 
294
+ AssumeDecoratedRoleWithSAMLRequest.add_member(:saml_assertion, Shapes::ShapeRef.new(shape: SAMLAssertionString, required: true, location_name: "SAMLAssertion"))
295
+ AssumeDecoratedRoleWithSAMLRequest.add_member(:role_arn, Shapes::ShapeRef.new(shape: IAMRoleArn, required: true, location_name: "RoleArn"))
296
+ AssumeDecoratedRoleWithSAMLRequest.add_member(:principal_arn, Shapes::ShapeRef.new(shape: IAMSAMLProviderArn, required: true, location_name: "PrincipalArn"))
297
+ AssumeDecoratedRoleWithSAMLRequest.add_member(:duration_seconds, Shapes::ShapeRef.new(shape: CredentialTimeoutDurationSecondInteger, location_name: "DurationSeconds"))
298
+ AssumeDecoratedRoleWithSAMLRequest.struct_class = Types::AssumeDecoratedRoleWithSAMLRequest
299
+
300
+ AssumeDecoratedRoleWithSAMLResponse.add_member(:access_key_id, Shapes::ShapeRef.new(shape: AccessKeyIdString, location_name: "AccessKeyId"))
301
+ AssumeDecoratedRoleWithSAMLResponse.add_member(:secret_access_key, Shapes::ShapeRef.new(shape: SecretAccessKeyString, location_name: "SecretAccessKey"))
302
+ AssumeDecoratedRoleWithSAMLResponse.add_member(:session_token, Shapes::ShapeRef.new(shape: SessionTokenString, location_name: "SessionToken"))
303
+ AssumeDecoratedRoleWithSAMLResponse.add_member(:expiration, Shapes::ShapeRef.new(shape: ExpirationTimestamp, location_name: "Expiration"))
304
+ AssumeDecoratedRoleWithSAMLResponse.struct_class = Types::AssumeDecoratedRoleWithSAMLResponse
305
+
290
306
  AuditContext.add_member(:additional_audit_context, Shapes::ShapeRef.new(shape: AuditContextString, location_name: "AdditionalAuditContext"))
291
307
  AuditContext.struct_class = Types::AuditContext
292
308
 
@@ -1007,6 +1023,19 @@ module Aws::LakeFormation
1007
1023
  o.errors << Shapes::ShapeRef.new(shape: ConcurrentModificationException)
1008
1024
  end)
1009
1025
 
1026
+ api.add_operation(:assume_decorated_role_with_saml, Seahorse::Model::Operation.new.tap do |o|
1027
+ o.name = "AssumeDecoratedRoleWithSAML"
1028
+ o.http_method = "POST"
1029
+ o.http_request_uri = "/AssumeDecoratedRoleWithSAML"
1030
+ o.input = Shapes::ShapeRef.new(shape: AssumeDecoratedRoleWithSAMLRequest)
1031
+ o.output = Shapes::ShapeRef.new(shape: AssumeDecoratedRoleWithSAMLResponse)
1032
+ o.errors << Shapes::ShapeRef.new(shape: InvalidInputException)
1033
+ o.errors << Shapes::ShapeRef.new(shape: InternalServiceException)
1034
+ o.errors << Shapes::ShapeRef.new(shape: OperationTimeoutException)
1035
+ o.errors << Shapes::ShapeRef.new(shape: EntityNotFoundException)
1036
+ o.errors << Shapes::ShapeRef.new(shape: AccessDeniedException)
1037
+ end)
1038
+
1010
1039
  api.add_operation(:batch_grant_permissions, Seahorse::Model::Operation.new.tap do |o|
1011
1040
  o.name = "BatchGrantPermissions"
1012
1041
  o.http_method = "POST"
@@ -192,6 +192,79 @@ module Aws::LakeFormation
192
192
  include Aws::Structure
193
193
  end
194
194
 
195
+ # @note When making an API call, you may pass AssumeDecoratedRoleWithSAMLRequest
196
+ # data as a hash:
197
+ #
198
+ # {
199
+ # saml_assertion: "SAMLAssertionString", # required
200
+ # role_arn: "IAMRoleArn", # required
201
+ # principal_arn: "IAMSAMLProviderArn", # required
202
+ # duration_seconds: 1,
203
+ # }
204
+ #
205
+ # @!attribute [rw] saml_assertion
206
+ # A SAML assertion consisting of an assertion statement for the user
207
+ # who needs temporary credentials. This must match the SAML assertion
208
+ # that was issued to IAM. This must be Base64 encoded.
209
+ # @return [String]
210
+ #
211
+ # @!attribute [rw] role_arn
212
+ # The role that represents an IAM principal whose scope down policy
213
+ # allows it to call credential vending APIs such as
214
+ # `GetTemporaryTableCredentials`. The caller must also have
215
+ # iam:PassRole permission on this role.
216
+ # @return [String]
217
+ #
218
+ # @!attribute [rw] principal_arn
219
+ # The Amazon Resource Name (ARN) of the SAML provider in IAM that
220
+ # describes the IdP.
221
+ # @return [String]
222
+ #
223
+ # @!attribute [rw] duration_seconds
224
+ # The time period, between 900 and 43,200 seconds, for the timeout of
225
+ # the temporary credentials.
226
+ # @return [Integer]
227
+ #
228
+ # @see http://docs.aws.amazon.com/goto/WebAPI/lakeformation-2017-03-31/AssumeDecoratedRoleWithSAMLRequest AWS API Documentation
229
+ #
230
+ class AssumeDecoratedRoleWithSAMLRequest < Struct.new(
231
+ :saml_assertion,
232
+ :role_arn,
233
+ :principal_arn,
234
+ :duration_seconds)
235
+ SENSITIVE = []
236
+ include Aws::Structure
237
+ end
238
+
239
+ # @!attribute [rw] access_key_id
240
+ # The access key ID for the temporary credentials. (The access key
241
+ # consists of an access key ID and a secret key).
242
+ # @return [String]
243
+ #
244
+ # @!attribute [rw] secret_access_key
245
+ # The secret key for the temporary credentials. (The access key
246
+ # consists of an access key ID and a secret key).
247
+ # @return [String]
248
+ #
249
+ # @!attribute [rw] session_token
250
+ # The session token for the temporary credentials.
251
+ # @return [String]
252
+ #
253
+ # @!attribute [rw] expiration
254
+ # The date and time when the temporary credentials expire.
255
+ # @return [Time]
256
+ #
257
+ # @see http://docs.aws.amazon.com/goto/WebAPI/lakeformation-2017-03-31/AssumeDecoratedRoleWithSAMLResponse AWS API Documentation
258
+ #
259
+ class AssumeDecoratedRoleWithSAMLResponse < Struct.new(
260
+ :access_key_id,
261
+ :secret_access_key,
262
+ :session_token,
263
+ :expiration)
264
+ SENSITIVE = []
265
+ include Aws::Structure
266
+ end
267
+
195
268
  # A structure used to include auditing information on the privileged
196
269
  # API.
197
270
  #
@@ -48,6 +48,6 @@ require_relative 'aws-sdk-lakeformation/customizations'
48
48
  # @!group service
49
49
  module Aws::LakeFormation
50
50
 
51
- GEM_VERSION = '1.26.0'
51
+ GEM_VERSION = '1.27.0'
52
52
 
53
53
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: aws-sdk-lakeformation
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.26.0
4
+ version: 1.27.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Amazon Web Services
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2022-03-22 00:00:00.000000000 Z
11
+ date: 2022-08-17 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: aws-sdk-core