From 844a1daf3a19dcd69ebc337680a772ba377465a1 Mon Sep 17 00:00:00 2001 From: awstools Date: Tue, 19 Nov 2024 20:36:45 +0000 Subject: [PATCH] feat(client-glue): AWS Glue Data Catalog now enhances managed table optimizations of Apache Iceberg tables that can be accessed only from a specific Amazon Virtual Private Cloud (VPC) environment. --- .../commands/BatchGetTableOptimizerCommand.ts | 3 ++ ...DataQualityRuleRecommendationRunCommand.ts | 6 +-- .../commands/CreateTableOptimizerCommand.ts | 5 +- .../src/commands/GetTableOptimizerCommand.ts | 3 ++ .../commands/UpdateTableOptimizerCommand.ts | 3 ++ clients/client-glue/src/models/models_0.ts | 53 +++++++++++++++++-- clients/client-glue/src/models/models_1.ts | 24 +++------ clients/client-glue/src/models/models_2.ts | 49 +++++++---------- clients/client-glue/src/models/models_3.ts | 32 ++++++++++- .../client-glue/src/protocols/Aws_json1_1.ts | 7 ++- codegen/sdk-codegen/aws-models/glue.json | 36 +++++++++++-- 11 files changed, 155 insertions(+), 66 deletions(-) diff --git a/clients/client-glue/src/commands/BatchGetTableOptimizerCommand.ts b/clients/client-glue/src/commands/BatchGetTableOptimizerCommand.ts index 5328e7698c38..4665fc0adfac 100644 --- a/clients/client-glue/src/commands/BatchGetTableOptimizerCommand.ts +++ b/clients/client-glue/src/commands/BatchGetTableOptimizerCommand.ts @@ -58,6 +58,9 @@ export interface BatchGetTableOptimizerCommandOutput extends BatchGetTableOptimi * // configuration: { // TableOptimizerConfiguration * // roleArn: "STRING_VALUE", * // enabled: true || false, + * // vpcConfiguration: { // TableOptimizerVpcConfiguration Union: only one key present + * // glueConnectionName: "STRING_VALUE", + * // }, * // retentionConfiguration: { // RetentionConfiguration * // icebergConfiguration: { // IcebergRetentionConfiguration * // snapshotRetentionPeriodInDays: Number("int"), diff --git a/clients/client-glue/src/commands/CancelDataQualityRuleRecommendationRunCommand.ts b/clients/client-glue/src/commands/CancelDataQualityRuleRecommendationRunCommand.ts index 8ef298edc54d..c7f54deb544a 100644 --- a/clients/client-glue/src/commands/CancelDataQualityRuleRecommendationRunCommand.ts +++ b/clients/client-glue/src/commands/CancelDataQualityRuleRecommendationRunCommand.ts @@ -6,10 +6,8 @@ import { MetadataBearer as __MetadataBearer } from "@smithy/types"; import { commonParams } from "../endpoint/EndpointParameters"; import { GlueClientResolvedConfig, ServiceInputTypes, ServiceOutputTypes } from "../GlueClient"; -import { - CancelDataQualityRuleRecommendationRunRequest, - CancelDataQualityRuleRecommendationRunResponse, -} from "../models/models_0"; +import { CancelDataQualityRuleRecommendationRunRequest } from "../models/models_0"; +import { CancelDataQualityRuleRecommendationRunResponse } from "../models/models_1"; import { de_CancelDataQualityRuleRecommendationRunCommand, se_CancelDataQualityRuleRecommendationRunCommand, diff --git a/clients/client-glue/src/commands/CreateTableOptimizerCommand.ts b/clients/client-glue/src/commands/CreateTableOptimizerCommand.ts index 9d205b808327..90bb284d387f 100644 --- a/clients/client-glue/src/commands/CreateTableOptimizerCommand.ts +++ b/clients/client-glue/src/commands/CreateTableOptimizerCommand.ts @@ -28,7 +28,7 @@ export interface CreateTableOptimizerCommandInput extends CreateTableOptimizerRe export interface CreateTableOptimizerCommandOutput extends CreateTableOptimizerResponse, __MetadataBearer {} /** - *

Creates a new table optimizer for a specific function. compaction is the only currently supported optimizer type.

+ *

Creates a new table optimizer for a specific function.

* @example * Use a bare-bones client and the command you need to make an API call. * ```javascript @@ -43,6 +43,9 @@ export interface CreateTableOptimizerCommandOutput extends CreateTableOptimizerR * TableOptimizerConfiguration: { // TableOptimizerConfiguration * roleArn: "STRING_VALUE", * enabled: true || false, + * vpcConfiguration: { // TableOptimizerVpcConfiguration Union: only one key present + * glueConnectionName: "STRING_VALUE", + * }, * retentionConfiguration: { // RetentionConfiguration * icebergConfiguration: { // IcebergRetentionConfiguration * snapshotRetentionPeriodInDays: Number("int"), diff --git a/clients/client-glue/src/commands/GetTableOptimizerCommand.ts b/clients/client-glue/src/commands/GetTableOptimizerCommand.ts index 537489a98488..3ff34ba2d197 100644 --- a/clients/client-glue/src/commands/GetTableOptimizerCommand.ts +++ b/clients/client-glue/src/commands/GetTableOptimizerCommand.ts @@ -52,6 +52,9 @@ export interface GetTableOptimizerCommandOutput extends GetTableOptimizerRespons * // configuration: { // TableOptimizerConfiguration * // roleArn: "STRING_VALUE", * // enabled: true || false, + * // vpcConfiguration: { // TableOptimizerVpcConfiguration Union: only one key present + * // glueConnectionName: "STRING_VALUE", + * // }, * // retentionConfiguration: { // RetentionConfiguration * // icebergConfiguration: { // IcebergRetentionConfiguration * // snapshotRetentionPeriodInDays: Number("int"), diff --git a/clients/client-glue/src/commands/UpdateTableOptimizerCommand.ts b/clients/client-glue/src/commands/UpdateTableOptimizerCommand.ts index ffd8c2270809..a425d7e54888 100644 --- a/clients/client-glue/src/commands/UpdateTableOptimizerCommand.ts +++ b/clients/client-glue/src/commands/UpdateTableOptimizerCommand.ts @@ -43,6 +43,9 @@ export interface UpdateTableOptimizerCommandOutput extends UpdateTableOptimizerR * TableOptimizerConfiguration: { // TableOptimizerConfiguration * roleArn: "STRING_VALUE", * enabled: true || false, + * vpcConfiguration: { // TableOptimizerVpcConfiguration Union: only one key present + * glueConnectionName: "STRING_VALUE", + * }, * retentionConfiguration: { // RetentionConfiguration * icebergConfiguration: { // IcebergRetentionConfiguration * snapshotRetentionPeriodInDays: Number("int"), diff --git a/clients/client-glue/src/models/models_0.ts b/clients/client-glue/src/models/models_0.ts index a6de17ca9ab1..d1c1256c7421 100644 --- a/clients/client-glue/src/models/models_0.ts +++ b/clients/client-glue/src/models/models_0.ts @@ -7618,6 +7618,47 @@ export interface RetentionConfiguration { icebergConfiguration?: IcebergRetentionConfiguration | undefined; } +/** + *

An object that describes the VPC configuration for a table optimizer.

+ *

This configuration is necessary to perform optimization on tables that are in a customer VPC.

+ * @public + */ +export type TableOptimizerVpcConfiguration = + | TableOptimizerVpcConfiguration.GlueConnectionNameMember + | TableOptimizerVpcConfiguration.$UnknownMember; + +/** + * @public + */ +export namespace TableOptimizerVpcConfiguration { + /** + *

The name of the Glue connection used for the VPC for the table optimizer.

+ * @public + */ + export interface GlueConnectionNameMember { + glueConnectionName: string; + $unknown?: never; + } + + /** + * @public + */ + export interface $UnknownMember { + glueConnectionName?: never; + $unknown: [string, any]; + } + + export interface Visitor { + glueConnectionName: (value: string) => T; + _: (name: string, value: any) => T; + } + + export const visit = (value: TableOptimizerVpcConfiguration, visitor: Visitor): T => { + if (value.glueConnectionName !== undefined) return visitor.glueConnectionName(value.glueConnectionName); + return visitor._(value.$unknown[0], value.$unknown[1]); + }; +} + /** *

Contains details on the configuration of a table optimizer. You pass this configuration when creating or updating a table optimizer.

* @public @@ -7635,6 +7676,13 @@ export interface TableOptimizerConfiguration { */ enabled?: boolean | undefined; + /** + *

A TableOptimizerVpcConfiguration object representing the VPC configuration for a table optimizer.

+ *

This configuration is necessary to perform optimization on tables that are in a customer VPC.

+ * @public + */ + vpcConfiguration?: TableOptimizerVpcConfiguration | undefined; + /** *

The configuration for a snapshot retention optimizer.

* @public @@ -9238,11 +9286,6 @@ export interface CancelDataQualityRuleRecommendationRunRequest { RunId: string | undefined; } -/** - * @public - */ -export interface CancelDataQualityRuleRecommendationRunResponse {} - /** * @internal */ diff --git a/clients/client-glue/src/models/models_1.ts b/clients/client-glue/src/models/models_1.ts index aacae67869be..36d10d2fa267 100644 --- a/clients/client-glue/src/models/models_1.ts +++ b/clients/client-glue/src/models/models_1.ts @@ -41,6 +41,11 @@ import { WorkerType, } from "./models_0"; +/** + * @public + */ +export interface CancelDataQualityRuleRecommendationRunResponse {} + /** * @public */ @@ -3276,7 +3281,7 @@ export interface CreateTableOptimizerRequest { TableName: string | undefined; /** - *

The type of table optimizer. Currently, the only valid value is compaction.

+ *

The type of table optimizer.

* @public */ Type: TableOptimizerType | undefined; @@ -7748,23 +7753,6 @@ export interface LabelingSetGenerationTaskRunProperties { OutputS3Path?: string | undefined; } -/** - * @public - * @enum - */ -export const TaskType = { - EVALUATION: "EVALUATION", - EXPORT_LABELS: "EXPORT_LABELS", - FIND_MATCHES: "FIND_MATCHES", - IMPORT_LABELS: "IMPORT_LABELS", - LABELING_SET_GENERATION: "LABELING_SET_GENERATION", -} as const; - -/** - * @public - */ -export type TaskType = (typeof TaskType)[keyof typeof TaskType]; - /** * @internal */ diff --git a/clients/client-glue/src/models/models_2.ts b/clients/client-glue/src/models/models_2.ts index a99dba304555..19060d225373 100644 --- a/clients/client-glue/src/models/models_2.ts +++ b/clients/client-glue/src/models/models_2.ts @@ -68,13 +68,29 @@ import { SchemaVersionStatus, Session, TaskStatusType, - TaskType, TransformEncryption, TransformParameters, TransformType, ViewDialect, } from "./models_1"; +/** + * @public + * @enum + */ +export const TaskType = { + EVALUATION: "EVALUATION", + EXPORT_LABELS: "EXPORT_LABELS", + FIND_MATCHES: "FIND_MATCHES", + IMPORT_LABELS: "IMPORT_LABELS", + LABELING_SET_GENERATION: "LABELING_SET_GENERATION", +} as const; + +/** + * @public + */ +export type TaskType = (typeof TaskType)[keyof typeof TaskType]; + /** *

The configuration properties for the task run.

* @public @@ -5169,7 +5185,7 @@ export interface ListTableOptimizerRunsRequest { TableName: string | undefined; /** - *

The type of table optimizer. Currently, the only valid value is compaction.

+ *

The type of table optimizer.

* @public */ Type: TableOptimizerType | undefined; @@ -7875,35 +7891,6 @@ export interface UpdateDataQualityRulesetResponse { Ruleset?: string | undefined; } -/** - *

Custom libraries to be loaded into a development endpoint.

- * @public - */ -export interface DevEndpointCustomLibraries { - /** - *

The paths to one or more Python libraries in an Amazon Simple Storage Service (Amazon S3) - * bucket that should be loaded in your DevEndpoint. Multiple values must be - * complete paths separated by a comma.

- * - *

You can only use pure Python libraries with a DevEndpoint. Libraries that rely on - * C extensions, such as the pandas Python data - * analysis library, are not currently supported.

- *
- * @public - */ - ExtraPythonLibsS3Path?: string | undefined; - - /** - *

The path to one or more Java .jar files in an S3 bucket that should be loaded - * in your DevEndpoint.

- * - *

You can only use pure Java/Scala libraries with a DevEndpoint.

- *
- * @public - */ - ExtraJarsS3Path?: string | undefined; -} - /** * @internal */ diff --git a/clients/client-glue/src/models/models_3.ts b/clients/client-glue/src/models/models_3.ts index 040c5c901feb..5b2e6e85eb5e 100644 --- a/clients/client-glue/src/models/models_3.ts +++ b/clients/client-glue/src/models/models_3.ts @@ -108,7 +108,6 @@ import { import { ColumnRowFilter, - DevEndpointCustomLibraries, FederatedTable, ResourceAction, ResourceState, @@ -117,6 +116,35 @@ import { ViewValidation, } from "./models_2"; +/** + *

Custom libraries to be loaded into a development endpoint.

+ * @public + */ +export interface DevEndpointCustomLibraries { + /** + *

The paths to one or more Python libraries in an Amazon Simple Storage Service (Amazon S3) + * bucket that should be loaded in your DevEndpoint. Multiple values must be + * complete paths separated by a comma.

+ * + *

You can only use pure Python libraries with a DevEndpoint. Libraries that rely on + * C extensions, such as the pandas Python data + * analysis library, are not currently supported.

+ *
+ * @public + */ + ExtraPythonLibsS3Path?: string | undefined; + + /** + *

The path to one or more Java .jar files in an S3 bucket that should be loaded + * in your DevEndpoint.

+ * + *

You can only use pure Java/Scala libraries with a DevEndpoint.

+ *
+ * @public + */ + ExtraJarsS3Path?: string | undefined; +} + /** * @public */ @@ -687,7 +715,7 @@ export interface UpdateTableOptimizerRequest { TableName: string | undefined; /** - *

The type of table optimizer. Currently, the only valid value is compaction.

+ *

The type of table optimizer.

* @public */ Type: TableOptimizerType | undefined; diff --git a/clients/client-glue/src/protocols/Aws_json1_1.ts b/clients/client-glue/src/protocols/Aws_json1_1.ts index 6a04f771d7d7..3b796cc6efc3 100644 --- a/clients/client-glue/src/protocols/Aws_json1_1.ts +++ b/clients/client-glue/src/protocols/Aws_json1_1.ts @@ -756,6 +756,7 @@ import { TableOptimizer, TableOptimizerConfiguration, TableOptimizerRun, + TableOptimizerVpcConfiguration, ThrottlingException, TimestampedInclusionAnnotation, TransformConfigParameter, @@ -989,7 +990,6 @@ import { DataQualityRulesetEvaluationRunFilter, DataQualityRulesetFilterCriteria, DataQualityRulesetListDetails, - DevEndpointCustomLibraries, EvaluationMetrics, FindMatchesMetrics, GetMLTaskRunResponse, @@ -1176,6 +1176,7 @@ import { BatchGetJobsResponse, CodeGenConfigurationNode, CreateJobRequest, + DevEndpointCustomLibraries, GetJobResponse, GetJobsResponse, GetTableResponse, @@ -11486,6 +11487,8 @@ const se_TableInput = (input: TableInput, context: __SerdeContext): any => { // se_TableOptimizerConfiguration omitted. +// se_TableOptimizerVpcConfiguration omitted. + // se_TagKeysList omitted. // se_TagResourceRequest omitted. @@ -15424,6 +15427,8 @@ const de_TableOptimizerRuns = (output: any, context: __SerdeContext): TableOptim return retVal; }; +// de_TableOptimizerVpcConfiguration omitted. + /** * deserializeAws_json1_1TableStatus */ diff --git a/codegen/sdk-codegen/aws-models/glue.json b/codegen/sdk-codegen/aws-models/glue.json index dec7b4cba75c..114ca226351e 100644 --- a/codegen/sdk-codegen/aws-models/glue.json +++ b/codegen/sdk-codegen/aws-models/glue.json @@ -10478,7 +10478,7 @@ } ], "traits": { - "smithy.api#documentation": "

Creates a new table optimizer for a specific function. compaction is the only currently supported optimizer type.

" + "smithy.api#documentation": "

Creates a new table optimizer for a specific function.

" } }, "com.amazonaws.glue#CreateTableOptimizerRequest": { @@ -10508,7 +10508,7 @@ "Type": { "target": "com.amazonaws.glue#TableOptimizerType", "traits": { - "smithy.api#documentation": "

The type of table optimizer. Currently, the only valid value is compaction.

", + "smithy.api#documentation": "

The type of table optimizer.

", "smithy.api#required": {} } }, @@ -26445,7 +26445,7 @@ "Type": { "target": "com.amazonaws.glue#TableOptimizerType", "traits": { - "smithy.api#documentation": "

The type of table optimizer. Currently, the only valid value is compaction.

", + "smithy.api#documentation": "

The type of table optimizer.

", "smithy.api#required": {} } }, @@ -36005,6 +36005,12 @@ "smithy.api#documentation": "

Whether table optimization is enabled.

" } }, + "vpcConfiguration": { + "target": "com.amazonaws.glue#TableOptimizerVpcConfiguration", + "traits": { + "smithy.api#documentation": "

A TableOptimizerVpcConfiguration object representing the VPC configuration for a table optimizer.

\n

This configuration is necessary to perform optimization on tables that are in a customer VPC.

" + } + }, "retentionConfiguration": { "target": "com.amazonaws.glue#RetentionConfiguration", "traits": { @@ -36142,6 +36148,20 @@ } } }, + "com.amazonaws.glue#TableOptimizerVpcConfiguration": { + "type": "union", + "members": { + "glueConnectionName": { + "target": "com.amazonaws.glue#glueConnectionNameString", + "traits": { + "smithy.api#documentation": "

The name of the Glue connection used for the VPC for the table optimizer.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

An object that describes the VPC configuration for a table optimizer.

\n

This configuration is necessary to perform optimization on tables that are in a customer VPC.

" + } + }, "com.amazonaws.glue#TablePrefix": { "type": "string", "traits": { @@ -39395,7 +39415,7 @@ "Type": { "target": "com.amazonaws.glue#TableOptimizerType", "traits": { - "smithy.api#documentation": "

The type of table optimizer. Currently, the only valid value is compaction.

", + "smithy.api#documentation": "

The type of table optimizer.

", "smithy.api#required": {} } }, @@ -40773,6 +40793,14 @@ "smithy.api#default": 0 } }, + "com.amazonaws.glue#glueConnectionNameString": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 1 + } + } + }, "com.amazonaws.glue#metricCounts": { "type": "long", "traits": {