Skip to content

Commit

Permalink
feat(client-glue): This SDK release adds support to sync glue jobs wi…
Browse files Browse the repository at this point in the history
…th source control provider. Additionally, a new parameter called SourceControlDetails will be added to Job model.
  • Loading branch information
awstools committed Oct 5, 2022
1 parent 435b5de commit 4b78fcd
Show file tree
Hide file tree
Showing 13 changed files with 1,243 additions and 234 deletions.
78 changes: 78 additions & 0 deletions clients/client-glue/src/Glue.ts
Original file line number Diff line number Diff line change
Expand Up @@ -757,6 +757,11 @@ import {
UpdateDevEndpointCommandOutput,
} from "./commands/UpdateDevEndpointCommand";
import { UpdateJobCommand, UpdateJobCommandInput, UpdateJobCommandOutput } from "./commands/UpdateJobCommand";
import {
UpdateJobFromSourceControlCommand,
UpdateJobFromSourceControlCommandInput,
UpdateJobFromSourceControlCommandOutput,
} from "./commands/UpdateJobFromSourceControlCommand";
import {
UpdateMLTransformCommand,
UpdateMLTransformCommandInput,
Expand All @@ -777,6 +782,11 @@ import {
UpdateSchemaCommandInput,
UpdateSchemaCommandOutput,
} from "./commands/UpdateSchemaCommand";
import {
UpdateSourceControlFromJobCommand,
UpdateSourceControlFromJobCommandInput,
UpdateSourceControlFromJobCommandOutput,
} from "./commands/UpdateSourceControlFromJobCommand";
import { UpdateTableCommand, UpdateTableCommandInput, UpdateTableCommandOutput } from "./commands/UpdateTableCommand";
import {
UpdateTriggerCommand,
Expand Down Expand Up @@ -6419,6 +6429,40 @@ export class Glue extends GlueClient {
}
}

/**
* <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>
*
* <p>This API supports optional parameters which take in the repository information.</p>
*/
public updateJobFromSourceControl(
args: UpdateJobFromSourceControlCommandInput,
options?: __HttpHandlerOptions
): Promise<UpdateJobFromSourceControlCommandOutput>;
public updateJobFromSourceControl(
args: UpdateJobFromSourceControlCommandInput,
cb: (err: any, data?: UpdateJobFromSourceControlCommandOutput) => void
): void;
public updateJobFromSourceControl(
args: UpdateJobFromSourceControlCommandInput,
options: __HttpHandlerOptions,
cb: (err: any, data?: UpdateJobFromSourceControlCommandOutput) => void
): void;
public updateJobFromSourceControl(
args: UpdateJobFromSourceControlCommandInput,
optionsOrCb?: __HttpHandlerOptions | ((err: any, data?: UpdateJobFromSourceControlCommandOutput) => void),
cb?: (err: any, data?: UpdateJobFromSourceControlCommandOutput) => void
): Promise<UpdateJobFromSourceControlCommandOutput> | void {
const command = new UpdateJobFromSourceControlCommand(args);
if (typeof optionsOrCb === "function") {
this.send(command, optionsOrCb);
} else if (typeof cb === "function") {
if (typeof optionsOrCb !== "object") throw new Error(`Expect http options but get ${typeof optionsOrCb}`);
this.send(command, optionsOrCb || {}, cb);
} else {
return this.send(command, optionsOrCb);
}
}

/**
* <p>Updates an existing machine learning transform. Call this operation to tune the algorithm parameters to achieve better results.</p>
*
Expand Down Expand Up @@ -6551,6 +6595,40 @@ export class Glue extends GlueClient {
}
}

/**
* <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>
*
* <p>This API supports optional parameters which take in the repository information.</p>
*/
public updateSourceControlFromJob(
args: UpdateSourceControlFromJobCommandInput,
options?: __HttpHandlerOptions
): Promise<UpdateSourceControlFromJobCommandOutput>;
public updateSourceControlFromJob(
args: UpdateSourceControlFromJobCommandInput,
cb: (err: any, data?: UpdateSourceControlFromJobCommandOutput) => void
): void;
public updateSourceControlFromJob(
args: UpdateSourceControlFromJobCommandInput,
options: __HttpHandlerOptions,
cb: (err: any, data?: UpdateSourceControlFromJobCommandOutput) => void
): void;
public updateSourceControlFromJob(
args: UpdateSourceControlFromJobCommandInput,
optionsOrCb?: __HttpHandlerOptions | ((err: any, data?: UpdateSourceControlFromJobCommandOutput) => void),
cb?: (err: any, data?: UpdateSourceControlFromJobCommandOutput) => void
): Promise<UpdateSourceControlFromJobCommandOutput> | void {
const command = new UpdateSourceControlFromJobCommand(args);
if (typeof optionsOrCb === "function") {
this.send(command, optionsOrCb);
} else if (typeof cb === "function") {
if (typeof optionsOrCb !== "object") throw new Error(`Expect http options but get ${typeof optionsOrCb}`);
this.send(command, optionsOrCb || {}, cb);
} else {
return this.send(command, optionsOrCb);
}
}

/**
* <p>Updates a metadata table in the Data Catalog.</p>
*/
Expand Down
12 changes: 12 additions & 0 deletions clients/client-glue/src/GlueClient.ts
Original file line number Diff line number Diff line change
Expand Up @@ -391,10 +391,18 @@ import {
import { UpdateDatabaseCommandInput, UpdateDatabaseCommandOutput } from "./commands/UpdateDatabaseCommand";
import { UpdateDevEndpointCommandInput, UpdateDevEndpointCommandOutput } from "./commands/UpdateDevEndpointCommand";
import { UpdateJobCommandInput, UpdateJobCommandOutput } from "./commands/UpdateJobCommand";
import {
UpdateJobFromSourceControlCommandInput,
UpdateJobFromSourceControlCommandOutput,
} from "./commands/UpdateJobFromSourceControlCommand";
import { UpdateMLTransformCommandInput, UpdateMLTransformCommandOutput } from "./commands/UpdateMLTransformCommand";
import { UpdatePartitionCommandInput, UpdatePartitionCommandOutput } from "./commands/UpdatePartitionCommand";
import { UpdateRegistryCommandInput, UpdateRegistryCommandOutput } from "./commands/UpdateRegistryCommand";
import { UpdateSchemaCommandInput, UpdateSchemaCommandOutput } from "./commands/UpdateSchemaCommand";
import {
UpdateSourceControlFromJobCommandInput,
UpdateSourceControlFromJobCommandOutput,
} from "./commands/UpdateSourceControlFromJobCommand";
import { UpdateTableCommandInput, UpdateTableCommandOutput } from "./commands/UpdateTableCommand";
import { UpdateTriggerCommandInput, UpdateTriggerCommandOutput } from "./commands/UpdateTriggerCommand";
import {
Expand Down Expand Up @@ -581,10 +589,12 @@ export type ServiceInputTypes =
| UpdateDatabaseCommandInput
| UpdateDevEndpointCommandInput
| UpdateJobCommandInput
| UpdateJobFromSourceControlCommandInput
| UpdateMLTransformCommandInput
| UpdatePartitionCommandInput
| UpdateRegistryCommandInput
| UpdateSchemaCommandInput
| UpdateSourceControlFromJobCommandInput
| UpdateTableCommandInput
| UpdateTriggerCommandInput
| UpdateUserDefinedFunctionCommandInput
Expand Down Expand Up @@ -767,10 +777,12 @@ export type ServiceOutputTypes =
| UpdateDatabaseCommandOutput
| UpdateDevEndpointCommandOutput
| UpdateJobCommandOutput
| UpdateJobFromSourceControlCommandOutput
| UpdateMLTransformCommandOutput
| UpdatePartitionCommandOutput
| UpdateRegistryCommandOutput
| UpdateSchemaCommandOutput
| UpdateSourceControlFromJobCommandOutput
| UpdateTableCommandOutput
| UpdateTriggerCommandOutput
| UpdateUserDefinedFunctionCommandOutput
Expand Down
8 changes: 2 additions & 6 deletions clients/client-glue/src/commands/CreateWorkflowCommand.ts
Original file line number Diff line number Diff line change
Expand Up @@ -13,12 +13,8 @@ import {
} from "@aws-sdk/types";

import { GlueClientResolvedConfig, ServiceInputTypes, ServiceOutputTypes } from "../GlueClient";
import {
CreateWorkflowRequest,
CreateWorkflowRequestFilterSensitiveLog,
CreateWorkflowResponse,
CreateWorkflowResponseFilterSensitiveLog,
} from "../models/models_0";
import { CreateWorkflowRequest, CreateWorkflowRequestFilterSensitiveLog } from "../models/models_0";
import { CreateWorkflowResponse, CreateWorkflowResponseFilterSensitiveLog } from "../models/models_1";
import {
deserializeAws_json1_1CreateWorkflowCommand,
serializeAws_json1_1CreateWorkflowCommand,
Expand Down
2 changes: 1 addition & 1 deletion clients/client-glue/src/commands/DeleteBlueprintCommand.ts
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@ import {
DeleteBlueprintRequestFilterSensitiveLog,
DeleteBlueprintResponse,
DeleteBlueprintResponseFilterSensitiveLog,
} from "../models/models_0";
} from "../models/models_1";
import {
deserializeAws_json1_1DeleteBlueprintCommand,
serializeAws_json1_1DeleteBlueprintCommand,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -13,8 +13,9 @@ import {
} from "@aws-sdk/types";

import { GlueClientResolvedConfig, ServiceInputTypes, ServiceOutputTypes } from "../GlueClient";
import { QuerySchemaVersionMetadataInput, QuerySchemaVersionMetadataInputFilterSensitiveLog } from "../models/models_1";
import {
QuerySchemaVersionMetadataInput,
QuerySchemaVersionMetadataInputFilterSensitiveLog,
QuerySchemaVersionMetadataResponse,
QuerySchemaVersionMetadataResponseFilterSensitiveLog,
} from "../models/models_2";
Expand Down
106 changes: 106 additions & 0 deletions clients/client-glue/src/commands/UpdateJobFromSourceControlCommand.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,106 @@
// smithy-typescript generated code
import { getSerdePlugin } from "@aws-sdk/middleware-serde";
import { HttpRequest as __HttpRequest, HttpResponse as __HttpResponse } from "@aws-sdk/protocol-http";
import { Command as $Command } from "@aws-sdk/smithy-client";
import {
FinalizeHandlerArguments,
Handler,
HandlerExecutionContext,
HttpHandlerOptions as __HttpHandlerOptions,
MetadataBearer as __MetadataBearer,
MiddlewareStack,
SerdeContext as __SerdeContext,
} from "@aws-sdk/types";

import { GlueClientResolvedConfig, ServiceInputTypes, ServiceOutputTypes } from "../GlueClient";
import {
UpdateJobFromSourceControlRequest,
UpdateJobFromSourceControlRequestFilterSensitiveLog,
UpdateJobFromSourceControlResponse,
UpdateJobFromSourceControlResponseFilterSensitiveLog,
} from "../models/models_2";
import {
deserializeAws_json1_1UpdateJobFromSourceControlCommand,
serializeAws_json1_1UpdateJobFromSourceControlCommand,
} from "../protocols/Aws_json1_1";

export interface UpdateJobFromSourceControlCommandInput extends UpdateJobFromSourceControlRequest {}
export interface UpdateJobFromSourceControlCommandOutput extends UpdateJobFromSourceControlResponse, __MetadataBearer {}

/**
* <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>
*
* <p>This API supports optional parameters which take in the repository information.</p>
* @example
* Use a bare-bones client and the command you need to make an API call.
* ```javascript
* import { GlueClient, UpdateJobFromSourceControlCommand } from "@aws-sdk/client-glue"; // ES Modules import
* // const { GlueClient, UpdateJobFromSourceControlCommand } = require("@aws-sdk/client-glue"); // CommonJS import
* const client = new GlueClient(config);
* const command = new UpdateJobFromSourceControlCommand(input);
* const response = await client.send(command);
* ```
*
* @see {@link UpdateJobFromSourceControlCommandInput} for command's `input` shape.
* @see {@link UpdateJobFromSourceControlCommandOutput} for command's `response` shape.
* @see {@link GlueClientResolvedConfig | config} for GlueClient's `config` shape.
*
*/
export class UpdateJobFromSourceControlCommand extends $Command<
UpdateJobFromSourceControlCommandInput,
UpdateJobFromSourceControlCommandOutput,
GlueClientResolvedConfig
> {
// Start section: command_properties
// End section: command_properties

constructor(readonly input: UpdateJobFromSourceControlCommandInput) {
// Start section: command_constructor
super();
// End section: command_constructor
}

/**
* @internal
*/
resolveMiddleware(
clientStack: MiddlewareStack<ServiceInputTypes, ServiceOutputTypes>,
configuration: GlueClientResolvedConfig,
options?: __HttpHandlerOptions
): Handler<UpdateJobFromSourceControlCommandInput, UpdateJobFromSourceControlCommandOutput> {
this.middlewareStack.use(getSerdePlugin(configuration, this.serialize, this.deserialize));

const stack = clientStack.concat(this.middlewareStack);

const { logger } = configuration;
const clientName = "GlueClient";
const commandName = "UpdateJobFromSourceControlCommand";
const handlerExecutionContext: HandlerExecutionContext = {
logger,
clientName,
commandName,
inputFilterSensitiveLog: UpdateJobFromSourceControlRequestFilterSensitiveLog,
outputFilterSensitiveLog: UpdateJobFromSourceControlResponseFilterSensitiveLog,
};
const { requestHandler } = configuration;
return stack.resolve(
(request: FinalizeHandlerArguments<any>) =>
requestHandler.handle(request.request as __HttpRequest, options || {}),
handlerExecutionContext
);
}

private serialize(input: UpdateJobFromSourceControlCommandInput, context: __SerdeContext): Promise<__HttpRequest> {
return serializeAws_json1_1UpdateJobFromSourceControlCommand(input, context);
}

private deserialize(
output: __HttpResponse,
context: __SerdeContext
): Promise<UpdateJobFromSourceControlCommandOutput> {
return deserializeAws_json1_1UpdateJobFromSourceControlCommand(output, context);
}

// Start section: command_body_extra
// End section: command_body_extra
}
106 changes: 106 additions & 0 deletions clients/client-glue/src/commands/UpdateSourceControlFromJobCommand.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,106 @@
// smithy-typescript generated code
import { getSerdePlugin } from "@aws-sdk/middleware-serde";
import { HttpRequest as __HttpRequest, HttpResponse as __HttpResponse } from "@aws-sdk/protocol-http";
import { Command as $Command } from "@aws-sdk/smithy-client";
import {
FinalizeHandlerArguments,
Handler,
HandlerExecutionContext,
HttpHandlerOptions as __HttpHandlerOptions,
MetadataBearer as __MetadataBearer,
MiddlewareStack,
SerdeContext as __SerdeContext,
} from "@aws-sdk/types";

import { GlueClientResolvedConfig, ServiceInputTypes, ServiceOutputTypes } from "../GlueClient";
import {
UpdateSourceControlFromJobRequest,
UpdateSourceControlFromJobRequestFilterSensitiveLog,
UpdateSourceControlFromJobResponse,
UpdateSourceControlFromJobResponseFilterSensitiveLog,
} from "../models/models_2";
import {
deserializeAws_json1_1UpdateSourceControlFromJobCommand,
serializeAws_json1_1UpdateSourceControlFromJobCommand,
} from "../protocols/Aws_json1_1";

export interface UpdateSourceControlFromJobCommandInput extends UpdateSourceControlFromJobRequest {}
export interface UpdateSourceControlFromJobCommandOutput extends UpdateSourceControlFromJobResponse, __MetadataBearer {}

/**
* <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>
*
* <p>This API supports optional parameters which take in the repository information.</p>
* @example
* Use a bare-bones client and the command you need to make an API call.
* ```javascript
* import { GlueClient, UpdateSourceControlFromJobCommand } from "@aws-sdk/client-glue"; // ES Modules import
* // const { GlueClient, UpdateSourceControlFromJobCommand } = require("@aws-sdk/client-glue"); // CommonJS import
* const client = new GlueClient(config);
* const command = new UpdateSourceControlFromJobCommand(input);
* const response = await client.send(command);
* ```
*
* @see {@link UpdateSourceControlFromJobCommandInput} for command's `input` shape.
* @see {@link UpdateSourceControlFromJobCommandOutput} for command's `response` shape.
* @see {@link GlueClientResolvedConfig | config} for GlueClient's `config` shape.
*
*/
export class UpdateSourceControlFromJobCommand extends $Command<
UpdateSourceControlFromJobCommandInput,
UpdateSourceControlFromJobCommandOutput,
GlueClientResolvedConfig
> {
// Start section: command_properties
// End section: command_properties

constructor(readonly input: UpdateSourceControlFromJobCommandInput) {
// Start section: command_constructor
super();
// End section: command_constructor
}

/**
* @internal
*/
resolveMiddleware(
clientStack: MiddlewareStack<ServiceInputTypes, ServiceOutputTypes>,
configuration: GlueClientResolvedConfig,
options?: __HttpHandlerOptions
): Handler<UpdateSourceControlFromJobCommandInput, UpdateSourceControlFromJobCommandOutput> {
this.middlewareStack.use(getSerdePlugin(configuration, this.serialize, this.deserialize));

const stack = clientStack.concat(this.middlewareStack);

const { logger } = configuration;
const clientName = "GlueClient";
const commandName = "UpdateSourceControlFromJobCommand";
const handlerExecutionContext: HandlerExecutionContext = {
logger,
clientName,
commandName,
inputFilterSensitiveLog: UpdateSourceControlFromJobRequestFilterSensitiveLog,
outputFilterSensitiveLog: UpdateSourceControlFromJobResponseFilterSensitiveLog,
};
const { requestHandler } = configuration;
return stack.resolve(
(request: FinalizeHandlerArguments<any>) =>
requestHandler.handle(request.request as __HttpRequest, options || {}),
handlerExecutionContext
);
}

private serialize(input: UpdateSourceControlFromJobCommandInput, context: __SerdeContext): Promise<__HttpRequest> {
return serializeAws_json1_1UpdateSourceControlFromJobCommand(input, context);
}

private deserialize(
output: __HttpResponse,
context: __SerdeContext
): Promise<UpdateSourceControlFromJobCommandOutput> {
return deserializeAws_json1_1UpdateSourceControlFromJobCommand(output, context);
}

// Start section: command_body_extra
// End section: command_body_extra
}
Loading

0 comments on commit 4b78fcd

Please sign in to comment.