Skip to content

Commit 4b78fcd

Browse files
author
awstools
committed
feat(client-glue): This SDK release adds support to sync glue jobs with source control provider. Additionally, a new parameter called SourceControlDetails will be added to Job model.
1 parent 435b5de commit 4b78fcd

13 files changed

+1243
-234
lines changed

clients/client-glue/src/Glue.ts

+78
Original file line numberDiff line numberDiff line change
@@ -757,6 +757,11 @@ import {
757757
UpdateDevEndpointCommandOutput,
758758
} from "./commands/UpdateDevEndpointCommand";
759759
import { UpdateJobCommand, UpdateJobCommandInput, UpdateJobCommandOutput } from "./commands/UpdateJobCommand";
760+
import {
761+
UpdateJobFromSourceControlCommand,
762+
UpdateJobFromSourceControlCommandInput,
763+
UpdateJobFromSourceControlCommandOutput,
764+
} from "./commands/UpdateJobFromSourceControlCommand";
760765
import {
761766
UpdateMLTransformCommand,
762767
UpdateMLTransformCommandInput,
@@ -777,6 +782,11 @@ import {
777782
UpdateSchemaCommandInput,
778783
UpdateSchemaCommandOutput,
779784
} from "./commands/UpdateSchemaCommand";
785+
import {
786+
UpdateSourceControlFromJobCommand,
787+
UpdateSourceControlFromJobCommandInput,
788+
UpdateSourceControlFromJobCommandOutput,
789+
} from "./commands/UpdateSourceControlFromJobCommand";
780790
import { UpdateTableCommand, UpdateTableCommandInput, UpdateTableCommandOutput } from "./commands/UpdateTableCommand";
781791
import {
782792
UpdateTriggerCommand,
@@ -6419,6 +6429,40 @@ export class Glue extends GlueClient {
64196429
}
64206430
}
64216431

6432+
/**
6433+
* <p>Synchronizes a job from the source control repository. This operation takes the job artifacts that are located in the remote repository and updates the Glue internal stores with these artifacts.</p>
6434+
*
6435+
* <p>This API supports optional parameters which take in the repository information.</p>
6436+
*/
6437+
public updateJobFromSourceControl(
6438+
args: UpdateJobFromSourceControlCommandInput,
6439+
options?: __HttpHandlerOptions
6440+
): Promise<UpdateJobFromSourceControlCommandOutput>;
6441+
public updateJobFromSourceControl(
6442+
args: UpdateJobFromSourceControlCommandInput,
6443+
cb: (err: any, data?: UpdateJobFromSourceControlCommandOutput) => void
6444+
): void;
6445+
public updateJobFromSourceControl(
6446+
args: UpdateJobFromSourceControlCommandInput,
6447+
options: __HttpHandlerOptions,
6448+
cb: (err: any, data?: UpdateJobFromSourceControlCommandOutput) => void
6449+
): void;
6450+
public updateJobFromSourceControl(
6451+
args: UpdateJobFromSourceControlCommandInput,
6452+
optionsOrCb?: __HttpHandlerOptions | ((err: any, data?: UpdateJobFromSourceControlCommandOutput) => void),
6453+
cb?: (err: any, data?: UpdateJobFromSourceControlCommandOutput) => void
6454+
): Promise<UpdateJobFromSourceControlCommandOutput> | void {
6455+
const command = new UpdateJobFromSourceControlCommand(args);
6456+
if (typeof optionsOrCb === "function") {
6457+
this.send(command, optionsOrCb);
6458+
} else if (typeof cb === "function") {
6459+
if (typeof optionsOrCb !== "object") throw new Error(`Expect http options but get ${typeof optionsOrCb}`);
6460+
this.send(command, optionsOrCb || {}, cb);
6461+
} else {
6462+
return this.send(command, optionsOrCb);
6463+
}
6464+
}
6465+
64226466
/**
64236467
* <p>Updates an existing machine learning transform. Call this operation to tune the algorithm parameters to achieve better results.</p>
64246468
*
@@ -6551,6 +6595,40 @@ export class Glue extends GlueClient {
65516595
}
65526596
}
65536597

6598+
/**
6599+
* <p>Synchronizes a job to the source control repository. This operation takes the job artifacts from the Glue internal stores and makes a commit to the remote repository that is configured on the job.</p>
6600+
*
6601+
* <p>This API supports optional parameters which take in the repository information.</p>
6602+
*/
6603+
public updateSourceControlFromJob(
6604+
args: UpdateSourceControlFromJobCommandInput,
6605+
options?: __HttpHandlerOptions
6606+
): Promise<UpdateSourceControlFromJobCommandOutput>;
6607+
public updateSourceControlFromJob(
6608+
args: UpdateSourceControlFromJobCommandInput,
6609+
cb: (err: any, data?: UpdateSourceControlFromJobCommandOutput) => void
6610+
): void;
6611+
public updateSourceControlFromJob(
6612+
args: UpdateSourceControlFromJobCommandInput,
6613+
options: __HttpHandlerOptions,
6614+
cb: (err: any, data?: UpdateSourceControlFromJobCommandOutput) => void
6615+
): void;
6616+
public updateSourceControlFromJob(
6617+
args: UpdateSourceControlFromJobCommandInput,
6618+
optionsOrCb?: __HttpHandlerOptions | ((err: any, data?: UpdateSourceControlFromJobCommandOutput) => void),
6619+
cb?: (err: any, data?: UpdateSourceControlFromJobCommandOutput) => void
6620+
): Promise<UpdateSourceControlFromJobCommandOutput> | void {
6621+
const command = new UpdateSourceControlFromJobCommand(args);
6622+
if (typeof optionsOrCb === "function") {
6623+
this.send(command, optionsOrCb);
6624+
} else if (typeof cb === "function") {
6625+
if (typeof optionsOrCb !== "object") throw new Error(`Expect http options but get ${typeof optionsOrCb}`);
6626+
this.send(command, optionsOrCb || {}, cb);
6627+
} else {
6628+
return this.send(command, optionsOrCb);
6629+
}
6630+
}
6631+
65546632
/**
65556633
* <p>Updates a metadata table in the Data Catalog.</p>
65566634
*/

clients/client-glue/src/GlueClient.ts

+12
Original file line numberDiff line numberDiff line change
@@ -391,10 +391,18 @@ import {
391391
import { UpdateDatabaseCommandInput, UpdateDatabaseCommandOutput } from "./commands/UpdateDatabaseCommand";
392392
import { UpdateDevEndpointCommandInput, UpdateDevEndpointCommandOutput } from "./commands/UpdateDevEndpointCommand";
393393
import { UpdateJobCommandInput, UpdateJobCommandOutput } from "./commands/UpdateJobCommand";
394+
import {
395+
UpdateJobFromSourceControlCommandInput,
396+
UpdateJobFromSourceControlCommandOutput,
397+
} from "./commands/UpdateJobFromSourceControlCommand";
394398
import { UpdateMLTransformCommandInput, UpdateMLTransformCommandOutput } from "./commands/UpdateMLTransformCommand";
395399
import { UpdatePartitionCommandInput, UpdatePartitionCommandOutput } from "./commands/UpdatePartitionCommand";
396400
import { UpdateRegistryCommandInput, UpdateRegistryCommandOutput } from "./commands/UpdateRegistryCommand";
397401
import { UpdateSchemaCommandInput, UpdateSchemaCommandOutput } from "./commands/UpdateSchemaCommand";
402+
import {
403+
UpdateSourceControlFromJobCommandInput,
404+
UpdateSourceControlFromJobCommandOutput,
405+
} from "./commands/UpdateSourceControlFromJobCommand";
398406
import { UpdateTableCommandInput, UpdateTableCommandOutput } from "./commands/UpdateTableCommand";
399407
import { UpdateTriggerCommandInput, UpdateTriggerCommandOutput } from "./commands/UpdateTriggerCommand";
400408
import {
@@ -581,10 +589,12 @@ export type ServiceInputTypes =
581589
| UpdateDatabaseCommandInput
582590
| UpdateDevEndpointCommandInput
583591
| UpdateJobCommandInput
592+
| UpdateJobFromSourceControlCommandInput
584593
| UpdateMLTransformCommandInput
585594
| UpdatePartitionCommandInput
586595
| UpdateRegistryCommandInput
587596
| UpdateSchemaCommandInput
597+
| UpdateSourceControlFromJobCommandInput
588598
| UpdateTableCommandInput
589599
| UpdateTriggerCommandInput
590600
| UpdateUserDefinedFunctionCommandInput
@@ -767,10 +777,12 @@ export type ServiceOutputTypes =
767777
| UpdateDatabaseCommandOutput
768778
| UpdateDevEndpointCommandOutput
769779
| UpdateJobCommandOutput
780+
| UpdateJobFromSourceControlCommandOutput
770781
| UpdateMLTransformCommandOutput
771782
| UpdatePartitionCommandOutput
772783
| UpdateRegistryCommandOutput
773784
| UpdateSchemaCommandOutput
785+
| UpdateSourceControlFromJobCommandOutput
774786
| UpdateTableCommandOutput
775787
| UpdateTriggerCommandOutput
776788
| UpdateUserDefinedFunctionCommandOutput

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

+2-6
Original file line numberDiff line numberDiff line change
@@ -13,12 +13,8 @@ import {
1313
} from "@aws-sdk/types";
1414

1515
import { GlueClientResolvedConfig, ServiceInputTypes, ServiceOutputTypes } from "../GlueClient";
16-
import {
17-
CreateWorkflowRequest,
18-
CreateWorkflowRequestFilterSensitiveLog,
19-
CreateWorkflowResponse,
20-
CreateWorkflowResponseFilterSensitiveLog,
21-
} from "../models/models_0";
16+
import { CreateWorkflowRequest, CreateWorkflowRequestFilterSensitiveLog } from "../models/models_0";
17+
import { CreateWorkflowResponse, CreateWorkflowResponseFilterSensitiveLog } from "../models/models_1";
2218
import {
2319
deserializeAws_json1_1CreateWorkflowCommand,
2420
serializeAws_json1_1CreateWorkflowCommand,

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

+1-1
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@ import {
1818
DeleteBlueprintRequestFilterSensitiveLog,
1919
DeleteBlueprintResponse,
2020
DeleteBlueprintResponseFilterSensitiveLog,
21-
} from "../models/models_0";
21+
} from "../models/models_1";
2222
import {
2323
deserializeAws_json1_1DeleteBlueprintCommand,
2424
serializeAws_json1_1DeleteBlueprintCommand,

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

+2-1
Original file line numberDiff line numberDiff line change
@@ -13,8 +13,9 @@ import {
1313
} from "@aws-sdk/types";
1414

1515
import { GlueClientResolvedConfig, ServiceInputTypes, ServiceOutputTypes } from "../GlueClient";
16-
import { QuerySchemaVersionMetadataInput, QuerySchemaVersionMetadataInputFilterSensitiveLog } from "../models/models_1";
1716
import {
17+
QuerySchemaVersionMetadataInput,
18+
QuerySchemaVersionMetadataInputFilterSensitiveLog,
1819
QuerySchemaVersionMetadataResponse,
1920
QuerySchemaVersionMetadataResponseFilterSensitiveLog,
2021
} from "../models/models_2";
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,106 @@
1+
// smithy-typescript generated code
2+
import { getSerdePlugin } from "@aws-sdk/middleware-serde";
3+
import { HttpRequest as __HttpRequest, HttpResponse as __HttpResponse } from "@aws-sdk/protocol-http";
4+
import { Command as $Command } from "@aws-sdk/smithy-client";
5+
import {
6+
FinalizeHandlerArguments,
7+
Handler,
8+
HandlerExecutionContext,
9+
HttpHandlerOptions as __HttpHandlerOptions,
10+
MetadataBearer as __MetadataBearer,
11+
MiddlewareStack,
12+
SerdeContext as __SerdeContext,
13+
} from "@aws-sdk/types";
14+
15+
import { GlueClientResolvedConfig, ServiceInputTypes, ServiceOutputTypes } from "../GlueClient";
16+
import {
17+
UpdateJobFromSourceControlRequest,
18+
UpdateJobFromSourceControlRequestFilterSensitiveLog,
19+
UpdateJobFromSourceControlResponse,
20+
UpdateJobFromSourceControlResponseFilterSensitiveLog,
21+
} from "../models/models_2";
22+
import {
23+
deserializeAws_json1_1UpdateJobFromSourceControlCommand,
24+
serializeAws_json1_1UpdateJobFromSourceControlCommand,
25+
} from "../protocols/Aws_json1_1";
26+
27+
export interface UpdateJobFromSourceControlCommandInput extends UpdateJobFromSourceControlRequest {}
28+
export interface UpdateJobFromSourceControlCommandOutput extends UpdateJobFromSourceControlResponse, __MetadataBearer {}
29+
30+
/**
31+
* <p>Synchronizes a job from the source control repository. This operation takes the job artifacts that are located in the remote repository and updates the Glue internal stores with these artifacts.</p>
32+
*
33+
* <p>This API supports optional parameters which take in the repository information.</p>
34+
* @example
35+
* Use a bare-bones client and the command you need to make an API call.
36+
* ```javascript
37+
* import { GlueClient, UpdateJobFromSourceControlCommand } from "@aws-sdk/client-glue"; // ES Modules import
38+
* // const { GlueClient, UpdateJobFromSourceControlCommand } = require("@aws-sdk/client-glue"); // CommonJS import
39+
* const client = new GlueClient(config);
40+
* const command = new UpdateJobFromSourceControlCommand(input);
41+
* const response = await client.send(command);
42+
* ```
43+
*
44+
* @see {@link UpdateJobFromSourceControlCommandInput} for command's `input` shape.
45+
* @see {@link UpdateJobFromSourceControlCommandOutput} for command's `response` shape.
46+
* @see {@link GlueClientResolvedConfig | config} for GlueClient's `config` shape.
47+
*
48+
*/
49+
export class UpdateJobFromSourceControlCommand extends $Command<
50+
UpdateJobFromSourceControlCommandInput,
51+
UpdateJobFromSourceControlCommandOutput,
52+
GlueClientResolvedConfig
53+
> {
54+
// Start section: command_properties
55+
// End section: command_properties
56+
57+
constructor(readonly input: UpdateJobFromSourceControlCommandInput) {
58+
// Start section: command_constructor
59+
super();
60+
// End section: command_constructor
61+
}
62+
63+
/**
64+
* @internal
65+
*/
66+
resolveMiddleware(
67+
clientStack: MiddlewareStack<ServiceInputTypes, ServiceOutputTypes>,
68+
configuration: GlueClientResolvedConfig,
69+
options?: __HttpHandlerOptions
70+
): Handler<UpdateJobFromSourceControlCommandInput, UpdateJobFromSourceControlCommandOutput> {
71+
this.middlewareStack.use(getSerdePlugin(configuration, this.serialize, this.deserialize));
72+
73+
const stack = clientStack.concat(this.middlewareStack);
74+
75+
const { logger } = configuration;
76+
const clientName = "GlueClient";
77+
const commandName = "UpdateJobFromSourceControlCommand";
78+
const handlerExecutionContext: HandlerExecutionContext = {
79+
logger,
80+
clientName,
81+
commandName,
82+
inputFilterSensitiveLog: UpdateJobFromSourceControlRequestFilterSensitiveLog,
83+
outputFilterSensitiveLog: UpdateJobFromSourceControlResponseFilterSensitiveLog,
84+
};
85+
const { requestHandler } = configuration;
86+
return stack.resolve(
87+
(request: FinalizeHandlerArguments<any>) =>
88+
requestHandler.handle(request.request as __HttpRequest, options || {}),
89+
handlerExecutionContext
90+
);
91+
}
92+
93+
private serialize(input: UpdateJobFromSourceControlCommandInput, context: __SerdeContext): Promise<__HttpRequest> {
94+
return serializeAws_json1_1UpdateJobFromSourceControlCommand(input, context);
95+
}
96+
97+
private deserialize(
98+
output: __HttpResponse,
99+
context: __SerdeContext
100+
): Promise<UpdateJobFromSourceControlCommandOutput> {
101+
return deserializeAws_json1_1UpdateJobFromSourceControlCommand(output, context);
102+
}
103+
104+
// Start section: command_body_extra
105+
// End section: command_body_extra
106+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,106 @@
1+
// smithy-typescript generated code
2+
import { getSerdePlugin } from "@aws-sdk/middleware-serde";
3+
import { HttpRequest as __HttpRequest, HttpResponse as __HttpResponse } from "@aws-sdk/protocol-http";
4+
import { Command as $Command } from "@aws-sdk/smithy-client";
5+
import {
6+
FinalizeHandlerArguments,
7+
Handler,
8+
HandlerExecutionContext,
9+
HttpHandlerOptions as __HttpHandlerOptions,
10+
MetadataBearer as __MetadataBearer,
11+
MiddlewareStack,
12+
SerdeContext as __SerdeContext,
13+
} from "@aws-sdk/types";
14+
15+
import { GlueClientResolvedConfig, ServiceInputTypes, ServiceOutputTypes } from "../GlueClient";
16+
import {
17+
UpdateSourceControlFromJobRequest,
18+
UpdateSourceControlFromJobRequestFilterSensitiveLog,
19+
UpdateSourceControlFromJobResponse,
20+
UpdateSourceControlFromJobResponseFilterSensitiveLog,
21+
} from "../models/models_2";
22+
import {
23+
deserializeAws_json1_1UpdateSourceControlFromJobCommand,
24+
serializeAws_json1_1UpdateSourceControlFromJobCommand,
25+
} from "../protocols/Aws_json1_1";
26+
27+
export interface UpdateSourceControlFromJobCommandInput extends UpdateSourceControlFromJobRequest {}
28+
export interface UpdateSourceControlFromJobCommandOutput extends UpdateSourceControlFromJobResponse, __MetadataBearer {}
29+
30+
/**
31+
* <p>Synchronizes a job to the source control repository. This operation takes the job artifacts from the Glue internal stores and makes a commit to the remote repository that is configured on the job.</p>
32+
*
33+
* <p>This API supports optional parameters which take in the repository information.</p>
34+
* @example
35+
* Use a bare-bones client and the command you need to make an API call.
36+
* ```javascript
37+
* import { GlueClient, UpdateSourceControlFromJobCommand } from "@aws-sdk/client-glue"; // ES Modules import
38+
* // const { GlueClient, UpdateSourceControlFromJobCommand } = require("@aws-sdk/client-glue"); // CommonJS import
39+
* const client = new GlueClient(config);
40+
* const command = new UpdateSourceControlFromJobCommand(input);
41+
* const response = await client.send(command);
42+
* ```
43+
*
44+
* @see {@link UpdateSourceControlFromJobCommandInput} for command's `input` shape.
45+
* @see {@link UpdateSourceControlFromJobCommandOutput} for command's `response` shape.
46+
* @see {@link GlueClientResolvedConfig | config} for GlueClient's `config` shape.
47+
*
48+
*/
49+
export class UpdateSourceControlFromJobCommand extends $Command<
50+
UpdateSourceControlFromJobCommandInput,
51+
UpdateSourceControlFromJobCommandOutput,
52+
GlueClientResolvedConfig
53+
> {
54+
// Start section: command_properties
55+
// End section: command_properties
56+
57+
constructor(readonly input: UpdateSourceControlFromJobCommandInput) {
58+
// Start section: command_constructor
59+
super();
60+
// End section: command_constructor
61+
}
62+
63+
/**
64+
* @internal
65+
*/
66+
resolveMiddleware(
67+
clientStack: MiddlewareStack<ServiceInputTypes, ServiceOutputTypes>,
68+
configuration: GlueClientResolvedConfig,
69+
options?: __HttpHandlerOptions
70+
): Handler<UpdateSourceControlFromJobCommandInput, UpdateSourceControlFromJobCommandOutput> {
71+
this.middlewareStack.use(getSerdePlugin(configuration, this.serialize, this.deserialize));
72+
73+
const stack = clientStack.concat(this.middlewareStack);
74+
75+
const { logger } = configuration;
76+
const clientName = "GlueClient";
77+
const commandName = "UpdateSourceControlFromJobCommand";
78+
const handlerExecutionContext: HandlerExecutionContext = {
79+
logger,
80+
clientName,
81+
commandName,
82+
inputFilterSensitiveLog: UpdateSourceControlFromJobRequestFilterSensitiveLog,
83+
outputFilterSensitiveLog: UpdateSourceControlFromJobResponseFilterSensitiveLog,
84+
};
85+
const { requestHandler } = configuration;
86+
return stack.resolve(
87+
(request: FinalizeHandlerArguments<any>) =>
88+
requestHandler.handle(request.request as __HttpRequest, options || {}),
89+
handlerExecutionContext
90+
);
91+
}
92+
93+
private serialize(input: UpdateSourceControlFromJobCommandInput, context: __SerdeContext): Promise<__HttpRequest> {
94+
return serializeAws_json1_1UpdateSourceControlFromJobCommand(input, context);
95+
}
96+
97+
private deserialize(
98+
output: __HttpResponse,
99+
context: __SerdeContext
100+
): Promise<UpdateSourceControlFromJobCommandOutput> {
101+
return deserializeAws_json1_1UpdateSourceControlFromJobCommand(output, context);
102+
}
103+
104+
// Start section: command_body_extra
105+
// End section: command_body_extra
106+
}

0 commit comments

Comments
 (0)