From 93b9ea7967ca06aa4a76f7f7c75d7ffdc2afb277 Mon Sep 17 00:00:00 2001 From: awstools Date: Tue, 16 Apr 2024 18:21:50 +0000 Subject: [PATCH] feat(client-lakeformation): This release adds Lake Formation managed RAM support for the 4 APIs - "DescribeLakeFormationIdentityCenterConfiguration", "CreateLakeFormationIdentityCenterConfiguration", "DescribeLakeFormationIdentityCenterConfiguration", and "DeleteLakeFormationIdentityCenterConfiguration" --- ...ationIdentityCenterConfigurationCommand.ts | 5 +++ ...ationIdentityCenterConfigurationCommand.ts | 6 +++ ...ationIdentityCenterConfigurationCommand.ts | 5 +++ .../src/models/models_0.ts | 40 ++++++++++++++++++- .../src/protocols/Aws_restJson1.ts | 4 ++ .../sdk-codegen/aws-models/lakeformation.json | 28 ++++++++++++- 6 files changed, 84 insertions(+), 4 deletions(-) diff --git a/clients/client-lakeformation/src/commands/CreateLakeFormationIdentityCenterConfigurationCommand.ts b/clients/client-lakeformation/src/commands/CreateLakeFormationIdentityCenterConfigurationCommand.ts index 693fc1d11939..c64fffea95fd 100644 --- a/clients/client-lakeformation/src/commands/CreateLakeFormationIdentityCenterConfigurationCommand.ts +++ b/clients/client-lakeformation/src/commands/CreateLakeFormationIdentityCenterConfigurationCommand.ts @@ -52,6 +52,11 @@ export interface CreateLakeFormationIdentityCenterConfigurationCommandOutput * "STRING_VALUE", * ], * }, + * ShareRecipients: [ // DataLakePrincipalList + * { // DataLakePrincipal + * DataLakePrincipalIdentifier: "STRING_VALUE", + * }, + * ], * }; * const command = new CreateLakeFormationIdentityCenterConfigurationCommand(input); * const response = await client.send(command); diff --git a/clients/client-lakeformation/src/commands/DescribeLakeFormationIdentityCenterConfigurationCommand.ts b/clients/client-lakeformation/src/commands/DescribeLakeFormationIdentityCenterConfigurationCommand.ts index ba9f2fc8f6be..8d94f9fb5676 100644 --- a/clients/client-lakeformation/src/commands/DescribeLakeFormationIdentityCenterConfigurationCommand.ts +++ b/clients/client-lakeformation/src/commands/DescribeLakeFormationIdentityCenterConfigurationCommand.ts @@ -58,6 +58,12 @@ export interface DescribeLakeFormationIdentityCenterConfigurationCommandOutput * // "STRING_VALUE", * // ], * // }, + * // ShareRecipients: [ // DataLakePrincipalList + * // { // DataLakePrincipal + * // DataLakePrincipalIdentifier: "STRING_VALUE", + * // }, + * // ], + * // ResourceShare: "STRING_VALUE", * // }; * * ``` diff --git a/clients/client-lakeformation/src/commands/UpdateLakeFormationIdentityCenterConfigurationCommand.ts b/clients/client-lakeformation/src/commands/UpdateLakeFormationIdentityCenterConfigurationCommand.ts index 7ebf8e94fd7f..f45b99978384 100644 --- a/clients/client-lakeformation/src/commands/UpdateLakeFormationIdentityCenterConfigurationCommand.ts +++ b/clients/client-lakeformation/src/commands/UpdateLakeFormationIdentityCenterConfigurationCommand.ts @@ -45,6 +45,11 @@ export interface UpdateLakeFormationIdentityCenterConfigurationCommandOutput * const client = new LakeFormationClient(config); * const input = { // UpdateLakeFormationIdentityCenterConfigurationRequest * CatalogId: "STRING_VALUE", + * ShareRecipients: [ // DataLakePrincipalList + * { // DataLakePrincipal + * DataLakePrincipalIdentifier: "STRING_VALUE", + * }, + * ], * ApplicationStatus: "ENABLED" || "DISABLED", * ExternalFiltering: { // ExternalFilteringConfiguration * Status: "ENABLED" || "DISABLED", // required diff --git a/clients/client-lakeformation/src/models/models_0.ts b/clients/client-lakeformation/src/models/models_0.ts index e0d0ae4236c3..2ce5ed6ff871 100644 --- a/clients/client-lakeformation/src/models/models_0.ts +++ b/clients/client-lakeformation/src/models/models_0.ts @@ -1153,6 +1153,15 @@ export interface CreateLakeFormationIdentityCenterConfigurationRequest { * @public */ ExternalFiltering?: ExternalFilteringConfiguration; + + /** + *

A list of Amazon Web Services account IDs and/or Amazon Web Services organization/organizational unit ARNs + * that are allowed to access data managed by Lake Formation.

+ *

If the ShareRecipients list includes valid values, a resource share is created with the principals you want to have access to the resources.

+ *

If the ShareRecipients value is null or the list is empty, no resource share is created.

+ * @public + */ + ShareRecipients?: DataLakePrincipal[]; } /** @@ -1160,7 +1169,7 @@ export interface CreateLakeFormationIdentityCenterConfigurationRequest { */ export interface CreateLakeFormationIdentityCenterConfigurationResponse { /** - *

The Amazon Resource Name (ARN) of the integrated application.

+ *

The Amazon Resource Name (ARN) of the Lake Formation application integrated with IAM Identity Center.

* @public */ ApplicationArn?: string; @@ -1443,7 +1452,7 @@ export interface DescribeLakeFormationIdentityCenterConfigurationResponse { InstanceArn?: string; /** - *

The Amazon Resource Name (ARN) of the integrated application.

+ *

The Amazon Resource Name (ARN) of the Lake Formation application integrated with IAM Identity Center.

* @public */ ApplicationArn?: string; @@ -1453,6 +1462,21 @@ export interface DescribeLakeFormationIdentityCenterConfigurationResponse { * @public */ ExternalFiltering?: ExternalFilteringConfiguration; + + /** + *

A list of Amazon Web Services account IDs or Amazon Web Services organization/organizational unit ARNs that + * are allowed to access data managed by Lake Formation.

+ *

If the ShareRecipients list includes valid values, a resource share is created with the principals you want to have access to the resources as the ShareRecipients.

+ *

If the ShareRecipients value is null or the list is empty, no resource share is created.

+ * @public + */ + ShareRecipients?: DataLakePrincipal[]; + + /** + *

The Amazon Resource Name (ARN) of the RAM share.

+ * @public + */ + ResourceShare?: string; } /** @@ -3692,6 +3716,18 @@ export interface UpdateLakeFormationIdentityCenterConfigurationRequest { */ CatalogId?: string; + /** + *

A list of Amazon Web Services account IDs or Amazon Web Services organization/organizational unit ARNs that + * are allowed to access to access data managed by Lake Formation.

+ *

If the ShareRecipients list includes valid values, then the resource share is updated with the principals you want to have access to the resources.

+ *

If the ShareRecipients value is null, both the list of share recipients and + * the resource share remain unchanged.

+ *

If the ShareRecipients value is an empty list, then the existing share + * recipients list will be cleared, and the resource share will be deleted.

+ * @public + */ + ShareRecipients?: DataLakePrincipal[]; + /** *

Allows to enable or disable the IAM Identity Center connection.

* @public diff --git a/clients/client-lakeformation/src/protocols/Aws_restJson1.ts b/clients/client-lakeformation/src/protocols/Aws_restJson1.ts index 0ef6c3550c1f..c765a1b7d95c 100644 --- a/clients/client-lakeformation/src/protocols/Aws_restJson1.ts +++ b/clients/client-lakeformation/src/protocols/Aws_restJson1.ts @@ -401,6 +401,7 @@ export const se_CreateLakeFormationIdentityCenterConfigurationCommand = async ( CatalogId: [], ExternalFiltering: (_) => _json(_), InstanceArn: [], + ShareRecipients: (_) => _json(_), }) ); b.m("POST").h(headers).b(body); @@ -1456,6 +1457,7 @@ export const se_UpdateLakeFormationIdentityCenterConfigurationCommand = async ( ApplicationStatus: [], CatalogId: [], ExternalFiltering: (_) => _json(_), + ShareRecipients: (_) => _json(_), }) ); b.m("POST").h(headers).b(body); @@ -1881,6 +1883,8 @@ export const de_DescribeLakeFormationIdentityCenterConfigurationCommand = async CatalogId: __expectString, ExternalFiltering: _json, InstanceArn: __expectString, + ResourceShare: __expectString, + ShareRecipients: _json, }); Object.assign(contents, doc); return contents; diff --git a/codegen/sdk-codegen/aws-models/lakeformation.json b/codegen/sdk-codegen/aws-models/lakeformation.json index 8d218cf9d464..45d02cad517d 100644 --- a/codegen/sdk-codegen/aws-models/lakeformation.json +++ b/codegen/sdk-codegen/aws-models/lakeformation.json @@ -2174,6 +2174,12 @@ "traits": { "smithy.api#documentation": "

A list of the account IDs of Amazon Web Services accounts of third-party applications\n that are allowed to access data managed by Lake Formation.

" } + }, + "ShareRecipients": { + "target": "com.amazonaws.lakeformation#DataLakePrincipalList", + "traits": { + "smithy.api#documentation": "

A list of Amazon Web Services account IDs and/or Amazon Web Services organization/organizational unit ARNs\n that are allowed to access data managed by Lake Formation.

\n

If the ShareRecipients list includes valid values, a resource share is created with the principals you want to have access to the resources.

\n

If the ShareRecipients value is null or the list is empty, no resource share is created.

" + } } }, "traits": { @@ -2186,7 +2192,7 @@ "ApplicationArn": { "target": "com.amazonaws.lakeformation#ApplicationArn", "traits": { - "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the integrated application.

" + "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the Lake Formation application integrated with IAM Identity Center.

" } } }, @@ -3070,7 +3076,7 @@ "ApplicationArn": { "target": "com.amazonaws.lakeformation#ApplicationArn", "traits": { - "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the integrated application.

" + "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the Lake Formation application integrated with IAM Identity Center.

" } }, "ExternalFiltering": { @@ -3078,6 +3084,18 @@ "traits": { "smithy.api#documentation": "

Indicates if external filtering is enabled.

" } + }, + "ShareRecipients": { + "target": "com.amazonaws.lakeformation#DataLakePrincipalList", + "traits": { + "smithy.api#documentation": "

A list of Amazon Web Services account IDs or Amazon Web Services organization/organizational unit ARNs that\n are allowed to access data managed by Lake Formation.

\n

If the ShareRecipients list includes valid values, a resource share is created with the principals you want to have access to the resources as the ShareRecipients.

\n

If the ShareRecipients value is null or the list is empty, no resource share is created.

" + } + }, + "ResourceShare": { + "target": "com.amazonaws.lakeformation#RAMResourceShareArn", + "traits": { + "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the RAM share.

" + } } }, "traits": { @@ -7778,6 +7796,12 @@ "smithy.api#documentation": "

The identifier for the Data Catalog. By default, the account ID. The Data Catalog is the\n persistent metadata store. It contains database definitions, table definitions, view\n definitions, and other control information to manage your Lake Formation\n environment.

" } }, + "ShareRecipients": { + "target": "com.amazonaws.lakeformation#DataLakePrincipalList", + "traits": { + "smithy.api#documentation": "

A list of Amazon Web Services account IDs or Amazon Web Services organization/organizational unit ARNs that\n are allowed to access to access data managed by Lake Formation.

\n

If the ShareRecipients list includes valid values, then the resource share is updated with the principals you want to have access to the resources.

\n

If the ShareRecipients value is null, both the list of share recipients and\n the resource share remain unchanged.

\n

If the ShareRecipients value is an empty list, then the existing share\n recipients list will be cleared, and the resource share will be deleted.

" + } + }, "ApplicationStatus": { "target": "com.amazonaws.lakeformation#ApplicationStatus", "traits": {