Skip to content

Commit 9c425d5

Browse files
author
awstools
committed
feat(client-glue): This release includes(1)Zero-ETL integration to ingest data from 3P SaaS and DynamoDB to Redshift/Redlake (2)new properties on Connections to enable reuse; new connection APIs for retrieve/preview metadata (3)support of CRUD operations for Multi-catalog (4)support of automatic statistics collections
1 parent e8b4cd8 commit 9c425d5

File tree

106 files changed

+20786
-7637
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

106 files changed

+20786
-7637
lines changed

clients/client-glue/README.md

Lines changed: 176 additions & 0 deletions
Large diffs are not rendered by default.

clients/client-glue/src/Glue.ts

Lines changed: 464 additions & 0 deletions
Large diffs are not rendered by default.

clients/client-glue/src/GlueClient.ts

Lines changed: 99 additions & 0 deletions
Large diffs are not rendered by default.

clients/client-glue/src/commands/BatchStopJobRunCommand.ts

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,8 @@ import { MetadataBearer as __MetadataBearer } from "@smithy/types";
66

77
import { commonParams } from "../endpoint/EndpointParameters";
88
import { GlueClientResolvedConfig, ServiceInputTypes, ServiceOutputTypes } from "../GlueClient";
9-
import { BatchStopJobRunRequest, BatchStopJobRunResponse } from "../models/models_0";
9+
import { BatchStopJobRunRequest } from "../models/models_0";
10+
import { BatchStopJobRunResponse } from "../models/models_1";
1011
import { de_BatchStopJobRunCommand, se_BatchStopJobRunCommand } from "../protocols/Aws_json1_1";
1112

1213
/**

clients/client-glue/src/commands/BatchUpdatePartitionCommand.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ import { MetadataBearer as __MetadataBearer } from "@smithy/types";
66

77
import { commonParams } from "../endpoint/EndpointParameters";
88
import { GlueClientResolvedConfig, ServiceInputTypes, ServiceOutputTypes } from "../GlueClient";
9-
import { BatchUpdatePartitionRequest, BatchUpdatePartitionResponse } from "../models/models_0";
9+
import { BatchUpdatePartitionRequest, BatchUpdatePartitionResponse } from "../models/models_1";
1010
import { de_BatchUpdatePartitionCommand, se_BatchUpdatePartitionCommand } from "../protocols/Aws_json1_1";
1111

1212
/**

clients/client-glue/src/commands/CancelDataQualityRuleRecommendationRunCommand.ts

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,8 +6,10 @@ import { MetadataBearer as __MetadataBearer } from "@smithy/types";
66

77
import { commonParams } from "../endpoint/EndpointParameters";
88
import { GlueClientResolvedConfig, ServiceInputTypes, ServiceOutputTypes } from "../GlueClient";
9-
import { CancelDataQualityRuleRecommendationRunRequest } from "../models/models_0";
10-
import { CancelDataQualityRuleRecommendationRunResponse } from "../models/models_1";
9+
import {
10+
CancelDataQualityRuleRecommendationRunRequest,
11+
CancelDataQualityRuleRecommendationRunResponse,
12+
} from "../models/models_1";
1113
import {
1214
de_CancelDataQualityRuleRecommendationRunCommand,
1315
se_CancelDataQualityRuleRecommendationRunCommand,
Lines changed: 170 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,170 @@
1+
// smithy-typescript generated code
2+
import { getEndpointPlugin } from "@smithy/middleware-endpoint";
3+
import { getSerdePlugin } from "@smithy/middleware-serde";
4+
import { Command as $Command } from "@smithy/smithy-client";
5+
import { MetadataBearer as __MetadataBearer } from "@smithy/types";
6+
7+
import { commonParams } from "../endpoint/EndpointParameters";
8+
import { GlueClientResolvedConfig, ServiceInputTypes, ServiceOutputTypes } from "../GlueClient";
9+
import { CreateCatalogRequest, CreateCatalogResponse } from "../models/models_1";
10+
import { de_CreateCatalogCommand, se_CreateCatalogCommand } from "../protocols/Aws_json1_1";
11+
12+
/**
13+
* @public
14+
*/
15+
export type { __MetadataBearer };
16+
export { $Command };
17+
/**
18+
* @public
19+
*
20+
* The input for {@link CreateCatalogCommand}.
21+
*/
22+
export interface CreateCatalogCommandInput extends CreateCatalogRequest {}
23+
/**
24+
* @public
25+
*
26+
* The output of {@link CreateCatalogCommand}.
27+
*/
28+
export interface CreateCatalogCommandOutput extends CreateCatalogResponse, __MetadataBearer {}
29+
30+
/**
31+
* <p>Creates a new catalog in the Glue Data Catalog.</p>
32+
* @example
33+
* Use a bare-bones client and the command you need to make an API call.
34+
* ```javascript
35+
* import { GlueClient, CreateCatalogCommand } from "@aws-sdk/client-glue"; // ES Modules import
36+
* // const { GlueClient, CreateCatalogCommand } = require("@aws-sdk/client-glue"); // CommonJS import
37+
* const client = new GlueClient(config);
38+
* const input = { // CreateCatalogRequest
39+
* Name: "STRING_VALUE", // required
40+
* CatalogInput: { // CatalogInput
41+
* Description: "STRING_VALUE",
42+
* FederatedCatalog: { // FederatedCatalog
43+
* Identifier: "STRING_VALUE",
44+
* ConnectionName: "STRING_VALUE",
45+
* },
46+
* Parameters: { // ParametersMap
47+
* "<keys>": "STRING_VALUE",
48+
* },
49+
* TargetRedshiftCatalog: { // TargetRedshiftCatalog
50+
* CatalogArn: "STRING_VALUE", // required
51+
* },
52+
* CatalogProperties: { // CatalogProperties
53+
* DataLakeAccessProperties: { // DataLakeAccessProperties
54+
* DataLakeAccess: true || false,
55+
* DataTransferRole: "STRING_VALUE",
56+
* KmsKey: "STRING_VALUE",
57+
* CatalogType: "STRING_VALUE",
58+
* },
59+
* CustomProperties: {
60+
* "<keys>": "STRING_VALUE",
61+
* },
62+
* },
63+
* CreateTableDefaultPermissions: [ // PrincipalPermissionsList
64+
* { // PrincipalPermissions
65+
* Principal: { // DataLakePrincipal
66+
* DataLakePrincipalIdentifier: "STRING_VALUE",
67+
* },
68+
* Permissions: [ // PermissionList
69+
* "ALL" || "SELECT" || "ALTER" || "DROP" || "DELETE" || "INSERT" || "CREATE_DATABASE" || "CREATE_TABLE" || "DATA_LOCATION_ACCESS",
70+
* ],
71+
* },
72+
* ],
73+
* CreateDatabaseDefaultPermissions: [
74+
* {
75+
* Principal: {
76+
* DataLakePrincipalIdentifier: "STRING_VALUE",
77+
* },
78+
* Permissions: [
79+
* "ALL" || "SELECT" || "ALTER" || "DROP" || "DELETE" || "INSERT" || "CREATE_DATABASE" || "CREATE_TABLE" || "DATA_LOCATION_ACCESS",
80+
* ],
81+
* },
82+
* ],
83+
* },
84+
* Tags: { // TagsMap
85+
* "<keys>": "STRING_VALUE",
86+
* },
87+
* };
88+
* const command = new CreateCatalogCommand(input);
89+
* const response = await client.send(command);
90+
* // {};
91+
*
92+
* ```
93+
*
94+
* @param CreateCatalogCommandInput - {@link CreateCatalogCommandInput}
95+
* @returns {@link CreateCatalogCommandOutput}
96+
* @see {@link CreateCatalogCommandInput} for command's `input` shape.
97+
* @see {@link CreateCatalogCommandOutput} for command's `response` shape.
98+
* @see {@link GlueClientResolvedConfig | config} for GlueClient's `config` shape.
99+
*
100+
* @throws {@link AccessDeniedException} (client fault)
101+
* <p>Access to a resource was denied.</p>
102+
*
103+
* @throws {@link AlreadyExistsException} (client fault)
104+
* <p>A resource to be created or added already exists.</p>
105+
*
106+
* @throws {@link ConcurrentModificationException} (client fault)
107+
* <p>Two processes are trying to modify a resource simultaneously.</p>
108+
*
109+
* @throws {@link EntityNotFoundException} (client fault)
110+
* <p>A specified entity does not exist</p>
111+
*
112+
* @throws {@link FederatedResourceAlreadyExistsException} (client fault)
113+
* <p>A federated resource already exists.</p>
114+
*
115+
* @throws {@link FederationSourceException} (client fault)
116+
* <p>A federation source failed.</p>
117+
*
118+
* @throws {@link GlueEncryptionException} (client fault)
119+
* <p>An encryption operation failed.</p>
120+
*
121+
* @throws {@link InternalServiceException} (server fault)
122+
* <p>An internal service error occurred.</p>
123+
*
124+
* @throws {@link InvalidInputException} (client fault)
125+
* <p>The input provided was not valid.</p>
126+
*
127+
* @throws {@link OperationTimeoutException} (client fault)
128+
* <p>The operation timed out.</p>
129+
*
130+
* @throws {@link ResourceNumberLimitExceededException} (client fault)
131+
* <p>A resource numerical limit was exceeded.</p>
132+
*
133+
* @throws {@link GlueServiceException}
134+
* <p>Base exception class for all service exceptions from Glue service.</p>
135+
*
136+
* @public
137+
*/
138+
export class CreateCatalogCommand extends $Command
139+
.classBuilder<
140+
CreateCatalogCommandInput,
141+
CreateCatalogCommandOutput,
142+
GlueClientResolvedConfig,
143+
ServiceInputTypes,
144+
ServiceOutputTypes
145+
>()
146+
.ep(commonParams)
147+
.m(function (this: any, Command: any, cs: any, config: GlueClientResolvedConfig, o: any) {
148+
return [
149+
getSerdePlugin(config, this.serialize, this.deserialize),
150+
getEndpointPlugin(config, Command.getEndpointParameterInstructions()),
151+
];
152+
})
153+
.s("AWSGlue", "CreateCatalog", {})
154+
.n("GlueClient", "CreateCatalogCommand")
155+
.f(void 0, void 0)
156+
.ser(se_CreateCatalogCommand)
157+
.de(de_CreateCatalogCommand)
158+
.build() {
159+
/** @internal type navigation helper, not in runtime. */
160+
protected declare static __types: {
161+
api: {
162+
input: CreateCatalogRequest;
163+
output: {};
164+
};
165+
sdk: {
166+
input: CreateCatalogCommandInput;
167+
output: CreateCatalogCommandOutput;
168+
};
169+
};
170+
}

clients/client-glue/src/commands/CreateConnectionCommand.ts

Lines changed: 26 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -45,14 +45,20 @@ export interface CreateConnectionCommandOutput extends CreateConnectionResponse,
4545
* ConnectionInput: { // ConnectionInput
4646
* Name: "STRING_VALUE", // required
4747
* Description: "STRING_VALUE",
48-
* ConnectionType: "JDBC" || "SFTP" || "MONGODB" || "KAFKA" || "NETWORK" || "MARKETPLACE" || "CUSTOM" || "SALESFORCE" || "VIEW_VALIDATION_REDSHIFT" || "VIEW_VALIDATION_ATHENA", // required
48+
* ConnectionType: "JDBC" || "SFTP" || "MONGODB" || "KAFKA" || "NETWORK" || "MARKETPLACE" || "CUSTOM" || "SALESFORCE" || "VIEW_VALIDATION_REDSHIFT" || "VIEW_VALIDATION_ATHENA" || "GOOGLEADS" || "GOOGLESHEETS" || "GOOGLEANALYTICS4" || "SERVICENOW" || "MARKETO" || "SAPODATA" || "ZENDESK" || "JIRACLOUD" || "NETSUITEERP" || "HUBSPOT" || "FACEBOOKADS" || "INSTAGRAMADS" || "ZOHOCRM" || "SALESFORCEPARDOT" || "SALESFORCEMARKETINGCLOUD" || "SLACK" || "STRIPE" || "INTERCOM" || "SNAPCHATADS", // required
4949
* MatchCriteria: [ // MatchCriteria
5050
* "STRING_VALUE",
5151
* ],
5252
* ConnectionProperties: { // ConnectionProperties // required
5353
* "<keys>": "STRING_VALUE",
5454
* },
55-
* AthenaProperties: { // PropertyMap
55+
* SparkProperties: { // PropertyMap
56+
* "<keys>": "STRING_VALUE",
57+
* },
58+
* AthenaProperties: {
59+
* "<keys>": "STRING_VALUE",
60+
* },
61+
* PythonProperties: {
5662
* "<keys>": "STRING_VALUE",
5763
* },
5864
* PhysicalConnectionRequirements: { // PhysicalConnectionRequirements
@@ -63,7 +69,7 @@ export interface CreateConnectionCommandOutput extends CreateConnectionResponse,
6369
* AvailabilityZone: "STRING_VALUE",
6470
* },
6571
* AuthenticationConfiguration: { // AuthenticationConfigurationInput
66-
* AuthenticationType: "BASIC" || "OAUTH2" || "CUSTOM",
72+
* AuthenticationType: "BASIC" || "OAUTH2" || "CUSTOM" || "IAM",
6773
* OAuth2Properties: { // OAuth2PropertiesInput
6874
* OAuth2GrantType: "AUTHORIZATION_CODE" || "CLIENT_CREDENTIALS" || "JWT_BEARER",
6975
* OAuth2ClientApplication: { // OAuth2ClientApplication
@@ -78,10 +84,27 @@ export interface CreateConnectionCommandOutput extends CreateConnectionResponse,
7884
* AuthorizationCode: "STRING_VALUE",
7985
* RedirectUri: "STRING_VALUE",
8086
* },
87+
* OAuth2Credentials: { // OAuth2Credentials
88+
* UserManagedClientApplicationClientSecret: "STRING_VALUE",
89+
* AccessToken: "STRING_VALUE",
90+
* RefreshToken: "STRING_VALUE",
91+
* JwtToken: "STRING_VALUE",
92+
* },
8193
* },
8294
* SecretArn: "STRING_VALUE",
95+
* KmsKeyArn: "STRING_VALUE",
96+
* BasicAuthenticationCredentials: { // BasicAuthenticationCredentials
97+
* Username: "STRING_VALUE",
98+
* Password: "STRING_VALUE",
99+
* },
100+
* CustomAuthenticationCredentials: { // CredentialMap
101+
* "<keys>": "STRING_VALUE",
102+
* },
83103
* },
84104
* ValidateCredentials: true || false,
105+
* ValidateForComputeEnvironments: [ // ComputeEnvironmentList
106+
* "SPARK" || "ATHENA" || "PYTHON",
107+
* ],
85108
* },
86109
* Tags: { // TagsMap
87110
* "<keys>": "STRING_VALUE",

clients/client-glue/src/commands/CreateDatabaseCommand.ts

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -89,6 +89,12 @@ export interface CreateDatabaseCommandOutput extends CreateDatabaseResponse, __M
8989
* @throws {@link FederatedResourceAlreadyExistsException} (client fault)
9090
* <p>A federated resource already exists.</p>
9191
*
92+
* @throws {@link FederationSourceException} (client fault)
93+
* <p>A federation source failed.</p>
94+
*
95+
* @throws {@link FederationSourceRetryableException} (client fault)
96+
* <p>A federation source failed, but the operation may be retried.</p>
97+
*
9298
* @throws {@link GlueEncryptionException} (client fault)
9399
* <p>An encryption operation failed.</p>
94100
*

0 commit comments

Comments
 (0)